diff --git a/.changeset/26206-cjs-entry-points.md b/.changeset/26206-cjs-entry-points.md new file mode 100644 index 00000000000..1643e18338e --- /dev/null +++ b/.changeset/26206-cjs-entry-points.md @@ -0,0 +1,12 @@ +--- +'@objectstack/metadata-core': patch +'@objectstack/service-cluster': patch +'create-objectstack': patch +--- + +fix(metadata-core,service-cluster,create-objectstack): ESM-only subpaths declare their types under `import` + +Clause-②: no +Metadata-protocol: none + +`@objectstack/metadata-core/testing`, `@objectstack/service-cluster/testing` and `create-objectstack/created-summary` are ESM-only, and now say so in their export maps: the subpath's `types` moved inside its `import` condition. `require()` of these subpaths already failed at runtime with `ERR_PACKAGE_PATH_NOT_EXPORTED`. Before this change, TypeScript under `node16`/`nodenext` resolved their declarations for a CommonJS caller anyway (attw `CJSResolvesToESM`). Now it resolves them for `import` only, which is what Node does. ESM callers, and every resolution mode that reads the `import` condition, see no change. Each package's README now says the subpath is ESM-only. diff --git a/packages/create-objectstack/README.md b/packages/create-objectstack/README.md index daec9ff5339..61aa29d20a7 100644 --- a/packages/create-objectstack/README.md +++ b/packages/create-objectstack/README.md @@ -105,6 +105,13 @@ npm run validate # verify metadata: schema + predicates + bindings See the docs: [Your First Project](https://objectstack.ai/docs/getting-started/your-first-project). +## Library subpath + +`create-objectstack/created-summary` (the "what was written" tree summary that +`objectstack init` reuses) is **ESM-only**: the package is `"type": "module"` +and the subpath declares only an `import` condition. Load it with `import`; +`require()` is refused with `ERR_PACKAGE_PATH_NOT_EXPORTED`. + ## License Apache-2.0. See [LICENSING.md](../../LICENSING.md). diff --git a/packages/create-objectstack/package.json b/packages/create-objectstack/package.json index 9cb07297038..6458af2738a 100644 --- a/packages/create-objectstack/package.json +++ b/packages/create-objectstack/package.json @@ -10,8 +10,10 @@ ], "exports": { "./created-summary": { - "types": "./dist/created-summary.d.ts", - "import": "./dist/created-summary.js" + "import": { + "types": "./dist/created-summary.d.ts", + "default": "./dist/created-summary.js" + } } }, "scripts": { diff --git a/packages/metadata-core/README.md b/packages/metadata-core/README.md index 1309bf0f860..d35595a036d 100644 --- a/packages/metadata-core/README.md +++ b/packages/metadata-core/README.md @@ -38,3 +38,8 @@ import { ``` See ADR-0008 §2 for the full architectural rationale. + +`@objectstack/metadata-core/testing` (the repository contract suites) is +**ESM-only**: it imports `vitest`, whose own `require()` entry throws, so +the subpath declares only an `import` condition. Load it with `import`; +`require()` is refused with `ERR_PACKAGE_PATH_NOT_EXPORTED`. diff --git a/packages/metadata-core/package.json b/packages/metadata-core/package.json index fe060b71b67..ea81d3ffdef 100644 --- a/packages/metadata-core/package.json +++ b/packages/metadata-core/package.json @@ -19,8 +19,10 @@ } }, "./testing": { - "types": "./dist/testing.d.ts", - "import": "./dist/testing.js" + "import": { + "types": "./dist/testing.d.ts", + "default": "./dist/testing.js" + } } }, "files": [ diff --git a/packages/services/service-cluster/README.md b/packages/services/service-cluster/README.md index 27f3410061c..7727585e1aa 100644 --- a/packages/services/service-cluster/README.md +++ b/packages/services/service-cluster/README.md @@ -7,3 +7,5 @@ import { ClusterServicePlugin } from '@objectstack/service-cluster'; ``` Documentation: [Cluster](https://objectstack.ai/docs/kernel/cluster) + +`@objectstack/service-cluster/testing` (the pub/sub, lock, KV and counter contract suites) is **ESM-only**: it imports `vitest`, whose own `require()` entry throws, so the subpath declares only an `import` condition. Load it with `import`; `require()` is refused with `ERR_PACKAGE_PATH_NOT_EXPORTED`. diff --git a/packages/services/service-cluster/package.json b/packages/services/service-cluster/package.json index cd93fafb207..1cb6da3fa1d 100644 --- a/packages/services/service-cluster/package.json +++ b/packages/services/service-cluster/package.json @@ -19,8 +19,10 @@ } }, "./testing": { - "types": "./dist/testing.d.ts", - "import": "./dist/testing.js" + "import": { + "types": "./dist/testing.d.ts", + "default": "./dist/testing.js" + } } }, "scripts": {