diff --git a/.changeset/fix-cjs-use-sync-external-store-bundle.md b/.changeset/fix-cjs-use-sync-external-store-bundle.md new file mode 100644 index 0000000..48eb3e3 --- /dev/null +++ b/.changeset/fix-cjs-use-sync-external-store-bundle.md @@ -0,0 +1,5 @@ +--- +"@serverlessworkflow/diagram-editor": minor +--- + +Fix ESM compatibility by keeping use-sync-external-store external in the build and declaring it as a runtime dependency. diff --git a/packages/serverless-workflow-diagram-editor/package.json b/packages/serverless-workflow-diagram-editor/package.json index ffed920..98e3422 100644 --- a/packages/serverless-workflow-diagram-editor/package.json +++ b/packages/serverless-workflow-diagram-editor/package.json @@ -48,7 +48,8 @@ "clsx": "catalog:", "elkjs": "catalog:", "js-yaml": "catalog:", - "radix-ui": "catalog:" + "radix-ui": "catalog:", + "use-sync-external-store": "catalog:" }, "devDependencies": { "@chromatic-com/storybook": "catalog:", diff --git a/packages/serverless-workflow-diagram-editor/vite.config.ts b/packages/serverless-workflow-diagram-editor/vite.config.ts index 0b46a5d..b325945 100644 --- a/packages/serverless-workflow-diagram-editor/vite.config.ts +++ b/packages/serverless-workflow-diagram-editor/vite.config.ts @@ -31,7 +31,14 @@ export default defineConfig({ formats: ["es"], }, rollupOptions: { - external: ["react", "react-dom", "react/jsx-runtime", "react/jsx-dev-runtime"], + external: [ + "react", + "react-dom", + "react/jsx-runtime", + "react/jsx-dev-runtime", + + /^use-sync-external-store($|\/)/, // Keep this external to avoid bundling the CJS shim into dist/index.js. + ], }, }, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e46142b..328e8c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -129,6 +129,9 @@ catalogs: typescript: specifier: ^6.0.3 version: 6.0.3 + use-sync-external-store: + specifier: ^1.6.0 + version: 1.6.0 vite: specifier: ^8.0.16 version: 8.0.16 @@ -227,6 +230,9 @@ importers: radix-ui: specifier: 'catalog:' version: 1.5.0(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + use-sync-external-store: + specifier: 'catalog:' + version: 1.6.0(react@19.2.7) devDependencies: '@chromatic-com/storybook': specifier: 'catalog:' diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 65fcaec..9c92dec 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -42,6 +42,7 @@ catalog: syncpack: ^15.2.0 tailwindcss: ^4.3.0 typescript: ^6.0.3 + use-sync-external-store: ^1.6.0 vite: ^8.0.16 vitest: ^4.1.8 cleanupUnusedCatalogs: true