putitoutthere 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -13,6 +13,7 @@ are prefixed `**BREAKING**` and link to the matching section in
13
13
  ### Added
14
14
 
15
15
  - **`PIOT_PUBLISH_EMPTY_PLAN` error code.** Surfaced when `publish` is invoked with an empty matrix. Joins `PIOT_AUTH_NO_TOKEN` in the stable error-code vocabulary; foreign agents debugging a failed publish can fingerprint on the code without parsing prose.
16
+ - **`kind = "npm"` `build` accepts an array of entries with consumer-defined platform-package name templates.** For packages that ship both a napi-rs Node addon and a CLI binary from the same npm package (the `@swc/core` shape), declare `build = [{ mode = "napi", name = "@scope/lib-{triple}" }, { mode = "bundled-cli", name = "@scope/cli-{triple}" }]`. Each entry contributes its own per-platform package family; the main package's `optionalDependencies` spans both. Entries can be bare mode strings (`"napi"`, defaults to `{name}-{triple}` template) or `{ mode, name }` objects. Variables surfaced in `name` templates: `{name}`, `{scope}`, `{base}`, `{triple}`, `{mode}`. `{version}` is intentionally not surfaced. Single-mode string form (`build = "napi"`) preserved byte-for-byte — same artifact-name layout, same platform-package names, no migration pressure on existing consumers. See [README → Recipes → Multi-mode npm family](./README.md#multi-mode-npm-family) and [MIGRATIONS.md](./MIGRATIONS.md#npm-build-accepts-array-of-entries).
16
17
 
17
18
  ### Changed
18
19
 
@@ -28,6 +29,8 @@ are prefixed `**BREAKING**` and link to the matching section in
28
29
 
29
30
  ### Fixed
30
31
 
32
+ - **npm publish no longer fails red when npm CLI retries a successful PUT.** When the registry acks a publish but the response comes back flaky to the client (timeout / 502 / connection reset), the npm CLI retries with the same payload. The retry lands on a registry that already has the new version and exits `E403 "cannot publish over the previously published versions: <ver>"`. Both the platform-package handler (`src/handlers/npm-platform.ts:npmPublish`) and the main publish path (`src/handlers/npm.ts:publishImpl`) now detect that exact stderr shape and treat it as success — the package is already on the registry at the requested version. Hit in the wild on PR #257's polyglot-everything multi-mode publish (10 platform packages × ~1 in 10 chance per request meant the race was nearly guaranteed).
33
+
31
34
  - **Crates publish no longer refuses on workflow-managed install state in sibling packages.** Before, the engine's pre-publish dirty-workspace check (`scanDirtyOutsideManifest`) flagged anything dirty outside the package's `Cargo.toml`. For polyglot consumers (rust + js in one repo), the reusable workflow's `Build npm packages` step (#256) creates `node_modules/`, `package-lock.json`, and `dist/` inside each npm package's path before cargo publish runs — these are workflow scratch, not stray edits, and cargo can't pack them anyway (it only packs files inside the crate's own dir). The check now whitelists every other configured package's path, similar to how it already whitelists `artifacts/`. Stray edits elsewhere in the repo (a `README.md` change, etc.) still fail the check. Hit in the wild on the polyglot-everything e2e fixture; would also have hit any consumer with the same shape.
32
35
 
33
36
  - **Dogfood release workflow no longer silently downgrades `release: minor` to `patch`.** `release-npm.yml`'s "Fold action bundle into release commit" step now forwards the parent commit's body into the bundle commit, so any `release:` trailer the operator wrote in the merge commit survives into the new HEAD. Without the forward, `putitoutthere`'s publish-time plan re-derivation read HEAD (the bundle commit), saw no trailer on a single-parent commit, and defaulted the bump to `patch` — silently downgrading a `release: minor` to `0.x.(y+1)`. Hit in the wild on the 0.1.51 → 0.2.0 attempt that landed as 0.1.52. The reusable consumer-facing `release.yml` was unaffected (it never adds a commit between plan and publish). Internal-seam fix; no consumer-side action required.
@@ -79,7 +82,7 @@ are prefixed `**BREAKING**` and link to the matching section in
79
82
  — which then ran `npm publish` from a fresh checkout and shipped
80
83
  tarballs missing the compiled output. Any consumer whose
81
84
  `package.json` declared `"files": ["dist", ...]` would publish a
82
- broken artifact (caught in the wild as `cachetta@0.3.1`/`0.3.2`).
85
+ broken artifact (caught in the wild on a downstream consumer).
83
86
  The publish job now mirrors what a developer running `npm publish`
84
87
  locally would do: detect the lockfile, install deps, run `npm run
85
88
  build --if-present` per npm package path. napi / bundled-cli
@@ -152,19 +155,19 @@ are prefixed `**BREAKING**` and link to the matching section in
152
155
  [MIGRATIONS.md](./MIGRATIONS.md#scaffolded-releaseyml-now-forwards-github_token).
153
156
  - **`/` in `[[package]].name` is now safe — planner encodes it for
154
157
  `actions/upload-artifact@v4`** (#230). Polyglot-monorepo grouping
155
- shapes (e.g. `name = "py/cachetta"`, `"js/cachetta"`) used to
158
+ shapes (e.g. `name = "py/foo"`, `"js/foo"`) used to
156
159
  produce `artifact_name` values containing `/`, which
157
160
  `actions/upload-artifact@v4` rejects with
158
161
  `The artifact name is not valid: ... Contains the following character: Forward slash /`,
159
162
  failing the build job before piot ever ran. The planner now encodes
160
- each `/` to `__` in `artifact_name` (so `py/cachetta` →
161
- `py__cachetta-sdist`) and config validation reserves `__` in
163
+ each `/` to `__` in `artifact_name` (so `py/foo` →
164
+ `py__foo-sdist`) and config validation reserves `__` in
162
165
  `pkg.name` so the round-trip stays unambiguous. Other
163
166
  upload-artifact-forbidden characters (`\`, `:`, `<`, `>`, `|`,
164
167
  `*`, `?`, `"`) are now rejected at config load. Read sites
165
168
  (`publish`, `doctor`, `preflight`, `completeness`) consume
166
- `artifact_name` verbatim and need no changes; consumers running
167
- the `cachetta#26` encode/decode workaround should remove it once
169
+ `artifact_name` verbatim and need no changes; consumers running a
170
+ prior `/`-encoding workaround should remove it once
168
171
  they upgrade. See [MIGRATIONS.md](./MIGRATIONS.md#package-names-with--no-longer-need-an-encode-decode-workaround) and
169
172
  [Artifact contract → notes](./notes/internals/artifact-contract.md#naming-convention-reference).
170
173
  - **Documentation accuracy pass** (#231). A docs-vs-code audit caught
package/MIGRATIONS.md CHANGED
@@ -102,6 +102,76 @@ either bypass the workflow gate or invoke the CLI directly. Expect
102
102
  exit 1, with `PIOT_PUBLISH_EMPTY_PLAN` in stderr. A healthy release
103
103
  where the plan job's matrix is non-empty is unaffected.
104
104
 
105
+ ### npm `build` accepts array of entries
106
+
107
+ **Summary.** `kind = "npm"` packages can now declare `build` as an array
108
+ of entries to publish multiple per-platform package families from a
109
+ single main package — for example, a napi-rs Node addon plus a CLI
110
+ binary, both selected via `optionalDependencies` on a shared top-level
111
+ package. Each entry has a `mode` (`napi` / `bundled-cli`) and an
112
+ optional `name` template (e.g. `"@scope/lib-{triple}"`) that the
113
+ consumer fully controls. The previous single-mode string form is
114
+ preserved.
115
+
116
+ **Required changes.** None. `build = "napi"` and `build = "bundled-cli"`
117
+ keep producing the same per-platform package names, the same artifact
118
+ directory layout, and the same matrix shape they did before. Adopt the
119
+ array form only if you need a multi-family npm package.
120
+
121
+ | Field | Before | After |
122
+ |---|---|---|
123
+ | `build` (single mode) | `build = "napi"` | unchanged — `build = "napi"` still valid |
124
+ | `build` (single mode, array form) | _new_ | `build = ["napi"]` — equivalent to the string form |
125
+ | `build` (single mode, custom name) | _new_ | `build = [{ mode = "napi", name = "@scope/lib-{triple}" }]` |
126
+ | `build` (multi mode) | _new_ | `build = [{ mode = "napi", name = "@scope/lib-{triple}" }, { mode = "bundled-cli", name = "@scope/cli-{triple}" }]` |
127
+
128
+ Variables in `name` templates: `{name}`, `{scope}`, `{base}`,
129
+ `{triple}`, `{mode}`. `{triple}` is required in every template.
130
+ `{version}` is not surfaced — platform package names are immutable
131
+ identifiers; the version is pinned via `optionalDependencies`.
132
+
133
+ **Validation rules** enforced at config load:
134
+
135
+ - Each `mode` value (`napi`, `bundled-cli`) appears at most once per package.
136
+ - Every `name` template must contain `{triple}`.
137
+ - Unknown placeholders are rejected.
138
+ - Templates across entries must be pairwise distinct (collision-free).
139
+
140
+ **Multi-mode artifact layout.** When `build` has more than one entry,
141
+ the build-side artifact directory and path get a mode infix to keep
142
+ families separate:
143
+
144
+ ```
145
+ artifacts/
146
+ my-cli-napi-linux-x64-gnu/ # napi family
147
+ my-cli-bundled-cli-linux-x64-gnu/ # bundled-cli family
148
+ ```
149
+
150
+ The build job for a multi-mode row writes to
151
+ `<pkg.path>/build/<mode>-<triple>/`. Single-mode (string form or
152
+ length-1 array) still uses `<pkg.path>/build/<triple>/` —
153
+ byte-for-byte unchanged.
154
+
155
+ **Trusted-publisher registrations.** Each platform package across
156
+ *every* family needs its own npm trusted-publisher registration. A
157
+ multi-mode package with N families × M targets needs N×M registrations
158
+ plus one for the top-level. There's no shorthand on npm's side; this
159
+ is the cost of the dual-family install pattern.
160
+
161
+ **Deprecations removed.** None.
162
+
163
+ **Behavior changes without code changes.** None for single-mode
164
+ configs. Multi-mode is new surface — no prior behavior to compare
165
+ against.
166
+
167
+ **Verification.** For an existing single-mode config, `putitoutthere
168
+ plan` should emit identical matrix rows before and after the upgrade
169
+ (same `artifact_name`, same `artifact_path`, same `target`). For a
170
+ new multi-mode config, you should see one matrix row per `(mode,
171
+ triple)` plus a single `target = "main"` row, and the matrix
172
+ `artifact_name` should carry the mode infix
173
+ (`<name>-<mode>-<triple>`).
174
+
105
175
  ---
106
176
 
107
177
  ## v0.1.51 → v0.2.0
@@ -114,7 +184,7 @@ emitted `artifact_path: package.json` for noarch npm rows, so the
114
184
  build job's compile output was never uploaded — and the publish job's
115
185
  fresh checkout had no compiled files. `npm publish` doesn't validate
116
186
  `files` content, so the broken artifact reached the registry. Caught
117
- in the wild as `cachetta@0.3.1`/`0.3.2`. The publish job now installs
187
+ in the wild on a downstream consumer. The publish job now installs
118
188
  deps and runs `npm run build --if-present` per npm package path
119
189
  before invoking the engine — the same logic the build job already
120
190
  runs, just at the point where it actually matters.
@@ -637,7 +707,7 @@ reusable workflow internally pins:
637
707
  - `actions/download-artifact@v4`
638
708
  - `PyO3/maturin-action@v1`
639
709
 
640
- If a consumer was running newer majors (e.g. coaxer hit
710
+ If a consumer was running newer majors (e.g. one consumer hit
641
711
  `download-artifact@v8` defaults that broke the artifact-naming
642
712
  contract), the reusable workflow standardises everyone on the
643
713
  known-tested versions.
@@ -736,12 +806,12 @@ putitoutthere plan --json | jq '.[] | {name, artifact_name, artifact_path}'
736
806
  Expect every `artifact_path` to be a plain directory (no `*`):
737
807
 
738
808
  ```json
739
- { "name": "py/cachetta", "artifact_name": "py__cachetta-sdist", "artifact_path": "py/cachetta/dist" }
809
+ { "name": "py/foo", "artifact_name": "py__foo-sdist", "artifact_path": "py/foo/dist" }
740
810
  ```
741
811
 
742
812
  After the next release run, the `actions/upload-artifact@v4` step
743
- uploads `py/cachetta/dist/` contents flat under
744
- `artifacts/py__cachetta-sdist/` (no nested `packages/python/dist/`
813
+ uploads `py/foo/dist/` contents flat under
814
+ `artifacts/py__foo-sdist/` (no nested `packages/python/dist/`
745
815
  prefix), and the publish step finds the sdist immediately.
746
816
 
747
817
  ### Scaffolded `release.yml` now forwards `GITHUB_TOKEN`
@@ -831,8 +901,7 @@ upstream.
831
901
 
832
902
  - **None for repos with slash-free `pkg.name`** — `artifact_name`
833
903
  is byte-identical to the previous version.
834
- - **Repos that ran the [`cachetta#26`-style](https://github.com/thekevinscott/cachetta/pull/26)
835
- encode/decode workaround should remove it.** The planner now
904
+ - **Repos that ran a prior `/`-encoding workaround should remove it.** The planner now
836
905
  does the encoding natively; leaving the workaround in place
837
906
  produces double-encoded names like `py____foo-sdist`, which the
838
907
  publish-side reader will treat as a missing artifact.
@@ -880,15 +949,15 @@ putitoutthere plan --json | jq '.[].artifact_name'
880
949
 
881
950
  Expect every emitted `artifact_name` to contain only ASCII letters,
882
951
  digits, `-`, `_`, and `.` — no `/` and no other forbidden chars.
883
- For a repo with `name = "py/cachetta"`:
952
+ For a repo with `name = "py/foo"`:
884
953
 
885
954
  ```
886
- "py__cachetta-sdist"
887
- "py__cachetta-wheel-x86_64-unknown-linux-gnu"
955
+ "py__foo-sdist"
956
+ "py__foo-wheel-x86_64-unknown-linux-gnu"
888
957
  ```
889
958
 
890
959
  After the next release, the build job's `actions/upload-artifact@v4`
891
- step uploads under `py__cachetta-sdist/` (a single flat directory
960
+ step uploads under `py__foo-sdist/` (a single flat directory
892
961
  under `artifacts/`), and piot's publish-side reader consumes the
893
962
  same path.
894
963
 
package/README.md CHANGED
@@ -155,8 +155,8 @@ version = 1 # required; only 1 is valid today
155
155
  | `npm` | string | Override `name` → npm name (for scoped packages). |
156
156
  | `access` | enum | `public` \| `restricted`. Default `public`. |
157
157
  | `tag` | string | dist-tag. Default `latest`. |
158
- | `build` | enum | `napi` \| `bundled-cli`. Omitted = vanilla. See [Recipes → Bundled-CLI npm family](#bundled-cli-npm-family). |
159
- | `targets` | (string \| object)[] | Required when `build ∈ {napi, bundled-cli}`. |
158
+ | `build` | string \| array | `"napi"` \| `"bundled-cli"` (single mode), or an array of entries (each: a bare mode string or `{ mode, name }` with a [name template](#multi-mode-npm-family)). Omitted = vanilla. See [Recipes → Bundled-CLI npm family](#bundled-cli-npm-family). |
159
+ | `targets` | (string \| object)[] | Required when `build` is set. |
160
160
 
161
161
  ### Example: polyglot Rust library
162
162
 
@@ -384,6 +384,65 @@ Each per-platform sub-package needs its own npm trusted-publisher
384
384
  registration (a policy on `my-cli` does not cover
385
385
  `my-cli-x86_64-unknown-linux-gnu`).
386
386
 
387
+ ### Multi-mode npm family
388
+
389
+ For a package that is both a napi-rs Node addon (a `.node` library) **and**
390
+ a CLI binary, declare `build` as an array. Each entry contributes its own
391
+ per-platform family; the main package's `optionalDependencies` spans both.
392
+ The `@swc/core` distribution shape.
393
+
394
+ ```toml
395
+ [[package]]
396
+ name = "my-cli"
397
+ kind = "npm"
398
+ path = "packages/ts"
399
+ globs = ["packages/ts/**", "crates/my-cli/**"]
400
+ build = [
401
+ { mode = "napi", name = "@my-cli/lib-{triple}" },
402
+ { mode = "bundled-cli", name = "@my-cli/cli-{triple}" },
403
+ ]
404
+ targets = [
405
+ "linux-x64-gnu",
406
+ "darwin-arm64",
407
+ "win32-x64-msvc",
408
+ ]
409
+ ```
410
+
411
+ Each entry has a **mode** (`napi` or `bundled-cli`) and a **`name`
412
+ template** for its platform packages. Variables:
413
+
414
+ | Variable | Resolves to |
415
+ |-------------|-------------------------------------------------------------------|
416
+ | `{name}` | The main package's npm name (`pkg.npm` if set, else `pkg.name`). |
417
+ | `{scope}` | Scope without `@` for scoped names (e.g. `myorg`); `""` if unscoped. |
418
+ | `{base}` | Name without scope (e.g. `core` for `@myorg/core`). |
419
+ | `{triple}` | Target triple as written in `targets` — required in the template. |
420
+ | `{mode}` | The entry's mode (`napi` / `bundled-cli`). |
421
+
422
+ `{version}` is intentionally not surfaced — platform package names are
423
+ immutable identifiers; the version is pinned in `optionalDependencies`,
424
+ not the name.
425
+
426
+ **Single-mode (string) form is preserved.** `build = "napi"` and
427
+ `build = ["napi"]` are equivalent and produce the historical
428
+ `<name>-<triple>` platform-package names byte-for-byte. The mode-infix
429
+ artifact-directory naming (`<name>-napi-<triple>`, `<name>-bundled-cli-<triple>`)
430
+ only applies when `build` has more than one entry.
431
+
432
+ **Validation rules** enforced at config load:
433
+
434
+ - Each `mode` value (`napi`, `bundled-cli`) appears at most once per package.
435
+ - Every `name` template must contain `{triple}`.
436
+ - Unknown placeholders are rejected.
437
+ - All entries must produce distinct platform-package name templates.
438
+
439
+ Each platform package across **every** family needs its own npm
440
+ trusted-publisher registration. For the config above, that's
441
+ `@my-cli/lib-linux-x64-gnu`, `@my-cli/lib-darwin-arm64`,
442
+ `@my-cli/lib-win32-x64-msvc`, `@my-cli/cli-linux-x64-gnu`,
443
+ `@my-cli/cli-darwin-arm64`, `@my-cli/cli-win32-x64-msvc` — six total,
444
+ one per platform package, plus the top-level `my-cli`.
445
+
387
446
  ### Rust CLI inside a PyPI wheel
388
447
 
389
448
  `pip install my-lib` on any platform gets a working CLI on `PATH` without
package/dist/config.d.ts CHANGED
@@ -67,10 +67,19 @@ declare const NPM_PKG: z.ZodObject<{
67
67
  restricted: "restricted";
68
68
  }>>;
69
69
  tag: z.ZodOptional<z.ZodString>;
70
- build: z.ZodOptional<z.ZodEnum<{
70
+ build: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
71
71
  napi: "napi";
72
72
  "bundled-cli": "bundled-cli";
73
- }>>;
73
+ }>, z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
74
+ napi: "napi";
75
+ "bundled-cli": "bundled-cli";
76
+ }>, z.ZodObject<{
77
+ mode: z.ZodEnum<{
78
+ napi: "napi";
79
+ "bundled-cli": "bundled-cli";
80
+ }>;
81
+ name: z.ZodString;
82
+ }, z.core.$strict>]>>]>>;
74
83
  targets: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
75
84
  triple: z.ZodString;
76
85
  runner: z.ZodOptional<z.ZodString>;
@@ -124,10 +133,19 @@ declare const PACKAGE: z.ZodDiscriminatedUnion<[z.ZodObject<{
124
133
  restricted: "restricted";
125
134
  }>>;
126
135
  tag: z.ZodOptional<z.ZodString>;
127
- build: z.ZodOptional<z.ZodEnum<{
136
+ build: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
128
137
  napi: "napi";
129
138
  "bundled-cli": "bundled-cli";
130
- }>>;
139
+ }>, z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
140
+ napi: "napi";
141
+ "bundled-cli": "bundled-cli";
142
+ }>, z.ZodObject<{
143
+ mode: z.ZodEnum<{
144
+ napi: "napi";
145
+ "bundled-cli": "bundled-cli";
146
+ }>;
147
+ name: z.ZodString;
148
+ }, z.core.$strict>]>>]>>;
131
149
  targets: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
132
150
  triple: z.ZodString;
133
151
  runner: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,CAAC,EAAiB,MAAM,KAAK,CAAC;AAgBvC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAID,QAAA,MAAM,KAAK;;kBAIA,CAAC;AA4EZ,QAAA,MAAM,UAAU;;;;;;;;;;;kBAQL,CAAC;AAIZ,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;kBA+BX,CAAC;AAIJ,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;kBAeV,CAAC;AAEJ,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAgE,CAAC;AAW9E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,MAAM,WAAW,MAAM;IACrB,aAAa,EAAE,UAAU,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBhD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa/C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,CAAC,EAAiB,MAAM,KAAK,CAAC;AAgBvC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAID,QAAA,MAAM,KAAK;;kBAIA,CAAC;AA4EZ,QAAA,MAAM,UAAU;;;;;;;;;;;kBAQL,CAAC;AAIZ,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;kBA+BX,CAAC;AAkDJ,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+DT,CAAC;AAEL,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAgE,CAAC;AAW9E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,MAAM,WAAW,MAAM;IACrB,aAAa,EAAE,UAAU,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBhD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa/C"}
package/dist/config.js CHANGED
@@ -145,7 +145,50 @@ const PYPI_PKG = z
145
145
  // without `targets` would produce only an sdist, and the staged
146
146
  // binary wouldn't end up in any wheel.
147
147
  { message: 'bundle_cli requires at least one entry in `targets`' });
148
- const NPM_BUILD = z.enum(['napi', 'bundled-cli']);
148
+ const NPM_BUILD_MODE = z.enum(['napi', 'bundled-cli']);
149
+ // #dirsql: must mirror ALLOWED_NAME_VARIABLES in src/handlers/npm-platform.ts.
150
+ // `{version}` is intentionally excluded — see resolvePlatformName.
151
+ const NPM_NAME_TEMPLATE_VARS = ['name', 'scope', 'base', 'triple', 'mode'];
152
+ const NPM_NAME_TEMPLATE_PLACEHOLDER_RE = /\{([^}]+)\}/g;
153
+ function validateNameTemplate(template) {
154
+ if (template.length === 0)
155
+ return 'name template must not be empty';
156
+ if (!template.includes('{triple}')) {
157
+ return 'name template must contain {triple} (otherwise platform packages would collide)';
158
+ }
159
+ const allowed = new Set(NPM_NAME_TEMPLATE_VARS);
160
+ const unknown = [];
161
+ for (const match of template.matchAll(NPM_NAME_TEMPLATE_PLACEHOLDER_RE)) {
162
+ const v = match[1];
163
+ if (!allowed.has(v))
164
+ unknown.push(v);
165
+ }
166
+ if (unknown.length > 0) {
167
+ return `name template contains unknown placeholder(s): ${[...new Set(unknown)].map((u) => `{${u}}`).join(', ')} (allowed: ${NPM_NAME_TEMPLATE_VARS.map((v) => `{${v}}`).join(', ')})`;
168
+ }
169
+ return null;
170
+ }
171
+ // Object form of a build entry: explicit mode + a `name` template the
172
+ // consumer fully controls. String form (a bare mode) implies the
173
+ // historical `{name}-{triple}` template — backward-compat with the
174
+ // pre-multi-mode shape.
175
+ const NPM_BUILD_ENTRY_OBJ = z
176
+ .object({
177
+ mode: NPM_BUILD_MODE,
178
+ name: z.string(),
179
+ })
180
+ .strict()
181
+ .superRefine((entry, ctx) => {
182
+ const reason = validateNameTemplate(entry.name);
183
+ if (reason !== null) {
184
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: reason, path: ['name'] });
185
+ }
186
+ });
187
+ const NPM_BUILD_ENTRY = z.union([NPM_BUILD_MODE, NPM_BUILD_ENTRY_OBJ]);
188
+ // `build` accepts a single mode string ("napi" / "bundled-cli") for
189
+ // backward compat, OR a non-empty array of entries (each: a bare mode
190
+ // string or an object with `{mode, name}`).
191
+ const NPM_BUILD = z.union([NPM_BUILD_MODE, z.array(NPM_BUILD_ENTRY).min(1)]);
149
192
  const NPM_PKG = z
150
193
  .object({
151
194
  ...PACKAGE_BASE,
@@ -157,9 +200,61 @@ const NPM_PKG = z
157
200
  targets: z.array(TARGET_ENTRY).optional(),
158
201
  })
159
202
  .strict()
160
- .refine((p) => p.targets === undefined || p.build === 'napi' || p.build === 'bundled-cli',
161
- // §12.2: targets only for napi or bundled-cli on npm.
162
- { message: 'targets is only valid when build = "napi" or "bundled-cli" on npm packages' });
203
+ .superRefine((p, ctx) => {
204
+ // §12.2: targets only when build is set on an npm package. Both
205
+ // string-mode and array forms count.
206
+ if (p.targets !== undefined && p.build === undefined) {
207
+ ctx.addIssue({
208
+ code: z.ZodIssueCode.custom,
209
+ message: 'targets is only valid when build = "napi" or "bundled-cli" on npm packages',
210
+ });
211
+ return;
212
+ }
213
+ if (Array.isArray(p.build)) {
214
+ // Each mode value can appear at most once. There's no meaningful
215
+ // "two napi build entries on the same package".
216
+ const seenModes = new Set();
217
+ const dupModes = [];
218
+ for (const e of p.build) {
219
+ const mode = typeof e === 'string' ? e : e.mode;
220
+ if (seenModes.has(mode))
221
+ dupModes.push(mode);
222
+ seenModes.add(mode);
223
+ }
224
+ if (dupModes.length > 0) {
225
+ ctx.addIssue({
226
+ code: z.ZodIssueCode.custom,
227
+ message: `build entries must have unique modes; duplicates: ${[...new Set(dupModes)].join(', ')}`,
228
+ path: ['build'],
229
+ });
230
+ }
231
+ // Resolved platform-package names must be pairwise distinct. Since
232
+ // `{triple}` is the only per-row varying placeholder, comparing the
233
+ // canonical templates is sufficient: identical templates collide on
234
+ // every triple, distinct templates differ on every triple. Bare-string
235
+ // entries default to '{name}-{triple}'.
236
+ const seenTemplates = new Map();
237
+ const collisions = [];
238
+ for (const e of p.build) {
239
+ const mode = typeof e === 'string' ? e : e.mode;
240
+ const tpl = typeof e === 'string' ? '{name}-{triple}' : e.name;
241
+ const prior = seenTemplates.get(tpl);
242
+ if (prior !== undefined) {
243
+ collisions.push(`"${tpl}" used by both ${prior} and ${mode}`);
244
+ }
245
+ else {
246
+ seenTemplates.set(tpl, mode);
247
+ }
248
+ }
249
+ if (collisions.length > 0) {
250
+ ctx.addIssue({
251
+ code: z.ZodIssueCode.custom,
252
+ message: `build entries must have distinct platform-package name templates; ${collisions.join('; ')}`,
253
+ path: ['build'],
254
+ });
255
+ }
256
+ }
257
+ });
163
258
  const PACKAGE = z.discriminatedUnion('kind', [CRATES_PKG, PYPI_PKG, NPM_PKG]);
164
259
  const FILE = z
165
260
  .object({
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -3,34 +3,71 @@
3
3
  * `build = "bundled-cli"`.
4
4
  *
5
5
  * Flow per plan §13.7:
6
- * 1. For each target, synthesize a per-platform package
7
- * `{name}-{target}` with narrowed os/cpu fields and the
8
- * platform binary.
6
+ * 1. For each (build entry, target), synthesize a per-platform package
7
+ * with narrowed os/cpu fields and the platform binary.
9
8
  * 2. Publish each per-platform package (skip already-published).
10
9
  * 3. Rewrite the main package's `package.json` to add
11
- * `optionalDependencies` pointing at the just-published versions.
10
+ * `optionalDependencies` pointing at the just-published versions
11
+ * across every build entry's family.
12
12
  * 4. Caller (npm.ts:publishImpl) publishes the main package last.
13
13
  *
14
14
  * Ordering is enforced: a failed platform publish short-circuits
15
15
  * before step 3, so the main package isn't published in an
16
16
  * inconsistent state.
17
17
  *
18
+ * Multi-mode (#dirsql): when `build` is an array with more than one
19
+ * entry, each entry contributes its own platform-package family. The
20
+ * artifact directory for each (mode, triple) carries a mode infix to
21
+ * keep `napi` and `bundled-cli` artifacts distinct on the build side.
22
+ *
18
23
  * Issue #19. Plan: §13.7, §12.2.
19
24
  */
20
25
  import type { Ctx } from '../types.js';
26
+ export type NpmBuildMode = 'napi' | 'bundled-cli';
27
+ /**
28
+ * Default template for platform package names. Resolves to
29
+ * `<main-name>-<triple>`, matching the historical single-mode shape.
30
+ */
31
+ export declare const DEFAULT_NAME_TEMPLATE = "{name}-{triple}";
32
+ /** Variables surfaced to `name` templates. `{version}` is intentionally
33
+ * excluded — platform package names are immutable identifiers; the
34
+ * registry pins `name@version` in optionalDependencies, so embedding
35
+ * the version in the name itself defeats the cascade. */
36
+ export declare const ALLOWED_NAME_VARIABLES: readonly ["name", "scope", "base", "triple", "mode"];
37
+ /** A normalized build entry. Object form of every entry the consumer
38
+ * may write under `build`; the config layer coerces string entries
39
+ * (`"napi"`) into this shape with `name = DEFAULT_NAME_TEMPLATE`. */
40
+ export interface NpmBuildEntry {
41
+ mode: NpmBuildMode;
42
+ name: string;
43
+ }
44
+ /** Raw `build` field as written in toml — string, array, or absent. */
45
+ export type NpmBuildField = NpmBuildMode | readonly (NpmBuildMode | {
46
+ mode: NpmBuildMode;
47
+ name: string;
48
+ })[] | undefined;
49
+ /**
50
+ * Coerce any of the accepted `build` shapes into a normalized entry
51
+ * array. Bare-string entries default to `DEFAULT_NAME_TEMPLATE` so
52
+ * historical `build = "napi"` configs produce the same platform-package
53
+ * names as before. Returns `[]` when `build` is omitted, which signals
54
+ * "vanilla — no platform packages".
55
+ */
56
+ export declare function normalizeBuild(build: NpmBuildField): readonly NpmBuildEntry[];
21
57
  export interface PlatformPkg {
22
58
  name: string;
23
59
  path: string;
24
60
  npm?: string | undefined;
25
61
  access?: 'public' | 'restricted' | undefined;
26
62
  tag?: string | undefined;
27
- build: 'napi' | 'bundled-cli';
63
+ /** One or more entries — at least one mode, optionally a `name` template. */
64
+ build: readonly NpmBuildEntry[];
28
65
  targets: readonly string[];
29
66
  }
30
67
  /**
31
- * Publish every per-platform package. Then rewrite the main
32
- * package.json to add `optionalDependencies`. Returns the list of
33
- * published platform names so the caller can log them.
68
+ * Publish every per-platform package across every build entry, then
69
+ * rewrite the main package.json to add `optionalDependencies`. Returns
70
+ * the list of published platform names so the caller can log them.
34
71
  *
35
72
  * On any failure, throws before the main package.json is modified.
36
73
  */
@@ -39,12 +76,32 @@ export declare function publishPlatforms(pkg: PlatformPkg, version: string, ctx:
39
76
  skipped: string[];
40
77
  }>;
41
78
  /**
42
- * Computes the per-platform package name. Mirrors napi-rs's scaffold
43
- * convention:
44
- * - unscoped: `{name}-{target}`
45
- * - scoped: `@scope/{base}-{target}`
79
+ * Resolve a platform-package name template. `{name}`, `{scope}`,
80
+ * `{base}`, `{triple}`, and `{mode}` are substituted; unknown
81
+ * placeholders throw (config-load validation should catch these
82
+ * earlier — this guard is defensive).
83
+ */
84
+ export declare function resolvePlatformName(template: string, vars: {
85
+ name: string;
86
+ triple: string;
87
+ mode: NpmBuildMode;
88
+ }): string;
89
+ /**
90
+ * Plan-time + handler-time: compute the artifact directory name for a
91
+ * given (package, mode, triple). The mode infix is only added when
92
+ * the package has multiple build entries, so single-mode packages keep
93
+ * their historical `<safe>-<triple>` artifact layout byte-for-byte.
94
+ */
95
+ export declare function platformArtifactName(pkgName: string, mode: NpmBuildMode, triple: string, isMulti: boolean): string;
96
+ /**
97
+ * Match the specific stderr npm emits when its internal retry-on-transient-
98
+ * network-error fires after a successful PUT: the second attempt lands on a
99
+ * registry that already has the version and gets `E403 ... You cannot
100
+ * publish over the previously published versions: <ver>`. The package is
101
+ * already where we wanted it; npm just exits non-zero on the duplicate
102
+ * write.
46
103
  */
47
- export declare function platformPackageName(mainName: string, target: string): string;
104
+ export declare function looksLikePublishOverRace(stderr: string | undefined): boolean;
48
105
  interface OsCpu {
49
106
  os: string[];
50
107
  cpu: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"npm-platform.d.ts","sourceRoot":"","sources":["../../src/handlers/npm-platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,GAAG,GACP,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAwBrD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ5E;AAqID,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AA8CD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAQnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAM/E"}
1
+ {"version":3,"file":"npm-platform.d.ts","sourceRoot":"","sources":["../../src/handlers/npm-platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAQH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD;;;0DAG0D;AAC1D,eAAO,MAAM,sBAAsB,sDAAuD,CAAC;AAE3F;;sEAEsE;AACtE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uEAAuE;AACvE,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,SAAS,CAAC,YAAY,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,GAChE,SAAS,CAAC;AAEd;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,aAAa,EAAE,CAQ7E;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,6EAA6E;IAC7E,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,GAAG,GACP,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAuCrD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACzD,MAAM,CAsBR;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GACf,MAAM,CAGR;AAsHD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAG5E;AA4BD,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AA8CD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAQnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAM/E"}
@@ -3,18 +3,23 @@
3
3
  * `build = "bundled-cli"`.
4
4
  *
5
5
  * Flow per plan §13.7:
6
- * 1. For each target, synthesize a per-platform package
7
- * `{name}-{target}` with narrowed os/cpu fields and the
8
- * platform binary.
6
+ * 1. For each (build entry, target), synthesize a per-platform package
7
+ * with narrowed os/cpu fields and the platform binary.
9
8
  * 2. Publish each per-platform package (skip already-published).
10
9
  * 3. Rewrite the main package's `package.json` to add
11
- * `optionalDependencies` pointing at the just-published versions.
10
+ * `optionalDependencies` pointing at the just-published versions
11
+ * across every build entry's family.
12
12
  * 4. Caller (npm.ts:publishImpl) publishes the main package last.
13
13
  *
14
14
  * Ordering is enforced: a failed platform publish short-circuits
15
15
  * before step 3, so the main package isn't published in an
16
16
  * inconsistent state.
17
17
  *
18
+ * Multi-mode (#dirsql): when `build` is an array with more than one
19
+ * entry, each entry contributes its own platform-package family. The
20
+ * artifact directory for each (mode, triple) carries a mode infix to
21
+ * keep `napi` and `bundled-cli` artifacts distinct on the build side.
22
+ *
18
23
  * Issue #19. Plan: §13.7, §12.2.
19
24
  */
20
25
  import { execFileSync } from 'node:child_process';
@@ -24,9 +29,34 @@ import { join } from 'node:path';
24
29
  import { sanitizeArtifactName } from '../config.js';
25
30
  import { buildSubprocessEnv, nonEmpty } from '../env.js';
26
31
  /**
27
- * Publish every per-platform package. Then rewrite the main
28
- * package.json to add `optionalDependencies`. Returns the list of
29
- * published platform names so the caller can log them.
32
+ * Default template for platform package names. Resolves to
33
+ * `<main-name>-<triple>`, matching the historical single-mode shape.
34
+ */
35
+ export const DEFAULT_NAME_TEMPLATE = '{name}-{triple}';
36
+ /** Variables surfaced to `name` templates. `{version}` is intentionally
37
+ * excluded — platform package names are immutable identifiers; the
38
+ * registry pins `name@version` in optionalDependencies, so embedding
39
+ * the version in the name itself defeats the cascade. */
40
+ export const ALLOWED_NAME_VARIABLES = ['name', 'scope', 'base', 'triple', 'mode'];
41
+ /**
42
+ * Coerce any of the accepted `build` shapes into a normalized entry
43
+ * array. Bare-string entries default to `DEFAULT_NAME_TEMPLATE` so
44
+ * historical `build = "napi"` configs produce the same platform-package
45
+ * names as before. Returns `[]` when `build` is omitted, which signals
46
+ * "vanilla — no platform packages".
47
+ */
48
+ export function normalizeBuild(build) {
49
+ if (build === undefined)
50
+ return [];
51
+ const arr = typeof build === 'string' ? [build] : build;
52
+ return arr.map((e) => typeof e === 'string'
53
+ ? { mode: e, name: DEFAULT_NAME_TEMPLATE }
54
+ : { mode: e.mode, name: e.name });
55
+ }
56
+ /**
57
+ * Publish every per-platform package across every build entry, then
58
+ * rewrite the main package.json to add `optionalDependencies`. Returns
59
+ * the list of published platform names so the caller can log them.
30
60
  *
31
61
  * On any failure, throws before the main package.json is modified.
32
62
  */
@@ -34,39 +64,70 @@ export async function publishPlatforms(pkg, version, ctx) {
34
64
  const mainName = pkg.npm ?? pkg.name;
35
65
  const published = [];
36
66
  const skipped = [];
37
- for (const target of pkg.targets) {
38
- const platformName = platformPackageName(mainName, target);
39
- if (await isPlatformPublished(platformName, version, ctx)) {
40
- skipped.push(platformName);
41
- continue;
42
- }
43
- const stagingDir = synthesizePlatformPackage(pkg, target, version, ctx);
44
- try {
45
- npmPublish(stagingDir, pkg, ctx);
46
- published.push(platformName);
47
- }
48
- finally {
49
- /* v8 ignore next -- cleanup after publish; failure here is cosmetic */
50
- rmSync(stagingDir, { recursive: true, force: true });
67
+ const isMulti = pkg.build.length > 1;
68
+ for (const entry of pkg.build) {
69
+ for (const target of pkg.targets) {
70
+ const platformName = resolvePlatformName(entry.name, {
71
+ name: mainName,
72
+ triple: target,
73
+ mode: entry.mode,
74
+ });
75
+ if (await isPlatformPublished(platformName, version, ctx)) {
76
+ skipped.push(platformName);
77
+ continue;
78
+ }
79
+ const stagingDir = synthesizePlatformPackage(pkg, entry, target, platformName, version, ctx, isMulti);
80
+ try {
81
+ npmPublish(stagingDir, pkg, ctx);
82
+ published.push(platformName);
83
+ }
84
+ finally {
85
+ /* v8 ignore next -- cleanup after publish; failure here is cosmetic */
86
+ rmSync(stagingDir, { recursive: true, force: true });
87
+ }
51
88
  }
52
89
  }
53
90
  rewriteOptionalDependencies(pkg, version, [...published, ...skipped]);
54
91
  return { published, skipped };
55
92
  }
56
93
  /**
57
- * Computes the per-platform package name. Mirrors napi-rs's scaffold
58
- * convention:
59
- * - unscoped: `{name}-{target}`
60
- * - scoped: `@scope/{base}-{target}`
94
+ * Resolve a platform-package name template. `{name}`, `{scope}`,
95
+ * `{base}`, `{triple}`, and `{mode}` are substituted; unknown
96
+ * placeholders throw (config-load validation should catch these
97
+ * earlier — this guard is defensive).
61
98
  */
62
- export function platformPackageName(mainName, target) {
63
- const scopedMatch = /^@([^/]+)\/(.+)$/.exec(mainName);
64
- /* v8 ignore next -- scoped packages routed through the branch below */
65
- if (scopedMatch) {
66
- const [, scope, base] = scopedMatch;
67
- return `@${scope}/${base}-${target}`;
68
- }
69
- return `${mainName}-${target}`;
99
+ export function resolvePlatformName(template, vars) {
100
+ const scopedMatch = /^@([^/]+)\/(.+)$/.exec(vars.name);
101
+ const scope = scopedMatch ? scopedMatch[1] : '';
102
+ const base = scopedMatch ? scopedMatch[2] : vars.name;
103
+ return template.replace(/\{(\w+)\}/g, (_match, key) => {
104
+ switch (key) {
105
+ case 'name':
106
+ return vars.name;
107
+ case 'scope':
108
+ return scope;
109
+ case 'base':
110
+ return base;
111
+ case 'triple':
112
+ return vars.triple;
113
+ case 'mode':
114
+ return vars.mode;
115
+ /* v8 ignore start -- config-load validation rejects unknown placeholders; this branch is defensive */
116
+ default:
117
+ throw new Error(`unknown placeholder {${key}} in name template`);
118
+ }
119
+ /* v8 ignore stop */
120
+ });
121
+ }
122
+ /**
123
+ * Plan-time + handler-time: compute the artifact directory name for a
124
+ * given (package, mode, triple). The mode infix is only added when
125
+ * the package has multiple build entries, so single-mode packages keep
126
+ * their historical `<safe>-<triple>` artifact layout byte-for-byte.
127
+ */
128
+ export function platformArtifactName(pkgName, mode, triple, isMulti) {
129
+ const safe = sanitizeArtifactName(pkgName);
130
+ return isMulti ? `${safe}-${mode}-${triple}` : `${safe}-${triple}`;
70
131
  }
71
132
  /* --------------------------- internals --------------------------- */
72
133
  function isPlatformPublished(platformName, version, ctx) {
@@ -81,14 +142,12 @@ function isPlatformPublished(platformName, version, ctx) {
81
142
  return Promise.resolve(false);
82
143
  }
83
144
  }
84
- function synthesizePlatformPackage(pkg, target, version, ctx) {
85
- const mainName = pkg.npm ?? pkg.name;
86
- const platformName = platformPackageName(mainName, target);
145
+ function synthesizePlatformPackage(pkg, entry, target, platformName, version, ctx, isMulti) {
87
146
  const staging = mkdtempSync(join(tmpdir(), 'putitoutthere-plat-'));
88
147
  // #237: encode pkg.name to match the on-disk artifact directory the
89
148
  // planner emitted (slash-containing names like `js/foo` land at
90
149
  // `artifacts/js__foo-<triple>/`, not `artifacts/js/foo-<triple>/`).
91
- const artifactName = `${sanitizeArtifactName(pkg.name)}-${target}`;
150
+ const artifactName = platformArtifactName(pkg.name, entry.mode, target, isMulti);
92
151
  /* v8 ignore next -- tests inject artifactsRoot explicitly; publish.ts always sets it */
93
152
  const artifactsRoot = ctx.artifactsRoot ?? join(ctx.cwd, 'artifacts');
94
153
  const artifactDir = join(artifactsRoot, artifactName);
@@ -116,7 +175,7 @@ function synthesizePlatformPackage(pkg, target, version, ctx) {
116
175
  os,
117
176
  cpu,
118
177
  files: fileList,
119
- main: pickMainFile(fileList, pkg.build),
178
+ main: pickMainFile(fileList, entry.mode),
120
179
  ...(libc !== undefined ? { libc } : {}),
121
180
  ...(mainPkg['repository'] !== undefined ? { repository: mainPkg['repository'] } : {}),
122
181
  ...(mainPkg['license'] !== undefined ? { license: mainPkg['license'] } : {}),
@@ -144,10 +203,33 @@ function npmPublish(stagingDir, pkg, ctx) {
144
203
  }
145
204
  catch (err) {
146
205
  const stderr = err.stderr?.toString('utf8').trim();
206
+ // npm CLI's retry-on-transient-network-error: a successful PUT that
207
+ // the registry acked but for which npm saw a flaky response (timeout,
208
+ // 502, connection reset) gets retried with the same payload. The
209
+ // retry's PUT lands on a registry that already has the new version
210
+ // and gets E403 "cannot publish over the previously published versions".
211
+ // The first attempt actually succeeded — the package + provenance are
212
+ // on the registry — so treat this exact stderr shape as success.
213
+ if (looksLikePublishOverRace(stderr)) {
214
+ return;
215
+ }
147
216
  const base = err instanceof Error ? err.message : String(err);
148
217
  throw new Error(`npm publish (platform) failed${stderr ? `:\n${stderr}` : `: ${base}`}`, { cause: err });
149
218
  }
150
219
  }
220
+ /**
221
+ * Match the specific stderr npm emits when its internal retry-on-transient-
222
+ * network-error fires after a successful PUT: the second attempt lands on a
223
+ * registry that already has the version and gets `E403 ... You cannot
224
+ * publish over the previously published versions: <ver>`. The package is
225
+ * already where we wanted it; npm just exits non-zero on the duplicate
226
+ * write.
227
+ */
228
+ export function looksLikePublishOverRace(stderr) {
229
+ if (!stderr)
230
+ return false;
231
+ return /cannot publish over the previously published versions/i.test(stderr);
232
+ }
151
233
  function rewriteOptionalDependencies(pkg, version, platformPackages) {
152
234
  const p = join(pkg.path, 'package.json');
153
235
  const raw = readFileSync(p, 'utf8');
@@ -238,8 +320,8 @@ export function assertTripleSupported(triple, packageName) {
238
320
  function unmappedTripleMessage(target) {
239
321
  return `Target triple "${target}" is not mapped to npm os/cpu. Add it to TRIPLE_MAP in src/handlers/npm-platform.ts.`;
240
322
  }
241
- function pickMainFile(files, build) {
242
- if (build === 'napi') {
323
+ function pickMainFile(files, mode) {
324
+ if (mode === 'napi') {
243
325
  const node = files.find((f) => f.endsWith('.node'));
244
326
  /* v8 ignore next -- completeness check for napi ensures a .node file is present */
245
327
  return node ?? files[0];
@@ -1 +1 @@
1
- {"version":3,"file":"npm-platform.js","sourceRoot":"","sources":["../../src/handlers/npm-platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npm-platform.js","sourceRoot":"","sources":["../../src/handlers/npm-platform.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/handlers/npm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAA6B,KAAK,OAAO,EAAwC,MAAM,aAAa,CAAC;AA4K5G;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBvE;AAYD,eAAO,MAAM,GAAG,EAAE,OAKjB,CAAC"}
1
+ {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/handlers/npm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAA6B,KAAK,OAAO,EAAwC,MAAM,aAAa,CAAC;AA8L5G;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBvE;AAYD,eAAO,MAAM,GAAG,EAAE,OAKjB,CAAC"}
@@ -11,7 +11,7 @@ import { execFileSync } from 'node:child_process';
11
11
  import { readFileSync, writeFileSync } from 'node:fs';
12
12
  import { join } from 'node:path';
13
13
  import { normalizeTarget } from '../types.js';
14
- import { publishPlatforms } from './npm-platform.js';
14
+ import { looksLikePublishOverRace, normalizeBuild, publishPlatforms, } from './npm-platform.js';
15
15
  import { buildSubprocessEnv, nonEmpty } from '../env.js';
16
16
  import { USER_AGENT } from '../version.js';
17
17
  function npmNameFor(pkg) {
@@ -70,16 +70,15 @@ async function publishImpl(pkg, version, ctx) {
70
70
  // napi / bundled-cli: publish platform packages first, then rewrite
71
71
  // the main package.json to add optionalDependencies, then fall through
72
72
  // to the normal main-package publish path below. §13.7.
73
- if ((pkg.build === 'napi' || pkg.build === 'bundled-cli') &&
74
- pkg.targets !== undefined &&
75
- pkg.targets.length > 0) {
73
+ const buildEntries = normalizeBuild(pkg.build);
74
+ if (buildEntries.length > 0 && pkg.targets !== undefined && pkg.targets.length > 0) {
76
75
  const platformPkg = {
77
76
  name: pkg.name,
78
77
  path: pkg.path,
79
78
  npm: pkg.npm,
80
79
  access: pkg.access,
81
80
  tag: pkg.tag,
82
- build: pkg.build,
81
+ build: buildEntries,
83
82
  // Platform publishing only cares about the triple — the `runner`
84
83
  // override is a planner/CI concern. Normalize away the union here
85
84
  // so npm-platform.ts keeps its `readonly string[]` contract.
@@ -114,6 +113,17 @@ async function publishImpl(pkg, version, ctx) {
114
113
  const stderr = err.stderr?.toString('utf8').trim();
115
114
  const base = err instanceof Error ? err.message : String(err);
116
115
  const name = npmNameFor(pkg);
116
+ // npm CLI's retry-on-transient-network-error: a successful PUT that
117
+ // came back flaky (timeout / 502 / reset) gets retried, the second
118
+ // PUT lands on a registry that already has the version, npm exits
119
+ // E403 "cannot publish over the previously published versions". The
120
+ // first attempt actually succeeded — treat as already-published.
121
+ if (looksLikePublishOverRace(stderr)) {
122
+ return {
123
+ status: 'already-published',
124
+ url: `https://www.npmjs.com/package/${name}/v/${version}`,
125
+ };
126
+ }
117
127
  // npm trusted publishing (OIDC) requires the package to already
118
128
  // exist on the registry; the first-ever publish must go through a
119
129
  // token. Detect that exact shape — auth failure + OIDC in play +
@@ -1 +1 @@
1
- {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/handlers/npm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/handlers/npm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAgE,MAAM,aAAa,CAAC;AAC5G,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,gBAAgB,GAGjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmB3C,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,OAAe,EAAE,GAAQ;IAC7D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE;YAC7D,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;QAC5D,6DAA6D;QAC7D,4DAA4D;QAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,OAAe,EAAE,IAAS;IAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACzC,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,4DAA4D;QAC5D,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA4B,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAChG,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,iEAAiE;IACjE,uDAAuD;IACvD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,OAAe,EAAE,GAAQ;IAC/D,IAAI,MAAM,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACzC,CAAC;IAED,oEAAoE;IACpE,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnF,MAAM,WAAW,GAAgB;YAC/B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,YAAY;YACnB,iEAAiE;YACjE,kEAAkE;YAClE,6DAA6D;YAC7D,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAC3D,CAAC;QACF,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CACrB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC;QAC9C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CACvD,CAAC;IAEF,+DAA+D;IAC/D,oEAAoE;IACpE,mEAAmE;IACnE,IAAI,OAAO,EAAE,CAAC;QACZ,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC;IACtC,MAAM,IAAI,GAAa,CAAC,SAAS,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IACzD,IAAI,GAAG,CAAC,GAAG;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,IAAI,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;YACxB,GAAG,EAAE,GAAG,CAAC,IAAI;YACb,gEAAgE;YAChE,2CAA2C;YAC3C,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;YAChC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,oEAAoE;QACpE,mEAAmE;QACnE,kEAAkE;QAClE,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,MAAM,EAAE,mBAAmB;gBAC3B,GAAG,EAAE,iCAAiC,IAAI,MAAM,OAAO,EAAE;aAC1D,CAAC;QACJ,CAAC;QACD,gEAAgE;QAChE,kEAAkE;QAClE,iEAAiE;QACjE,6DAA6D;QAC7D,kCAAkC;QAClC,IAAI,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,IAAI,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb;oBACE,yBAAyB,IAAI,6CAA6C;oBAC1E,6DAA6D;oBAC7D,+GAA+G;iBAChH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,GAAG,EAAE,iCAAiC,UAAU,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE;KACrE,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAC;IACxD,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,SAAS,oBAAoB,CAAC,MAA0B;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,qFAAqF,CAAC,IAAI,CAC/F,MAAM,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,IAAI,CAAC;QACH,mEAAmE;QACnE,gEAAgE;QAChE,kEAAkE;QAClE,gEAAgE;QAChE,uDAAuD;QACvD,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,8BAA8B,kBAAkB,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAC/E;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE;YACrC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CACF,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;QACnE,gEAAgE;QAChE,sDAAsD;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,CAAC,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,0GAA0G;IAC1G,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM;QAAE,OAAO,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAY;IAC1B,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,gBAAgB;IAC9B,OAAO,EAAE,WAAW;CACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAA8B,KAAK,IAAI,EAAoB,MAAM,YAAY,CAAC;AAIrF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,UAAU,CAAC,EAAE;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAuC5D"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,OAAO,EAA8B,KAAK,IAAI,EAAoB,MAAM,YAAY,CAAC;AAIrF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,UAAU,CAAC,EAAE;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAuC5D"}
package/dist/plan.js CHANGED
@@ -12,7 +12,7 @@ import { join } from 'node:path';
12
12
  import { computeCascade } from './cascade.js';
13
13
  import { loadConfig, sanitizeArtifactName } from './config.js';
14
14
  import { commitBody, commitParents, diffNames, headCommit, lastTag } from './git.js';
15
- import { assertTripleSupported } from './handlers/npm-platform.js';
15
+ import { assertTripleSupported, normalizeBuild, platformArtifactName, } from './handlers/npm-platform.js';
16
16
  import { parseTagVersion } from './tag-template.js';
17
17
  import { normalizeTarget } from './types.js';
18
18
  import { parseTrailer } from './trailer.js';
@@ -166,31 +166,45 @@ function rowsForPackage(pkg, version) {
166
166
  return out;
167
167
  }
168
168
  case 'npm': {
169
- const build = pkg.build;
169
+ const rawBuild = pkg.build;
170
+ const buildEntries = normalizeBuild(rawBuild);
170
171
  const targets = pkg.targets ?? [];
171
- if (build === 'napi' || build === 'bundled-cli') {
172
+ if (buildEntries.length > 0) {
172
173
  // Plan-time guard: bail before a CI matrix runs on an unmapped
173
174
  // triple. Handler-time validation remains as belt-and-suspenders.
174
175
  // Issue #170 follow-up.
175
- for (const entry of targets) {
176
- assertTripleSupported(normalizeTarget(entry).triple, pkg.name);
176
+ for (const tEntry of targets) {
177
+ assertTripleSupported(normalizeTarget(tEntry).triple, pkg.name);
177
178
  }
179
+ const isMulti = buildEntries.length > 1;
178
180
  const out = [];
179
- for (const entry of targets) {
180
- const { triple, runner } = normalizeTarget(entry);
181
- out.push({
182
- name: pkg.name,
183
- kind: 'npm',
184
- version,
185
- target: triple,
186
- runs_on: runner ?? defaultRunsOn(triple),
187
- artifact_name: `${safe}-${triple}`,
188
- artifact_path: at(`build/${triple}`),
189
- path: pkg.path,
190
- build,
191
- });
181
+ for (const bEntry of buildEntries) {
182
+ for (const tEntry of targets) {
183
+ const { triple, runner } = normalizeTarget(tEntry);
184
+ // #dirsql: multi-mode rows carry a mode infix in both the
185
+ // artifact-name and artifact-path so napi `.node` files and
186
+ // bundled-cli binaries don't collide on the build side.
187
+ // Single-mode shape preserved byte-for-byte.
188
+ const artifactName = platformArtifactName(pkg.name, bEntry.mode, triple, isMulti);
189
+ const artifactPath = isMulti
190
+ ? at(`build/${bEntry.mode}-${triple}`)
191
+ : at(`build/${triple}`);
192
+ out.push({
193
+ name: pkg.name,
194
+ kind: 'npm',
195
+ version,
196
+ target: triple,
197
+ runs_on: runner ?? defaultRunsOn(triple),
198
+ artifact_name: artifactName,
199
+ artifact_path: artifactPath,
200
+ path: pkg.path,
201
+ build: bEntry.mode,
202
+ });
203
+ }
192
204
  }
193
- // Plus the main package row.
205
+ // Plus the main package row. The main row's `build` is informational
206
+ // (no per-target compile happens for it); we set it to the first
207
+ // entry's mode so length-1 array forms match the string-form shape.
194
208
  out.push({
195
209
  name: pkg.name,
196
210
  kind: 'npm',
@@ -200,7 +214,7 @@ function rowsForPackage(pkg, version) {
200
214
  artifact_name: `${safe}-main`,
201
215
  artifact_path: at('package.json'),
202
216
  path: pkg.path,
203
- build,
217
+ build: buildEntries[0].mode,
204
218
  });
205
219
  return out;
206
220
  }
@@ -215,7 +229,6 @@ function rowsForPackage(pkg, version) {
215
229
  artifact_name: `${safe}-pkg`,
216
230
  artifact_path: at('package.json'),
217
231
  path: pkg.path,
218
- ...(build !== undefined ? { build } : {}),
219
232
  },
220
233
  ];
221
234
  }
package/dist/plan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "putitoutthere",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Polyglot release orchestrator for crates.io, PyPI, and npm",
5
5
  "license": "MIT",
6
6
  "repository": {