From 1a81edc781c0f21bd903409fae6da667fc96ad4e Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 24 Apr 2026 16:57:17 -0400 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=93=A6=20Tighten=20publish=20tarballs?= =?UTF-8?q?:=20restrict=20files=20to=20dist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop source .ts files from published tarballs by adding (or narrowing) a top-level `files` array on every workspace-published package. The top-level `exports` map keeps the `development` condition so in-repo workspace resolution continues to read source directly via pnpm symlinks; .internal/strip-dev-exports.ts already removes that condition at publish time. `publishConfig.exports` / `publishConfig.files` were considered and rejected — npm (verified on 11.6.2) does not use them to override top-level `exports` or `files`. The top-level `files` field is the only mechanism that actually shapes the tarball. Per-package shape: - bdd: ["dist", "mod.deno.ts"] — ./deno subpath serves source directly - inline: ["dist", "swc/.../swc_plugin_inline.wasm"] — WASM artifact - all other 25: ["dist"] Scope: 27 workspace-published @effectionx/* packages listed in pnpm-workspace.yaml. deno-deploy is deliberately excluded (commented out of the workspace as deprecated). Verified by rsyncing the edited tree into a sim directory, running `node --experimental-strip-types .internal/strip-dev-exports.ts`, then extracting real `npm pack` tarballs for fx, context-api, bdd, and node. All tarballs contain no `development` export condition and no source .ts except bdd/mod.deno.ts (intentional). AGENTS.md updated so the documented `files` requirement matches the new shape. --- AGENTS.md | 2 +- bdd/package.json | 1 + chain/package.json | 1 + context-api/package.json | 2 +- converge/package.json | 1 + effect-ts/package.json | 1 + fetch/package.json | 2 +- fs/package.json | 1 + fx/package.json | 1 + inline/package.json | 7 +------ jsonl-store/package.json | 1 + middleware/package.json | 2 +- node/package.json | 1 + process/package.json | 1 + raf/package.json | 1 + scope-eval/package.json | 2 +- signals/package.json | 1 + state-api/package.json | 2 +- stream-helpers/package.json | 1 + stream-yaml/package.json | 1 + task-buffer/package.json | 1 + test-adapter/package.json | 1 + timebox/package.json | 1 + tinyexec/package.json | 1 + vitest/package.json | 1 + watch/package.json | 1 + websocket/package.json | 1 + worker/package.json | 1 + 28 files changed, 28 insertions(+), 12 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f4e731a6..f3a5b954 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -103,7 +103,7 @@ Each package requires: - `type`: `"module"` - `exports`: Must include `types`, `development`, `import`, and `default` conditions - `peerDependencies`: Usually `effection: "^3 || ^4"` -- `files`: Include `dist`, `mod.ts`, and source files +- `files`: Include only published artifacts (`dist`). Exceptions: `bdd` also ships `mod.deno.ts` (the `./deno` subpath serves source directly); `inline` also ships `swc/target/wasm32-wasip1/release/swc_plugin_inline.wasm`. Workspace dev resolves source via the `development` export condition — source `.ts` files do not need to be in `files` ### Test Files diff --git a/bdd/package.json b/bdd/package.json index b5e9fd96..ab0ac6c1 100644 --- a/bdd/package.json +++ b/bdd/package.json @@ -26,6 +26,7 @@ "default": "./mod.deno.ts" } }, + "files": ["dist", "mod.deno.ts"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/chain/package.json b/chain/package.json index 52e51482..63a2b646 100644 --- a/chain/package.json +++ b/chain/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/context-api/package.json b/context-api/package.json index 286338da..5670cb64 100644 --- a/context-api/package.json +++ b/context-api/package.json @@ -30,7 +30,7 @@ "url": "https://github.com/thefrontside/effectionx/issues" }, "sideEffects": false, - "files": ["dist", "mod.ts"], + "files": ["dist"], "devDependencies": { "@effectionx/vitest": "workspace:*", "effection": "^4" diff --git a/converge/package.json b/converge/package.json index 26e28585..25c711c7 100644 --- a/converge/package.json +++ b/converge/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/effect-ts/package.json b/effect-ts/package.json index b861f26a..d337d171 100644 --- a/effect-ts/package.json +++ b/effect-ts/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effect": "^3", "effection": "^3 || ^4" diff --git a/fetch/package.json b/fetch/package.json index 314a3e40..2477a65c 100644 --- a/fetch/package.json +++ b/fetch/package.json @@ -14,7 +14,7 @@ "default": "./dist/mod.js" } }, - "files": ["dist", "mod.ts", "api.ts", "create-fetch-response.ts", "fetch.ts"], + "files": ["dist"], "dependencies": { "@effectionx/context-api": "workspace:*" }, diff --git a/fs/package.json b/fs/package.json index 9e0d901e..5a320de7 100644 --- a/fs/package.json +++ b/fs/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "dependencies": { "@effectionx/context-api": "workspace:*" }, diff --git a/fx/package.json b/fx/package.json index 2837115b..7981c5d8 100644 --- a/fx/package.json +++ b/fx/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/inline/package.json b/inline/package.json index 5b3b5f3c..b0beae7a 100644 --- a/inline/package.json +++ b/inline/package.json @@ -45,12 +45,7 @@ "build:bundle": "cargo build --manifest-path swc/Cargo.toml --target wasm32-wasip1 --release", "prepack": "pnpm run build:bundle" }, - "files": [ - "dist", - "mod.ts", - "esbuild.ts", - "swc/target/wasm32-wasip1/release/swc_plugin_inline.wasm" - ], + "files": ["dist", "swc/target/wasm32-wasip1/release/swc_plugin_inline.wasm"], "sideEffects": false, "devDependencies": { "@effectionx/bdd": "workspace:*", diff --git a/jsonl-store/package.json b/jsonl-store/package.json index fecd7598..95bcf613 100644 --- a/jsonl-store/package.json +++ b/jsonl-store/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/middleware/package.json b/middleware/package.json index 6dc3a06f..7c2b2195 100644 --- a/middleware/package.json +++ b/middleware/package.json @@ -14,7 +14,7 @@ "default": "./dist/mod.js" } }, - "files": ["dist", "mod.ts", "middleware.ts"], + "files": ["dist"], "license": "MIT", "author": "engineering@frontside.com", "repository": { diff --git a/node/package.json b/node/package.json index 29ea8563..7106e7fe 100644 --- a/node/package.json +++ b/node/package.json @@ -26,6 +26,7 @@ "default": "./dist/events.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/process/package.json b/process/package.json index 29ac74e6..8bd4963e 100644 --- a/process/package.json +++ b/process/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/raf/package.json b/raf/package.json index 30ef3d17..440eab0e 100644 --- a/raf/package.json +++ b/raf/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/scope-eval/package.json b/scope-eval/package.json index f8ccb288..59a58deb 100644 --- a/scope-eval/package.json +++ b/scope-eval/package.json @@ -14,7 +14,7 @@ "default": "./dist/mod.js" } }, - "files": ["dist", "mod.ts", "box.ts", "eval-scope.ts"], + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/signals/package.json b/signals/package.json index a1320e90..1be23997 100644 --- a/signals/package.json +++ b/signals/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/state-api/package.json b/state-api/package.json index 5d9970a6..cad60af8 100644 --- a/state-api/package.json +++ b/state-api/package.json @@ -21,7 +21,7 @@ "default": "./dist/mod.js" } }, - "files": ["dist", "mod.ts", "state.ts"], + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/stream-helpers/package.json b/stream-helpers/package.json index 810ddeb0..440b14a2 100644 --- a/stream-helpers/package.json +++ b/stream-helpers/package.json @@ -20,6 +20,7 @@ "default": "./dist/test-helpers.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/stream-yaml/package.json b/stream-yaml/package.json index cd1f17f3..fd5ed007 100644 --- a/stream-yaml/package.json +++ b/stream-yaml/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/task-buffer/package.json b/task-buffer/package.json index b00986a5..cf2f1fbf 100644 --- a/task-buffer/package.json +++ b/task-buffer/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/test-adapter/package.json b/test-adapter/package.json index 976da61b..286d5fb8 100644 --- a/test-adapter/package.json +++ b/test-adapter/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/timebox/package.json b/timebox/package.json index e1b755a2..63e3d1ef 100644 --- a/timebox/package.json +++ b/timebox/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/tinyexec/package.json b/tinyexec/package.json index d4a1cd6e..cfaf2425 100644 --- a/tinyexec/package.json +++ b/tinyexec/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/vitest/package.json b/vitest/package.json index c3c35ba2..3b5a77b3 100644 --- a/vitest/package.json +++ b/vitest/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4", "vitest": "^3 || ^4" diff --git a/watch/package.json b/watch/package.json index b3ba6c7a..631b0374 100644 --- a/watch/package.json +++ b/watch/package.json @@ -20,6 +20,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/websocket/package.json b/websocket/package.json index 1617f317..f0fe8473 100644 --- a/websocket/package.json +++ b/websocket/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, diff --git a/worker/package.json b/worker/package.json index bd6e7fa8..e6ec5297 100644 --- a/worker/package.json +++ b/worker/package.json @@ -14,6 +14,7 @@ "default": "./dist/mod.js" } }, + "files": ["dist"], "peerDependencies": { "effection": "^3 || ^4" }, From c1cfc11148ee91141765ac52a4dd4b60ce2171d5 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Sun, 26 Apr 2026 09:37:14 -0400 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=93=A6=20Add=20required=20keywords=20?= =?UTF-8?q?field=20to=20@effectionx/inline?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pre-existing gap caught by Package.json Metadata policy on PR #216: inline/package.json was missing the required keywords field. Add ["concurrency"] (an approved category that fits the package's purpose of optimizing concurrent operation execution). --- inline/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/inline/package.json b/inline/package.json index b0beae7a..d1cfe7b2 100644 --- a/inline/package.json +++ b/inline/package.json @@ -2,6 +2,7 @@ "name": "@effectionx/inline", "description": "Optimize deeply nested operations by collapsing yield delegation into a single iterator", "version": "0.0.1", + "keywords": ["concurrency"], "type": "module", "main": "./dist/mod.js", "types": "./dist/mod.d.ts",