diff --git a/apps/core/src/atoms/index.ts b/apps/core/src/atoms/index.ts index d997982dca..5bdabf5e9e 100644 --- a/apps/core/src/atoms/index.ts +++ b/apps/core/src/atoms/index.ts @@ -1,5 +1,7 @@ +import type { PrimitiveAtom } from 'jotai'; import { atom } from 'jotai'; import { atomFamily, atomWithStorage } from 'jotai/utils'; +import type { AtomFamily } from 'jotai/vanilla/utils/atomFamily'; import type { CreateWorkspaceMode } from '../components/affine/create-workspace-modal'; import type { SettingProps } from '../components/affine/setting-modal'; @@ -59,19 +61,16 @@ const defaultPageSetting = { mode: 'page', } satisfies PageLocalSetting; -export const pageSettingFamily = atomFamily((pageId: string) => +export const pageSettingFamily: AtomFamily< + string, + PrimitiveAtom +> = atomFamily((pageId: string) => atom( get => get(pageSettingsBaseAtom)[pageId] ?? { ...defaultPageSetting, }, - ( - get, - set, - patch: - | Partial - | ((prevSetting: PageLocalSetting | undefined) => void) - ) => { + (get, set, patch) => { set(recentPageSettingsBaseAtom, ids => { // pick 3 recent page ids return [...new Set([pageId, ...ids]).values()].slice(0, 3); diff --git a/apps/core/tsconfig.json b/apps/core/tsconfig.json index 7b604377e0..eb0b796783 100644 --- a/apps/core/tsconfig.json +++ b/apps/core/tsconfig.json @@ -1,23 +1,9 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "target": "ESNext", - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "ESNext", - "resolveJsonModule": true, - "isolatedModules": true, - "moduleResolution": "bundler", - "jsx": "preserve", - "jsxImportSource": "@emotion/react", - "incremental": true, - "experimentalDecorators": true, + "outDir": "lib", "typeRoots": ["../../node_modules", "../../node_modules/@types"], - "types": ["webpack-env", "ses"] + "types": ["webpack-env", "ses", "affine__env"] }, "include": ["src/**/*.ts", "src/**/*.tsx"], "exclude": ["node_modules"], diff --git a/apps/docs/package.json b/apps/docs/package.json index f6840e5efe..2538060e6f 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -21,7 +21,7 @@ "react": "18.3.0-canary-1fdacbefd-20230630", "react-dom": "18.3.0-canary-1fdacbefd-20230630", "react-server-dom-webpack": "18.3.0-canary-1fdacbefd-20230630", - "waku": "0.12.1" + "waku": "0.14.0" }, "devDependencies": { "@types/react": "^18.2.17", diff --git a/apps/docs/entries.ts b/apps/docs/src/entries.ts similarity index 79% rename from apps/docs/entries.ts rename to apps/docs/src/entries.ts index 63d05f6bda..6f1976ec0f 100644 --- a/apps/docs/entries.ts +++ b/apps/docs/src/entries.ts @@ -4,7 +4,7 @@ export default defineRouter( async id => { switch (id) { case 'index': { - const { default: AppCreator } = await import('./src/app.js'); + const { default: AppCreator } = await import('./app.js'); return AppCreator(id); } default: diff --git a/apps/docs/index.html b/apps/docs/src/index.html similarity index 92% rename from apps/docs/index.html rename to apps/docs/src/index.html index bdff6c55b7..3991e6fdbc 100644 --- a/apps/docs/index.html +++ b/apps/docs/src/index.html @@ -29,7 +29,7 @@
- + diff --git a/apps/docs/src/pages/binary b/apps/docs/src/pages/binary index 072c58daa8..983d4f8fdd 100644 Binary files a/apps/docs/src/pages/binary and b/apps/docs/src/pages/binary differ diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 7dfad6d12a..2a0a6e1219 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -10,7 +10,8 @@ "skipLibCheck": true, "noUncheckedIndexedAccess": true, "exactOptionalPropertyTypes": true, - "jsx": "react-jsx" + "jsx": "react-jsx", + "jsxImportSource": "react" }, "include": ["src", "entries.ts"], "references": [ diff --git a/apps/electron/e2e/workspace.spec.ts b/apps/electron/e2e/workspace.spec.ts index 91db3834f5..fc795dc10b 100644 --- a/apps/electron/e2e/workspace.spec.ts +++ b/apps/electron/e2e/workspace.spec.ts @@ -29,7 +29,6 @@ test.skip('move workspace db file', async ({ page, appInfo, workspace }) => { // move db file to tmp folder await page.evaluate(tmpPath => { - // @ts-expect-error window.apis?.dialog.setFakeDialogResult({ filePath: tmpPath, }); @@ -72,7 +71,6 @@ test('export then add', async ({ page, appInfo, workspace }) => { // export db file to tmp folder await page.evaluate(tmpPath => { - // @ts-expect-error window.apis?.dialog.setFakeDialogResult({ filePath: tmpPath, }); @@ -92,7 +90,6 @@ test('export then add', async ({ page, appInfo, workspace }) => { await page.getByTestId('add-or-new-workspace').click(); await page.evaluate(tmpPath => { - // @ts-expect-error window.apis?.dialog.setFakeDialogResult({ filePath: tmpPath, }); diff --git a/package.json b/package.json index 221c8f0bec..38c9dda09f 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "apps/*", "plugins/*", "packages/*", + "packages/@types/*", "tests/fixtures", "tests/kit", "tests/affine-legacy/*", diff --git a/packages/@types/env/__all.d.ts b/packages/@types/env/__all.d.ts new file mode 100644 index 0000000000..2571de1c03 --- /dev/null +++ b/packages/@types/env/__all.d.ts @@ -0,0 +1,54 @@ +import type { Environment, Platform, RuntimeConfig } from '@affine/env/global'; +import type { + DBHandlerManager, + DebugHandlerManager, + DialogHandlerManager, + ExportHandlerManager, + UIHandlerManager, + UnwrapManagerHandlerToClientSide, + UpdaterHandlerManager, + WorkspaceHandlerManager, +} from '@toeverything/infra'; + +declare global { + interface Window { + appInfo: { + electron: boolean; + }; + apis: { + db: UnwrapManagerHandlerToClientSide; + debug: UnwrapManagerHandlerToClientSide; + dialog: UnwrapManagerHandlerToClientSide; + export: UnwrapManagerHandlerToClientSide; + ui: UnwrapManagerHandlerToClientSide; + updater: UnwrapManagerHandlerToClientSide; + workspace: UnwrapManagerHandlerToClientSide; + }; + events: any; + } + + interface WindowEventMap { + 'migration-done': CustomEvent; + } + + // eslint-disable-next-line no-var + var process: { + env: Record; + }; + // eslint-disable-next-line no-var + var $migrationDone: boolean; + // eslint-disable-next-line no-var + var platform: Platform | undefined; + // eslint-disable-next-line no-var + var environment: Environment; + // eslint-disable-next-line no-var + var runtimeConfig: RuntimeConfig; + // eslint-disable-next-line no-var + var $AFFINE_SETUP: boolean | undefined; + // eslint-disable-next-line no-var + var editorVersion: string | undefined; + // eslint-disable-next-line no-var + var prefixUrl: string; + // eslint-disable-next-line no-var + var websocketPrefixUrl: string; +} diff --git a/packages/@types/env/package.json b/packages/@types/env/package.json new file mode 100644 index 0000000000..d2796aa19b --- /dev/null +++ b/packages/@types/env/package.json @@ -0,0 +1,10 @@ +{ + "name": "@types/affine__env", + "private": true, + "types": "./__all.d.ts", + "type": "module", + "dependencies": { + "@affine/env": "workspace:*", + "@toeverything/infra": "workspace:*" + } +} diff --git a/packages/component/src/components/page-list/use-collection-manager.ts b/packages/component/src/components/page-list/use-collection-manager.ts index d1c8385712..68f21146a1 100644 --- a/packages/component/src/components/page-list/use-collection-manager.ts +++ b/packages/component/src/components/page-list/use-collection-manager.ts @@ -1,7 +1,7 @@ import type { Collection, Filter, VariableMap } from '@affine/env/filter'; import type { DBSchema } from 'idb'; +import type { IDBPDatabase } from 'idb'; import { openDB } from 'idb'; -import type { IDBPDatabase } from 'idb/build/entry'; import { useAtom } from 'jotai'; import { atomWithReset, RESET } from 'jotai/utils'; import { useCallback } from 'react'; diff --git a/packages/component/tsconfig.json b/packages/component/tsconfig.json index 6f3567d6a3..a9aafe3ecd 100644 --- a/packages/component/tsconfig.json +++ b/packages/component/tsconfig.json @@ -5,8 +5,7 @@ "compilerOptions": { "composite": true, "noEmit": false, - "outDir": "lib", - "types": ["@affine/env"] + "outDir": "lib" }, "references": [ { diff --git a/packages/env/package.json b/packages/env/package.json index 0f567c6c9c..6c261c1ff3 100644 --- a/packages/env/package.json +++ b/packages/env/package.json @@ -4,7 +4,6 @@ "type": "module", "main": "./src/index.ts", "module": "./src/index.ts", - "types": "./src/global.ts", "devDependencies": { "@blocksuite/global": "0.0.0-20230804190636-37f66904-nightly", "react": "18.2.0", diff --git a/packages/env/src/global.ts b/packages/env/src/global.ts index 357bfa1ee7..a201de1e1e 100644 --- a/packages/env/src/global.ts +++ b/packages/env/src/global.ts @@ -1,60 +1,10 @@ /// import { assertEquals } from '@blocksuite/global/utils'; -import type { - DBHandlerManager, - DebugHandlerManager, - DialogHandlerManager, - ExportHandlerManager, - UIHandlerManager, - UnwrapManagerHandlerToClientSide, - UpdaterHandlerManager, - WorkspaceHandlerManager, -} from '@toeverything/infra'; import { z } from 'zod'; import { isBrowser, isDesktop, isServer } from './constant.js'; import { isValidIPAddress } from './is-valid-ip-address.js'; import { UaHelper } from './ua-helper.js'; - -declare global { - interface Window { - appInfo: { - electron: boolean; - }; - apis: { - db: UnwrapManagerHandlerToClientSide; - debug: UnwrapManagerHandlerToClientSide; - dialog: UnwrapManagerHandlerToClientSide; - export: UnwrapManagerHandlerToClientSide; - ui: UnwrapManagerHandlerToClientSide; - updater: UnwrapManagerHandlerToClientSide; - workspace: UnwrapManagerHandlerToClientSide; - }; - events: any; - } - - interface WindowEventMap { - 'migration-done': CustomEvent; - } - - // eslint-disable-next-line no-var - var $migrationDone: boolean; - // eslint-disable-next-line no-var - var platform: Platform | undefined; - // eslint-disable-next-line no-var - var environment: Environment; - // eslint-disable-next-line no-var - var runtimeConfig: RuntimeConfig; - // eslint-disable-next-line no-var - var $AFFINE_SETUP: boolean | undefined; - // eslint-disable-next-line no-var - var editorVersion: string | undefined; - // eslint-disable-next-line no-var - var prefixUrl: string; - // eslint-disable-next-line no-var - var websocketPrefixUrl: string; -} - export const blockSuiteFeatureFlags = z.object({ enable_database: z.boolean(), enable_drag_handle: z.boolean(), diff --git a/packages/y-indexeddb/src/shared.ts b/packages/y-indexeddb/src/shared.ts index 0dbd305a4b..c155a220aa 100644 --- a/packages/y-indexeddb/src/shared.ts +++ b/packages/y-indexeddb/src/shared.ts @@ -1,4 +1,4 @@ -import type { DBSchema, IDBPDatabase } from 'idb/build/entry'; +import type { DBSchema, IDBPDatabase } from 'idb'; export const dbVersion = 1; export const DEFAULT_DB_NAME = 'affine-local'; diff --git a/packages/y-indexeddb/src/utils.ts b/packages/y-indexeddb/src/utils.ts index 0af92ffe03..c1c3ae0cf0 100644 --- a/packages/y-indexeddb/src/utils.ts +++ b/packages/y-indexeddb/src/utils.ts @@ -1,5 +1,5 @@ +import type { IDBPDatabase } from 'idb'; import { openDB } from 'idb'; -import type { IDBPDatabase } from 'idb/build/entry'; import { mergeUpdates } from 'yjs'; import type { BlockSuiteBinaryDB, OldYjsDB, UpdateMessage } from './shared'; diff --git a/plugins/copilot/src/core/chat.ts b/plugins/copilot/src/core/chat.ts index 33b2bcc201..27715346bb 100644 --- a/plugins/copilot/src/core/chat.ts +++ b/plugins/copilot/src/core/chat.ts @@ -13,7 +13,7 @@ import { IndexedDBChatMessageHistory } from './langchain/message-history'; import { chatPrompt, followupQuestionPrompt } from './prompts'; import { followupQuestionParser } from './prompts/output-parser'; -type ChatAI = { +export type ChatAI = { // Core chat AI conversationChain: ConversationChain; // Followup AI, used to generate followup questions diff --git a/plugins/copilot/src/core/hooks/index.ts b/plugins/copilot/src/core/hooks/index.ts index 6c08c00877..12ac804727 100644 --- a/plugins/copilot/src/core/hooks/index.ts +++ b/plugins/copilot/src/core/hooks/index.ts @@ -9,7 +9,7 @@ import type { BaseMessage } from 'langchain/schema'; import { AIMessage } from 'langchain/schema'; import { HumanMessage } from 'langchain/schema'; -import type { ChatAIConfig } from '../chat'; +import type { ChatAI, ChatAIConfig } from '../chat'; import { createChatAI } from '../chat'; import type { IndexedDBChatMessageHistory } from '../langchain/message-history'; import { followupQuestionParser } from '../prompts/output-parser'; @@ -28,7 +28,7 @@ const conversationWeakMap = new WeakMap< WritableAtom> >(); -export const chatAtom = atom(async get => { +export const chatAtom = atom>(async get => { const openAIApiKey = get(openAIApiKeyAtom); if (!openAIApiKey) { throw new Error('OpenAI API key not set, chat will not work'); diff --git a/tsconfig.json b/tsconfig.json index d431c0f4ce..7ba92273a7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,9 +18,11 @@ "useUnknownInCatchVariables": true, // Modules - "module": "ES2022", - "moduleResolution": "Node", + "module": "ESNext", + "moduleResolution": "bundler", "resolveJsonModule": true, + "types": ["affine__env"], + "typeRoots": ["./node_modules/@types"], // Emit "declaration": true, @@ -36,10 +38,12 @@ // Interop Constraints "forceConsistentCasingInFileNames": true, "allowSyntheticDefaultImports": true, + "isolatedModules": true, // Language and Environment - "jsx": "react-jsx", - "lib": ["ES2023", "DOM", "DOM.Iterable"], + "jsx": "preserve", + "jsxImportSource": "@emotion/react", + "lib": ["ESNext", "DOM"], "target": "ES2022", "useDefineForClassFields": false, "experimentalDecorators": true, diff --git a/yarn.lock b/yarn.lock index 9d82a024df..92bc7fd20c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -310,7 +310,7 @@ __metadata: react-server-dom-webpack: 18.3.0-canary-1fdacbefd-20230630 tailwindcss: ^3.3.3 typescript: ^5.1.6 - waku: 0.12.1 + waku: 0.14.0 languageName: unknown linkType: soft @@ -10895,13 +10895,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-darwin-arm64@npm:1.3.64" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@swc/core-darwin-arm64@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-darwin-arm64@npm:1.3.71" @@ -10916,13 +10909,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-darwin-x64@npm:1.3.64" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@swc/core-darwin-x64@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-darwin-x64@npm:1.3.71" @@ -10937,13 +10923,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.64" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@swc/core-linux-arm-gnueabihf@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.71" @@ -10958,13 +10937,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.64" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - "@swc/core-linux-arm64-gnu@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-linux-arm64-gnu@npm:1.3.71" @@ -10979,13 +10951,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.64" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - "@swc/core-linux-arm64-musl@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-linux-arm64-musl@npm:1.3.71" @@ -11000,13 +10965,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.64" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - "@swc/core-linux-x64-gnu@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-linux-x64-gnu@npm:1.3.71" @@ -11021,13 +10979,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-linux-x64-musl@npm:1.3.64" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - "@swc/core-linux-x64-musl@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-linux-x64-musl@npm:1.3.71" @@ -11042,13 +10993,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.64" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@swc/core-win32-arm64-msvc@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-win32-arm64-msvc@npm:1.3.71" @@ -11063,13 +11007,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.64" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@swc/core-win32-ia32-msvc@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-win32-ia32-msvc@npm:1.3.71" @@ -11084,13 +11021,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.64" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@swc/core-win32-x64-msvc@npm:1.3.71": version: 1.3.71 resolution: "@swc/core-win32-x64-msvc@npm:1.3.71" @@ -11105,51 +11035,7 @@ __metadata: languageName: node linkType: hard -"@swc/core@npm:1.3.64": - version: 1.3.64 - resolution: "@swc/core@npm:1.3.64" - dependencies: - "@swc/core-darwin-arm64": 1.3.64 - "@swc/core-darwin-x64": 1.3.64 - "@swc/core-linux-arm-gnueabihf": 1.3.64 - "@swc/core-linux-arm64-gnu": 1.3.64 - "@swc/core-linux-arm64-musl": 1.3.64 - "@swc/core-linux-x64-gnu": 1.3.64 - "@swc/core-linux-x64-musl": 1.3.64 - "@swc/core-win32-arm64-msvc": 1.3.64 - "@swc/core-win32-ia32-msvc": 1.3.64 - "@swc/core-win32-x64-msvc": 1.3.64 - peerDependencies: - "@swc/helpers": ^0.5.0 - dependenciesMeta: - "@swc/core-darwin-arm64": - optional: true - "@swc/core-darwin-x64": - optional: true - "@swc/core-linux-arm-gnueabihf": - optional: true - "@swc/core-linux-arm64-gnu": - optional: true - "@swc/core-linux-arm64-musl": - optional: true - "@swc/core-linux-x64-gnu": - optional: true - "@swc/core-linux-x64-musl": - optional: true - "@swc/core-win32-arm64-msvc": - optional: true - "@swc/core-win32-ia32-msvc": - optional: true - "@swc/core-win32-x64-msvc": - optional: true - peerDependenciesMeta: - "@swc/helpers": - optional: true - checksum: ea77168089a34dcec088ab81aef99301eba003b5ed3dca4039803050ba9344e754687f7d4fb4b3e40d22509658bdbdbac2f94f99c6f94051970566c857774371 - languageName: node - linkType: hard - -"@swc/core@npm:^1.3.18, @swc/core@npm:^1.3.61, @swc/core@npm:^1.3.71": +"@swc/core@npm:1.3.71, @swc/core@npm:^1.3.18, @swc/core@npm:^1.3.61, @swc/core@npm:^1.3.71": version: 1.3.71 resolution: "@swc/core@npm:1.3.71" dependencies: @@ -11494,6 +11380,15 @@ __metadata: languageName: node linkType: hard +"@types/affine__env@workspace:packages/@types/env": + version: 0.0.0-use.local + resolution: "@types/affine__env@workspace:packages/@types/env" + dependencies: + "@affine/env": "workspace:*" + "@toeverything/infra": "workspace:*" + languageName: unknown + linkType: soft + "@types/argparse@npm:1.0.38": version: 1.0.38 resolution: "@types/argparse@npm:1.0.38" @@ -12708,7 +12603,7 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-react@npm:^4.0.0, @vitejs/plugin-react@npm:^4.0.3": +"@vitejs/plugin-react@npm:^4.0.3": version: 4.0.3 resolution: "@vitejs/plugin-react@npm:4.0.3" dependencies: @@ -31658,7 +31553,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:^3.0.0 || ^4.0.0, vite@npm:^4.1.4, vite@npm:^4.3.9, vite@npm:^4.4.7": +"vite@npm:^3.0.0 || ^4.0.0, vite@npm:^4.1.4, vite@npm:^4.4.7": version: 4.4.7 resolution: "vite@npm:4.4.7" dependencies: @@ -31884,24 +31779,24 @@ __metadata: languageName: node linkType: hard -"waku@npm:0.12.1": - version: 0.12.1 - resolution: "waku@npm:0.12.1" +"waku@npm:0.14.0": + version: 0.14.0 + resolution: "waku@npm:0.14.0" dependencies: - "@swc/core": 1.3.64 - "@vitejs/plugin-react": ^4.0.0 + "@swc/core": 1.3.71 + "@vitejs/plugin-react": ^4.0.3 busboy: ^1.6.0 - vite: ^4.3.9 + vite: ^4.4.7 peerDependencies: express: ^4.18.2 - react: 18.3.0-canary-613e6f5fc-20230616 - react-server-dom-webpack: 18.3.0-canary-613e6f5fc-20230616 + react: 18.3.0-canary-7118f5dd7-20230705 + react-server-dom-webpack: 18.3.0-canary-7118f5dd7-20230705 peerDependenciesMeta: express: optional: true bin: waku: dist/cli.js - checksum: c0df6ac35e79eb3216be287db3d5a4507982a50334d7a474cabd70171754adba742f60fef8ae32f512cc82cd207b591158079d798d208db407308c6cd835d77d + checksum: 6637272a74a4ca179c1a5d24083cf8fbb47f711314bbadf62776e773869d3f1af67e55f838e71b774e3db71fc648ed3d2916aff15ddce5cf813dc22b94919288 languageName: node linkType: hard