Yuki Takei 3 лет назад
Родитель
Сommit
e29e401fb2

+ 2 - 1
apps/app/next.config.js

@@ -21,7 +21,7 @@ const setupTranspileModules = () => {
 
   // define transpiled packages for '@growi/*'
   const packages = [
-    ...listScopedPackages(['@growi'], { ignorePackageNames: ['@growi/app'] }),
+    ...listScopedPackages(['@growi'], { ignorePackageNames: ['@growi/app', '@growi/core'] }),
     // listing ESM packages until experimental.esmExternals works correctly to avoid ERR_REQUIRE_ESM
     'react-markdown',
     'unified',
@@ -29,6 +29,7 @@ const setupTranspileModules = () => {
     'character-entities-html4',
     'comma-separated-tokens',
     'decode-named-character-reference',
+    'escape-string-regexp',
     'hastscript',
     'html-void-elements',
     'is-absolute-url',

+ 5 - 4
apps/app/package.json

@@ -18,7 +18,8 @@
     "migrate": "node -r dotenv-flow/config node_modules/.bin/migrate-mongo up -f config/migrate-mongo-config.js",
     "//// for development": "",
     "dev": "yarn cross-env NODE_ENV=development ts-node-dev -r tsconfig-paths/register -r dotenv-flow/config --inspect --transpile-only src/server/app.ts",
-    "predev": "yarn cross-env NODE_ENV=development run-p resources:* dev:migrate:up",
+    "// predev": "yarn cross-env NODE_ENV=development run-p resources:* dev:migrate:up",
+    "predev": "yarn cross-env NODE_ENV=development run-p dev:migrate:up",
     "dev:analyze": "yarn cross-env ANALYZE=true yarn dev",
     "dev:migrate-mongo": "yarn cross-env NODE_ENV=development yarn ts-node node_modules/.bin/migrate-mongo",
     "dev:migrate": "yarn dev:migrate:up",
@@ -45,8 +46,8 @@
     "swagger-jsdoc": "swagger-jsdoc -o tmp/swagger.json -d config/swagger-definition.js",
     "openapi:v3": "yarn cross-env API_VERSION=3 yarn swagger-jsdoc -- \"src/server/routes/apiv3/**/*.js\" \"src/server/models/**/*.js\"",
     "openapi:v1": "yarn cross-env API_VERSION=1 yarn swagger-jsdoc -- \"src/server/*/*.js\" \"src/server/models/**/*.js\"",
-    "resources:hackmd": "yarn lerna run build --scope=@growi/hackmd",
-    "resources:preset-themes": "yarn lerna run dev:nowatch --scope=@growi/preset-themes",
+    "// resources:hackmd": "yarn lerna run build --scope=@growi/hackmd",
+    "// resources:preset-themes": "yarn lerna run dev:nowatch --scope=@growi/preset-themes",
     "// resources:dl-resources": "yarn ts-node bin/download-cdn-resources.ts",
     "ts-node": "node -r ts-node/register -r tsconfig-paths/register -r dotenv-flow/config"
   },
@@ -86,7 +87,7 @@
     "axios-retry": "^3.2.4",
     "body-parser": "^1.18.2",
     "browser-bunyan": "^1.8.0",
-    "bson-objectid": "^2.0.3",
+    "bson-objectid": "^2.0.4",
     "bunyan": "^1.8.15",
     "check-node-version": "^4.1.0",
     "compression": "^1.7.4",

+ 1 - 1
apps/app/src/stores/attachment.tsx

@@ -2,7 +2,7 @@ import { useCallback } from 'react';
 
 import {
   HasObjectId,
-  IAttachment, Nullable, SWRResponseWithUtils, withUtils,
+  IAttachment, Nullable, type SWRResponseWithUtils, withUtils,
 } from '@growi/core';
 import useSWR from 'swr';
 

+ 1 - 1
apps/app/src/stores/editor.tsx

@@ -1,6 +1,6 @@
 import { useCallback } from 'react';
 
-import { Nullable, withUtils, SWRResponseWithUtils } from '@growi/core';
+import { Nullable, withUtils, type SWRResponseWithUtils } from '@growi/core';
 import { SWRResponse } from 'swr';
 import useSWRImmutable from 'swr/immutable';
 

+ 1 - 1
apps/app/src/stores/global-notification.ts

@@ -1,4 +1,4 @@
-import { SWRResponseWithUtils, withUtils } from '@growi/core';
+import { type SWRResponseWithUtils, withUtils } from '@growi/core';
 import useSWRImmutable from 'swr/immutable';
 
 import { IGlobalNotification } from '~/client/interfaces/global-notification';

+ 1 - 1
apps/app/src/stores/maintenanceMode.tsx

@@ -1,4 +1,4 @@
-import { withUtils, SWRResponseWithUtils } from '@growi/core/src/utils/with-utils';
+import { withUtils, type SWRResponseWithUtils } from '@growi/core';
 
 import { apiv3Post } from '~/client/util/apiv3-client';
 

+ 2 - 2
apps/app/src/stores/ui.tsx

@@ -1,9 +1,9 @@
 import { type RefObject, useCallback, useEffect } from 'react';
 
 import {
-  isClient, isServer, pagePathUtils, type Nullable, PageGrant,
+  isClient, isServer, pagePathUtils, PageGrant, withUtils,
 } from '@growi/core';
-import { withUtils, type SWRResponseWithUtils } from '@growi/core/src/utils/with-utils';
+import type { Nullable, SWRResponseWithUtils } from '@growi/core';
 import { Breakpoint, addBreakpointListener, cleanupBreakpointListener } from '@growi/ui';
 import type { HtmlElementNode } from 'rehype-toc';
 import type SimpleBar from 'simplebar-react';

+ 13 - 2
apps/app/tsconfig.build.client.json

@@ -8,8 +8,19 @@
     "paths": {
       "~/*": ["./src/*"],
       "^/*": ["./*"],
-      "@growi/remark-lsx/*": ["../remark-lsx/src/*"],
-      "@growi/*": ["../*/src"],
+
+      "@growi/codemirror-textlint": ["../../packages/codemirror-textlint/src"],
+      // "@growi/core": ["../../packages/core/src"],
+      "@growi/hackmd": ["../../packages/hackmd/src"],
+      "@growi/presentation": ["../../packages/presentation/src"],
+      "@growi/preset-themes": ["../../packages/preset-themes/src"],
+      "@growi/remark-drawio": ["../../packages/remark-drawio/src"],
+      "@growi/remark-growi-directive": ["../../packages/remark-growi-directive/src"],
+      "@growi/remark-lsx": ["../../packages/remark-lsx/src"],
+      "@growi/remark-lsx/*": ["../../packages/remark-lsx/src/*"],
+      "@growi/slack": ["../../packages/slack/src"],
+      "@growi/ui": ["../../packages/ui/src"],
+
       "debug": ["./src/server/utils/logger/alias-for-debug"]
     }
   }

+ 1 - 1
apps/app/tsconfig.build.server.json

@@ -11,7 +11,7 @@
     "paths": {
       "~/*": ["./src/*"],
       "^/*": ["./*"],
-      "@growi/remark-lsx/*": ["../remark-lsx/dist/*"],
+      "@growi/remark-lsx/*": ["../../packages/remark-lsx/dist/*"],
       "debug": ["./src/utils/logger/alias-for-debug"]
     }
   },

+ 14 - 2
apps/app/tsconfig.json

@@ -1,12 +1,24 @@
 {
   "extends": "./tsconfig.base.json",
   "compilerOptions": {
+    "module": "commonjs",
     "baseUrl": ".",
     "paths": {
       "~/*": ["./src/*"],
       "^/*": ["./*"],
-      "@growi/remark-lsx/*": ["../remark-lsx/src/*"],
-      "@growi/*": ["../*/src"],
+
+      "@growi/codemirror-textlint": ["../../packages/codemirror-textlint/src"],
+      // "@growi/core": ["../../packages/core/src"],
+      "@growi/hackmd": ["../../packages/hackmd/src"],
+      "@growi/presentation": ["../../packages/presentation/src"],
+      "@growi/preset-themes": ["../../packages/preset-themes/src"],
+      "@growi/remark-drawio": ["../../packages/remark-drawio/src"],
+      "@growi/remark-growi-directive": ["../../packages/remark-growi-directive/src"],
+      "@growi/remark-lsx": ["../../packages/remark-lsx/src"],
+      "@growi/remark-lsx/*": ["../../packages/remark-lsx/src/*"],
+      "@growi/slack": ["../../packages/slack/src"],
+      "@growi/ui": ["../../packages/ui/src"],
+
       "debug": ["./src/server/utils/logger/alias-for-debug"]
     }
   }

+ 1 - 0
packages/core/.gitignore

@@ -1 +1,2 @@
 /dist
+/types

+ 16 - 7
packages/core/package.json

@@ -7,20 +7,29 @@
     "growi"
   ],
   "main": "dist/core.umd.js",
-  "module": "dist/core.mjs",
+  "types": "types/index.d.ts",
   "files": [
-    "dist"
+    "dist",
+    "types"
   ],
   "scripts": {
-    "build": "tsc && vite build",
-    "clean": "npx -y shx rm -rf dist",
-    "dev": "vite build --mode dev -w",
-    "dev:nowatch": "vite build --mode dev",
+    "build": "run-p build:*",
+    "build:types": "tsc -p tsconfig.build.json",
+    "build:js": "vite build",
+    "clean": "npx -y shx rm -rf dist types",
+    "dev": "run-p dev:*",
+    "dev:types": "yarn build:types -w",
+    "dev:js": "yarn build:js --mode dev -w",
     "lint:js": "eslint **/*.{js,ts}",
     "lint": "npm-run-all -p lint:*",
     "test": "jest --verbose"
   },
+  "dependencies": {
+    "bson-objectid": "^2.0.4",
+    "escape-string-regexp": "^5.0.0"
+  },
   "devDependencies": {
-    "eslint-plugin-regex": "^1.8.0"
+    "eslint-plugin-regex": "^1.8.0",
+    "swr": "^2.0.3"
   }
 }

+ 1 - 1
packages/core/src/utils/with-utils.ts

@@ -1,4 +1,4 @@
-import { SWRResponse } from 'swr';
+import type { SWRResponse } from 'swr';
 
 export type SWRResponseWithUtils<U, D = any, E = any> = SWRResponse<D, E> & U;
 

+ 5 - 2
packages/core/tsconfig.build.json

@@ -2,12 +2,15 @@
   "extends": "./tsconfig.json",
   "compilerOptions": {
     "rootDir": "./src",
-    "outDir": "dist",
-    "declaration": true,
     "noResolve": false,
     "preserveConstEnums": true,
     "sourceMap": false,
+
     "noEmit": false,
+    "emitDeclarationOnly": true,
+    "declaration": true,
+    "declarationMap": true,
+    "declarationDir": "./types",
 
     "baseUrl": ".",
     "paths": {

+ 3 - 0
packages/core/vite.config.ts

@@ -9,5 +9,8 @@ export default defineConfig({
       name: 'core-libs',
       formats: ['umd'],
     },
+    rollupOptions: {
+      external: ['swr'],
+    },
   },
 });

+ 0 - 5
tsconfig.base.json

@@ -39,11 +39,6 @@
     "experimentalDecorators": true,
     "emitDecoratorMetadata": true,
 
-    /* default path aliases */
-    "baseUrl": ".",
-    "paths": {
-      "@growi/*": ["packages/*/src"],
-    }
   },
   "exclude": [
     "node_modules",

+ 4 - 4
yarn.lock

@@ -5283,10 +5283,10 @@ bser@^2.0.0:
   dependencies:
     node-int64 "^0.4.0"
 
-bson-objectid@^2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/bson-objectid/-/bson-objectid-2.0.3.tgz#d840185172846b2f10c42ce2bcdb4a50956a9db5"
-  integrity sha512-WYwVtY9yqk179EPMNuF3vcxufdrGLEo2XwqdRVbfLVe9X6jLt7WKZQgP+ObOcprakBGbHxzl76tgTaieqsH29g==
+bson-objectid@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/bson-objectid/-/bson-objectid-2.0.4.tgz#339211572ef97dc98f2d68eaee7b99b7be59a089"
+  integrity sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==
 
 bson@^4.2.2:
   version "4.5.4"