@mannyc1/ts-release 0.0.6 → 0.0.7

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.
Files changed (125) hide show
  1. package/ARCHITECTURE.md +13 -8
  2. package/README.md +226 -448
  3. package/SPEC.md +48 -43
  4. package/dist/artifacts/adapter.d.ts +39 -0
  5. package/dist/artifacts/adapter.d.ts.map +1 -0
  6. package/dist/artifacts/adapter.js +23 -0
  7. package/dist/artifacts/adapter.js.map +1 -0
  8. package/dist/artifacts/registry.d.ts +21 -0
  9. package/dist/artifacts/registry.d.ts.map +1 -0
  10. package/dist/artifacts/registry.js +21 -0
  11. package/dist/artifacts/registry.js.map +1 -0
  12. package/dist/config/schema.js +1 -1
  13. package/dist/config/schema.js.map +1 -1
  14. package/dist/domain/artifact.d.ts +85 -3
  15. package/dist/domain/artifact.d.ts.map +1 -1
  16. package/dist/domain/artifact.js +171 -3
  17. package/dist/domain/artifact.js.map +1 -1
  18. package/dist/domain/evidence.d.ts +16 -65
  19. package/dist/domain/evidence.d.ts.map +1 -1
  20. package/dist/domain/evidence.js +15 -60
  21. package/dist/domain/evidence.js.map +1 -1
  22. package/dist/domain/operation.d.ts +7 -17
  23. package/dist/domain/operation.d.ts.map +1 -1
  24. package/dist/domain/operation.js +22 -144
  25. package/dist/domain/operation.js.map +1 -1
  26. package/dist/domain/release.d.ts +1 -49
  27. package/dist/domain/release.d.ts.map +1 -1
  28. package/dist/domain/release.js +2 -47
  29. package/dist/domain/release.js.map +1 -1
  30. package/dist/domain/remote-state.d.ts +0 -27
  31. package/dist/domain/remote-state.d.ts.map +1 -1
  32. package/dist/domain/remote-state.js +1 -23
  33. package/dist/domain/remote-state.js.map +1 -1
  34. package/dist/domain/target.d.ts +14 -1
  35. package/dist/domain/target.d.ts.map +1 -1
  36. package/dist/domain/target.js +17 -3
  37. package/dist/domain/target.js.map +1 -1
  38. package/dist/planner/artifact-inventory.d.ts.map +1 -1
  39. package/dist/planner/artifact-inventory.js +3 -1
  40. package/dist/planner/artifact-inventory.js.map +1 -1
  41. package/dist/planner/errors.d.ts +2 -16
  42. package/dist/planner/errors.d.ts.map +1 -1
  43. package/dist/planner/errors.js +2 -14
  44. package/dist/planner/errors.js.map +1 -1
  45. package/dist/planner/evidence-recorder.d.ts +8 -6
  46. package/dist/planner/evidence-recorder.d.ts.map +1 -1
  47. package/dist/planner/evidence-recorder.js +50 -18
  48. package/dist/planner/evidence-recorder.js.map +1 -1
  49. package/dist/planner/executor.d.ts +12 -12
  50. package/dist/planner/executor.d.ts.map +1 -1
  51. package/dist/planner/executor.js +43 -55
  52. package/dist/planner/executor.js.map +1 -1
  53. package/dist/planner/normalize-release.d.ts +3 -0
  54. package/dist/planner/normalize-release.d.ts.map +1 -1
  55. package/dist/planner/normalize-release.js +128 -4
  56. package/dist/planner/normalize-release.js.map +1 -1
  57. package/dist/planner/reconcile.d.ts.map +1 -1
  58. package/dist/planner/reconcile.js +2 -4
  59. package/dist/planner/reconcile.js.map +1 -1
  60. package/dist/planner/render-plan.d.ts.map +1 -1
  61. package/dist/planner/render-plan.js +12 -19
  62. package/dist/planner/render-plan.js.map +1 -1
  63. package/dist/targets/adapter-helpers.d.ts +20 -5
  64. package/dist/targets/adapter-helpers.d.ts.map +1 -1
  65. package/dist/targets/adapter-helpers.js +77 -7
  66. package/dist/targets/adapter-helpers.js.map +1 -1
  67. package/dist/targets/github.d.ts.map +1 -1
  68. package/dist/targets/github.js +1 -9
  69. package/dist/targets/github.js.map +1 -1
  70. package/dist/targets/homebrew.d.ts.map +1 -1
  71. package/dist/targets/homebrew.js +131 -18
  72. package/dist/targets/homebrew.js.map +1 -1
  73. package/dist/targets/npm.d.ts.map +1 -1
  74. package/dist/targets/npm.js +1 -7
  75. package/dist/targets/npm.js.map +1 -1
  76. package/dist/targets/pypi.d.ts.map +1 -1
  77. package/dist/targets/pypi.js +50 -12
  78. package/dist/targets/pypi.js.map +1 -1
  79. package/dist/targets/scoop.d.ts.map +1 -1
  80. package/dist/targets/scoop.js +18 -8
  81. package/dist/targets/scoop.js.map +1 -1
  82. package/dist/workflows/config.d.ts +69 -119
  83. package/dist/workflows/config.d.ts.map +1 -1
  84. package/dist/workflows/config.js +80 -125
  85. package/dist/workflows/config.js.map +1 -1
  86. package/dist/workflows/diagnostics.d.ts.map +1 -1
  87. package/dist/workflows/diagnostics.js +6 -3
  88. package/dist/workflows/diagnostics.js.map +1 -1
  89. package/dist/workflows/distribution.d.ts +25 -0
  90. package/dist/workflows/distribution.d.ts.map +1 -0
  91. package/dist/workflows/distribution.js +24 -0
  92. package/dist/workflows/distribution.js.map +1 -0
  93. package/dist/workflows/evidence.d.ts +4 -13
  94. package/dist/workflows/evidence.d.ts.map +1 -1
  95. package/dist/workflows/evidence.js +15 -27
  96. package/dist/workflows/evidence.js.map +1 -1
  97. package/dist/workflows/index.d.ts +1 -0
  98. package/dist/workflows/index.d.ts.map +1 -1
  99. package/dist/workflows/index.js +1 -0
  100. package/dist/workflows/index.js.map +1 -1
  101. package/dist/workflows/init.d.ts +3 -3
  102. package/dist/workflows/init.d.ts.map +1 -1
  103. package/dist/workflows/init.js +46 -0
  104. package/dist/workflows/init.js.map +1 -1
  105. package/examples/README.md +4 -4
  106. package/package.json +18 -15
  107. package/templates/README.md +15 -2
  108. package/templates/bun-cli-github/README.md +14 -0
  109. package/templates/bun-cli-github/release.config.json +89 -0
  110. package/dist/domain/status.d.ts +0 -43
  111. package/dist/domain/status.d.ts.map +0 -1
  112. package/dist/domain/status.js +0 -51
  113. package/dist/domain/status.js.map +0 -1
  114. package/dist/internal/workflow-phases.d.ts +0 -3
  115. package/dist/internal/workflow-phases.d.ts.map +0 -1
  116. package/dist/internal/workflow-phases.js +0 -2
  117. package/dist/internal/workflow-phases.js.map +0 -1
  118. package/dist/planner/release-eligibility.d.ts +0 -39
  119. package/dist/planner/release-eligibility.d.ts.map +0 -1
  120. package/dist/planner/release-eligibility.js +0 -578
  121. package/dist/planner/release-eligibility.js.map +0 -1
  122. package/dist/planner/status.d.ts +0 -40
  123. package/dist/planner/status.d.ts.map +0 -1
  124. package/dist/planner/status.js +0 -313
  125. package/dist/planner/status.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { executeGate, RenderFileOperation } from "../domain/operation.js";
3
- import { catalogGitPushOperation, catalogPathBaseName, dryRunValidationOperation, findRequiredArtifact, noAuthCommand, readOnlyCommandValidationOperation, requireSha256FileArtifact, rejectNoDryRunInStrictMode, rejectUnsupportedCatalogTokenEnv, targetCapabilitiesFor, validationStrategyForDryRun } from "./adapter-helpers.js";
2
+ import { RenderFileOperation } from "../domain/operation.js";
3
+ import { PlanConstructionError } from "../planner/errors.js";
4
+ import { catalogGitPublishOperations, catalogPathBaseName, dryRunValidationOperation, findRequiredArtifact, noAuthCommand, readOnlyCommandValidationOperation, requireSha256FileArtifact, rejectNoDryRunInStrictMode, rejectUnsupportedCatalogTokenEnv, targetCapabilitiesFor, validationStrategyForDryRun } from "./adapter-helpers.js";
4
5
  const rejectUnsupportedTokenEnv = Effect.fn("rejectUnsupportedHomebrewTokenEnv")(function* (target) {
5
6
  return yield* rejectUnsupportedCatalogTokenEnv({
6
7
  targetId: target.id,
@@ -15,39 +16,153 @@ const formulaClassName = (formulaName) => {
15
16
  const className = parts.map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`).join("");
16
17
  return className.length === 0 ? "GeneratedFormula" : className;
17
18
  };
18
- const renderFormula = (target, model) => Effect.gen(function* () {
19
- const artifact = yield* findRequiredArtifact(model, target.id, target.artifactId, `Homebrew target references missing artifact ${target.artifactId}.`);
20
- const validated = yield* requireSha256FileArtifact(artifact, {
19
+ const artifactUrl = (artifact, fallbackUrl) => fallbackUrl ?? artifact.downloadUrl ?? artifact.path;
20
+ const singleArtifactBinaryName = (target, artifact) => target.installPath !== undefined ? target.formulaName : artifact.variant?.binaryName;
21
+ const multiArtifactBinaryName = (target, artifacts) => target.installPath !== undefined
22
+ ? target.formulaName
23
+ : artifacts.find((entry) => entry.artifact.variant?.binaryName !== undefined)
24
+ ?.artifact.variant?.binaryName ?? target.formulaName;
25
+ const singleArtifactInstallLines = (target, artifact) => {
26
+ if (target.installPath !== undefined) {
27
+ return [
28
+ ` bin.install ${rubyString(target.installPath)} => ${rubyString(target.formulaName)}`,
29
+ ` chmod 0755, bin/${rubyString(target.formulaName)}`
30
+ ];
31
+ }
32
+ const binaryName = artifact.variant?.binaryName;
33
+ return binaryName === undefined
34
+ ? [" prefix.install Dir[\"*\"]"]
35
+ : [
36
+ ` bin.install ${rubyString(catalogPathBaseName(artifact.path))} => ${rubyString(binaryName)}`,
37
+ ` chmod 0755, bin/${rubyString(binaryName)}`
38
+ ];
39
+ };
40
+ const multiArtifactInstallLines = (target, artifacts) => {
41
+ if (target.installPath !== undefined) {
42
+ return [
43
+ ` bin.install ${rubyString(target.installPath)} => ${rubyString(target.formulaName)}`,
44
+ ` chmod 0755, bin/${rubyString(target.formulaName)}`
45
+ ];
46
+ }
47
+ const binaryName = multiArtifactBinaryName(target, artifacts);
48
+ return [
49
+ ` bin.install Dir["*"].find { |path| File.file?(path) } => ${rubyString(binaryName)}`,
50
+ ` chmod 0755, bin/${rubyString(binaryName)}`
51
+ ];
52
+ };
53
+ const formulaTestLines = (binaryName) => binaryName === undefined
54
+ ? []
55
+ : [
56
+ "",
57
+ " test do",
58
+ ` assert File.exist?(bin/${rubyString(binaryName)})`,
59
+ ` assert File.executable?(bin/${rubyString(binaryName)})`,
60
+ " end"
61
+ ];
62
+ const requireHomebrewArtifact = Effect.fn("requireHomebrewArtifact")(function* (target, model, artifactId) {
63
+ const artifact = yield* findRequiredArtifact(model, target.id, artifactId, `Homebrew target references missing artifact ${artifactId}.`);
64
+ return yield* requireSha256FileArtifact(artifact, {
21
65
  targetId: target.id,
22
66
  directoryReason: "Homebrew formula artifacts must be file-like, not directories.",
23
67
  checksumReason: "Homebrew formula rendering requires a sha256 artifact checksum."
24
68
  });
25
- const installLines = target.installPath === undefined
26
- ? [" prefix.install Dir[\"*\"]"]
27
- : [` bin.install ${rubyString(target.installPath)} => ${rubyString(target.formulaName)}`];
69
+ });
70
+ const homebrewArchBlock = (arch) => arch === "arm64" ? "on_arm" : "on_intel";
71
+ const homebrewArchOrder = (left, right) => {
72
+ const priority = (arch) => arch === "arm64" ? 0 : 1;
73
+ return priority(left.arch) - priority(right.arch);
74
+ };
75
+ const validateHomebrewVariantArtifacts = Effect.fn("validateHomebrewVariantArtifacts")(function* (target, artifacts) {
76
+ const seen = new Set();
77
+ const entries = [];
78
+ for (const entry of artifacts) {
79
+ const variant = entry.artifact.variant;
80
+ if (variant === undefined || variant.os !== "darwin") {
81
+ return yield* Effect.fail(PlanConstructionError.make({
82
+ targetId: target.id,
83
+ reason: `Homebrew artifact ${entry.artifact.id} must declare a darwin installable variant.`
84
+ }));
85
+ }
86
+ if (seen.has(variant.arch)) {
87
+ return yield* Effect.fail(PlanConstructionError.make({
88
+ targetId: target.id,
89
+ reason: `Homebrew target has multiple ${variant.arch} artifacts.`
90
+ }));
91
+ }
92
+ seen.add(variant.arch);
93
+ entries.push({
94
+ artifact: entry.artifact,
95
+ checksum: entry.checksum,
96
+ arch: variant.arch
97
+ });
98
+ }
99
+ return entries.sort(homebrewArchOrder);
100
+ });
101
+ const renderFormulaForArtifact = (target, model, entry) => {
28
102
  const homepage = target.homepage ?? `https://github.com/${target.repository}`;
29
- const url = target.url ?? validated.artifact.path;
103
+ const description = target.description ?? `${model.identity.name} ${model.identity.version} release artifact`;
104
+ const url = artifactUrl(entry.artifact, target.url);
30
105
  return [
31
106
  `class ${formulaClassName(target.formulaName)} < Formula`,
32
- ` desc ${rubyString(`${model.identity.name} ${model.identity.version} release artifact`)}`,
107
+ ` desc ${rubyString(description)}`,
33
108
  ` homepage ${rubyString(homepage)}`,
34
109
  ` url ${rubyString(url)}`,
35
- ` sha256 ${rubyString(validated.checksum.value)}`,
110
+ ` sha256 ${rubyString(entry.checksum.value)}`,
36
111
  ` version ${rubyString(model.identity.version)}`,
37
112
  "",
38
113
  " def install",
39
- ...installLines,
114
+ ...singleArtifactInstallLines(target, entry.artifact),
40
115
  " end",
116
+ ...formulaTestLines(singleArtifactBinaryName(target, entry.artifact)),
41
117
  "end",
42
118
  ""
43
119
  ].join("\n");
120
+ };
121
+ const renderFormulaForVariants = (target, model, entries) => {
122
+ const homepage = target.homepage ?? `https://github.com/${target.repository}`;
123
+ const description = target.description ?? `${model.identity.name} ${model.identity.version} release artifact`;
124
+ const variantLines = entries.flatMap((entry) => [
125
+ ` ${homebrewArchBlock(entry.arch)} do`,
126
+ ` url ${rubyString(artifactUrl(entry.artifact, undefined))}`,
127
+ ` sha256 ${rubyString(entry.checksum.value)}`,
128
+ " end",
129
+ ""
130
+ ]);
131
+ return [
132
+ `class ${formulaClassName(target.formulaName)} < Formula`,
133
+ ` desc ${rubyString(description)}`,
134
+ ` homepage ${rubyString(homepage)}`,
135
+ ` version ${rubyString(model.identity.version)}`,
136
+ "",
137
+ " on_macos do",
138
+ ...variantLines,
139
+ " end",
140
+ "",
141
+ " def install",
142
+ ...multiArtifactInstallLines(target, entries),
143
+ " end",
144
+ ...formulaTestLines(multiArtifactBinaryName(target, entries)),
145
+ "end",
146
+ ""
147
+ ].join("\n");
148
+ };
149
+ const renderFormula = (target, model) => Effect.gen(function* () {
150
+ const artifactIds = target.artifactIds ?? [target.artifactId];
151
+ const artifacts = yield* Effect.forEach(artifactIds, (artifactId) => requireHomebrewArtifact(target, model, artifactId));
152
+ if (target.artifactIds === undefined) {
153
+ const artifact = artifacts[0];
154
+ if (artifact !== undefined) {
155
+ return renderFormulaForArtifact(target, model, artifact);
156
+ }
157
+ }
158
+ const variants = yield* validateHomebrewVariantArtifacts(target, artifacts);
159
+ return renderFormulaForVariants(target, model, variants);
44
160
  });
45
161
  const dryRunOperation = (target) => dryRunValidationOperation({
46
162
  id: `${target.id}:brew-audit`,
47
163
  targetId: target.id,
48
164
  dryRunSupport: target.dryRunSupport,
49
165
  nativeDescription: "Validate generated Homebrew formula with brew audit.",
50
- nativeGateReason: "brew audit validates the generated formula without publishing.",
51
166
  command: noAuthCommand("brew", ["audit", "--strict", "--formula", target.formulaPath]),
52
167
  simulatedDescription: "Record simulated Homebrew formula validation.",
53
168
  skippedDescription: "Record skipped Homebrew formula validation.",
@@ -64,7 +179,6 @@ export const planHomebrewOperations = Effect.fn("planHomebrewOperations")(functi
64
179
  targetId: target.id,
65
180
  description: `Render Homebrew formula ${catalogPathBaseName(target.formulaPath)}.`,
66
181
  risk: "writes-local",
67
- gate: executeGate("Rendering a Homebrew formula writes a local generated file."),
68
182
  path: target.formulaPath,
69
183
  contents: formula
70
184
  })
@@ -74,18 +188,17 @@ export const planHomebrewOperations = Effect.fn("planHomebrewOperations")(functi
74
188
  id: `${target.id}:brew-version`,
75
189
  targetId: target.id,
76
190
  description: "Check Homebrew CLI availability.",
77
- gateReason: "CLI availability validation is read-only.",
78
191
  command: noAuthCommand("brew", ["--version"])
79
192
  }));
80
193
  }
81
- operations.push(dryRunOperation(target), catalogGitPushOperation({
194
+ operations.push(dryRunOperation(target), ...catalogGitPublishOperations({
82
195
  id: `${target.id}:homebrew-push`,
83
196
  targetId: target.id,
84
197
  description: `Push Homebrew tap update for ${model.identity.name}@${model.identity.version}.`,
85
198
  mutability: target.mutability,
86
199
  directory: target.tapDirectory,
87
- irreversibleReason: "Pushing a Homebrew tap update is configured as irreversible.",
88
- externallyVisibleReason: "Pushing a Homebrew tap update is externally visible."
200
+ filePath: target.formulaPath,
201
+ commitMessage: `Update ${target.formulaName} to ${model.identity.version}`
89
202
  }));
90
203
  return operations;
91
204
  });
@@ -1 +1 @@
1
- {"version":3,"file":"homebrew.js","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"homebrew.js","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAMvC,OAAO,EAEL,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAM/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,aAAa,EACb,kCAAkC,EAClC,yBAAyB,EACzB,0BAA0B,EAC1B,gCAAgC,EAChC,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAA;AAI7B,MAAM,yBAAyB,GAAG,MAAM,CAAC,EAAE,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,EAAC,MAAyB;IAClH,OAAO,KAAK,CAAC,CAAC,gCAAgC,CAAC;QAC7C,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAAyB,EAAsB,EAAE,CAC1F,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;AAElF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAC3C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAEvB,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAU,EAAE;IACvD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClF,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnG,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAA;AAChE,CAAC,CAAA;AAWD,MAAM,WAAW,GAAG,CAAC,QAA+B,EAAE,WAA+B,EAAU,EAAE,CAC/F,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAA;AAEtD,MAAM,wBAAwB,GAAG,CAC/B,MAAyB,EACzB,QAA+B,EACX,EAAE,CACtB,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;AAEtF,MAAM,uBAAuB,GAAG,CAC9B,MAAyB,EACzB,SAAiD,EACzC,EAAE,CACV,MAAM,CAAC,WAAW,KAAK,SAAS;IAC9B,CAAC,CAAC,MAAM,CAAC,WAAW;IACpB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS,CAAC;QAC3E,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,IAAI,MAAM,CAAC,WAAW,CAAA;AAE1D,MAAM,0BAA0B,GAAG,CACjC,MAAyB,EACzB,QAA+B,EACR,EAAE;IACzB,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO;YACL,mBAAmB,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;YACxF,uBAAuB,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;SACxD,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC/C,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,CAAC,+BAA+B,CAAC;QACnC,CAAC,CAAC;YACA,mBAAmB,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,UAAU,CAAC,UAAU,CAAC,EAAE;YAChG,uBAAuB,UAAU,CAAC,UAAU,CAAC,EAAE;SAChD,CAAA;AACL,CAAC,CAAA;AAED,MAAM,yBAAyB,GAAG,CAChC,MAAyB,EACzB,SAAiD,EAC1B,EAAE;IACzB,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO;YACL,mBAAmB,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;YACxF,uBAAuB,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;SACxD,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC7D,OAAO;QACL,gEAAgE,UAAU,CAAC,UAAU,CAAC,EAAE;QACxF,uBAAuB,UAAU,CAAC,UAAU,CAAC,EAAE;KAChD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,UAA8B,EAAyB,EAAE,CACjF,UAAU,KAAK,SAAS;IACtB,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC;QACA,EAAE;QACF,WAAW;QACX,8BAA8B,UAAU,CAAC,UAAU,CAAC,GAAG;QACvD,mCAAmC,UAAU,CAAC,UAAU,CAAC,GAAG;QAC5D,OAAO;KACR,CAAA;AAEL,MAAM,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,EAC5E,MAAyB,EACzB,KAAmB,EACnB,UAAkB;IAElB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,oBAAoB,CAC1C,KAAK,EACL,MAAM,CAAC,EAAE,EACT,UAAU,EACV,+CAA+C,UAAU,GAAG,CAC7D,CAAA;IACD,OAAO,KAAK,CAAC,CAAC,yBAAyB,CAAC,QAAQ,EAAE;QAChD,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,eAAe,EAAE,gEAAgE;QACjF,cAAc,EAAE,iEAAiE;KAClF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAA0B,EAAU,EAAE,CAC/D,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAA;AAE1C,MAAM,iBAAiB,GAAG,CAAC,IAA6B,EAAE,KAA8B,EAAU,EAAE;IAClG,MAAM,QAAQ,GAAG,CAAC,IAA0B,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,gCAAgC,GAAG,MAAM,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,EAC9F,MAAyB,EACzB,SAA0C;IAE1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC5C,MAAM,OAAO,GAAmC,EAAE,CAAA;IAClD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAA;QACtC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,qBAAqB,CAAC,IAAI,CAAC;gBACzB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,MAAM,EAAE,qBAAqB,KAAK,CAAC,QAAQ,CAAC,EAAE,6CAA6C;aAC5F,CAAC,CACH,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,qBAAqB,CAAC,IAAI,CAAC;gBACzB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,MAAM,EAAE,gCAAgC,OAAO,CAAC,IAAI,aAAa;aAClE,CAAC,CACH,CAAA;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACtB,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AACxC,CAAC,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAG,CAC/B,MAAyB,EACzB,KAAmB,EACnB,KAAuB,EACf,EAAE;IACV,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,sBAAsB,MAAM,CAAC,UAAU,EAAE,CAAA;IAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,mBAAmB,CAAA;IAC7G,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IACnD,OAAO;QACL,SAAS,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY;QACzD,UAAU,UAAU,CAAC,WAAW,CAAC,EAAE;QACnC,cAAc,UAAU,CAAC,QAAQ,CAAC,EAAE;QACpC,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE;QAC1B,YAAY,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC9C,aAAa,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAChD,EAAE;QACF,eAAe;QACf,GAAG,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;QACrD,OAAO;QACP,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrE,KAAK;QACL,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAC/B,MAAyB,EACzB,KAAmB,EACnB,OAA+C,EACvC,EAAE;IACV,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,sBAAsB,MAAM,CAAC,UAAU,EAAE,CAAA;IAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,mBAAmB,CAAA;IAC7G,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC9C,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;QACzC,aAAa,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE;QACjE,gBAAgB,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAClD,SAAS;QACT,EAAE;KACH,CAAC,CAAA;IAEF,OAAO;QACL,SAAS,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY;QACzD,UAAU,UAAU,CAAC,WAAW,CAAC,EAAE;QACnC,cAAc,UAAU,CAAC,QAAQ,CAAC,EAAE;QACpC,aAAa,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjD,EAAE;QACF,eAAe;QACf,GAAG,YAAY;QACf,OAAO;QACN,EAAE;QACF,eAAe;QACf,GAAG,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC;QAC7C,OAAO;QACP,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7D,KAAK;QACL,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,MAAyB,EAAE,KAAmB,EAAgD,EAAE,CACrH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE,CAClE,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CACnD,CAAA;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,gCAAgC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC3E,OAAO,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC1D,CAAC,CAAC,CAAA;AAEJ,MAAM,eAAe,GAAG,CAAC,MAAyB,EAAa,EAAE,CAC/D,yBAAyB,CAAC;IACxB,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC,EAAE;IACnB,aAAa,EAAE,MAAM,CAAC,aAAa;IACnC,iBAAiB,EAAE,sDAAsD;IACzE,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACtF,oBAAoB,EAAE,+CAA+C;IACrE,kBAAkB,EAAE,6CAA6C;IACjE,gBAAgB,EAAE,6EAA6E;IAC/F,cAAc,EAAE,0FAA0F;CAC3G,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EACjF,MAAyB,EACzB,KAAmB;IAEnB,KAAK,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACxC,KAAK,CAAC,CAAC,0BAA0B,CAAC,MAAM,EAAE,KAAK,EAAE,iEAAiE,CAAC,CAAA;IAEnH,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACnD,MAAM,UAAU,GAAqB;QACnC,mBAAmB,CAAC,IAAI,CAAC;YACvB,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,0BAA0B;YAC1C,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,2BAA2B,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG;YAClF,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,MAAM,CAAC,WAAW;YACxB,QAAQ,EAAE,OAAO;SAClB,CAAC;KACH,CAAA;IAED,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,UAAU,CAAC,IAAI,CACb,kCAAkC,CAAC;YACjC,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,eAAe;YAC/B,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,kCAAkC;YAC/C,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;SAC9C,CAAC,CACH,CAAA;IACH,CAAC;IAED,UAAU,CAAC,IAAI,CACb,eAAe,CAAC,MAAM,CAAC,EACvB,GAAG,2BAA2B,CAAC;QAC7B,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,gBAAgB;QAChC,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,WAAW,EAAE,gCAAgC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG;QAC7F,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,YAAY;QAC9B,QAAQ,EAAE,MAAM,CAAC,WAAW;QAC5B,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;KAC3E,CAAC,CACH,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,SAAS,EAAE,mBAAmB;IAC9B,YAAY,EAAE,0BAA0B;IACxC,cAAc,EAAE,sBAAsB;CACvC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAKL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAU/C,mBAAmB,6BAA6B,CAAA;AAwChD,eAAO,MAAM,qBAAqB,GAAI,QAAQ,iBAAiB,KAAG,kBAOjE,CAAA;AAyDD,eAAO,MAAM,iBAAiB,0ZAuC5B,CAAA;AAEF,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAA"}
1
+ {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAGL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAU/C,mBAAmB,6BAA6B,CAAA;AAwChD,eAAO,MAAM,qBAAqB,GAAI,QAAQ,iBAAiB,KAAG,kBAOjE,CAAA;AAsDD,eAAO,MAAM,iBAAiB,0ZAoC5B,CAAA;AAEF,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { CommandSpec, irreversibleGate, noApprovalGate, PublishCommandOperation, VerifyRemoteOperation } from "../domain/operation.js";
2
+ import { CommandSpec, PublishCommandOperation, VerifyRemoteOperation } from "../domain/operation.js";
3
3
  import { TargetAuthSetup, TargetRequiredPermission } from "../domain/target.js";
4
4
  import { dryRunValidationOperation, readOnlyCommandValidationOperation, rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation, validationStrategyForDryRun } from "./adapter-helpers.js";
5
5
  const isTrustedPublishing = (target) => target.trustedPublishing !== undefined;
@@ -37,7 +37,6 @@ const npmDryRunOperation = (target) => dryRunValidationOperation({
37
37
  targetId: target.id,
38
38
  dryRunSupport: target.dryRunSupport,
39
39
  nativeDescription: "Validate npm package contents with npm pack dry-run.",
40
- nativeGateReason: "npm pack --dry-run validates package contents without publishing.",
41
40
  command: npmCommand(target, ["pack", "--dry-run", "--json", target.packagePath], false),
42
41
  simulatedDescription: "Record simulated npm dry-run validation.",
43
42
  skippedDescription: "Record skipped npm dry-run validation.",
@@ -58,14 +57,12 @@ const npmAuthOperation = (target) => target.trustedPublishing !== undefined
58
57
  id: `${target.id}:npm-whoami`,
59
58
  targetId: target.id,
60
59
  description: "Validate npm CLI authentication.",
61
- gateReason: "npm whoami checks CLI authentication without publishing.",
62
60
  command: npmCommand(target, ["whoami", "--registry", target.registry], true)
63
61
  });
64
62
  const npmPackageExistsOperation = (target) => readOnlyCommandValidationOperation({
65
63
  id: `${target.id}:npm-package-exists`,
66
64
  targetId: target.id,
67
65
  description: "Verify npm package exists before trusted publishing.",
68
- gateReason: "npm view checks package metadata without publishing.",
69
66
  command: npmCommand(target, ["view", target.packageName, "name", "--registry", target.registry], false)
70
67
  });
71
68
  const npmPublishArgs = (target) => {
@@ -85,7 +82,6 @@ export const planNpmOperations = Effect.fn("planNpmOperations")(function* (targe
85
82
  id: `${target.id}:npm-version`,
86
83
  targetId: target.id,
87
84
  description: "Check npm CLI availability.",
88
- gateReason: "CLI availability validation is read-only.",
89
85
  command: npmCommand(target, ["--version"], false)
90
86
  }),
91
87
  npmAuthOperation(target),
@@ -96,7 +92,6 @@ export const planNpmOperations = Effect.fn("planNpmOperations")(function* (targe
96
92
  targetId: target.id,
97
93
  description: `Publish ${target.packageName}@${model.identity.version} to npm.`,
98
94
  risk: "irreversible",
99
- gate: irreversibleGate("npm package versions are immutable once published."),
100
95
  command: npmCommand(target, npmPublishArgs(target), true)
101
96
  }),
102
97
  VerifyRemoteOperation.make({
@@ -104,7 +99,6 @@ export const planNpmOperations = Effect.fn("planNpmOperations")(function* (targe
104
99
  targetId: target.id,
105
100
  description: `Verify ${target.packageName}@${model.identity.version} exists on npm.`,
106
101
  risk: "read-only",
107
- gate: noApprovalGate("npm view verifies published package metadata without publishing."),
108
102
  command: npmCommand(target, ["view", `${target.packageName}@${model.identity.version}`, "version", "--registry", target.registry], false)
109
103
  })
110
104
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EAEd,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAEL,eAAe,EAEf,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAA;AAI7B,MAAM,mBAAmB,GAAG,CAAC,MAAyB,EAAW,EAAE,CACjE,MAAM,CAAC,iBAAiB,KAAK,SAAS,CAAA;AAExC,MAAM,6BAA6B,GAAG;IACpC,8BAA8B;IAC9B,gCAAgC;CACjC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,MAAyB,EAAyB,EAAE;IACxE,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,6BAA6B,CAAA;IACtC,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CACjB,MAAyB,EACzB,IAA2B,EAC3B,WAAoB,EACP,EAAE,CACf,WAAW,CAAC,IAAI,CAAC;IACf,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IACpD,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;CACrD,CAAC,CAAA;AAEJ,MAAM,0BAA0B,GAAG,CAAC,QAAgB,EAAmB,EAAE,CACvE,eAAe,CAAC,IAAI,CAAC;IACnB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ;IACR,mBAAmB,EAAE;QACnB,wBAAwB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;KACpE;IACD,aAAa,EAAE,CAAC,oBAAoB,CAAC;CACtC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAyB,EAAsB,EAAE;IACrF,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAClD,OAAO,qBAAqB,CAC1B,MAAM,EACN,2BAA2B,CAAC,MAAM,CAAC,aAAa,CAAC,EACjD,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CACrG,CAAA;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,MAAyB,EAAa,EAAE,CAClE,yBAAyB,CAAC;IACxB,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,mBAAmB;IACnC,QAAQ,EAAE,MAAM,CAAC,EAAE;IACnB,aAAa,EAAE,MAAM,CAAC,aAAa;IACnC,iBAAiB,EAAE,sDAAsD;IACzE,gBAAgB,EAAE,mEAAmE;IACrF,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IACvF,oBAAoB,EAAE,0CAA0C;IAChE,kBAAkB,EAAE,wCAAwC;IAC5D,gBAAgB,EACd,mHAAmH;IACrH,cAAc,EAAE,qFAAqF;CACtG,CAAC,CAAA;AAEJ,MAAM,gBAAgB,GAAG,CAAC,MAAyB,EAAa,EAAE,CAChE,MAAM,CAAC,iBAAiB,KAAK,SAAS;IACpC,CAAC,CAAC,uBAAuB,CAAC;QACxB,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,8BAA8B;QAC9C,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,aAAa,EAAE,WAAW;QAC1B,oBAAoB,EAAE,oDAAoD;QAC1E,kBAAkB,EAAE,4DAA4D;QAChF,gBAAgB,EACd,8IAA8I,MAAM,CAAC,iBAAiB,CAAC,QAAQ,cAAc,MAAM,CAAC,iBAAiB,CAAC,QAAQ,4DAA4D,MAAM,CAAC,WAAW,oCAAoC;QAClV,cAAc,EAAE,+DAA+D;KAChF,CAAC;IACF,CAAC,CAAC,kCAAkC,CAAC;QACnC,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,aAAa;QAC7B,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,WAAW,EAAE,kCAAkC;QAC/C,UAAU,EAAE,0DAA0D;QACtE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;KAC7E,CAAC,CAAA;AAEN,MAAM,yBAAyB,GAAG,CAAC,MAAyB,EAAa,EAAE,CACzE,kCAAkC,CAAC;IACjC,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,qBAAqB;IACrC,QAAQ,EAAE,MAAM,CAAC,EAAE;IACnB,WAAW,EAAE,sDAAsD;IACnE,UAAU,EAAE,sDAAsD;IAClE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CACxG,CAAC,CAAA;AAEJ,MAAM,cAAc,GAAG,CAAC,MAAyB,EAAyB,EAAE;IAC1E,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC3E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EACvE,MAAyB,EACzB,KAAmB;IAEnB,KAAK,CAAC,CAAC,0BAA0B,CAAC,MAAM,EAAE,KAAK,EAAE,wDAAwD,CAAC,CAAA;IAC1G,MAAM,UAAU,GAAqB;QACnC,kCAAkC,CAAC;YACjC,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,cAAc;YAC9B,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,6BAA6B;YAC1C,UAAU,EAAE,2CAA2C;YACvD,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;SAClD,CAAC;QACF,gBAAgB,CAAC,MAAM,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,kBAAkB,CAAC,MAAM,CAAC;QAC1B,uBAAuB,CAAC,IAAI,CAAC;YAC3B,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,cAAc;YAC9B,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,WAAW,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,UAAU;YAC9E,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,gBAAgB,CAAC,oDAAoD,CAAC;YAC5E,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;SAC1D,CAAC;QACF,qBAAqB,CAAC,IAAI,CAAC;YACzB,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,qBAAqB;YACrC,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,UAAU,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,iBAAiB;YACpF,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,cAAc,CAAC,kEAAkE,CAAC;YACxF,OAAO,EAAE,UAAU,CACjB,MAAM,EACN,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,EACrG,KAAK,CACN;SACF,CAAC;KACH,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAqB;IAC1C,SAAS,EAAE,mBAAmB;IAC9B,YAAY,EAAE,qBAAqB;IACnC,cAAc,EAAE,iBAAiB;CAClC,CAAA"}
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pypi.d.ts","sourceRoot":"","sources":["../../src/targets/pypi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAIL,uBAAuB,EACxB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAUhD,mBAAmB,6BAA6B,CAAA;AAmBhD,eAAO,MAAM,sBAAsB,GAAI,QAAQ,kBAAkB,KAAG,kBACc,CAAA;AAyDlF,eAAO,MAAM,kBAAkB,6ZAoD7B,CAAA;AAEF,eAAO,MAAM,WAAW,EAAE,iBAIzB,CAAA"}
1
+ {"version":3,"file":"pypi.d.ts","sourceRoot":"","sources":["../../src/targets/pypi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAGL,uBAAuB,EACxB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,kBAAkB,EAElB,kBAAkB,EAEnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAWhD,mBAAmB,6BAA6B,CAAA;AAyChD,eAAO,MAAM,sBAAsB,GAAI,QAAQ,kBAAkB,KAAG,kBAOjE,CAAA;AAiFH,eAAO,MAAM,kBAAkB,6ZAkD7B,CAAA;AAEF,eAAO,MAAM,WAAW,EAAE,iBAIzB,CAAA"}
@@ -1,25 +1,45 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { CommandSpec, irreversibleGate, PublishCommandOperation } from "../domain/operation.js";
2
+ import { CommandSpec, PublishCommandOperation } from "../domain/operation.js";
3
+ import { TargetAuthSetup, TargetRequiredPermission } from "../domain/target.js";
3
4
  import { PlanConstructionError } from "../planner/errors.js";
4
- import { dryRunValidationOperation, noAuthCommand, readOnlyCommandValidationOperation, rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationStrategyForDryRun } from "./adapter-helpers.js";
5
+ import { dryRunValidationOperation, noAuthCommand, readOnlyCommandValidationOperation, rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation, validationStrategyForDryRun } from "./adapter-helpers.js";
5
6
  const twineUsernameEnv = "TWINE_USERNAME";
6
7
  const twinePasswordEnv = "TWINE_PASSWORD";
7
- const envNames = (target) => target.usernameEnv === undefined || target.passwordEnv === undefined ? [] : [target.usernameEnv, target.passwordEnv];
8
+ const trustedPublishingAuthEnvNames = [
9
+ "ACTIONS_ID_TOKEN_REQUEST_URL",
10
+ "ACTIONS_ID_TOKEN_REQUEST_TOKEN"
11
+ ];
12
+ const envNames = (target) => target.trustedPublishing !== undefined
13
+ ? trustedPublishingAuthEnvNames
14
+ : target.usernameEnv === undefined || target.passwordEnv === undefined
15
+ ? []
16
+ : [target.usernameEnv, target.passwordEnv];
17
+ const pythonExecutable = (target) => target.pythonExecutable ?? "python";
8
18
  const twineAuthCommand = (target, args) => CommandSpec.make({
9
- executable: "python",
19
+ executable: pythonExecutable(target),
10
20
  args: ["-m", "twine", ...args],
11
21
  requiredEnv: envNames(target),
12
22
  redactedEnv: envNames(target)
13
23
  });
14
- export const pypiTargetCapabilities = (target) => targetCapabilitiesFor(target, validationStrategyForDryRun(target.dryRunSupport));
24
+ const trustedPublishingAuthSetup = (workflow) => TargetAuthSetup.make({
25
+ runsIn: "ci",
26
+ provider: "github-actions",
27
+ workflow,
28
+ requiredPermissions: [
29
+ TargetRequiredPermission.make({ name: "id-token", value: "write" })
30
+ ],
31
+ prerequisites: ["pypi-trusted-publisher-configured"]
32
+ });
33
+ export const pypiTargetCapabilities = (target) => targetCapabilitiesFor(target, validationStrategyForDryRun(target.dryRunSupport), target.trustedPublishing === undefined
34
+ ? undefined
35
+ : trustedPublishingAuthSetup(target.trustedPublishing.workflow));
15
36
  const targetArtifacts = (target, model) => model.artifacts.filter((artifact) => artifact.consumers.includes(target.id));
16
37
  const pypiDryRunOperation = (target, artifactPaths) => dryRunValidationOperation({
17
38
  id: `${target.id}:twine-check`,
18
39
  targetId: target.id,
19
40
  dryRunSupport: target.dryRunSupport,
20
41
  nativeDescription: "Validate Python distribution metadata with twine check.",
21
- nativeGateReason: "twine check validates built distributions without publishing.",
22
- command: noAuthCommand("python", ["-m", "twine", "check", ...artifactPaths]),
42
+ command: noAuthCommand(pythonExecutable(target), ["-m", "twine", "check", ...artifactPaths]),
23
43
  simulatedDescription: "Record simulated PyPI distribution validation.",
24
44
  skippedDescription: "Record skipped PyPI distribution validation.",
25
45
  simulatedMessage: "PyPI distribution validation is simulated by the deterministic release plan; no twine check command was planned.",
@@ -27,13 +47,33 @@ const pypiDryRunOperation = (target, artifactPaths) => dryRunValidationOperation
27
47
  });
28
48
  const pypiPublishArgs = (target, artifactPaths) => [
29
49
  "upload",
50
+ "--non-interactive",
30
51
  "--repository-url",
31
52
  target.repositoryUrl,
32
53
  ...artifactPaths
33
54
  ];
55
+ const pypiAuthOperation = (target) => target.trustedPublishing === undefined
56
+ ? []
57
+ : [
58
+ validationNoteOperation({
59
+ id: `${target.id}:twine-trusted-publishing-auth`,
60
+ targetId: target.id,
61
+ dryRunSupport: "simulated",
62
+ simulatedDescription: "Record PyPI trusted publishing authentication mode.",
63
+ skippedDescription: "Record skipped PyPI trusted publishing authentication mode.",
64
+ simulatedMessage: `PyPI trusted publishing authenticates during twine upload with CI OIDC; twine check does not validate this mode. This target expects provider ${target.trustedPublishing.provider}, workflow ${target.trustedPublishing.workflow}, GitHub Actions permission id-token: write, and a trusted publisher configured on PyPI.`,
65
+ skippedMessage: "PyPI trusted publishing authentication validation was skipped."
66
+ })
67
+ ];
34
68
  const validateAuthConfig = (target) => {
35
69
  const hasUsername = target.usernameEnv !== undefined;
36
70
  const hasPassword = target.passwordEnv !== undefined;
71
+ if (target.trustedPublishing !== undefined && (hasUsername || hasPassword)) {
72
+ return Effect.fail(PlanConstructionError.make({
73
+ targetId: target.id,
74
+ reason: "PyPI trusted publishing uses CI OIDC and must not also declare usernameEnv or passwordEnv."
75
+ }));
76
+ }
37
77
  if (!hasUsername && !hasPassword) {
38
78
  return Effect.void;
39
79
  }
@@ -74,23 +114,21 @@ export const planPyPiOperations = Effect.fn("planPyPiOperations")(function* (tar
74
114
  id: `${target.id}:python-version`,
75
115
  targetId: target.id,
76
116
  description: "Check Python CLI availability.",
77
- gateReason: "CLI availability validation is read-only.",
78
- command: noAuthCommand("python", ["--version"])
117
+ command: noAuthCommand(pythonExecutable(target), ["--version"])
79
118
  }),
80
119
  readOnlyCommandValidationOperation({
81
120
  id: `${target.id}:twine-version`,
82
121
  targetId: target.id,
83
122
  description: "Check Twine CLI availability.",
84
- gateReason: "Twine availability validation is read-only.",
85
- command: noAuthCommand("python", ["-m", "twine", "--version"])
123
+ command: noAuthCommand(pythonExecutable(target), ["-m", "twine", "--version"])
86
124
  }),
125
+ ...pypiAuthOperation(target),
87
126
  pypiDryRunOperation(target, artifactPaths),
88
127
  PublishCommandOperation.make({
89
128
  id: `${target.id}:twine-upload`,
90
129
  targetId: target.id,
91
130
  description: `Publish ${model.identity.name}@${model.identity.version} to PyPI-compatible registry.`,
92
131
  risk: "irreversible",
93
- gate: irreversibleGate("PyPI package versions are immutable once published."),
94
132
  command: twineAuthCommand(target, pypiPublishArgs(target, artifactPaths))
95
133
  })
96
134
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"pypi.js","sourceRoot":"","sources":["../../src/targets/pypi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pypi.js","sourceRoot":"","sources":["../../src/targets/pypi.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scoop.d.ts","sourceRoot":"","sources":["../../src/targets/scoop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAGL,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAajD,mBAAmB,6BAA6B,CAAA;AAUhD,eAAO,MAAM,uBAAuB,GAAI,QAAQ,iBAAiB,KAAG,kBACc,CAAA;AAqDlF,eAAO,MAAM,mBAAmB,4ZAuC9B,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,kBAI1B,CAAA"}
1
+ {"version":3,"file":"scoop.d.ts","sourceRoot":"","sources":["../../src/targets/scoop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAEL,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAajD,mBAAmB,6BAA6B,CAAA;AAUhD,eAAO,MAAM,uBAAuB,GAAI,QAAQ,iBAAiB,KAAG,kBACc,CAAA;AAsElF,eAAO,MAAM,mBAAmB,4ZAsC9B,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,kBAI1B,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { executeGate, RenderFileOperation, } from "../domain/operation.js";
2
+ import { RenderFileOperation, } from "../domain/operation.js";
3
3
  import { PlanConstructionError } from "../planner/errors.js";
4
- import { catalogGitPushOperation, catalogPathBaseName, findRequiredArtifact, requireSha256FileArtifact, rejectNoDryRunInStrictMode, rejectUnsupportedCatalogTokenEnv, targetCapabilitiesFor, validationNoteOperation, validationStrategyForDryRun } from "./adapter-helpers.js";
4
+ import { catalogGitPublishOperations, catalogPathBaseName, findRequiredArtifact, requireSha256FileArtifact, rejectNoDryRunInStrictMode, rejectUnsupportedCatalogTokenEnv, targetCapabilitiesFor, validationNoteOperation, validationStrategyForDryRun } from "./adapter-helpers.js";
5
5
  const rejectUnsupportedTokenEnv = Effect.fn("rejectUnsupportedScoopTokenEnv")(function* (target) {
6
6
  return yield* rejectUnsupportedCatalogTokenEnv({
7
7
  targetId: target.id,
@@ -10,6 +10,16 @@ const rejectUnsupportedTokenEnv = Effect.fn("rejectUnsupportedScoopTokenEnv")(fu
10
10
  });
11
11
  });
12
12
  export const scoopTargetCapabilities = (target) => targetCapabilitiesFor(target, validationStrategyForDryRun(target.dryRunSupport));
13
+ const artifactUrl = (artifact, fallbackUrl) => fallbackUrl ?? artifact.downloadUrl ?? artifact.path;
14
+ const artifactBin = (target, artifact) => {
15
+ if (target.bin !== undefined) {
16
+ return target.bin;
17
+ }
18
+ const binaryName = artifact.variant?.binaryName;
19
+ return binaryName === undefined
20
+ ? undefined
21
+ : [[catalogPathBaseName(artifact.path), binaryName]];
22
+ };
13
23
  const renderManifest = (target, model) => Effect.gen(function* () {
14
24
  const artifact = yield* findRequiredArtifact(model, target.id, target.artifactId, `Scoop target references missing artifact ${target.artifactId}.`);
15
25
  const validated = yield* requireSha256FileArtifact(artifact, {
@@ -17,14 +27,15 @@ const renderManifest = (target, model) => Effect.gen(function* () {
17
27
  directoryReason: "Scoop manifest artifacts must be file-like, not directories.",
18
28
  checksumReason: "Scoop manifest rendering requires a sha256 artifact checksum."
19
29
  });
30
+ const bin = artifactBin(target, validated.artifact);
20
31
  const manifest = {
21
32
  version: model.identity.version,
22
33
  description: target.description ?? `${model.identity.name} ${model.identity.version} release artifact`,
23
34
  homepage: target.homepage ?? `https://github.com/${target.repository}`,
24
35
  ...(target.license === undefined ? {} : { license: target.license }),
25
- url: target.url ?? validated.artifact.path,
36
+ url: artifactUrl(validated.artifact, target.url),
26
37
  hash: validated.checksum.value,
27
- ...(target.bin === undefined ? {} : { bin: target.bin })
38
+ ...(bin === undefined ? {} : { bin })
28
39
  };
29
40
  return `${JSON.stringify(manifest, null, 2)}\n`;
30
41
  });
@@ -54,19 +65,18 @@ export const planScoopOperations = Effect.fn("planScoopOperations")(function* (t
54
65
  targetId: target.id,
55
66
  description: `Render Scoop manifest ${catalogPathBaseName(target.manifestPath)}.`,
56
67
  risk: "writes-local",
57
- gate: executeGate("Rendering a Scoop manifest writes a local generated file."),
58
68
  path: target.manifestPath,
59
69
  contents: manifest
60
70
  }),
61
71
  dryRunOperation(target, dryRunSupport),
62
- catalogGitPushOperation({
72
+ ...catalogGitPublishOperations({
63
73
  id: `${target.id}:scoop-push`,
64
74
  targetId: target.id,
65
75
  description: `Push Scoop bucket update for ${model.identity.name}@${model.identity.version}.`,
66
76
  mutability: target.mutability,
67
77
  directory: target.bucketDirectory,
68
- irreversibleReason: "Pushing a Scoop bucket update is configured as irreversible.",
69
- externallyVisibleReason: "Pushing a Scoop bucket update is externally visible."
78
+ filePath: target.manifestPath,
79
+ commitMessage: `Update ${target.manifestName} to ${model.identity.version}`
70
80
  })
71
81
  ];
72
82
  });
@@ -1 +1 @@
1
- {"version":3,"file":"scoop.js","sourceRoot":"","sources":["../../src/targets/scoop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoop.js","sourceRoot":"","sources":["../../src/targets/scoop.ts"],"names":[],"mappings":"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"}