diff --git a/.changeset/y-partyserver-cjs-build.md b/.changeset/y-partyserver-cjs-build.md new file mode 100644 index 00000000..4e85294f --- /dev/null +++ b/.changeset/y-partyserver-cjs-build.md @@ -0,0 +1,5 @@ +--- +"y-partyserver": patch +--- + +Add CJS build output alongside ESM. The package now ships both `.js` (ESM) and `.cjs` (CJS) files with corresponding `.d.ts` and `.d.cts` type declarations. diff --git a/package-lock.json b/package-lock.json index 6fd8ad55..807748cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12513,7 +12513,7 @@ "license": "ISC", "dependencies": { "nanoid": "^5.1.6", - "partysocket": "^1.1.15" + "partysocket": "^1.1.16" } }, "packages/partyfn/node_modules/nanoid": { @@ -12622,7 +12622,7 @@ "license": "ISC", "devDependencies": { "@cloudflare/workers-types": "^4.20260303.0", - "partyserver": ">=0.3.1", + "partyserver": "^0.3.1", "partysocket": "^1.1.16" }, "peerDependencies": { @@ -12641,7 +12641,7 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20260303.0", "partyfn": "^0.1.0", - "partyserver": ">=0.3.1", + "partyserver": "^0.3.1", "partysocket": "^1.1.16" }, "peerDependencies": { @@ -12684,7 +12684,7 @@ "license": "ISC", "dependencies": { "cron-parser": "^5.5.0", - "partyserver": ">=0.3.1" + "partyserver": "^0.3.1" } }, "packages/y-partyserver": { @@ -12699,7 +12699,7 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20260303.0", "@types/lodash.debounce": "^4.0.9", - "partyserver": ">=0.3.1", + "partyserver": "^0.3.1", "ws": "^8.19.0", "yjs": "^13.6.29" }, diff --git a/packages/partyfn/package.json b/packages/partyfn/package.json index 2a972458..e7726dda 100644 --- a/packages/partyfn/package.json +++ b/packages/partyfn/package.json @@ -19,7 +19,7 @@ ], "dependencies": { "nanoid": "^5.1.6", - "partysocket": "^1.1.15" + "partysocket": "^1.1.16" }, "scripts": { "build": "tsx scripts/build.ts" diff --git a/packages/partyserver/CHANGELOG.md b/packages/partyserver/CHANGELOG.md index 44668159..e1f4c4a2 100644 --- a/packages/partyserver/CHANGELOG.md +++ b/packages/partyserver/CHANGELOG.md @@ -280,14 +280,12 @@ ### Patch Changes - [`528adea`](https://github.com/threepointone/partyserver/commit/528adeaced6dce6e888d2f54cc75c3569bf2c277) Thanks [@threepointone](https://github.com/threepointone)! - some fixes and tweaks - - getServerByName was throwing on all requests - `Env` is now an optional arg when defining `Server` - `y-partyserver/provider` can now take an optional `prefix` arg to use a custom url to connect - `routePartyKitRequest`/`getServerByName` now accepts `jurisdiction` bonus: - - added a bunch of fixtures - added stubs for docs diff --git a/packages/partysocket/CHANGELOG.md b/packages/partysocket/CHANGELOG.md index b57d2a57..a3472dd7 100644 --- a/packages/partysocket/CHANGELOG.md +++ b/packages/partysocket/CHANGELOG.md @@ -319,7 +319,6 @@ ### Patch Changes - [#251](https://github.com/partykit/partykit/pull/251) [`049bcac`](https://github.com/partykit/partykit/commit/049bcac42aa49e4bddec975c63b7d7984112e450) Thanks [@threepointone](https://github.com/threepointone)! - small tweaks to `init` - - replace `process.env.PARTYKIT_HOST` with just `PARTYKIT_HOST` - add a `tsconfig.json` - add partykit to devDependencies in `init` @@ -340,7 +339,6 @@ - [#211](https://github.com/partykit/partykit/pull/211) [`fffe721`](https://github.com/partykit/partykit/commit/fffe72148e5cc425e80c90b6bf180192df410080) Thanks [@threepointone](https://github.com/threepointone)! - update dependencies - [#191](https://github.com/partykit/partykit/pull/191) [`39cf5ce`](https://github.com/partykit/partykit/commit/39cf5cebf5e699bc50ace8b6d25cd82c807e863a) Thanks [@jevakallio](https://github.com/jevakallio)! - Improve PartySocket types and React hooks API: - - Add websocket lifecycle event handlers to usePartyKit options to reduce need for effects in userland - Allow usePartySocket to provide startClosed option to initialize without opening connection - Fix types for PartySocket#removeEventListener diff --git a/packages/partysub/package.json b/packages/partysub/package.json index fab27f3d..2b8a5e98 100644 --- a/packages/partysub/package.json +++ b/packages/partysub/package.json @@ -46,7 +46,7 @@ }, "devDependencies": { "@cloudflare/workers-types": "^4.20260303.0", - "partyserver": ">=0.3.1", + "partyserver": "^0.3.1", "partysocket": "^1.1.16" } } diff --git a/packages/partysync/package.json b/packages/partysync/package.json index ba911fdf..743d8490 100644 --- a/packages/partysync/package.json +++ b/packages/partysync/package.json @@ -51,7 +51,7 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20260303.0", "partyfn": "^0.1.0", - "partyserver": ">=0.3.1", + "partyserver": "^0.3.1", "partysocket": "^1.1.16" }, "peerDependencies": { diff --git a/packages/partywhen/package.json b/packages/partywhen/package.json index 415ebbb4..d215cb15 100644 --- a/packages/partywhen/package.json +++ b/packages/partywhen/package.json @@ -29,6 +29,6 @@ "description": "A library for scheduling and running tasks in Cloudflare Workers", "dependencies": { "cron-parser": "^5.5.0", - "partyserver": ">=0.3.1" + "partyserver": "^0.3.1" } } diff --git a/packages/y-partyserver/CHANGELOG.md b/packages/y-partyserver/CHANGELOG.md index 41bbd19b..50979dd7 100644 --- a/packages/y-partyserver/CHANGELOG.md +++ b/packages/y-partyserver/CHANGELOG.md @@ -7,7 +7,6 @@ - [#341](https://github.com/cloudflare/partykit/pull/341) [`e7f4b51`](https://github.com/cloudflare/partykit/commit/e7f4b51198904273befb1d39478840c628f6e2b1) Thanks [@threepointone](https://github.com/threepointone)! - Fix Yjs hibernation support and awareness propagation **Server:** - - Replace in-memory `WSSharedDoc.conns` Map with `connection.setState()` and `getConnections()` so connection tracking survives Durable Object hibernation - Move event handler registration from `WSSharedDoc` constructor into `onStart()` to use `getConnections()` for broadcasting - Disable awareness protocol's built-in `_checkInterval` in `WSSharedDoc` constructor to prevent timers from defeating hibernation @@ -17,7 +16,6 @@ - Widen `onLoad()` return type to `Promise` to allow seeding the document from a returned YDoc **Provider:** - - Switch awareness event listener from `"update"` to `"change"` so clock-only heartbeat renewals do not produce network traffic (allows DO hibernation during idle sessions) - Disable awareness protocol's built-in `_checkInterval` on the client to stop 15-second clock renewals and 30-second peer timeout removal - Remove provider's own `_checkInterval` liveness timer (was coupled to the awareness heartbeat) @@ -352,14 +350,12 @@ ### Patch Changes - [`528adea`](https://github.com/threepointone/partyserver/commit/528adeaced6dce6e888d2f54cc75c3569bf2c277) Thanks [@threepointone](https://github.com/threepointone)! - some fixes and tweaks - - getServerByName was throwing on all requests - `Env` is now an optional arg when defining `Server` - `y-partyserver/provider` can now take an optional `prefix` arg to use a custom url to connect - `routePartyKitRequest`/`getServerByName` now accepts `jurisdiction` bonus: - - added a bunch of fixtures - added stubs for docs diff --git a/packages/y-partyserver/package.json b/packages/y-partyserver/package.json index 8a18f491..375d622b 100644 --- a/packages/y-partyserver/package.json +++ b/packages/y-partyserver/package.json @@ -21,19 +21,31 @@ "type": "module", "exports": { ".": { - "types": "./dist/server/index.d.ts", - "require": "./dist/server/index.js", - "import": "./dist/server/index.js" + "types": { + "import": "./dist/server/index.d.ts", + "require": "./dist/server/index.d.cts", + "default": "./dist/server/index.d.ts" + }, + "import": "./dist/server/index.js", + "require": "./dist/server/index.cjs" }, "./provider": { - "types": "./dist/provider/index.d.ts", - "require": "./dist/provider/index.js", - "import": "./dist/provider/index.js" + "types": { + "import": "./dist/provider/index.d.ts", + "require": "./dist/provider/index.d.cts", + "default": "./dist/provider/index.d.ts" + }, + "import": "./dist/provider/index.js", + "require": "./dist/provider/index.cjs" }, "./react": { - "types": "./dist/provider/react.d.ts", - "require": "./dist/provider/react.js", - "import": "./dist/provider/react.js" + "types": { + "import": "./dist/provider/react.d.ts", + "require": "./dist/provider/react.d.cts", + "default": "./dist/provider/react.d.ts" + }, + "import": "./dist/provider/react.js", + "require": "./dist/provider/react.cjs" } }, "scripts": { @@ -52,7 +64,7 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20260303.0", "@types/lodash.debounce": "^4.0.9", - "partyserver": ">=0.3.1", + "partyserver": "^0.3.1", "ws": "^8.19.0", "yjs": "^13.6.29" }, diff --git a/packages/y-partyserver/scripts/build.ts b/packages/y-partyserver/scripts/build.ts index f641a5b7..d4dfba5e 100644 --- a/packages/y-partyserver/scripts/build.ts +++ b/packages/y-partyserver/scripts/build.ts @@ -10,13 +10,16 @@ await build({ external: ["cloudflare:workers"], sourcemap: true, clean: true, - format: "esm", + format: ["esm", "cjs"], dts: true, skipNodeModulesBundle: true, fixedExtension: false }); -// then run oxfmt on the generated .d.ts files +// then run oxfmt on the generated files +execSync("oxfmt ./dist/**/*.d.cts"); execSync("oxfmt ./dist/**/*.d.ts"); +execSync("oxfmt ./dist/**/*.cjs"); +execSync("oxfmt ./dist/**/*.js"); process.exit(0);