@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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import { ArtifactInventoryItem, Checksum } from "../domain/artifact.js";
|
|
3
|
-
import { CommandSpec, PublishCommandOperation, ValidationNoteOperation } from "../domain/operation.js";
|
|
2
|
+
import { ArtifactArchitecture, ArtifactInventoryItem, ArtifactLibc, ArtifactOperatingSystem, Checksum } from "../domain/artifact.js";
|
|
3
|
+
import { CommandSpec, PublishCommandOperation, ValidateCommandOperation, ValidationNoteOperation } from "../domain/operation.js";
|
|
4
4
|
import { ReleaseModel } from "../domain/release.js";
|
|
5
|
-
import { TargetCapabilities, TargetConfig, TargetDryRunSupport, TargetMutability, TargetValidationStrategy } from "../domain/target.js";
|
|
5
|
+
import { TargetAuthSetup, TargetCapabilities, TargetConfig, TargetDryRunSupport, TargetMutability, TargetValidationStrategy } from "../domain/target.js";
|
|
6
6
|
import { PlanConstructionError } from "../planner/errors.js";
|
|
7
7
|
export type * from "../types/effect-internal.js";
|
|
8
8
|
interface DryRunValidationNoteOptions {
|
|
@@ -14,11 +14,34 @@ interface DryRunValidationNoteOptions {
|
|
|
14
14
|
readonly simulatedMessage: string;
|
|
15
15
|
readonly skippedMessage: string;
|
|
16
16
|
}
|
|
17
|
+
interface ReadOnlyCommandValidationOptions {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly targetId: string;
|
|
20
|
+
readonly description: string;
|
|
21
|
+
readonly command: CommandSpec;
|
|
22
|
+
}
|
|
23
|
+
interface DryRunValidationOperationOptions extends Omit<DryRunValidationNoteOptions, "dryRunSupport"> {
|
|
24
|
+
readonly dryRunSupport: TargetDryRunSupport;
|
|
25
|
+
readonly nativeDescription: string;
|
|
26
|
+
readonly command: CommandSpec;
|
|
27
|
+
}
|
|
17
28
|
interface ArtifactErrorReasons {
|
|
18
29
|
readonly targetId: string;
|
|
19
30
|
readonly directoryReason: string;
|
|
20
31
|
readonly checksumReason: string;
|
|
21
32
|
}
|
|
33
|
+
export interface ArtifactVariantCriteria {
|
|
34
|
+
readonly os?: ArtifactOperatingSystem | undefined;
|
|
35
|
+
readonly arch?: ArtifactArchitecture | undefined;
|
|
36
|
+
readonly libc?: ArtifactLibc | undefined;
|
|
37
|
+
readonly binaryName?: string | undefined;
|
|
38
|
+
readonly executableExtension?: string | undefined;
|
|
39
|
+
readonly installPath?: string | undefined;
|
|
40
|
+
readonly targetTriple?: string | undefined;
|
|
41
|
+
}
|
|
42
|
+
interface ArtifactInventory {
|
|
43
|
+
readonly artifacts: ReadonlyArray<ArtifactInventoryItem>;
|
|
44
|
+
}
|
|
22
45
|
interface UnsupportedCatalogTokenEnvOptions {
|
|
23
46
|
readonly targetId: string;
|
|
24
47
|
readonly targetLabel: string;
|
|
@@ -30,18 +53,25 @@ interface CatalogGitPushOperationOptions {
|
|
|
30
53
|
readonly description: string;
|
|
31
54
|
readonly mutability: TargetMutability;
|
|
32
55
|
readonly directory: string | undefined;
|
|
33
|
-
|
|
34
|
-
|
|
56
|
+
}
|
|
57
|
+
interface CatalogGitPublishOperationOptions extends CatalogGitPushOperationOptions {
|
|
58
|
+
readonly filePath: string;
|
|
59
|
+
readonly commitMessage: string;
|
|
35
60
|
}
|
|
36
61
|
export declare const noAuthCommand: (executable: string, args: ReadonlyArray<string>) => CommandSpec;
|
|
37
62
|
export declare const catalogPathBaseName: (pathName: string) => string;
|
|
38
63
|
export declare const rejectUnsupportedCatalogTokenEnv: (options: UnsupportedCatalogTokenEnvOptions) => Effect.Effect<undefined, PlanConstructionError, never>;
|
|
39
64
|
export declare const catalogGitPushOperation: (options: CatalogGitPushOperationOptions) => PublishCommandOperation;
|
|
65
|
+
export declare const catalogGitPublishOperations: (options: CatalogGitPublishOperationOptions) => ReadonlyArray<PublishCommandOperation>;
|
|
40
66
|
export declare const validationStrategyForDryRun: (dryRunSupport: TargetDryRunSupport) => TargetValidationStrategy;
|
|
41
|
-
export declare const targetCapabilitiesFor: (target: TargetConfig, validationStrategy: TargetValidationStrategy) => TargetCapabilities;
|
|
67
|
+
export declare const targetCapabilitiesFor: (target: TargetConfig, validationStrategy: TargetValidationStrategy, authSetup?: TargetAuthSetup | undefined) => TargetCapabilities;
|
|
68
|
+
export declare const readOnlyCommandValidationOperation: (options: ReadOnlyCommandValidationOptions) => ValidateCommandOperation;
|
|
42
69
|
export declare const validationNoteOperation: (options: DryRunValidationNoteOptions) => ValidationNoteOperation;
|
|
70
|
+
export declare const dryRunValidationOperation: (options: DryRunValidationOperationOptions) => ValidateCommandOperation | ValidationNoteOperation;
|
|
43
71
|
export declare const rejectNoDryRunInStrictMode: (target: import("../domain/target.js").NpmRegistryTarget | import("../domain/target.js").GitHubReleaseTarget | import("../domain/target.js").HomebrewTapTarget | import("../domain/target.js").PyPiRegistryTarget | import("../domain/target.js").ScoopBucketTarget, model: ReleaseModel, reason: string) => Effect.Effect<undefined, PlanConstructionError, never>;
|
|
44
72
|
export declare const findRequiredArtifact: (model: ReleaseModel, targetId: string, artifactId: string, missingReason: string) => Effect.Effect<ArtifactInventoryItem, PlanConstructionError, never>;
|
|
73
|
+
export declare const findArtifactsByVariant: (model: ArtifactInventory, criteria: ArtifactVariantCriteria) => ReadonlyArray<ArtifactInventoryItem>;
|
|
74
|
+
export declare const findRequiredArtifactVariant: (model: ArtifactInventory, targetId: string, criteria: ArtifactVariantCriteria, missingReason: string, multipleReason?: string | undefined) => Effect.Effect<ArtifactInventoryItem, PlanConstructionError, never>;
|
|
45
75
|
export declare const requireSha256FileArtifact: (artifact: ArtifactInventoryItem, reasons: ArtifactErrorReasons) => Effect.Effect<{
|
|
46
76
|
artifact: ArtifactInventoryItem;
|
|
47
77
|
checksum: Checksum;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-helpers.d.ts","sourceRoot":"","sources":["../../src/targets/adapter-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"adapter-helpers.d.ts","sourceRoot":"","sources":["../../src/targets/adapter-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import { CommandSpec, PublishCommandOperation,
|
|
2
|
+
import { CommandSpec, PublishCommandOperation, ValidateCommandOperation, ValidationNoteOperation } from "../domain/operation.js";
|
|
3
3
|
import { TargetCapabilities, targetAuthRequirement } from "../domain/target.js";
|
|
4
4
|
import { PlanConstructionError } from "../planner/errors.js";
|
|
5
5
|
export const noAuthCommand = (executable, args) => CommandSpec.make({
|
|
@@ -27,12 +27,48 @@ export const catalogGitPushOperation = (options) => {
|
|
|
27
27
|
targetId: options.targetId,
|
|
28
28
|
description: options.description,
|
|
29
29
|
risk: publishRisk,
|
|
30
|
-
gate: publishRisk === "irreversible"
|
|
31
|
-
? irreversibleGate(options.irreversibleReason)
|
|
32
|
-
: executeGate(options.externallyVisibleReason),
|
|
33
30
|
command: noAuthCommand("git", ["-C", options.directory ?? ".", "push"])
|
|
34
31
|
});
|
|
35
32
|
};
|
|
33
|
+
const catalogFilePath = (filePath, directory) => {
|
|
34
|
+
if (directory === undefined) {
|
|
35
|
+
return filePath;
|
|
36
|
+
}
|
|
37
|
+
const normalizedFilePath = filePath.replaceAll("\\", "/");
|
|
38
|
+
const normalizedDirectory = directory.replaceAll("\\", "/").replace(/\/+$/, "");
|
|
39
|
+
const prefix = `${normalizedDirectory}/`;
|
|
40
|
+
return normalizedFilePath.startsWith(prefix)
|
|
41
|
+
? normalizedFilePath.slice(prefix.length)
|
|
42
|
+
: filePath;
|
|
43
|
+
};
|
|
44
|
+
export const catalogGitPublishOperations = (options) => [
|
|
45
|
+
PublishCommandOperation.make({
|
|
46
|
+
id: `${options.id}:add`,
|
|
47
|
+
targetId: options.targetId,
|
|
48
|
+
description: `Stage ${catalogPathBaseName(options.filePath)} for ${options.targetId}.`,
|
|
49
|
+
risk: "writes-local",
|
|
50
|
+
command: noAuthCommand("git", [
|
|
51
|
+
"-C",
|
|
52
|
+
options.directory ?? ".",
|
|
53
|
+
"add",
|
|
54
|
+
catalogFilePath(options.filePath, options.directory)
|
|
55
|
+
])
|
|
56
|
+
}),
|
|
57
|
+
PublishCommandOperation.make({
|
|
58
|
+
id: `${options.id}:commit`,
|
|
59
|
+
targetId: options.targetId,
|
|
60
|
+
description: `Commit ${catalogPathBaseName(options.filePath)} for ${options.targetId}.`,
|
|
61
|
+
risk: "writes-local",
|
|
62
|
+
command: noAuthCommand("git", [
|
|
63
|
+
"-C",
|
|
64
|
+
options.directory ?? ".",
|
|
65
|
+
"commit",
|
|
66
|
+
"-m",
|
|
67
|
+
options.commitMessage
|
|
68
|
+
])
|
|
69
|
+
}),
|
|
70
|
+
catalogGitPushOperation(options)
|
|
71
|
+
];
|
|
36
72
|
export const validationStrategyForDryRun = (dryRunSupport) => {
|
|
37
73
|
if (dryRunSupport === "native") {
|
|
38
74
|
return "native-command";
|
|
@@ -42,25 +78,48 @@ export const validationStrategyForDryRun = (dryRunSupport) => {
|
|
|
42
78
|
}
|
|
43
79
|
return "skipped";
|
|
44
80
|
};
|
|
45
|
-
export const targetCapabilitiesFor = (target, validationStrategy) => TargetCapabilities.make({
|
|
81
|
+
export const targetCapabilitiesFor = (target, validationStrategy, authSetup) => TargetCapabilities.make({
|
|
46
82
|
targetId: target.id,
|
|
47
83
|
targetTag: target._tag,
|
|
48
84
|
authRequirement: targetAuthRequirement(target),
|
|
49
85
|
dryRunSupport: target.dryRunSupport,
|
|
50
86
|
mutability: target.mutability,
|
|
51
87
|
recovery: target.recovery,
|
|
52
|
-
validationStrategy
|
|
88
|
+
validationStrategy,
|
|
89
|
+
...(authSetup === undefined ? {} : { authSetup })
|
|
90
|
+
});
|
|
91
|
+
export const readOnlyCommandValidationOperation = (options) => ValidateCommandOperation.make({
|
|
92
|
+
id: options.id,
|
|
93
|
+
targetId: options.targetId,
|
|
94
|
+
description: options.description,
|
|
95
|
+
risk: "read-only",
|
|
96
|
+
command: options.command
|
|
53
97
|
});
|
|
54
98
|
export const validationNoteOperation = (options) => ValidationNoteOperation.make({
|
|
55
99
|
id: options.id,
|
|
56
100
|
targetId: options.targetId,
|
|
57
101
|
description: options.dryRunSupport === "simulated" ? options.simulatedDescription : options.skippedDescription,
|
|
58
102
|
risk: "read-only",
|
|
59
|
-
gate: noApprovalGate("Validation notes do not modify local or remote state."),
|
|
60
103
|
message: options.dryRunSupport === "simulated" ? options.simulatedMessage : options.skippedMessage,
|
|
61
104
|
skipped: options.dryRunSupport === "none",
|
|
62
105
|
severity: options.dryRunSupport === "simulated" ? "info" : "warning"
|
|
63
106
|
});
|
|
107
|
+
export const dryRunValidationOperation = (options) => options.dryRunSupport === "native"
|
|
108
|
+
? readOnlyCommandValidationOperation({
|
|
109
|
+
id: options.id,
|
|
110
|
+
targetId: options.targetId,
|
|
111
|
+
description: options.nativeDescription,
|
|
112
|
+
command: options.command
|
|
113
|
+
})
|
|
114
|
+
: validationNoteOperation({
|
|
115
|
+
id: options.id,
|
|
116
|
+
targetId: options.targetId,
|
|
117
|
+
dryRunSupport: options.dryRunSupport,
|
|
118
|
+
simulatedDescription: options.simulatedDescription,
|
|
119
|
+
skippedDescription: options.skippedDescription,
|
|
120
|
+
simulatedMessage: options.simulatedMessage,
|
|
121
|
+
skippedMessage: options.skippedMessage
|
|
122
|
+
});
|
|
64
123
|
export const rejectNoDryRunInStrictMode = Effect.fn("rejectNoDryRunInStrictMode")(function* (target, model, reason) {
|
|
65
124
|
if (model.strict && target.dryRunSupport === "none") {
|
|
66
125
|
return yield* Effect.fail(PlanConstructionError.make({
|
|
@@ -79,6 +138,43 @@ export const findRequiredArtifact = Effect.fn("findRequiredArtifact")(function*
|
|
|
79
138
|
}
|
|
80
139
|
return artifact;
|
|
81
140
|
});
|
|
141
|
+
const artifactMatchesVariantCriteria = (artifact, criteria) => {
|
|
142
|
+
const variant = artifact.variant;
|
|
143
|
+
if (variant === undefined) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
return (criteria.os === undefined || variant.os === criteria.os) &&
|
|
147
|
+
(criteria.arch === undefined || variant.arch === criteria.arch) &&
|
|
148
|
+
(criteria.libc === undefined || variant.libc === criteria.libc) &&
|
|
149
|
+
(criteria.binaryName === undefined || variant.binaryName === criteria.binaryName) &&
|
|
150
|
+
(criteria.executableExtension === undefined || variant.executableExtension === criteria.executableExtension) &&
|
|
151
|
+
(criteria.installPath === undefined || variant.installPath === criteria.installPath) &&
|
|
152
|
+
(criteria.targetTriple === undefined || variant.targetTriple === criteria.targetTriple);
|
|
153
|
+
};
|
|
154
|
+
export const findArtifactsByVariant = (model, criteria) => model.artifacts.filter((artifact) => artifactMatchesVariantCriteria(artifact, criteria));
|
|
155
|
+
export const findRequiredArtifactVariant = Effect.fn("findRequiredArtifactVariant")(function* (model, targetId, criteria, missingReason, multipleReason = "Multiple artifacts matched the requested installable variant.") {
|
|
156
|
+
const artifacts = findArtifactsByVariant(model, criteria);
|
|
157
|
+
if (artifacts.length === 0) {
|
|
158
|
+
return yield* Effect.fail(PlanConstructionError.make({
|
|
159
|
+
targetId,
|
|
160
|
+
reason: missingReason
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
if (artifacts.length > 1) {
|
|
164
|
+
return yield* Effect.fail(PlanConstructionError.make({
|
|
165
|
+
targetId,
|
|
166
|
+
reason: multipleReason
|
|
167
|
+
}));
|
|
168
|
+
}
|
|
169
|
+
const artifact = artifacts[0];
|
|
170
|
+
if (artifact === undefined) {
|
|
171
|
+
return yield* Effect.fail(PlanConstructionError.make({
|
|
172
|
+
targetId,
|
|
173
|
+
reason: missingReason
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
return artifact;
|
|
177
|
+
});
|
|
82
178
|
export const requireSha256FileArtifact = Effect.fn("requireSha256FileArtifact")(function* (artifact, reasons) {
|
|
83
179
|
if (artifact.format === "directory") {
|
|
84
180
|
return yield* Effect.fail(PlanConstructionError.make({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-helpers.js","sourceRoot":"","sources":["../../src/targets/adapter-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"adapter-helpers.js","sourceRoot":"","sources":["../../src/targets/adapter-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/targets/github.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import { PublishCommandOperation,
|
|
2
|
+
import { PublishCommandOperation, VerifyHttpOperation, VerifyRemoteOperation } from "../domain/operation.js";
|
|
3
3
|
import { ReleaseModel } from "../domain/release.js";
|
|
4
4
|
import { GitHubReleaseTarget, TargetCapabilities } from "../domain/target.js";
|
|
5
5
|
import { PlanConstructionError } from "../planner/errors.js";
|
|
6
6
|
import { GitHubTargetAdapter } from "./adapter.js";
|
|
7
7
|
export type * from "../types/effect-internal.js";
|
|
8
8
|
export declare const githubTargetCapabilities: (target: GitHubReleaseTarget) => TargetCapabilities;
|
|
9
|
-
export declare const planGitHubOperations: (target: GitHubReleaseTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | VerifyRemoteOperation | VerifyHttpOperation)[], PlanConstructionError, never>;
|
|
9
|
+
export declare const planGitHubOperations: (target: GitHubReleaseTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | VerifyRemoteOperation | VerifyHttpOperation)[], PlanConstructionError, never>;
|
|
10
10
|
export declare const GitHubAdapter: GitHubTargetAdapter;
|
|
11
11
|
//# sourceMappingURL=github.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAIL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAGnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAmBlD,mBAAmB,6BAA6B,CAAA;AAKhD,eAAO,MAAM,wBAAwB,GAAI,QAAQ,mBAAmB,KAAG,kBACN,CAAA;AA2FjE,eAAO,MAAM,oBAAoB,4VA4C/B,CAAA;AAEF,eAAO,MAAM,aAAa,EAAE,mBAI3B,CAAA"}
|
package/dist/targets/github.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import {
|
|
2
|
+
import { HttpJsonArrayObjectFieldEqualsCheck, HttpJsonEqualsCheck, PublishCommandOperation, VerifyHttpOperation, VerifyRemoteOperation } from "../domain/operation.js";
|
|
3
3
|
import { PlanConstructionError } from "../planner/errors.js";
|
|
4
|
-
import { rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation } from "./adapter-helpers.js";
|
|
4
|
+
import { readOnlyCommandValidationOperation, rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation } from "./adapter-helpers.js";
|
|
5
5
|
import { githubGhCommand, githubReleaseAssetName, githubReleaseCreateCommand, githubReleaseRequestSpec, githubReleaseTag, githubReleaseTitle, githubReleaseViewCommand, githubTargetArtifacts } from "./github-release.js";
|
|
6
6
|
const githubValidationStrategy = (target) => target.dryRunSupport === "none" ? "skipped" : "simulated-plan";
|
|
7
7
|
export const githubTargetCapabilities = (target) => targetCapabilitiesFor(target, githubValidationStrategy(target));
|
|
@@ -23,7 +23,6 @@ const githubVerificationOperations = (target, model) => {
|
|
|
23
23
|
targetId: target.id,
|
|
24
24
|
description: "Verify the GitHub draft release through the GitHub CLI.",
|
|
25
25
|
risk: "read-only",
|
|
26
|
-
gate: noApprovalGate("GitHub CLI release verification is read-only."),
|
|
27
26
|
command: githubReleaseViewCommand(target, model)
|
|
28
27
|
})
|
|
29
28
|
];
|
|
@@ -42,7 +41,6 @@ const githubVerificationOperations = (target, model) => {
|
|
|
42
41
|
targetId: target.id,
|
|
43
42
|
description: "Verify the GitHub release through the GitHub API.",
|
|
44
43
|
risk: "read-only",
|
|
45
|
-
gate: noApprovalGate("GitHub API release verification is read-only."),
|
|
46
44
|
request: githubReleaseRequestSpec(target, tag),
|
|
47
45
|
expectedStatus: 200,
|
|
48
46
|
checks: [
|
|
@@ -87,24 +85,17 @@ export const planGitHubOperations = Effect.fn("planGitHubOperations")(function*
|
|
|
87
85
|
yield* rejectNoDryRunInStrictMode(target, model, "GitHub release target declares no dry-run support in strict mode.");
|
|
88
86
|
yield* rejectDirectoryAssets(target, model);
|
|
89
87
|
const publishRisk = target.mutability === "immutable" ? "irreversible" : "externally-visible";
|
|
90
|
-
const publishGate = publishRisk === "irreversible"
|
|
91
|
-
? irreversibleGate("Creating this GitHub release is externally visible and configured as immutable.")
|
|
92
|
-
: executeGate("Creating or updating a GitHub release is externally visible.");
|
|
93
88
|
return [
|
|
94
|
-
|
|
89
|
+
readOnlyCommandValidationOperation({
|
|
95
90
|
id: `${target.id}:gh-version`,
|
|
96
91
|
targetId: target.id,
|
|
97
92
|
description: "Check GitHub CLI availability.",
|
|
98
|
-
risk: "read-only",
|
|
99
|
-
gate: noApprovalGate("CLI availability validation is read-only."),
|
|
100
93
|
command: githubGhCommand(target, ["--version"], false)
|
|
101
94
|
}),
|
|
102
|
-
|
|
95
|
+
readOnlyCommandValidationOperation({
|
|
103
96
|
id: `${target.id}:gh-auth-status`,
|
|
104
97
|
targetId: target.id,
|
|
105
98
|
description: "Validate GitHub CLI authentication.",
|
|
106
|
-
risk: "read-only",
|
|
107
|
-
gate: noApprovalGate("gh auth status checks authentication without publishing."),
|
|
108
99
|
command: githubGhCommand(target, ["auth", "status"], true)
|
|
109
100
|
}),
|
|
110
101
|
githubDryRunOperation(target, dryRunSupport),
|
|
@@ -113,7 +104,6 @@ export const planGitHubOperations = Effect.fn("planGitHubOperations")(function*
|
|
|
113
104
|
targetId: target.id,
|
|
114
105
|
description: `Create GitHub release for ${model.identity.name}@${model.identity.version}.`,
|
|
115
106
|
risk: publishRisk,
|
|
116
|
-
gate: publishGate,
|
|
117
107
|
command: githubReleaseCreateCommand(target, model)
|
|
118
108
|
}),
|
|
119
109
|
...githubVerificationOperations(target, model)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import { RenderFileOperation
|
|
2
|
+
import { RenderFileOperation } from "../domain/operation.js";
|
|
3
3
|
import { ReleaseModel } from "../domain/release.js";
|
|
4
4
|
import { HomebrewTapTarget, TargetCapabilities } from "../domain/target.js";
|
|
5
5
|
import { PlanConstructionError } from "../planner/errors.js";
|
|
6
6
|
import { HomebrewTargetAdapter } from "./adapter.js";
|
|
7
7
|
export type * from "../types/effect-internal.js";
|
|
8
8
|
export declare const homebrewTargetCapabilities: (target: HomebrewTapTarget) => TargetCapabilities;
|
|
9
|
-
export declare const planHomebrewOperations: (target: HomebrewTapTarget, model: ReleaseModel) => Effect.Effect<(RenderFileOperation | ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | import("../domain/operation.js").PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], PlanConstructionError, never>;
|
|
9
|
+
export declare const planHomebrewOperations: (target: HomebrewTapTarget, model: ReleaseModel) => Effect.Effect<(RenderFileOperation | import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | import("../domain/operation.js").PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], PlanConstructionError, never>;
|
|
10
10
|
export declare const HomebrewAdapter: HomebrewTargetAdapter;
|
|
11
11
|
//# sourceMappingURL=homebrew.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homebrew.d.ts","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"homebrew.d.ts","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAMvC,OAAO,EAEL,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAepD,mBAAmB,6BAA6B,CAAA;AAUhD,eAAO,MAAM,0BAA0B,GAAI,QAAQ,iBAAiB,KAAG,kBACW,CAAA;AAyOlF,eAAO,MAAM,sBAAsB,4ZA4CjC,CAAA;AAEF,eAAO,MAAM,eAAe,EAAE,qBAI7B,CAAA"}
|