@mannyc1/ts-release 0.0.5 → 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.
- package/ARCHITECTURE.md +13 -8
- package/README.md +226 -447
- package/SPEC.md +48 -43
- package/dist/artifacts/adapter.d.ts +39 -0
- package/dist/artifacts/adapter.d.ts.map +1 -0
- package/dist/artifacts/adapter.js +23 -0
- package/dist/artifacts/adapter.js.map +1 -0
- package/dist/artifacts/registry.d.ts +21 -0
- package/dist/artifacts/registry.d.ts.map +1 -0
- package/dist/artifacts/registry.js +21 -0
- package/dist/artifacts/registry.js.map +1 -0
- package/dist/config/schema.js +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/domain/artifact.d.ts +85 -3
- package/dist/domain/artifact.d.ts.map +1 -1
- package/dist/domain/artifact.js +171 -3
- package/dist/domain/artifact.js.map +1 -1
- package/dist/domain/evidence.d.ts +16 -65
- package/dist/domain/evidence.d.ts.map +1 -1
- package/dist/domain/evidence.js +15 -60
- package/dist/domain/evidence.js.map +1 -1
- package/dist/domain/operation.d.ts +7 -17
- package/dist/domain/operation.d.ts.map +1 -1
- package/dist/domain/operation.js +27 -154
- package/dist/domain/operation.js.map +1 -1
- package/dist/domain/release.d.ts +1 -49
- package/dist/domain/release.d.ts.map +1 -1
- package/dist/domain/release.js +2 -47
- package/dist/domain/release.js.map +1 -1
- package/dist/domain/remote-state.d.ts +1 -38
- package/dist/domain/remote-state.d.ts.map +1 -1
- package/dist/domain/remote-state.js +2 -38
- package/dist/domain/remote-state.js.map +1 -1
- package/dist/domain/target.d.ts +14 -1
- package/dist/domain/target.d.ts.map +1 -1
- package/dist/domain/target.js +17 -3
- package/dist/domain/target.js.map +1 -1
- package/dist/host/platform.d.ts.map +1 -1
- package/dist/host/platform.js +4 -11
- package/dist/host/platform.js.map +1 -1
- package/dist/internal/workspace-path.d.ts +4 -5
- package/dist/internal/workspace-path.d.ts.map +1 -1
- package/dist/internal/workspace-path.js +3 -0
- package/dist/internal/workspace-path.js.map +1 -1
- package/dist/planner/artifact-inventory.d.ts.map +1 -1
- package/dist/planner/artifact-inventory.js +4 -3
- package/dist/planner/artifact-inventory.js.map +1 -1
- package/dist/planner/errors.d.ts +2 -16
- package/dist/planner/errors.d.ts.map +1 -1
- package/dist/planner/errors.js +2 -14
- package/dist/planner/errors.js.map +1 -1
- package/dist/planner/evidence-recorder.d.ts +8 -6
- package/dist/planner/evidence-recorder.d.ts.map +1 -1
- package/dist/planner/evidence-recorder.js +72 -54
- package/dist/planner/evidence-recorder.js.map +1 -1
- package/dist/planner/executor.d.ts +12 -12
- package/dist/planner/executor.d.ts.map +1 -1
- package/dist/planner/executor.js +45 -68
- package/dist/planner/executor.js.map +1 -1
- package/dist/planner/normalize-release.d.ts +3 -0
- package/dist/planner/normalize-release.d.ts.map +1 -1
- package/dist/planner/normalize-release.js +128 -4
- package/dist/planner/normalize-release.js.map +1 -1
- package/dist/planner/reconcile.d.ts.map +1 -1
- package/dist/planner/reconcile.js +2 -6
- package/dist/planner/reconcile.js.map +1 -1
- package/dist/planner/render-plan.d.ts.map +1 -1
- package/dist/planner/render-plan.js +12 -19
- package/dist/planner/render-plan.js.map +1 -1
- package/dist/targets/adapter-helpers.d.ts +36 -6
- package/dist/targets/adapter-helpers.d.ts.map +1 -1
- package/dist/targets/adapter-helpers.js +103 -7
- package/dist/targets/adapter-helpers.js.map +1 -1
- package/dist/targets/github.d.ts +2 -2
- package/dist/targets/github.d.ts.map +1 -1
- package/dist/targets/github.js +4 -14
- package/dist/targets/github.js.map +1 -1
- package/dist/targets/homebrew.d.ts +2 -2
- package/dist/targets/homebrew.d.ts.map +1 -1
- package/dist/targets/homebrew.js +143 -40
- package/dist/targets/homebrew.js.map +1 -1
- package/dist/targets/live.d.ts.map +1 -1
- package/dist/targets/live.js +29 -20
- package/dist/targets/live.js.map +1 -1
- package/dist/targets/npm.d.ts +2 -2
- package/dist/targets/npm.d.ts.map +1 -1
- package/dist/targets/npm.js +33 -61
- package/dist/targets/npm.js.map +1 -1
- package/dist/targets/pypi.d.ts +2 -2
- package/dist/targets/pypi.d.ts.map +1 -1
- package/dist/targets/pypi.js +67 -41
- package/dist/targets/pypi.js.map +1 -1
- package/dist/targets/scoop.d.ts.map +1 -1
- package/dist/targets/scoop.js +18 -8
- package/dist/targets/scoop.js.map +1 -1
- package/dist/workflows/config.d.ts +69 -121
- package/dist/workflows/config.d.ts.map +1 -1
- package/dist/workflows/config.js +80 -129
- package/dist/workflows/config.js.map +1 -1
- package/dist/workflows/diagnostics.d.ts +2 -2
- package/dist/workflows/diagnostics.d.ts.map +1 -1
- package/dist/workflows/diagnostics.js +14 -20
- package/dist/workflows/diagnostics.js.map +1 -1
- package/dist/workflows/distribution.d.ts +25 -0
- package/dist/workflows/distribution.d.ts.map +1 -0
- package/dist/workflows/distribution.js +24 -0
- package/dist/workflows/distribution.js.map +1 -0
- package/dist/workflows/evidence.d.ts +4 -13
- package/dist/workflows/evidence.d.ts.map +1 -1
- package/dist/workflows/evidence.js +15 -37
- package/dist/workflows/evidence.js.map +1 -1
- package/dist/workflows/index.d.ts +1 -0
- package/dist/workflows/index.d.ts.map +1 -1
- package/dist/workflows/index.js +1 -0
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/init.d.ts +3 -3
- package/dist/workflows/init.d.ts.map +1 -1
- package/dist/workflows/init.js +49 -13
- package/dist/workflows/init.js.map +1 -1
- package/examples/README.md +4 -4
- package/package.json +18 -15
- package/templates/README.md +15 -2
- package/templates/bun-cli-github/README.md +14 -0
- package/templates/bun-cli-github/release.config.json +89 -0
- package/dist/domain/status.d.ts +0 -43
- package/dist/domain/status.d.ts.map +0 -1
- package/dist/domain/status.js +0 -51
- package/dist/domain/status.js.map +0 -1
- package/dist/planner/release-eligibility.d.ts +0 -39
- package/dist/planner/release-eligibility.d.ts.map +0 -1
- package/dist/planner/release-eligibility.js +0 -578
- package/dist/planner/release-eligibility.js.map +0 -1
- package/dist/planner/status.d.ts +0 -40
- package/dist/planner/status.d.ts.map +0 -1
- package/dist/planner/status.js +0 -342
- package/dist/planner/status.js.map +0 -1
package/dist/targets/homebrew.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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,54 +16,159 @@ 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
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
|
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(
|
|
107
|
+
` desc ${rubyString(description)}`,
|
|
33
108
|
` homepage ${rubyString(homepage)}`,
|
|
34
109
|
` url ${rubyString(url)}`,
|
|
35
|
-
` sha256 ${rubyString(
|
|
110
|
+
` sha256 ${rubyString(entry.checksum.value)}`,
|
|
36
111
|
` version ${rubyString(model.identity.version)}`,
|
|
37
112
|
"",
|
|
38
113
|
" def install",
|
|
39
|
-
...
|
|
114
|
+
...singleArtifactInstallLines(target, entry.artifact),
|
|
40
115
|
" end",
|
|
116
|
+
...formulaTestLines(singleArtifactBinaryName(target, entry.artifact)),
|
|
117
|
+
"end",
|
|
118
|
+
""
|
|
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)),
|
|
41
145
|
"end",
|
|
42
146
|
""
|
|
43
147
|
].join("\n");
|
|
44
|
-
});
|
|
45
|
-
const dryRunOperation = (target) => {
|
|
46
|
-
const dryRunSupport = target.dryRunSupport;
|
|
47
|
-
return dryRunSupport === "native"
|
|
48
|
-
? ValidateCommandOperation.make({
|
|
49
|
-
id: `${target.id}:brew-audit`,
|
|
50
|
-
targetId: target.id,
|
|
51
|
-
description: "Validate generated Homebrew formula with brew audit.",
|
|
52
|
-
risk: "read-only",
|
|
53
|
-
gate: noApprovalGate("brew audit validates the generated formula without publishing."),
|
|
54
|
-
command: noAuthCommand("brew", ["audit", "--strict", "--formula", target.formulaPath])
|
|
55
|
-
})
|
|
56
|
-
: validationNoteOperation({
|
|
57
|
-
id: `${target.id}:brew-audit`,
|
|
58
|
-
targetId: target.id,
|
|
59
|
-
dryRunSupport,
|
|
60
|
-
simulatedDescription: "Record simulated Homebrew formula validation.",
|
|
61
|
-
skippedDescription: "Record skipped Homebrew formula validation.",
|
|
62
|
-
simulatedMessage: "Homebrew formula validation is simulated by the deterministic release plan.",
|
|
63
|
-
skippedMessage: "Homebrew formula validation was skipped because this target declares no dry-run support."
|
|
64
|
-
});
|
|
65
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);
|
|
160
|
+
});
|
|
161
|
+
const dryRunOperation = (target) => dryRunValidationOperation({
|
|
162
|
+
id: `${target.id}:brew-audit`,
|
|
163
|
+
targetId: target.id,
|
|
164
|
+
dryRunSupport: target.dryRunSupport,
|
|
165
|
+
nativeDescription: "Validate generated Homebrew formula with brew audit.",
|
|
166
|
+
command: noAuthCommand("brew", ["audit", "--strict", "--formula", target.formulaPath]),
|
|
167
|
+
simulatedDescription: "Record simulated Homebrew formula validation.",
|
|
168
|
+
skippedDescription: "Record skipped Homebrew formula validation.",
|
|
169
|
+
simulatedMessage: "Homebrew formula validation is simulated by the deterministic release plan.",
|
|
170
|
+
skippedMessage: "Homebrew formula validation was skipped because this target declares no dry-run support."
|
|
171
|
+
});
|
|
66
172
|
export const planHomebrewOperations = Effect.fn("planHomebrewOperations")(function* (target, model) {
|
|
67
173
|
yield* rejectUnsupportedTokenEnv(target);
|
|
68
174
|
yield* rejectNoDryRunInStrictMode(target, model, "Homebrew tap target declares no dry-run support in strict mode.");
|
|
@@ -73,29 +179,26 @@ export const planHomebrewOperations = Effect.fn("planHomebrewOperations")(functi
|
|
|
73
179
|
targetId: target.id,
|
|
74
180
|
description: `Render Homebrew formula ${catalogPathBaseName(target.formulaPath)}.`,
|
|
75
181
|
risk: "writes-local",
|
|
76
|
-
gate: executeGate("Rendering a Homebrew formula writes a local generated file."),
|
|
77
182
|
path: target.formulaPath,
|
|
78
183
|
contents: formula
|
|
79
184
|
})
|
|
80
185
|
];
|
|
81
186
|
if (target.dryRunSupport === "native") {
|
|
82
|
-
operations.push(
|
|
187
|
+
operations.push(readOnlyCommandValidationOperation({
|
|
83
188
|
id: `${target.id}:brew-version`,
|
|
84
189
|
targetId: target.id,
|
|
85
190
|
description: "Check Homebrew CLI availability.",
|
|
86
|
-
risk: "read-only",
|
|
87
|
-
gate: noApprovalGate("CLI availability validation is read-only."),
|
|
88
191
|
command: noAuthCommand("brew", ["--version"])
|
|
89
192
|
}));
|
|
90
193
|
}
|
|
91
|
-
operations.push(dryRunOperation(target),
|
|
194
|
+
operations.push(dryRunOperation(target), ...catalogGitPublishOperations({
|
|
92
195
|
id: `${target.id}:homebrew-push`,
|
|
93
196
|
targetId: target.id,
|
|
94
197
|
description: `Push Homebrew tap update for ${model.identity.name}@${model.identity.version}.`,
|
|
95
198
|
mutability: target.mutability,
|
|
96
199
|
directory: target.tapDirectory,
|
|
97
|
-
|
|
98
|
-
|
|
200
|
+
filePath: target.formulaPath,
|
|
201
|
+
commitMessage: `Update ${target.formulaName} to ${model.identity.version}`
|
|
99
202
|
}));
|
|
100
203
|
return operations;
|
|
101
204
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homebrew.js","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"homebrew.js","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/targets/live.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/targets/live.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAcrC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,mBAAmB,6BAA6B,CAAA;AAuDhD,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAG9D,CAAA"}
|
package/dist/targets/live.js
CHANGED
|
@@ -6,34 +6,43 @@ import { NpmAdapter } from "./npm.js";
|
|
|
6
6
|
import { PyPiAdapter } from "./pypi.js";
|
|
7
7
|
import { TargetRegistry } from "./registry.js";
|
|
8
8
|
import { ScoopAdapter } from "./scoop.js";
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
case "PyPiRegistryTarget":
|
|
18
|
-
return yield* PyPiAdapter.planOperations(target, model);
|
|
19
|
-
case "ScoopBucketTarget":
|
|
20
|
-
return yield* ScoopAdapter.planOperations(target, model);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
const liveTargetCapabilities = (target) => {
|
|
9
|
+
const liveTargetAdapters = {
|
|
10
|
+
NpmRegistryTarget: NpmAdapter,
|
|
11
|
+
GitHubReleaseTarget: GitHubAdapter,
|
|
12
|
+
HomebrewTapTarget: HomebrewAdapter,
|
|
13
|
+
PyPiRegistryTarget: PyPiAdapter,
|
|
14
|
+
ScoopBucketTarget: ScoopAdapter
|
|
15
|
+
};
|
|
16
|
+
const withLiveTargetAdapter = (target, handlers) => {
|
|
24
17
|
switch (target._tag) {
|
|
25
18
|
case "NpmRegistryTarget":
|
|
26
|
-
return
|
|
19
|
+
return handlers.NpmRegistryTarget(liveTargetAdapters.NpmRegistryTarget, target);
|
|
27
20
|
case "GitHubReleaseTarget":
|
|
28
|
-
return
|
|
21
|
+
return handlers.GitHubReleaseTarget(liveTargetAdapters.GitHubReleaseTarget, target);
|
|
29
22
|
case "HomebrewTapTarget":
|
|
30
|
-
return
|
|
23
|
+
return handlers.HomebrewTapTarget(liveTargetAdapters.HomebrewTapTarget, target);
|
|
31
24
|
case "PyPiRegistryTarget":
|
|
32
|
-
return
|
|
25
|
+
return handlers.PyPiRegistryTarget(liveTargetAdapters.PyPiRegistryTarget, target);
|
|
33
26
|
case "ScoopBucketTarget":
|
|
34
|
-
return
|
|
27
|
+
return handlers.ScoopBucketTarget(liveTargetAdapters.ScoopBucketTarget, target);
|
|
35
28
|
}
|
|
36
29
|
};
|
|
30
|
+
const planLiveTargetOperations = Effect.fn("planLiveTargetOperations")(function* (target, model) {
|
|
31
|
+
return yield* withLiveTargetAdapter(target, {
|
|
32
|
+
NpmRegistryTarget: (adapter, target) => adapter.planOperations(target, model),
|
|
33
|
+
GitHubReleaseTarget: (adapter, target) => adapter.planOperations(target, model),
|
|
34
|
+
HomebrewTapTarget: (adapter, target) => adapter.planOperations(target, model),
|
|
35
|
+
PyPiRegistryTarget: (adapter, target) => adapter.planOperations(target, model),
|
|
36
|
+
ScoopBucketTarget: (adapter, target) => adapter.planOperations(target, model)
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
const liveTargetCapabilities = (target) => withLiveTargetAdapter(target, {
|
|
40
|
+
NpmRegistryTarget: (adapter, target) => adapter.capabilities(target),
|
|
41
|
+
GitHubReleaseTarget: (adapter, target) => adapter.capabilities(target),
|
|
42
|
+
HomebrewTapTarget: (adapter, target) => adapter.capabilities(target),
|
|
43
|
+
PyPiRegistryTarget: (adapter, target) => adapter.capabilities(target),
|
|
44
|
+
ScoopBucketTarget: (adapter, target) => adapter.capabilities(target)
|
|
45
|
+
});
|
|
37
46
|
export const LiveTargetRegistryLayer = Layer.succeed(TargetRegistry)({
|
|
38
47
|
targetCapabilities: liveTargetCapabilities,
|
|
39
48
|
planTargetOperations: planLiveTargetOperations
|
package/dist/targets/live.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/targets/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/targets/live.ts"],"names":[],"mappings":"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"}
|
package/dist/targets/npm.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import { PublishCommandOperation,
|
|
2
|
+
import { PublishCommandOperation, VerifyRemoteOperation } from "../domain/operation.js";
|
|
3
3
|
import { ReleaseModel } from "../domain/release.js";
|
|
4
4
|
import { NpmRegistryTarget, TargetCapabilities } from "../domain/target.js";
|
|
5
5
|
import { NpmTargetAdapter } from "./adapter.js";
|
|
6
6
|
export type * from "../types/effect-internal.js";
|
|
7
7
|
export declare const npmTargetCapabilities: (target: NpmRegistryTarget) => TargetCapabilities;
|
|
8
|
-
export declare const planNpmOperations: (target: NpmRegistryTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], import("../planner/errors.js").PlanConstructionError, never>;
|
|
8
|
+
export declare const planNpmOperations: (target: NpmRegistryTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], import("../planner/errors.js").PlanConstructionError, never>;
|
|
9
9
|
export declare const NpmAdapter: NpmTargetAdapter;
|
|
10
10
|
//# sourceMappingURL=npm.d.ts.map
|
|
@@ -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,
|
|
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"}
|
package/dist/targets/npm.js
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import { CommandSpec,
|
|
3
|
-
import { TargetAuthSetup,
|
|
4
|
-
import { rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation, validationStrategyForDryRun } from "./adapter-helpers.js";
|
|
2
|
+
import { CommandSpec, PublishCommandOperation, VerifyRemoteOperation } from "../domain/operation.js";
|
|
3
|
+
import { TargetAuthSetup, TargetRequiredPermission } from "../domain/target.js";
|
|
4
|
+
import { dryRunValidationOperation, readOnlyCommandValidationOperation, rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation, validationStrategyForDryRun } from "./adapter-helpers.js";
|
|
5
5
|
const isTrustedPublishing = (target) => target.trustedPublishing !== undefined;
|
|
6
|
-
const
|
|
7
|
-
const trustedPublishingRequiredEnvNames = [
|
|
6
|
+
const trustedPublishingAuthEnvNames = [
|
|
8
7
|
"ACTIONS_ID_TOKEN_REQUEST_URL",
|
|
9
8
|
"ACTIONS_ID_TOKEN_REQUEST_TOKEN"
|
|
10
9
|
];
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const authEnvNames = (target) => {
|
|
11
|
+
if (isTrustedPublishing(target)) {
|
|
12
|
+
return trustedPublishingAuthEnvNames;
|
|
13
|
+
}
|
|
14
|
+
return target.tokenEnv === undefined ? [] : [target.tokenEnv];
|
|
15
|
+
};
|
|
16
|
+
const npmCommand = (target, args, includeAuth) => CommandSpec.make({
|
|
14
17
|
executable: "npm",
|
|
15
18
|
args: [...args],
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
redactedEnv: includeAuth ? redactedAuthEnvNames(target) : []
|
|
19
|
+
requiredEnv: includeAuth ? authEnvNames(target) : [],
|
|
20
|
+
redactedEnv: includeAuth ? authEnvNames(target) : []
|
|
19
21
|
});
|
|
20
22
|
const trustedPublishingAuthSetup = (workflow) => TargetAuthSetup.make({
|
|
21
23
|
runsIn: "ci",
|
|
@@ -28,41 +30,19 @@ const trustedPublishingAuthSetup = (workflow) => TargetAuthSetup.make({
|
|
|
28
30
|
});
|
|
29
31
|
export const npmTargetCapabilities = (target) => {
|
|
30
32
|
const trustedPublishing = target.trustedPublishing;
|
|
31
|
-
|
|
32
|
-
return targetCapabilitiesFor(target, validationStrategyForDryRun(target.dryRunSupport));
|
|
33
|
-
}
|
|
34
|
-
return TargetCapabilities.make({
|
|
35
|
-
targetId: target.id,
|
|
36
|
-
targetTag: target._tag,
|
|
37
|
-
authRequirement: "trusted-publishing",
|
|
38
|
-
dryRunSupport: target.dryRunSupport,
|
|
39
|
-
mutability: target.mutability,
|
|
40
|
-
recovery: target.recovery,
|
|
41
|
-
validationStrategy: validationStrategyForDryRun(target.dryRunSupport),
|
|
42
|
-
authSetup: trustedPublishingAuthSetup(trustedPublishing.workflow)
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
const npmDryRunOperation = (target) => {
|
|
46
|
-
const dryRunSupport = target.dryRunSupport;
|
|
47
|
-
return dryRunSupport === "native"
|
|
48
|
-
? ValidateCommandOperation.make({
|
|
49
|
-
id: `${target.id}:npm-pack-dry-run`,
|
|
50
|
-
targetId: target.id,
|
|
51
|
-
description: "Validate npm package contents with npm pack dry-run.",
|
|
52
|
-
risk: "read-only",
|
|
53
|
-
gate: noApprovalGate("npm pack --dry-run validates package contents without publishing."),
|
|
54
|
-
command: npmCommand(target, ["pack", "--dry-run", "--json", target.packagePath], undefined, false)
|
|
55
|
-
})
|
|
56
|
-
: validationNoteOperation({
|
|
57
|
-
id: `${target.id}:npm-pack-dry-run`,
|
|
58
|
-
targetId: target.id,
|
|
59
|
-
dryRunSupport,
|
|
60
|
-
simulatedDescription: "Record simulated npm dry-run validation.",
|
|
61
|
-
skippedDescription: "Record skipped npm dry-run validation.",
|
|
62
|
-
simulatedMessage: "npm dry-run validation is marked as simulated by target configuration; no npm pack --dry-run command was planned.",
|
|
63
|
-
skippedMessage: "npm dry-run validation was skipped because this target declares no dry-run support."
|
|
64
|
-
});
|
|
33
|
+
return targetCapabilitiesFor(target, validationStrategyForDryRun(target.dryRunSupport), trustedPublishing === undefined ? undefined : trustedPublishingAuthSetup(trustedPublishing.workflow));
|
|
65
34
|
};
|
|
35
|
+
const npmDryRunOperation = (target) => dryRunValidationOperation({
|
|
36
|
+
id: `${target.id}:npm-pack-dry-run`,
|
|
37
|
+
targetId: target.id,
|
|
38
|
+
dryRunSupport: target.dryRunSupport,
|
|
39
|
+
nativeDescription: "Validate npm package contents with npm pack dry-run.",
|
|
40
|
+
command: npmCommand(target, ["pack", "--dry-run", "--json", target.packagePath], false),
|
|
41
|
+
simulatedDescription: "Record simulated npm dry-run validation.",
|
|
42
|
+
skippedDescription: "Record skipped npm dry-run validation.",
|
|
43
|
+
simulatedMessage: "npm dry-run validation is marked as simulated by target configuration; no npm pack --dry-run command was planned.",
|
|
44
|
+
skippedMessage: "npm dry-run validation was skipped because this target declares no dry-run support."
|
|
45
|
+
});
|
|
66
46
|
const npmAuthOperation = (target) => target.trustedPublishing !== undefined
|
|
67
47
|
? validationNoteOperation({
|
|
68
48
|
id: `${target.id}:npm-trusted-publishing-auth`,
|
|
@@ -73,21 +53,17 @@ const npmAuthOperation = (target) => target.trustedPublishing !== undefined
|
|
|
73
53
|
simulatedMessage: `NPM trusted publishing authenticates during npm publish with CI OIDC; npm whoami does not validate this mode. This target expects provider ${target.trustedPublishing.provider}, workflow ${target.trustedPublishing.workflow}, GitHub Actions permission id-token: write, and package ${target.packageName} to already exist on the registry.`,
|
|
74
54
|
skippedMessage: "NPM trusted publishing authentication validation was skipped."
|
|
75
55
|
})
|
|
76
|
-
:
|
|
56
|
+
: readOnlyCommandValidationOperation({
|
|
77
57
|
id: `${target.id}:npm-whoami`,
|
|
78
58
|
targetId: target.id,
|
|
79
59
|
description: "Validate npm CLI authentication.",
|
|
80
|
-
|
|
81
|
-
gate: noApprovalGate("npm whoami checks CLI authentication without publishing."),
|
|
82
|
-
command: npmCommand(target, ["whoami", "--registry", target.registry], undefined, true)
|
|
60
|
+
command: npmCommand(target, ["whoami", "--registry", target.registry], true)
|
|
83
61
|
});
|
|
84
|
-
const npmPackageExistsOperation = (target) =>
|
|
62
|
+
const npmPackageExistsOperation = (target) => readOnlyCommandValidationOperation({
|
|
85
63
|
id: `${target.id}:npm-package-exists`,
|
|
86
64
|
targetId: target.id,
|
|
87
65
|
description: "Verify npm package exists before trusted publishing.",
|
|
88
|
-
|
|
89
|
-
gate: noApprovalGate("npm view checks package metadata without publishing."),
|
|
90
|
-
command: npmCommand(target, ["view", target.packageName, "name", "--registry", target.registry], undefined, false)
|
|
66
|
+
command: npmCommand(target, ["view", target.packageName, "name", "--registry", target.registry], false)
|
|
91
67
|
});
|
|
92
68
|
const npmPublishArgs = (target) => {
|
|
93
69
|
const args = ["publish", target.packagePath, "--registry", target.registry];
|
|
@@ -102,13 +78,11 @@ const npmPublishArgs = (target) => {
|
|
|
102
78
|
export const planNpmOperations = Effect.fn("planNpmOperations")(function* (target, model) {
|
|
103
79
|
yield* rejectNoDryRunInStrictMode(target, model, "npm target declares no dry-run support in strict mode.");
|
|
104
80
|
const operations = [
|
|
105
|
-
|
|
81
|
+
readOnlyCommandValidationOperation({
|
|
106
82
|
id: `${target.id}:npm-version`,
|
|
107
83
|
targetId: target.id,
|
|
108
84
|
description: "Check npm CLI availability.",
|
|
109
|
-
|
|
110
|
-
gate: noApprovalGate("CLI availability validation is read-only."),
|
|
111
|
-
command: npmCommand(target, ["--version"], undefined, false)
|
|
85
|
+
command: npmCommand(target, ["--version"], false)
|
|
112
86
|
}),
|
|
113
87
|
npmAuthOperation(target),
|
|
114
88
|
...(target.trustedPublishing?.verifyPackageExists === true ? [npmPackageExistsOperation(target)] : []),
|
|
@@ -118,16 +92,14 @@ export const planNpmOperations = Effect.fn("planNpmOperations")(function* (targe
|
|
|
118
92
|
targetId: target.id,
|
|
119
93
|
description: `Publish ${target.packageName}@${model.identity.version} to npm.`,
|
|
120
94
|
risk: "irreversible",
|
|
121
|
-
|
|
122
|
-
command: npmCommand(target, npmPublishArgs(target), undefined, true)
|
|
95
|
+
command: npmCommand(target, npmPublishArgs(target), true)
|
|
123
96
|
}),
|
|
124
97
|
VerifyRemoteOperation.make({
|
|
125
98
|
id: `${target.id}:npm-version-verify`,
|
|
126
99
|
targetId: target.id,
|
|
127
100
|
description: `Verify ${target.packageName}@${model.identity.version} exists on npm.`,
|
|
128
101
|
risk: "read-only",
|
|
129
|
-
|
|
130
|
-
command: npmCommand(target, ["view", `${target.packageName}@${model.identity.version}`, "version", "--registry", target.registry], undefined, false)
|
|
102
|
+
command: npmCommand(target, ["view", `${target.packageName}@${model.identity.version}`, "version", "--registry", target.registry], false)
|
|
131
103
|
})
|
|
132
104
|
];
|
|
133
105
|
return operations;
|
package/dist/targets/npm.js.map
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"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"}
|
package/dist/targets/pypi.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import { PublishCommandOperation
|
|
2
|
+
import { PublishCommandOperation } from "../domain/operation.js";
|
|
3
3
|
import { ReleaseModel } from "../domain/release.js";
|
|
4
4
|
import { PyPiRegistryTarget, TargetCapabilities } from "../domain/target.js";
|
|
5
5
|
import { PlanConstructionError } from "../planner/errors.js";
|
|
6
6
|
import { PyPiTargetAdapter } from "./adapter.js";
|
|
7
7
|
export type * from "../types/effect-internal.js";
|
|
8
8
|
export declare const pypiTargetCapabilities: (target: PyPiRegistryTarget) => TargetCapabilities;
|
|
9
|
-
export declare const planPyPiOperations: (target: PyPiRegistryTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], PlanConstructionError, never>;
|
|
9
|
+
export declare const planPyPiOperations: (target: PyPiRegistryTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], PlanConstructionError, never>;
|
|
10
10
|
export declare const PyPiAdapter: PyPiTargetAdapter;
|
|
11
11
|
//# sourceMappingURL=pypi.d.ts.map
|
|
@@ -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,
|
|
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"}
|