putitoutthere 0.1.46 → 0.1.48

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
@@ -45,6 +45,61 @@ are prefixed `**BREAKING**` and link to the matching section in
45
45
 
46
46
  ### Fixed
47
47
 
48
+ - **PyPI artifact discovery now matches the documented `{name}-sdist` and `{name}-wheel-{target}` shapes exactly.** (#244)
49
+ Previously the handler used a bare prefix match (`entry.startsWith("{name}-")`), which silently picked up sibling packages whose names extended the same prefix (e.g. `foo`'s discovery matched `foo-extras-sdist`). The handler now matches the sdist directory exactly and the wheel directories by `{name}-wheel-` prefix only. Affects multi-package repos where one pypi package's name is a prefix of another's.
50
+
51
+ - **Reusable workflow's maturin sdist row now uses `command: sdist`.** (#244)
52
+ `maturin build --sdist` builds a wheel AND an sdist; the sdist row's
53
+ artifact tarball ended up containing a manylinux wheel that collided
54
+ with the per-target wheel rows at upload time, causing twine to abort
55
+ with `400 File already exists`. Splitting the sdist invocation to use
56
+ `command: sdist` (sdist-only) eliminates the collision.
57
+
58
+ - **Synthesized npm platform packages now inherit `repository`, `license`, and `homepage` from the main `package.json`.** (#244)
59
+ npm's provenance verifier rejected platform tarballs with `E422 Error verifying sigstore provenance bundle: Failed to validate repository information: package.json: "repository.url" is "", expected to match "https://github.com/<owner>/<repo>"`. The synthesizer used to write only `name`/`version`/`os`/`cpu`/`files`/`main`/`libc`; the empty repository URL didn't match the publishing repo baked into the sigstore bundle. Identity fields are now copied from the main package so per-target tarballs validate. Affects `build = "napi"` and `build = "bundled-cli"` packages.
60
+
61
+ - **Reusable workflow's npm build step now forces `shell: bash`.** (#244)
62
+ The build matrix can target Windows runners, where GitHub Actions defaults
63
+ to `pwsh` for `run:` blocks. The npm build's `if [ -f package-lock.json ]`
64
+ branch is bash syntax, which PowerShell parsed as a malformed expression
65
+ and aborted with `ParserError`. Adding `shell: bash` makes the step
66
+ portable across Linux, macOS, and Windows runners. No config changes
67
+ required for consumers; pure JS-on-ubuntu setups were unaffected.
68
+
69
+ - **Reusable workflow now exchanges OIDC ID-token for a `CARGO_REGISTRY_TOKEN`
70
+ before invoking the engine.** (#244) `cargo publish` was failing with
71
+ `error: no token found, please run cargo login` because the publish
72
+ job's env had no `CARGO_REGISTRY_TOKEN`. PyPI uploads (twine) and npm
73
+ publish both consume the OIDC ID-token directly via registry-side
74
+ acceptance; cargo doesn't — it needs a registry-issued bearer token,
75
+ which `rust-lang/crates-io-auth-action@v1` produces from the OIDC
76
+ ID-token. The workflow now runs that action conditionally (only when
77
+ the plan contains a `kind = "crates"` row) and exports the resulting
78
+ token to `$GITHUB_ENV` for the engine subprocess. No config or
79
+ workflow changes required for consumers.
80
+
81
+ - **Crates publish's pre-cargo dirty-tree check now ignores the
82
+ reusable workflow's `artifacts/` scratch directory.** (#244)
83
+ The pre-publish guard scans `git status --porcelain` for stray edits
84
+ outside the managed `Cargo.toml` (the engine passes `--allow-dirty`
85
+ to cargo to permit the writeVersion bump, then re-imposes a narrower
86
+ check). Reusable workflow's `actions/download-artifact@v4` step
87
+ always creates `artifacts/` under cwd, even for crates-only
88
+ fixtures with nothing to download — the pre-check was rejecting
89
+ with `unexpected dirty files in the working tree outside ... -
90
+ artifacts/`. The scan now treats `${ctx.artifactsRoot}` (the dir
91
+ the engine itself populates) as engine-managed and skips it. No
92
+ config or workflow changes required.
93
+
94
+ - **Crates publish no longer fails the completeness check.** (#244)
95
+ `cargo publish` packages and uploads from source on the registry
96
+ side, so the reusable workflow never produces a `<name>-crate/`
97
+ artifact directory. The pre-publish completeness check was demanding
98
+ a `.crate` file that nothing in the pipeline ever creates, which made
99
+ any consumer with a `kind = "crates"` package fail with
100
+ `missing artifact directory <name>-crate/` before cargo was ever
101
+ invoked. Crates rows now skip the completeness check (same reasoning
102
+ as vanilla npm rows). No config or workflow changes required.
48
103
  - **Scaffolded `release.yml` now forwards `GITHUB_TOKEN` to the publish
49
104
  step.** piot has cut GitHub Releases alongside tag pushes since #26, but
50
105
  Actions doesn't auto-mount the runner token as an env var, so the
package/MIGRATIONS.md CHANGED
@@ -21,6 +21,201 @@ Each section covers five things, in order:
21
21
 
22
22
  ## Unreleased
23
23
 
24
+ ### PyPI artifact discovery matches `{name}-sdist` and `{name}-wheel-` exactly
25
+
26
+ **Summary.** `src/handlers/pypi.ts:collectArtifacts` used a bare prefix
27
+ match (`entry.startsWith("{name}-")`) to find a package's artifact
28
+ directories under `artifacts/`. Sibling packages whose names extended
29
+ the same prefix (`foo` and `foo-extras`) collided: `foo`'s discovery
30
+ also picked up `foo-extras-sdist`, and twine then uploaded the sibling's
31
+ tarball under `foo`'s OIDC identity, failing PyPI's project-name check.
32
+ The handler now matches the sdist directory exactly (`{name}-sdist`)
33
+ and the wheel directories by `{name}-wheel-` prefix only — the two
34
+ shapes the planner documents in §12.4.
35
+
36
+ **Required changes.** None.
37
+
38
+ **Deprecations removed.** None.
39
+
40
+ **Behavior changes without code changes.** Repos with multiple pypi
41
+ packages where one name is a prefix of another (e.g. `foo` and
42
+ `foo-extras`) no longer cross-upload artifacts. Single-package repos
43
+ and repos with non-overlapping names are unaffected.
44
+
45
+ **Verification.** A repo declaring both `foo` and `foo-extras` as
46
+ pypi packages publishes the correct tarballs to each project; neither
47
+ job uploads the other's artifacts.
48
+
49
+ ---
50
+
51
+ ### Reusable workflow's maturin sdist row uses `command: sdist`
52
+
53
+ **Summary.** The reusable workflow's pypi-maturin build step was a single
54
+ `PyO3/maturin-action@v1` invocation with `command: build` and an
55
+ `--sdist` flag conditional on the row being the sdist target. `maturin
56
+ build --sdist` is documented as "build a wheel AND an sdist" — the
57
+ sdist's artifact directory ended up containing both a `.tar.gz` and a
58
+ manylinux wheel, which collided at upload time with the per-target
59
+ wheel rows and aborted twine with `400 File already exists`. The build
60
+ step is now split into two: `command: sdist` for the sdist row
61
+ (sdist-only) and `command: build` with `--target` for wheel rows.
62
+
63
+ **Required changes.** None.
64
+
65
+ **Deprecations removed.** None.
66
+
67
+ **Behavior changes without code changes.** Maturin packages with a
68
+ `sdist` row in their plan now upload a single `.tar.gz` from that row,
69
+ not a wheel-plus-sdist pair. Per-target wheel rows are unaffected.
70
+
71
+ **Verification.** A maturin-built package with `sdist` in `targets`
72
+ publishes to PyPI without `400 File already exists`. The sdist
73
+ artifact directory contains `.tar.gz` only.
74
+
75
+ ---
76
+
77
+ ### Synthesized npm platform packages inherit `repository`/`license`/`homepage`
78
+
79
+ **Summary.** npm's provenance verifier rejected platform-package tarballs
80
+ with `E422 Error verifying sigstore provenance bundle: Failed to validate
81
+ repository information: package.json: "repository.url" is ""`. The
82
+ synthesizer in `src/handlers/npm-platform.ts` previously wrote only
83
+ `name`/`version`/`os`/`cpu`/`files`/`main`/`libc` into the per-target
84
+ `package.json`. The publishing GitHub repo URL is bound into the
85
+ sigstore bundle by `npm publish --provenance`; npm cross-checks it
86
+ against `package.json.repository.url` at upload time, so an empty value
87
+ fails verification. Identity fields (`repository`, `license`, `homepage`)
88
+ are now read from the main package's `package.json` and copied into each
89
+ synthesized platform package. Affects `build = "napi"` and
90
+ `build = "bundled-cli"` packages.
91
+
92
+ **Required changes.** None — the fix is automatic. To benefit, ensure
93
+ the main package's `package.json` declares a `repository.url` that
94
+ matches the publishing repo (npm provenance has always required this for
95
+ the main package; platform packages now share the same expectation).
96
+
97
+ **Deprecations removed.** None.
98
+
99
+ **Behavior changes without code changes.** Per-target platform tarballs
100
+ on the registry now carry the same `repository`/`license`/`homepage`
101
+ values as the main package, instead of being absent.
102
+
103
+ **Verification.** A `build = "napi"` or `build = "bundled-cli"` package
104
+ publishes its platform tarballs to npm without `E422` provenance errors.
105
+ `npm view <pkg>-<target>@<version> repository` returns the main
106
+ package's repository URL.
107
+
108
+ ---
109
+
110
+ ### Reusable workflow's npm build step forces `shell: bash`
111
+
112
+ **Summary.** The build matrix can target Windows runners. GitHub Actions
113
+ defaults to `pwsh` for `run:` blocks on Windows, but the npm build's
114
+ shape detection (`if [ -f package-lock.json ]; then npm ci; elif ... fi`)
115
+ is bash syntax — PowerShell parsed it as a malformed expression and
116
+ aborted with `ParserError` before any package manager ran. The step now
117
+ sets `shell: bash` explicitly, which is portable across Linux, macOS,
118
+ and Windows runners (Git Bash ships on `windows-latest`).
119
+
120
+ **Required changes.** None.
121
+
122
+ **Deprecations removed.** None.
123
+
124
+ **Behavior changes without code changes.** Consumers whose plan includes
125
+ an npm package targeting Windows runners (e.g. native node-addon shapes,
126
+ `napi-rs` matrices) now succeed past the install step. Linux/macOS-only
127
+ matrices are unaffected — bash was already the default there.
128
+
129
+ **Verification.** An npm package with a Windows row in its plan
130
+ completes the install + build step on `windows-latest`; the job log
131
+ shows `Run if [ -f package-lock.json ]` executing under bash, not pwsh.
132
+
133
+ ---
134
+
135
+ ### Reusable workflow exchanges OIDC token for `CARGO_REGISTRY_TOKEN`
136
+
137
+ **Summary.** Crates publishes were failing with `error: no token found,
138
+ please run cargo login` — the reusable workflow was relying on cargo to
139
+ find an OIDC token in env, but cargo only consumes
140
+ `CARGO_REGISTRY_TOKEN` (a registry-issued bearer), not raw OIDC
141
+ ID-tokens. The publish job now runs `rust-lang/crates-io-auth-action@v1`
142
+ when the plan contains a crates row and exports its `outputs.token`
143
+ as `CARGO_REGISTRY_TOKEN` for the engine subprocess.
144
+
145
+ **Required changes.** None for consumers using the reusable workflow as
146
+ documented. Repos publishing to crates.io must have a configured trusted
147
+ publisher on crates.io pointing at their `release.yml` — same prerequisite
148
+ as before, just now actually exercised.
149
+
150
+ **Deprecations removed.** None.
151
+
152
+ **Behavior changes without code changes.** Crates publish in the
153
+ reusable workflow now reaches the registry; previously it failed at
154
+ the cargo invocation. JS/Python-only repos are unaffected — the auth
155
+ step is gated on `contains(needs.plan.outputs.matrix, '"kind":"crates"')`
156
+ and skips entirely when no crates row is in the plan.
157
+
158
+ **Verification.** A `kind = "crates"` package whose trusted publisher is
159
+ configured on crates.io now publishes successfully through the reusable
160
+ workflow. The publish job log shows the `Authenticate with crates.io
161
+ (OIDC)` step running before `putitoutthere publish`.
162
+
163
+ ---
164
+
165
+ ### Crates publish's pre-cargo dirty-tree check ignores `artifacts/`
166
+
167
+ **Summary.** The crates handler scans `git status --porcelain` before
168
+ invoking `cargo publish --allow-dirty`, refusing to proceed if anything
169
+ other than the managed `Cargo.toml` is dirty (the writeVersion bump
170
+ runs in the same job and would otherwise be the only legitimate dirty
171
+ file). The reusable workflow's `actions/download-artifact@v4` step
172
+ always creates `artifacts/` at the repo root before publish runs —
173
+ even for crates-only fixtures that have nothing to download — and the
174
+ pre-check was rejecting on `?? artifacts/`. The scan now treats the
175
+ engine's own `artifactsRoot` as managed scratch space and skips files
176
+ under it.
177
+
178
+ **Required changes.** None.
179
+
180
+ **Deprecations removed.** None.
181
+
182
+ **Behavior changes without code changes.** Crates publishes that
183
+ previously errored with `unexpected dirty files in the working tree
184
+ outside <Cargo.toml>: - artifacts/` now proceed to `cargo publish`.
185
+ Stray edits anywhere else in the tree still fail the check.
186
+
187
+ **Verification.** A `kind = "crates"` package in a repo whose only
188
+ "dirty" file (alongside the managed `Cargo.toml`) is the engine's
189
+ `artifacts/` directory now reaches cargo. `git status --porcelain`
190
+ showing `?? artifacts/` is no longer fatal.
191
+
192
+ ---
193
+
194
+ ### Crates publish no longer fails the pre-publish completeness check
195
+
196
+ **Summary.** Consumers with a `kind = "crates"` package previously hit
197
+ `Artifact completeness check failed: missing artifact directory
198
+ <name>-crate/` before cargo was ever invoked. The reusable workflow
199
+ does not upload a `.crate` artifact (cargo packages and uploads from
200
+ source on the registry side), so the file the check demanded never
201
+ existed in the pipeline. The completeness check now skips crates
202
+ rows. Same reasoning as vanilla npm rows, which were already skipped.
203
+
204
+ **Required changes.** None.
205
+
206
+ **Deprecations removed.** None.
207
+
208
+ **Behavior changes without code changes.** Crates publishes that
209
+ previously errored at the completeness gate now reach `cargo publish`.
210
+ A crates row whose source tree is genuinely broken still fails — the
211
+ failure just happens at the cargo step, not before.
212
+
213
+ **Verification.** A `kind = "crates"` package in
214
+ `putitoutthere.toml` no longer requires any artifact upload step in
215
+ the consumer's workflow. Trigger a release with a `release: patch`
216
+ trailer; the publish job's "Run putitoutthere publish" step should
217
+ log `crates: cargo publish ...` instead of aborting on completeness.
218
+
24
219
  ### `[[package]].paths` renamed to `globs`
25
220
 
26
221
  **Summary.** The `path` / `paths` pair in `[[package]]` was confusing —
package/action.yml CHANGED
@@ -7,10 +7,14 @@ inputs:
7
7
  description: 'Which CLI subcommand to run. Canonical values are `plan` and `publish`.'
8
8
  required: false
9
9
  default: 'plan'
10
- dry_run:
11
- description: 'If true, resolve the plan but skip all destructive operations.'
10
+ working_directory:
11
+ description: >-
12
+ Path the CLI runs against (forwarded as `--cwd`). Defaults to the
13
+ runner working directory. Internal use; the reusable workflow
14
+ supplies this when invoked against a non-root tree (e.g. e2e
15
+ fixtures materialized into a subdir).
12
16
  required: false
13
- default: 'false'
17
+ default: ''
14
18
  fail_on_error:
15
19
  description: 'If true, non-zero CLI exit codes fail the step.'
16
20
  required: false
@@ -21,5 +25,5 @@ outputs:
21
25
  description: "JSON matrix emitted by `plan`. Output key is omitted when the plan resolves to zero rows or when command is anything other than plan; downstream jobs should coalesce with `|| '[]'`."
22
26
 
23
27
  runs:
24
- using: 'node24'
28
+ using: 'node20'
25
29
  main: 'dist-action/index.js'
package/dist/action.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * GitHub Actions wrapper. Bundled to `dist-action/index.js` via ncc.
3
3
  *
4
- * ~50-line adapter: read `INPUT_COMMAND` / `INPUT_DRY_RUN` /
5
- * `INPUT_FAIL_ON_ERROR` → invoke the SDK's run() → surface the exit
6
- * code. No GHA-specific logic lives here beyond input parsing.
4
+ * ~50-line adapter: read `INPUT_COMMAND` / `INPUT_FAIL_ON_ERROR` →
5
+ * invoke the SDK's run() → surface the exit code. No GHA-specific
6
+ * logic lives here beyond input parsing.
7
7
  *
8
8
  * Issue #24. Plan: §5.2, §5.3.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAyB1C"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAwB1C"}
package/dist/action.js CHANGED
@@ -1,25 +1,24 @@
1
1
  /**
2
2
  * GitHub Actions wrapper. Bundled to `dist-action/index.js` via ncc.
3
3
  *
4
- * ~50-line adapter: read `INPUT_COMMAND` / `INPUT_DRY_RUN` /
5
- * `INPUT_FAIL_ON_ERROR` → invoke the SDK's run() → surface the exit
6
- * code. No GHA-specific logic lives here beyond input parsing.
4
+ * ~50-line adapter: read `INPUT_COMMAND` / `INPUT_FAIL_ON_ERROR` →
5
+ * invoke the SDK's run() → surface the exit code. No GHA-specific
6
+ * logic lives here beyond input parsing.
7
7
  *
8
8
  * Issue #24. Plan: §5.2, §5.3.
9
9
  */
10
10
  import { run } from './cli.js';
11
11
  export async function main() {
12
12
  const command = process.env.INPUT_COMMAND ?? '';
13
- const dryRun = (process.env.INPUT_DRY_RUN ?? 'false').toLowerCase() === 'true';
13
+ const workingDirectory = process.env.INPUT_WORKING_DIRECTORY ?? '';
14
14
  const failOnError = (process.env.INPUT_FAIL_ON_ERROR ?? 'true').toLowerCase() !== 'false';
15
15
  if (!command) {
16
16
  process.stderr.write('putitoutthere action: missing required input `command`\n');
17
17
  process.exit(1);
18
18
  }
19
- const argv = ['node', 'putitoutthere', command];
20
- if (dryRun)
21
- argv.push('--dry-run');
22
- argv.push('--json');
19
+ const argv = ['node', 'putitoutthere', command, '--json'];
20
+ if (workingDirectory)
21
+ argv.push('--cwd', workingDirectory);
23
22
  const code = await run(argv);
24
23
  if (code !== 0 && !failOnError) {
25
24
  process.stderr.write(`putitoutthere action: ignoring non-zero exit (fail_on_error=false): ${code}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IAC/E,MAAM,WAAW,GACf,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;IAExE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0DAA0D,CAC3D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uEAAuE,IAAI,IAAI,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,oFAAoF;AACpF,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,KAAK,IAAI,EAAE,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;IACnE,MAAM,WAAW,GACf,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;IAExE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0DAA0D,CAC3D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1D,IAAI,gBAAgB;QAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uEAAuE,IAAI,IAAI,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,oFAAoF;AACpF,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,KAAK,IAAI,EAAE,CAAC;AACd,CAAC"}
package/dist/cli.d.ts CHANGED
@@ -12,8 +12,19 @@
12
12
  * Global flags:
13
13
  * --cwd <path> working directory (default: process.cwd())
14
14
  * --config <path> path to putitoutthere.toml
15
- * --dry-run for publish; no side effects
16
15
  * --json machine-readable output
16
+ *
17
+ * `--dry-run` was removed deliberately (#244). The library's job is
18
+ * publishing; a non-publishing mode of the publish command was a
19
+ * coverage hole pretending to be a feature. Passing `--dry-run` now
20
+ * errors out.
17
21
  */
22
+ interface ParsedFlags {
23
+ cwd: string;
24
+ config?: string | undefined;
25
+ json: boolean;
26
+ }
27
+ export declare function parseFlags(argv: readonly string[]): ParsedFlags;
18
28
  export declare function run(argv: readonly string[]): Promise<number>;
29
+ export {};
19
30
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA2DH,wBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+FlE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAoCH,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CA4B/D;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8FlE"}
package/dist/cli.js CHANGED
@@ -12,9 +12,14 @@
12
12
  * Global flags:
13
13
  * --cwd <path> working directory (default: process.cwd())
14
14
  * --config <path> path to putitoutthere.toml
15
- * --dry-run for publish; no side effects
16
15
  * --json machine-readable output
16
+ *
17
+ * `--dry-run` was removed deliberately (#244). The library's job is
18
+ * publishing; a non-publishing mode of the publish command was a
19
+ * coverage hole pretending to be a feature. Passing `--dry-run` now
20
+ * errors out.
17
21
  */
22
+ import { isAbsolute, resolve } from 'node:path';
18
23
  import { plan } from './plan.js';
19
24
  import { publish } from './publish.js';
20
25
  import { VERSION } from './version.js';
@@ -34,17 +39,15 @@ function printUsage() {
34
39
  'Options:',
35
40
  ' --cwd <path> working directory',
36
41
  ' --config <path> path to putitoutthere.toml',
37
- ' --dry-run publish without side effects',
38
42
  ' --json emit machine-readable output',
39
43
  '',
40
44
  'See https://github.com/thekevinscott/putitoutthere for docs.',
41
45
  '',
42
46
  ].join('\n'));
43
47
  }
44
- function parseFlags(argv) {
48
+ export function parseFlags(argv) {
45
49
  const out = {
46
50
  cwd: process.cwd(),
47
- dryRun: false,
48
51
  json: false,
49
52
  };
50
53
  for (let i = 0; i < argv.length; i++) {
@@ -54,11 +57,23 @@ function parseFlags(argv) {
54
57
  out.cwd = argv[++i] ?? out.cwd;
55
58
  else if (a === '--config')
56
59
  out.config = argv[++i];
57
- else if (a === '--dry-run')
58
- out.dryRun = true;
59
60
  else if (a === '--json')
60
61
  out.json = true;
62
+ else if (a === '--dry-run') {
63
+ // Removed in #244. Publishing is the library's only job; a
64
+ // non-publishing flavor of `publish` is a coverage hole, not
65
+ // a feature. Fail loudly so callers update their invocation.
66
+ throw new Error('--dry-run was removed. The CLI does not support a non-publishing publish mode; remove the flag from your invocation.');
67
+ }
61
68
  }
69
+ // Always normalise --cwd to an absolute path. Downstream code joins
70
+ // `cwd` with `artifacts/` to derive paths it then hands to subprocesses
71
+ // (twine, cargo, npm) running with `cwd: ctx.cwd`. If cwd were left
72
+ // relative — e.g. `--cwd fixture-tree` from the JS action — those
73
+ // file paths would resolve as `fixture-tree/fixture-tree/...` from
74
+ // the subprocess's vantage. Anchor here once.
75
+ if (!isAbsolute(out.cwd))
76
+ out.cwd = resolve(out.cwd);
62
77
  return out;
63
78
  }
64
79
  export async function run(argv) {
@@ -82,8 +97,8 @@ export async function run(argv) {
82
97
  printUsage();
83
98
  return 1;
84
99
  }
85
- const flags = parseFlags(rest);
86
100
  try {
101
+ const flags = parseFlags(rest);
87
102
  switch (cmd) {
88
103
  case 'plan': {
89
104
  const matrix = await plan({
@@ -120,7 +135,6 @@ export async function run(argv) {
120
135
  cwd: flags.cwd,
121
136
  /* v8 ignore next -- --config test covered in plan arm; publish shares the same plumbing */
122
137
  ...(flags.config !== undefined ? { configPath: flags.config } : {}),
123
- dryRun: flags.dryRun,
124
138
  });
125
139
  if (flags.json) {
126
140
  process.stdout.write(JSON.stringify(result) + '\n');
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,12 @@ export function requireCompleteness(matrix, artifactsRoot) {
74
74
  * otherwise a human-readable reason.
75
75
  */
76
76
  function verifyRow(row, artifactsRoot) {
77
+ // crates: `cargo publish` packages and uploads from the source tree
78
+ // directly — the reusable workflow never uploads a `.crate` artifact
79
+ // (release.yml's upload step is `if: matrix.kind != 'crates'`), so
80
+ // there is nothing here to verify. Same logic as vanilla npm below.
81
+ if (row.kind === 'crates')
82
+ return null;
77
83
  // Vanilla npm publishes from the source tree directly; the build
78
84
  // step never produced a separate artifact for this kind, so there's
79
85
  // nothing to check here. Same goes for a missing artifactsRoot --
@@ -1 +1 @@
1
- {"version":3,"file":"completeness.js","sourceRoot":"","sources":["../src/completeness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completeness.js","sourceRoot":"","sources":["../src/completeness.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  * alternative (TOML round-trip) loses formatting.
11
11
  * - publish: `cargo publish --allow-dirty --verbose` with stderr
12
12
  * captured for the failure dump. Short-circuits on
13
- * already-published (idempotent). Honors ctx.dryRun.
13
+ * already-published (idempotent).
14
14
  *
15
15
  * --allow-dirty is required for our writeVersion-then-publish model
16
16
  * (#135), but cargo's default dirty-check is exactly the safety net
@@ -40,6 +40,6 @@ export declare function replaceCargoVersion(source: string, version: string): st
40
40
  * a git work tree, git command missing, etc) — callers treat null as
41
41
  * "can't verify, fall through to cargo's own --allow-dirty behavior."
42
42
  */
43
- export declare function scanDirtyOutsideManifest(cwd: string, pkgPath: string): string[] | null;
43
+ export declare function scanDirtyOutsideManifest(cwd: string, pkgPath: string, artifactsRoot?: string): string[] | null;
44
44
  export declare const crates: Handler;
45
45
  //# sourceMappingURL=crates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crates.d.ts","sourceRoot":"","sources":["../../src/handlers/crates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,OAAO,KAAK,EAAO,OAAO,EAAiB,MAAM,aAAa,CAAC;AA0H/D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAa3E;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,GAAG,IAAI,CAuDjB;AAQD,eAAO,MAAM,MAAM,EAAE,OAKpB,CAAC"}
1
+ {"version":3,"file":"crates.d.ts","sourceRoot":"","sources":["../../src/handlers/crates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,OAAO,KAAK,EAAO,OAAO,EAAiB,MAAM,aAAa,CAAC;AAuH/D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAa3E;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,EAAE,GAAG,IAAI,CAwEjB;AAQD,eAAO,MAAM,MAAM,EAAE,OAKpB,CAAC"}
@@ -10,7 +10,7 @@
10
10
  * alternative (TOML round-trip) loses formatting.
11
11
  * - publish: `cargo publish --allow-dirty --verbose` with stderr
12
12
  * captured for the failure dump. Short-circuits on
13
- * already-published (idempotent). Honors ctx.dryRun.
13
+ * already-published (idempotent).
14
14
  *
15
15
  * --allow-dirty is required for our writeVersion-then-publish model
16
16
  * (#135), but cargo's default dirty-check is exactly the safety net
@@ -79,14 +79,11 @@ async function publishImpl(pkg, version, ctx) {
79
79
  if (await isPublishedImpl(pkg, version, ctx)) {
80
80
  return { status: 'already-published' };
81
81
  }
82
- if (ctx.dryRun) {
83
- return { status: 'skipped' };
84
- }
85
82
  // #135: --allow-dirty disarms cargo's own "is the tree clean?" guard.
86
83
  // Reinstate a narrower check: only the Cargo.toml we just wrote may
87
84
  // be dirty. Anything else = a bug or a stray edit that would end up
88
85
  // in the crate tarball. Published crates can't be unpublished.
89
- const unexpected = scanDirtyOutsideManifest(ctx.cwd, pkg.path);
86
+ const unexpected = scanDirtyOutsideManifest(ctx.cwd, pkg.path, ctx.artifactsRoot);
90
87
  if (unexpected !== null && unexpected.length > 0) {
91
88
  throw new Error([
92
89
  `cargo publish: refusing to proceed; unexpected dirty files in the working tree outside ${relativeOrSelf(ctx.cwd, join(pkg.path, 'Cargo.toml'))}:`,
@@ -158,7 +155,7 @@ export function replaceCargoVersion(source, version) {
158
155
  * a git work tree, git command missing, etc) — callers treat null as
159
156
  * "can't verify, fall through to cargo's own --allow-dirty behavior."
160
157
  */
161
- export function scanDirtyOutsideManifest(cwd, pkgPath) {
158
+ export function scanDirtyOutsideManifest(cwd, pkgPath, artifactsRoot) {
162
159
  // Confirm we're inside a git work tree. If not, bail and let cargo's
163
160
  // own --allow-dirty handling take over.
164
161
  try {
@@ -203,6 +200,15 @@ export function scanDirtyOutsideManifest(cwd, pkgPath) {
203
200
  return null;
204
201
  }
205
202
  /* v8 ignore stop */
203
+ // Reusable workflow's `actions/download-artifact@v4` step creates
204
+ // `artifacts/` under cwd unconditionally — even for fixtures whose
205
+ // packages don't upload anything (crates-only). That entry is engine-
206
+ // managed scratch space, not a stray edit; skip it.
207
+ let artifactsRel = '';
208
+ if (artifactsRoot !== undefined && artifactsRoot !== '') {
209
+ const r = relative(cwd, artifactsRoot);
210
+ artifactsRel = r === '' ? '' : r.replace(/\\/g, '/');
211
+ }
206
212
  const unexpected = [];
207
213
  for (const raw of porcelain.split('\n')) {
208
214
  if (raw.length < 4)
@@ -216,6 +222,12 @@ export function scanDirtyOutsideManifest(cwd, pkgPath) {
216
222
  const normalized = path.startsWith('"') && path.endsWith('"') ? path.slice(1, -1) : path;
217
223
  if (normalized === managedRel)
218
224
  continue;
225
+ if (artifactsRel !== '' &&
226
+ (normalized === artifactsRel ||
227
+ normalized === `${artifactsRel}/` ||
228
+ normalized.startsWith(`${artifactsRel}/`))) {
229
+ continue;
230
+ }
219
231
  unexpected.push(normalized);
220
232
  }
221
233
  return unexpected;
@@ -1 +1 @@
1
- {"version":3,"file":"crates.js","sourceRoot":"","sources":["../../src/handlers/crates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AAErC,KAAK,UAAU,eAAe,CAC5B,GAAqC,EACrC,OAAe,EACf,IAAS;IAET,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,GAAG,QAAQ,kBAAkB,kBAAkB,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE;KACtC,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,IAAI,cAAc,CAAC,iBAAiB,GAAG,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,8FAA8F;IAC9F,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAqB,EACrB,OAAe,EACf,IAAS;IAET,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,iFAAiF;QACjF,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,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,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,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrD,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,GAAuG,EACvG,OAAe,EACf,GAAQ;IAER,IAAI,MAAM,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,sEAAsE;IACtE,oEAAoE;IACpE,oEAAoE;IACpE,+DAA+D;IAC/D,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb;YACE,0FAA0F,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,GAAG;YAClJ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,gIAAgI;SACjI,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,kEAAkE;IAClE,sEAAsE;IACtE,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IACxG,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,GAAG,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE;YAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,4DAA4D;YAC5D,gEAAgE;YAChE,gEAAgE;YAChE,+BAA+B;YAC/B,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;YAChE,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,KAAK,CAAC,uBAAuB,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,GAAG,EAAE,GAAG,QAAQ,WAAW,YAAY,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE;KAC1D,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E;oCACoC;AACpC,SAAS,YAAY,CAAC,GAAqC;IACzD,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,OAAe;IACjE,gEAAgE;IAChE,oEAAoE;IACpE,MAAM,EAAE,GAAG,uDAAuD,CAAC;IACnE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAwD,CAAC;IAC9F,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;IACnC,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,GAAW,EACX,OAAe;IAEf,qEAAqE;IACrE,wCAAwC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;YACnE,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,oEAAoE;IACpE,kEAAkE;IAClE,gEAAgE;IAChE,kDAAkD;IAClD,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE;YAChF,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,sEAAsE;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,iEAAiE;IACnE,CAAC;IACD,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;YACzD,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,yEAAyE;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,oBAAoB;IACpB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC7B,mEAAmE;QACnE,iDAAiD;QACjD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,2EAA2E;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,4EAA4E;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,IAAI,UAAU,KAAK,UAAU;YAAE,SAAS;QACxC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,MAAc;IAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,uEAAuE;IACvE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,eAAyC;IACtD,YAAY,EAAE,gBAA2C;IACzD,OAAO,EAAE,WAAiC;CAC3C,CAAC"}
1
+ {"version":3,"file":"crates.js","sourceRoot":"","sources":["../../src/handlers/crates.ts"],"names":[],"mappings":"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"}