Просмотр исходного кода

Merge branch 'master' into feat/156485-deletion-of-existing-vector-store-files-during-vector-store-rebuild

Shun Miyazawa 1 год назад
Родитель
Сommit
068237097f

+ 0 - 1
.devcontainer/postCreateCommand.sh

@@ -15,5 +15,4 @@ eval "$(cat /home/vscode/.bashrc)"
 pnpm install turbo --global
 
 # Install dependencies
-git-lfs pull
 turbo run bootstrap

+ 3 - 3
.github/workflows/ci-app.yml

@@ -55,7 +55,7 @@ jobs:
       - name: Install dependencies
         run: |
           pnpm add turbo --global
-          pnpm install
+          pnpm install --frozen-lockfile
 
       - name: Lint
         run: |
@@ -109,7 +109,7 @@ jobs:
       - name: Install dependencies
         run: |
           pnpm add turbo --global
-          pnpm install
+          pnpm install --frozen-lockfile
 
       - name: Test
         run: |
@@ -173,7 +173,7 @@ jobs:
       - name: Install dependencies
         run: |
           pnpm add turbo --global
-          pnpm install
+          pnpm install --frozen-lockfile
 
       - name: turbo run launch-dev:ci
         working-directory: ./apps/app

+ 7 - 13
.github/workflows/ci-slackbot-proxy.yml

@@ -55,7 +55,7 @@ jobs:
     - name: Install dependencies
       run: |
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
     - name: Lint
       run: |
@@ -120,7 +120,7 @@ jobs:
     - name: Install dependencies
       run: |
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
     - name: turbo run dev:ci
       working-directory: ./apps/slackbot-proxy
@@ -189,16 +189,9 @@ jobs:
       run: |
         pnpm add turbo --global
 
-    - name: Prune repositories
-      run: |
-        turbo prune @growi/slackbot-proxy
-        rm -rf apps packages
-        mv out/* .
-
     - name: Install dependencies
-      # Run pnpm install with `--no-frozen-lockfile` option after `turbo prune` to avoid ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY
       run: |
-        pnpm install --no-frozen-lockfile
+        pnpm install --frozen-lockfile
 
     - name: Restore dist
       uses: actions/cache/restore@v4
@@ -215,10 +208,11 @@ jobs:
       run: |
         turbo run build
 
-    - name: Install dependencies for production
-      # Run pnpm install with `--no-frozen-lockfile` option after `turbo prune` to avoid ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY
+    - name: Assembling all dependencies
       run: |
-        pnpm install --no-frozen-lockfile --prod
+        rm -rf out
+        pnpm deploy out --prod --filter @growi/slackbot-proxy
+        rm -rf apps/slackbot-proxy/node_modules && mv out/node_modules apps/slackbot-proxy/node_modules
 
     - name: pnpm run start:prod:ci
       working-directory: ./apps/slackbot-proxy

+ 1 - 1
.github/workflows/release-slackbot-proxy.yml

@@ -103,7 +103,7 @@ jobs:
     - name: Install dependencies
       run: |
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
     - name: Bump versions for next RC
       run: |

+ 2 - 2
.github/workflows/release-subpackages.yml

@@ -38,7 +38,7 @@ jobs:
     - name: Install dependencies
       run: |
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
     - name: Setup .npmrc
       run: |
@@ -81,7 +81,7 @@ jobs:
     - name: Install dependencies
       run: |
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
     - name: Create Release Pull Request or Publish to npm
       id: changesets

+ 2 - 2
.github/workflows/release.yml

@@ -32,7 +32,7 @@ jobs:
     - name: Install dependencies
       run: |
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
     - name: Bump versions
       run: |
@@ -172,7 +172,7 @@ jobs:
     - name: Install dependencies
       run: |
         pnpm add turbo --global
-        pnpm install
+        pnpm install --frozen-lockfile
 
     - name: Bump versions for next RC
       run: |

+ 16 - 34
.github/workflows/reusable-app-prod.yml

@@ -22,9 +22,10 @@ jobs:
 
     steps:
     - uses: actions/checkout@v4
-      with:
-        # retrieve local font files
-        lfs: true
+
+    - name: Install Git LFS
+      run: |
+        git lfs install
 
     - uses: pnpm/action-setup@v4
 
@@ -37,16 +38,9 @@ jobs:
       run: |
         pnpm add turbo --global
 
-    - name: Prune repositories
-      run: |
-        turbo prune @growi/app
-        rm -rf apps packages
-        mv out/* .
-
     - name: Install dependencies
-      # Run pnpm install with `--no-frozen-lockfile` option after `turbo prune` to avoid ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY
       run: |
-        pnpm install --no-frozen-lockfile
+        pnpm install --frozen-lockfile
 
     - name: Cache/Restore dist
       uses: actions/cache@v4
@@ -67,6 +61,12 @@ jobs:
       env:
         ANALYZE: 1
 
+    - name: Assembling all dependencies
+      run: |
+        rm -rf out
+        pnpm deploy out --prod --filter @growi/app
+        rm -rf apps/app/node_modules && mv out/node_modules apps/app/node_modules
+
     - name: Archive production files
       id: archive-prod-files
       run: |
@@ -79,9 +79,8 @@ jobs:
           apps/app/resource \
           apps/app/tmp \
           apps/app/.env.production* \
-          apps/app/package.json \
-          packages/*/dist \
-          packages/*/package.json
+          apps/app/node_modules \
+          apps/app/package.json
         echo "file=production.tar.gz" >> $GITHUB_OUTPUT
 
     - name: Upload production files as artifact
@@ -134,27 +133,12 @@ jobs:
         node-version: ${{ inputs.node-version }}
         cache: 'pnpm'
 
-    - name: Install turbo
-      run: |
-        pnpm add turbo --global
-
-    - name: Prune repositories
-      run: |
-        turbo prune @growi/app
-        rm -rf apps packages
-        mv out/* .
-
-    - name: Install dependencies
-      # Run pnpm install with `--no-frozen-lockfile` option after `turbo prune` to avoid ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY
-      run: |
-        pnpm install --no-frozen-lockfile --prod
-
     - name: Download production files artifact
       uses: actions/download-artifact@v4
       with:
         name: Production Files (node${{ inputs.node-version }})
 
-    - name: Extract procution files artifact
+    - name: Extract procution files
       run: |
         tar -xf ${{ needs.build-prod.outputs.PROD_FILES }}
 
@@ -181,8 +165,6 @@ jobs:
   run-playwright:
     needs: [build-prod]
 
-    if: ${{ !inputs.skip-e2e-test && startsWith(github.head_ref, 'mergify/merge-queue/') }}
-
     runs-on: ubuntu-latest
     container:
       # Match the Playwright version
@@ -219,7 +201,7 @@ jobs:
 
     - name: Install dependencies
       run: |
-        pnpm install
+        pnpm install --frozen-lockfile
 
     - name: Install Playwright browsers
       run: |
@@ -230,7 +212,7 @@ jobs:
       with:
         name: Production Files (node${{ inputs.node-version }})
 
-    - name: Extract procution files artifact
+    - name: Extract procution files
       run: |
         tar -xf ${{ needs.build-prod.outputs.PROD_FILES }}
 

+ 1 - 1
.github/workflows/reusable-app-reg-suit.yml

@@ -63,7 +63,7 @@ jobs:
 
     - name: Install dependencies
       run: |
-        pnpm install
+        pnpm install --frozen-lockfile
 
     - name: Download screenshots taken by cypress
       uses: actions/download-artifact@v4

+ 2 - 0
.gitignore

@@ -41,4 +41,6 @@ yarn-error.log*
 
 # turborepo
 .turbo
+
+# pnpm deploy target dir
 out

+ 2 - 2
apps/app/docker/Dockerfile

@@ -40,8 +40,8 @@ RUN turbo run clean
 RUN turbo run build --filter @growi/app
 
 # make artifacts
-RUN pnpm --filter @growi/app --prod deploy pruned
-RUN rm -rf apps/app/node_modules && mv pruned/node_modules apps/app/node_modules
+RUN pnpm deploy out --prod --filter @growi/app
+RUN rm -rf apps/app/node_modules && mv out/node_modules apps/app/node_modules
 RUN rm -rf apps/app/.next/cache
 RUN tar -zcf packages.tar.gz \
   package.json \

+ 9 - 3
apps/app/package.json

@@ -14,11 +14,12 @@
     "server": "cross-env NODE_ENV=production node -r dotenv-flow/config dist/server/app.js",
     "server:ci": "pnpm run server --ci",
     "preserver": "cross-env NODE_ENV=production pnpm run migrate",
-    "styles-prebuilt": "vite build -c vite.styles-prebuilt.config.ts",
+    "pre:styles": "vite build -c vite.styles-prebuilt.config.ts",
+    "pre:lfs": "git lfs pull",
     "migrate": "node -r dotenv-flow/config node_modules/migrate-mongo/bin/migrate-mongo up -f config/migrate-mongo-config.js",
     "//// for development": "",
     "dev": "cross-env NODE_ENV=development nodemon --exec pnpm run ts-node --inspect src/server/app.ts",
-    "dev:styles-prebuilt": "pnpm run styles-prebuilt --mode dev",
+    "dev:pre:styles": "pnpm run pre:styles --mode dev",
     "dev:migrate-mongo": "cross-env NODE_ENV=development pnpm run ts-node node_modules/migrate-mongo/bin/migrate-mongo",
     "dev:migrate": "pnpm run dev:migrate:status > tmp/cache/migration-status.out && pnpm run dev:migrate:up",
     "dev:migrate:create": "pnpm run dev:migrate-mongo create -f config/migrate-mongo-config.js",
@@ -101,6 +102,7 @@
     "connect-mongo": "^4.6.0",
     "connect-redis": "^4.0.4",
     "cookie-parser": "^1.4.5",
+    "cross-env": "^7.0.0",
     "csurf": "^1.11.0",
     "csv-to-markdown-table": "^1.4.1",
     "date-fns": "^3.6.0",
@@ -108,6 +110,7 @@
     "detect-indent": "^7.0.0",
     "diff": "^5.0.0",
     "diff_match_patch": "^0.1.1",
+    "dotenv-flow": "^3.2.0",
     "ejs": "^3.1.10",
     "esa-node": "^0.2.2",
     "escape-string-regexp": "^4.0.0",
@@ -199,7 +202,6 @@
     "rehype-toc": "^3.0.2",
     "remark-breaks": "^4.0.0",
     "remark-directive": "^3.0.0",
-    "remark-emoji": "^5.0.0",
     "remark-frontmatter": "^5.0.0",
     "remark-gfm": "^4.0.0",
     "remark-math": "^6.0.0",
@@ -215,6 +217,8 @@
     "swagger-jsdoc": "^6.2.8",
     "swr": "^2.2.2",
     "throttle-debounce": "^5.0.0",
+    "ts-deepmerge": "^6.2.0",
+    "tslib": "^2.8.0",
     "uglifycss": "^0.0.29",
     "uid-safe": "^2.1.5",
     "unified": "^11.0.0",
@@ -238,6 +242,7 @@
     "mongodb": "mongoose which is used requires mongo@4.16.0."
   },
   "devDependencies": {
+    "@emoji-mart/data": "^1.2.1",
     "@growi/core-styles": "workspace:^",
     "@growi/custom-icons": "workspace:^",
     "@growi/editor": "workspace:^",
@@ -288,6 +293,7 @@
     "load-css-file": "^1.0.0",
     "material-icons": "^1.11.3",
     "mdast-util-directive": "^3.0.0",
+    "mdast-util-find-and-replace": "^3.0.1",
     "mongodb-memory-server-core": "^9.1.1",
     "morgan": "^1.10.0",
     "null-loader": "^4.0.1",

+ 3 - 3
apps/app/resource/locales/en_US/sandbox-diagrams.md

@@ -1,4 +1,4 @@
-# :pencil: diagrams.net(Draw.io)
+# :pencil2: diagrams.net(Draw.io)
 
 See [diagrams.net](https://diagrams.net)
 
@@ -23,7 +23,7 @@ See [diagrams.net](https://diagrams.net)
 
 
 
-# :pencil: PlantUML
+# :pencil2: PlantUML
 
 See [PlantUML](http://plantuml.com/).
 
@@ -151,7 +151,7 @@ State3 --> [*] : Aborted
 
 
 
-# :pencil: Mermaid
+# :pencil2: Mermaid
 
 ## Pie graph
 

+ 1 - 1
apps/app/resource/locales/en_US/sandbox-math.md

@@ -1,4 +1,4 @@
-# :pencil: Math
+# :pencil2: Math
 
 See [KaTeX](https://katex.org/).
 

+ 3 - 3
apps/app/resource/locales/fr_FR/sandbox-diagrams.md

@@ -1,4 +1,4 @@
-# :pencil: diagrams.net(Draw.io)
+# :pencil2: diagrams.net(Draw.io)
 
 See [diagrams.net](https://diagrams.net)
 
@@ -23,7 +23,7 @@ See [diagrams.net](https://diagrams.net)
 
 
 
-# :pencil: PlantUML
+# :pencil2: PlantUML
 
 See [PlantUML](http://plantuml.com/).
 
@@ -151,7 +151,7 @@ State3 --> [*] : Aborted
 
 
 
-# :pencil: Mermaid
+# :pencil2: Mermaid
 
 ## Pie graph
 

+ 1 - 1
apps/app/resource/locales/fr_FR/sandbox-math.md

@@ -1,4 +1,4 @@
-# :pencil: Math
+# :pencil2: Math
 
 See [KaTeX](https://katex.org/).
 

+ 3 - 3
apps/app/resource/locales/ja_JP/sandbox-diagrams.md

@@ -2,7 +2,7 @@
 - GROWI では各種機能を活用することで様々な図形の表現が可能です
   - 各種機能の特色を活かして図形の表現をしましょう
 
-# :pencil: Diagrams.net(旧 Draw.io)
+# :pencil2: Diagrams.net(旧 Draw.io)
 - 図形の挿入時に全般的にご利用いただきやすい図形の挿入方法となります
   - サービスの詳細は [こちら](https://www.drawio.com/) をご確認ください
 - Edit 画面下部のツールバーより専用の編集画面を用いて図形を編集することが可能です
@@ -28,7 +28,7 @@ pLzXsqNMti76NH0Pwggu8d4Jzx3eCO/R05/M+XevvTtWnIgTcapK0wCCNGN8ZmSq/oVxwy2t6dwYU1H2
 ```
 
 
-# :pencil: Mermaid
+# :pencil2: Mermaid
 - Mermaidとは、Markdownテキストでグラフを作成できるダイアグラムツールです
   - サービスの詳細は [こちら](https://mermaid.js.org/) をご確認ください
 
@@ -79,7 +79,7 @@ mindmap
 ```
 
 
-# :pencil: PlantUML
+# :pencil2: PlantUML
 - PlantUML はオープンソースの UML 描画ツールです
   - サービスの詳細は [こちら](https://plantuml.com/) をご確認ください
 

+ 3 - 3
apps/app/resource/locales/zh_CN/sandbox-diagrams.md

@@ -1,4 +1,4 @@
-# :pencil: diagrams.net(Draw.io)
+# :pencil2: diagrams.net(Draw.io)
 
 See [diagrams.net](https://diagrams.net)
 
@@ -23,7 +23,7 @@ See [diagrams.net](https://diagrams.net)
 
 
 
-# :pencil: PlantUML
+# :pencil2: PlantUML
 
 See [PlantUML](http://plantuml.com/).
 
@@ -151,7 +151,7 @@ State3 --> [*] : Aborted
 
 
 
-# :pencil: Mermaid
+# :pencil2: Mermaid
 
 ## Pie graph
 

+ 1 - 1
apps/app/resource/locales/zh_CN/sandbox-math.md

@@ -1,4 +1,4 @@
-# :pencil: Math
+# :pencil2: Math
 
 See [KaTeX](https://katex.org/).
 

+ 19 - 0
apps/app/src/services/renderer/remark-plugins/emoji.ts

@@ -0,0 +1,19 @@
+import emojiData from '@emoji-mart/data/sets/15/native.json';
+import type { Root } from 'mdast';
+import { findAndReplace } from 'mdast-util-find-and-replace';
+import type { Plugin } from 'unified';
+
+export const remarkPlugin: Plugin = () => {
+  return function(tree: Root) {
+    findAndReplace(tree, [
+
+      // Ref: https://github.com/remarkjs/remark-gemoji/blob/fb4d8a5021f02384e180c17f72f40d8dc698bd46/lib/index.js
+      /:(\+1|[-\w]+):/g,
+
+      function(_, $1: string) {
+        const emoji = emojiData.emojis[$1]?.skins[0].native;
+        return emoji ?? false;
+      },
+    ]);
+  };
+};

+ 2 - 2
apps/app/src/services/renderer/renderer.tsx

@@ -6,7 +6,6 @@ import sanitize from 'rehype-sanitize';
 import slug from 'rehype-slug';
 import breaks from 'remark-breaks';
 import remarkDirective from 'remark-directive';
-import emoji from 'remark-emoji';
 import remarkFrontmatter from 'remark-frontmatter';
 import gfm from 'remark-gfm';
 import math from 'remark-math';
@@ -27,6 +26,7 @@ import * as addClass from './rehype-plugins/add-class';
 import { relativeLinks } from './rehype-plugins/relative-links';
 import { relativeLinksByPukiwikiLikeLinker } from './rehype-plugins/relative-links-by-pukiwiki-like-linker';
 import * as codeBlock from './remark-plugins/codeblock';
+import * as emoji from './remark-plugins/emoji';
 import { pukiwikiLikeLinker } from './remark-plugins/pukiwiki-like-linker';
 import * as xsvToTable from './remark-plugins/xsv-to-table';
 
@@ -97,7 +97,7 @@ export const generateCommonOptions = (pagePath: string|undefined): RendererOptio
     remarkPlugins: [
       [toc, { maxDepth: 3, tight: true }],
       gfm,
-      emoji,
+      emoji.remarkPlugin,
       pukiwikiLikeLinker,
       growiDirective,
       remarkDirective,

+ 10 - 6
apps/app/turbo.json

@@ -3,7 +3,7 @@
   "extends": ["//"],
   "tasks": {
 
-    "styles-prebuilt": {
+    "pre:styles": {
       "dependsOn": ["@growi/ui#build"],
       "outputs": ["src/styles/prebuilt/**"],
       "inputs": [
@@ -13,8 +13,12 @@
       ],
       "outputLogs": "new-only"
     },
+    "pre:lfs": {
+      "outputs": ["resource/fonts/**"],
+      "outputLogs": "new-only"
+    },
     "build": {
-      "dependsOn": ["^build", "styles-prebuilt"],
+      "dependsOn": ["^build", "pre:styles", "pre:lfs"],
       "outputs": [".next/**", "!.next/cache/**", "dist/**"],
       "inputs": [
         "next.config.js",
@@ -33,7 +37,7 @@
       "inputs": ["src/migrations/*.js"],
       "outputLogs": "new-only"
     },
-    "dev:styles-prebuilt": {
+    "dev:pre:styles": {
       "dependsOn": ["@growi/ui#dev"],
       "outputs": ["src/styles/prebuilt/**"],
       "inputs": [
@@ -45,18 +49,18 @@
       "outputLogs": "new-only"
     },
     "dev": {
-      "dependsOn": ["^dev", "dev:migrate", "dev:styles-prebuilt"],
+      "dependsOn": ["^dev", "dev:migrate", "dev:pre:styles", "pre:lfs"],
       "cache": false,
       "persistent": true
     },
 
     "launch-dev:ci": {
-      "dependsOn": ["^dev", "dev:styles-prebuilt"],
+      "dependsOn": ["^dev", "dev:pre:styles"],
       "cache": false
     },
 
     "lint": {
-      "dependsOn": ["^dev", "dev:styles-prebuilt"]
+      "dependsOn": ["^dev", "dev:pre:styles"]
     },
 
     "test": {

+ 2 - 2
apps/slackbot-proxy/docker/Dockerfile

@@ -38,8 +38,8 @@ RUN pnpm install ---frozen-lockfile
 RUN turbo run build --filter @growi/slackbot-proxy
 
 # make artifacts
-RUN pnpm --filter @growi/slackbot-proxy --prod deploy pruned
-RUN rm -rf apps/slackbot-proxy/node_modules && mv pruned/node_modules apps/slackbot-proxy/node_modules
+RUN pnpm deploy out --prod --filter @growi/slackbot-proxy
+RUN rm -rf apps/slackbot-proxy/node_modules && mv out/node_modules apps/slackbot-proxy/node_modules
 RUN tar -zcf packages.tar.gz \
   package.json \
   apps/slackbot-proxy/package.json \

+ 3 - 0
apps/slackbot-proxy/package.json

@@ -49,7 +49,9 @@
     "bunyan": "^1.8.15",
     "compression": "^1.7.4",
     "cookie-parser": "^1.4.5",
+    "cross-env": "^7.0.0",
     "date-fns": "^3.6.0",
+    "dotenv-flow": "^3.2.0",
     "express": "^4.20.0",
     "express-bunyan-logger": "^1.3.3",
     "extensible-custom-error": "^0.0.7",
@@ -58,6 +60,7 @@
     "method-override": "^3.0.0",
     "mysql2": "^2.2.5",
     "read-pkg-up": "^7.0.1",
+    "tslib": "^2.8.0",
     "typeorm": "=0.2.45",
     "universal-bunyan": "^0.9.2"
   },

+ 4 - 6
package.json

@@ -39,12 +39,6 @@
     "version:premajor": "pnpm version premajor --preid=RC --no-git-tag-version"
   },
   "dependencies": {
-    "cross-env": "^7.0.0",
-    "dotenv-flow": "^3.2.0",
-    "npm-run-all": "^4.1.5",
-    "ts-deepmerge": "^6.2.0",
-    "tslib": "^2.3.1",
-    "yargs": "^17.7.1"
   },
   "// comments for defDependencies": {
     "vite-plugin-dts": "v4.2.1 causes the unexpected error 'Cannot find package 'vue-tsc''"
@@ -67,6 +61,8 @@
     "@vitejs/plugin-react": "^4.3.1",
     "@vitest/coverage-v8": "^2.1.1",
     "@vitest/ui": "^2.1.1",
+    "cross-env": "^7.0.0",
+    "dotenv-flow": "^3.2.0",
     "eslint": "^8.41.0",
     "eslint-config-next": "^12.1.6",
     "eslint-config-weseek": "^2.1.1",
@@ -80,6 +76,7 @@
     "glob": "^8.1.0",
     "mock-require": "^3.0.3",
     "nodemon": "^3.1.3",
+    "npm-run-all": "^4.1.5",
     "path-browserify": "^1.0.1",
     "reg-keygen-git-hash-plugin": "^0.11.1",
     "reg-notify-github-plugin": "^0.11.1",
@@ -91,6 +88,7 @@
     "stylelint": "^16.5.0",
     "stylelint-config-recess-order": "^5.0.1",
     "stylelint-config-recommended-scss": "^14.0.0",
+    "ts-deepmerge": "^6.2.0",
     "ts-node": "^10.9.2",
     "ts-patch": "^3.2.0",
     "tsconfig-paths": "^4.2.0",

Разница между файлами не показана из-за своего большого размера
+ 135 - 145
pnpm-lock.yaml


Некоторые файлы не были показаны из-за большого количества измененных файлов