@mannyc1/ts-release 0.0.0 → 0.0.2
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 +53 -0
- package/README.md +243 -43
- package/SPEC.md +8 -1
- package/dist/cli/command.d.ts +1 -1
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js +116 -33
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/main.js +3 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/domain/evidence.d.ts +49 -3
- package/dist/domain/evidence.d.ts.map +1 -1
- package/dist/domain/evidence.js +43 -2
- package/dist/domain/evidence.js.map +1 -1
- package/dist/domain/operation.d.ts +56 -2
- package/dist/domain/operation.d.ts.map +1 -1
- package/dist/domain/operation.js +78 -2
- package/dist/domain/operation.js.map +1 -1
- package/dist/domain/release.d.ts +4 -4
- package/dist/domain/remote-state.d.ts +90 -0
- package/dist/domain/remote-state.d.ts.map +1 -0
- package/dist/domain/remote-state.js +85 -0
- package/dist/domain/remote-state.js.map +1 -0
- package/dist/domain/status.d.ts +43 -0
- package/dist/domain/status.d.ts.map +1 -0
- package/dist/domain/status.js +50 -0
- package/dist/domain/status.js.map +1 -0
- package/dist/domain/target.d.ts +63 -3
- package/dist/domain/target.d.ts.map +1 -1
- package/dist/domain/target.js +75 -5
- package/dist/domain/target.js.map +1 -1
- package/dist/host/host.d.ts +7 -23
- package/dist/host/host.d.ts.map +1 -1
- package/dist/host/host.js +3 -22
- package/dist/host/host.js.map +1 -1
- package/dist/host/http-live.d.ts +6 -0
- package/dist/host/http-live.d.ts.map +1 -0
- package/dist/host/http-live.js +82 -0
- package/dist/host/http-live.js.map +1 -0
- package/dist/host/http.d.ts +40 -0
- package/dist/host/http.d.ts.map +1 -0
- package/dist/host/http.js +56 -0
- package/dist/host/http.js.map +1 -0
- package/dist/host/platform.d.ts +10 -0
- package/dist/host/platform.d.ts.map +1 -0
- package/dist/host/platform.js +121 -0
- package/dist/host/platform.js.map +1 -0
- package/dist/host/test.d.ts +6 -3
- package/dist/host/test.d.ts.map +1 -1
- package/dist/host/test.js +111 -25
- package/dist/host/test.js.map +1 -1
- package/dist/planner/artifact-inventory.d.ts +9 -0
- package/dist/planner/artifact-inventory.d.ts.map +1 -0
- package/dist/planner/artifact-inventory.js +66 -0
- package/dist/planner/artifact-inventory.js.map +1 -0
- package/dist/planner/create-release-plan.d.ts +1 -1
- package/dist/planner/create-release-plan.d.ts.map +1 -1
- package/dist/planner/errors.d.ts +41 -3
- package/dist/planner/errors.d.ts.map +1 -1
- package/dist/planner/errors.js +35 -3
- package/dist/planner/errors.js.map +1 -1
- package/dist/planner/evidence-recorder.d.ts +16 -8
- package/dist/planner/evidence-recorder.d.ts.map +1 -1
- package/dist/planner/evidence-recorder.js +244 -17
- package/dist/planner/evidence-recorder.js.map +1 -1
- package/dist/planner/executor.d.ts +54 -15
- package/dist/planner/executor.d.ts.map +1 -1
- package/dist/planner/executor.js +117 -38
- package/dist/planner/executor.js.map +1 -1
- package/dist/planner/normalize-release.d.ts +2 -2
- package/dist/planner/normalize-release.d.ts.map +1 -1
- package/dist/planner/normalize-release.js +80 -42
- package/dist/planner/normalize-release.js.map +1 -1
- package/dist/planner/reconcile.d.ts +17 -0
- package/dist/planner/reconcile.d.ts.map +1 -0
- package/dist/planner/reconcile.js +280 -0
- package/dist/planner/reconcile.js.map +1 -0
- package/dist/planner/release-eligibility.d.ts +33 -0
- package/dist/planner/release-eligibility.d.ts.map +1 -0
- package/dist/planner/release-eligibility.js +172 -0
- package/dist/planner/release-eligibility.js.map +1 -0
- package/dist/planner/render-plan.d.ts.map +1 -1
- package/dist/planner/render-plan.js +30 -0
- package/dist/planner/render-plan.js.map +1 -1
- package/dist/planner/status.d.ts +40 -0
- package/dist/planner/status.d.ts.map +1 -0
- package/dist/planner/status.js +336 -0
- package/dist/planner/status.js.map +1 -0
- package/dist/runtime/bun.d.ts +9 -0
- package/dist/runtime/bun.d.ts.map +1 -0
- package/dist/runtime/bun.js +10 -0
- package/dist/runtime/bun.js.map +1 -0
- package/dist/targets/adapter-helpers.d.ts +31 -0
- package/dist/targets/adapter-helpers.d.ts.map +1 -0
- package/dist/targets/adapter-helpers.js +67 -0
- package/dist/targets/adapter-helpers.js.map +1 -0
- package/dist/targets/adapter.d.ts +3 -1
- package/dist/targets/adapter.d.ts.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 +74 -83
- 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 +45 -75
- package/dist/targets/homebrew.js.map +1 -1
- package/dist/targets/live.d.ts.map +1 -1
- package/dist/targets/live.js +10 -0
- package/dist/targets/live.js.map +1 -1
- package/dist/targets/npm.d.ts +2 -3
- package/dist/targets/npm.d.ts.map +1 -1
- package/dist/targets/npm.js +90 -55
- package/dist/targets/npm.js.map +1 -1
- package/dist/targets/pypi.d.ts +11 -0
- package/dist/targets/pypi.d.ts.map +1 -0
- package/dist/targets/pypi.js +115 -0
- package/dist/targets/pypi.js.map +1 -0
- package/dist/targets/registry.d.ts +3 -3
- package/dist/targets/registry.d.ts.map +1 -1
- package/dist/targets/scoop.d.ts +11 -0
- package/dist/targets/scoop.d.ts.map +1 -0
- package/dist/targets/scoop.js +93 -0
- package/dist/targets/scoop.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/dist/workflows/config.d.ts +81 -0
- package/dist/workflows/config.d.ts.map +1 -0
- package/dist/workflows/config.js +191 -0
- package/dist/workflows/config.js.map +1 -0
- package/dist/workflows/evidence.d.ts +21 -0
- package/dist/workflows/evidence.d.ts.map +1 -0
- package/dist/workflows/evidence.js +45 -0
- package/dist/workflows/evidence.js.map +1 -0
- package/dist/workflows/live.d.ts +7 -0
- package/dist/workflows/live.d.ts.map +1 -0
- package/dist/workflows/live.js +5 -0
- package/dist/workflows/live.js.map +1 -0
- package/examples/README.md +20 -3
- package/examples/github-release/release.config.json +2 -1
- package/examples/multi-target/artifacts/release-example-multi-target-0.1.0.tgz +1 -0
- package/examples/multi-target/index.js +1 -0
- package/examples/multi-target/package.json +7 -0
- package/examples/multi-target/release.config.json +67 -0
- package/examples/non-strict-skips/release.config.json +1 -0
- package/examples/npm-first-publish/release.config.json +32 -0
- package/examples/npm-only/release.config.json +6 -1
- package/examples/pypi-registry/artifacts/release_example_pypi-0.1.0-py3-none-any.whl +1 -0
- package/examples/pypi-registry/release.config.json +30 -0
- package/examples/scoop-bucket/artifacts/release-example-scoop-0.1.0.zip +1 -0
- package/examples/scoop-bucket/release.config.json +36 -0
- package/package.json +48 -9
- package/dist/cli/programmatic.d.ts +0 -25
- package/dist/cli/programmatic.d.ts.map +0 -1
- package/dist/cli/programmatic.js +0 -48
- package/dist/cli/programmatic.js.map +0 -1
- package/dist/host/bun.d.ts +0 -9
- package/dist/host/bun.d.ts.map +0 -1
- package/dist/host/bun.js +0 -156
- package/dist/host/bun.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pypi.js","sourceRoot":"","sources":["../../src/targets/pypi.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,8 @@ export interface TargetRegistryShape {
|
|
|
18
18
|
declare const TargetRegistry_base: Context.ServiceClass<TargetRegistry, "TargetRegistry", TargetRegistryShape>;
|
|
19
19
|
export declare class TargetRegistry extends TargetRegistry_base {
|
|
20
20
|
}
|
|
21
|
-
export declare const targetCapabilities: (target: import("../domain/target.js").NpmRegistryTarget | import("../domain/target.js").GitHubReleaseTarget | import("../domain/target.js").HomebrewTapTarget) => Effect.Effect<TargetCapabilities, never, TargetRegistry>;
|
|
21
|
+
export declare const targetCapabilities: (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) => Effect.Effect<TargetCapabilities, never, TargetRegistry>;
|
|
22
22
|
export declare const allTargetCapabilities: (model: ReleaseModel) => Effect.Effect<TargetCapabilities[], never, TargetRegistry>;
|
|
23
|
-
export declare const planTargetOperations: (target: import("../domain/target.js").NpmRegistryTarget | import("../domain/target.js").GitHubReleaseTarget | import("../domain/target.js").HomebrewTapTarget, model: ReleaseModel) => Effect.Effect<readonly (import("../domain/operation.js").RenderFileOperation | import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | import("../domain/operation.js").PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation)[], PlanConstructionError | MissingTargetAdapterError, TargetRegistry>;
|
|
24
|
-
export declare const planAllTargetOperations: (model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | import("../domain/operation.js").PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation)[], PlanConstructionError | MissingTargetAdapterError, TargetRegistry>;
|
|
23
|
+
export declare const planTargetOperations: (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) => Effect.Effect<readonly (import("../domain/operation.js").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 | MissingTargetAdapterError, TargetRegistry>;
|
|
24
|
+
export declare const planAllTargetOperations: (model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").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 | MissingTargetAdapterError, TargetRegistry>;
|
|
25
25
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/targets/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAA2B,MAAM,qBAAqB,CAAA;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,mBAAmB,6BAA6B,CAAA;;;;AAEhD,qBAAa,yBAA0B,SAAQ,8BAK9C;CAAG;AAEJ,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,kBAAkB,CAAA;IACzE,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,KAChB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,qBAAqB,CAAC,CAAA;CAChG;;AAED,qBAAa,cAAe,SAAQ,mBAAwE;CAAG;AAE/G,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/targets/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAA2B,MAAM,qBAAqB,CAAA;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,mBAAmB,6BAA6B,CAAA;;;;AAEhD,qBAAa,yBAA0B,SAAQ,8BAK9C;CAAG;AAEJ,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,kBAAkB,CAAA;IACzE,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,KAChB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,qBAAqB,CAAC,CAAA;CAChG;;AAED,qBAAa,cAAe,SAAQ,mBAAwE;CAAG;AAE/G,eAAO,MAAM,kBAAkB,kUAG7B,CAAA;AAEF,eAAO,MAAM,qBAAqB,qFAMhC,CAAA;AAEF,eAAO,MAAM,oBAAoB,otBAG/B,CAAA;AAEF,eAAO,MAAM,uBAAuB,ucASlC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { PublishCommandOperation, RenderFileOperation } from "../domain/operation.js";
|
|
3
|
+
import { ReleaseModel } from "../domain/release.js";
|
|
4
|
+
import { ScoopBucketTarget, TargetCapabilities } from "../domain/target.js";
|
|
5
|
+
import { PlanConstructionError } from "../planner/errors.js";
|
|
6
|
+
import { ScoopTargetAdapter } from "./adapter.js";
|
|
7
|
+
export type * from "../types/effect-internal.js";
|
|
8
|
+
export declare const scoopTargetCapabilities: (target: ScoopBucketTarget) => TargetCapabilities;
|
|
9
|
+
export declare const planScoopOperations: (target: ScoopBucketTarget, model: ReleaseModel) => Effect.Effect<(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
|
+
export declare const ScoopAdapter: ScoopTargetAdapter;
|
|
11
|
+
//# sourceMappingURL=scoop.d.ts.map
|
|
@@ -0,0 +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,EAML,uBAAuB,EACvB,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;AAUjD,mBAAmB,6BAA6B,CAAA;AAyBhD,eAAO,MAAM,uBAAuB,GAAI,QAAQ,iBAAiB,KAAG,kBACc,CAAA;AA0DlF,eAAO,MAAM,mBAAmB,2XA2C9B,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,kBAI1B,CAAA"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { CommandSpec, executeGate, irreversibleGate, PublishCommandOperation, RenderFileOperation, } from "../domain/operation.js";
|
|
3
|
+
import { PlanConstructionError } from "../planner/errors.js";
|
|
4
|
+
import { findRequiredArtifact, requireSha256FileArtifact, rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation, validationStrategyForDryRun } from "./adapter-helpers.js";
|
|
5
|
+
const command = (executable, args) => CommandSpec.make({
|
|
6
|
+
executable,
|
|
7
|
+
args: [...args],
|
|
8
|
+
requiredEnv: [],
|
|
9
|
+
redactedEnv: []
|
|
10
|
+
});
|
|
11
|
+
const rejectUnsupportedTokenEnv = Effect.fn("rejectUnsupportedScoopTokenEnv")(function* (target) {
|
|
12
|
+
if (target.tokenEnv !== undefined) {
|
|
13
|
+
return yield* Effect.fail(PlanConstructionError.make({
|
|
14
|
+
targetId: target.id,
|
|
15
|
+
reason: "Scoop bucket targets currently publish with plain git push and require Git credentials to be configured outside the release plan; tokenEnv is not supported yet."
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
export const scoopTargetCapabilities = (target) => targetCapabilitiesFor(target, validationStrategyForDryRun(target.dryRunSupport));
|
|
20
|
+
const pathBaseName = (path) => {
|
|
21
|
+
const parts = path.replaceAll("\\", "/").split("/");
|
|
22
|
+
return parts[parts.length - 1] ?? path;
|
|
23
|
+
};
|
|
24
|
+
const renderManifest = (target, model) => Effect.gen(function* () {
|
|
25
|
+
const artifact = yield* findRequiredArtifact(model, target.id, target.artifactId, `Scoop target references missing artifact ${target.artifactId}.`);
|
|
26
|
+
const validated = yield* requireSha256FileArtifact(artifact, {
|
|
27
|
+
targetId: target.id,
|
|
28
|
+
directoryReason: "Scoop manifest artifacts must be file-like, not directories.",
|
|
29
|
+
checksumReason: "Scoop manifest rendering requires a sha256 artifact checksum."
|
|
30
|
+
});
|
|
31
|
+
const manifest = {
|
|
32
|
+
version: model.identity.version,
|
|
33
|
+
description: target.description ?? `${model.identity.name} ${model.identity.version} release artifact`,
|
|
34
|
+
homepage: target.homepage ?? `https://github.com/${target.repository}`,
|
|
35
|
+
...(target.license === undefined ? {} : { license: target.license }),
|
|
36
|
+
url: target.url ?? validated.artifact.path,
|
|
37
|
+
hash: validated.checksum.value,
|
|
38
|
+
...(target.bin === undefined ? {} : { bin: target.bin })
|
|
39
|
+
};
|
|
40
|
+
return `${JSON.stringify(manifest, null, 2)}\n`;
|
|
41
|
+
});
|
|
42
|
+
const dryRunOperation = (target, dryRunSupport) => validationNoteOperation({
|
|
43
|
+
id: `${target.id}:scoop-manifest-validation`,
|
|
44
|
+
targetId: target.id,
|
|
45
|
+
dryRunSupport,
|
|
46
|
+
simulatedDescription: "Record simulated Scoop manifest validation.",
|
|
47
|
+
skippedDescription: "Record skipped Scoop manifest validation.",
|
|
48
|
+
simulatedMessage: "Scoop manifest validation is simulated by the deterministic release plan.",
|
|
49
|
+
skippedMessage: "Scoop manifest validation was skipped because this target declares no dry-run support."
|
|
50
|
+
});
|
|
51
|
+
export const planScoopOperations = Effect.fn("planScoopOperations")(function* (target, model) {
|
|
52
|
+
yield* rejectUnsupportedTokenEnv(target);
|
|
53
|
+
const dryRunSupport = target.dryRunSupport;
|
|
54
|
+
if (dryRunSupport === "native") {
|
|
55
|
+
return yield* Effect.fail(PlanConstructionError.make({
|
|
56
|
+
targetId: target.id,
|
|
57
|
+
reason: "Scoop bucket targets do not support native validation in the portable adapter yet."
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
yield* rejectNoDryRunInStrictMode(target, model, "Scoop bucket target declares no dry-run support in strict mode.");
|
|
61
|
+
const manifest = yield* renderManifest(target, model);
|
|
62
|
+
const publishRisk = target.mutability === "immutable" ? "irreversible" : "externally-visible";
|
|
63
|
+
const publishGate = publishRisk === "irreversible"
|
|
64
|
+
? irreversibleGate("Pushing a Scoop bucket update is configured as irreversible.")
|
|
65
|
+
: executeGate("Pushing a Scoop bucket update is externally visible.");
|
|
66
|
+
const bucketDirectory = target.bucketDirectory ?? ".";
|
|
67
|
+
return [
|
|
68
|
+
RenderFileOperation.make({
|
|
69
|
+
id: `${target.id}:scoop-render-manifest`,
|
|
70
|
+
targetId: target.id,
|
|
71
|
+
description: `Render Scoop manifest ${pathBaseName(target.manifestPath)}.`,
|
|
72
|
+
risk: "writes-local",
|
|
73
|
+
gate: executeGate("Rendering a Scoop manifest writes a local generated file."),
|
|
74
|
+
path: target.manifestPath,
|
|
75
|
+
contents: manifest
|
|
76
|
+
}),
|
|
77
|
+
dryRunOperation(target, dryRunSupport),
|
|
78
|
+
PublishCommandOperation.make({
|
|
79
|
+
id: `${target.id}:scoop-push`,
|
|
80
|
+
targetId: target.id,
|
|
81
|
+
description: `Push Scoop bucket update for ${model.identity.name}@${model.identity.version}.`,
|
|
82
|
+
risk: publishRisk,
|
|
83
|
+
gate: publishGate,
|
|
84
|
+
command: command("git", ["-C", bucketDirectory, "push"])
|
|
85
|
+
})
|
|
86
|
+
];
|
|
87
|
+
});
|
|
88
|
+
export const ScoopAdapter = {
|
|
89
|
+
targetTag: "ScoopBucketTarget",
|
|
90
|
+
capabilities: scoopTargetCapabilities,
|
|
91
|
+
planOperations: planScoopOperations
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=scoop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoop.js","sourceRoot":"","sources":["../../src/targets/scoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,UAAU,CAAA"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as FileSystem from "effect/FileSystem";
|
|
3
|
+
import * as Path from "effect/Path";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import { ConfigReadError } from "../config/errors.js";
|
|
6
|
+
import { ReleaseEligibilityCheckError } from "../planner/errors.js";
|
|
7
|
+
import { RELEASE_VERSION } from "../version.js";
|
|
8
|
+
export type * from "../types/effect-internal.js";
|
|
9
|
+
export { RELEASE_VERSION };
|
|
10
|
+
export declare const ReleasePlanFormat: Schema.Literals<readonly ["json", "text"]>;
|
|
11
|
+
export type ReleasePlanFormat = typeof ReleasePlanFormat.Type;
|
|
12
|
+
declare const ReleaseConfigOptions_base: Schema.Class<ReleaseConfigOptions, Schema.Struct<{
|
|
13
|
+
readonly root: Schema.optionalKey<Schema.String>;
|
|
14
|
+
readonly configPath: Schema.optionalKey<Schema.String>;
|
|
15
|
+
}>, {}>;
|
|
16
|
+
export declare class ReleaseConfigOptions extends ReleaseConfigOptions_base {
|
|
17
|
+
}
|
|
18
|
+
declare const PlanReleaseConfigOptions_base: Schema.Class<PlanReleaseConfigOptions, Schema.Struct<{
|
|
19
|
+
readonly root: Schema.optionalKey<Schema.String>;
|
|
20
|
+
readonly configPath: Schema.optionalKey<Schema.String>;
|
|
21
|
+
readonly format: Schema.optionalKey<Schema.Literals<readonly ["json", "text"]>>;
|
|
22
|
+
}>, {}>;
|
|
23
|
+
export declare class PlanReleaseConfigOptions extends PlanReleaseConfigOptions_base {
|
|
24
|
+
}
|
|
25
|
+
declare const RenderReleaseConfigOptions_base: Schema.Class<RenderReleaseConfigOptions, Schema.Struct<{
|
|
26
|
+
readonly root: Schema.optionalKey<Schema.String>;
|
|
27
|
+
readonly configPath: Schema.optionalKey<Schema.String>;
|
|
28
|
+
readonly execute: Schema.optionalKey<Schema.Boolean>;
|
|
29
|
+
}>, {}>;
|
|
30
|
+
export declare class RenderReleaseConfigOptions extends RenderReleaseConfigOptions_base {
|
|
31
|
+
}
|
|
32
|
+
declare const ReleaseExecutionOptions_base: Schema.Class<ReleaseExecutionOptions, Schema.Struct<{
|
|
33
|
+
readonly root: Schema.optionalKey<Schema.String>;
|
|
34
|
+
readonly configPath: Schema.optionalKey<Schema.String>;
|
|
35
|
+
readonly execute: Schema.optionalKey<Schema.Boolean>;
|
|
36
|
+
readonly approveIrreversible: Schema.optionalKey<Schema.Boolean>;
|
|
37
|
+
}>, {}>;
|
|
38
|
+
export declare class ReleaseExecutionOptions extends ReleaseExecutionOptions_base {
|
|
39
|
+
}
|
|
40
|
+
declare const ReleaseStatusOptions_base: Schema.Class<ReleaseStatusOptions, Schema.Struct<{
|
|
41
|
+
readonly root: Schema.optionalKey<Schema.String>;
|
|
42
|
+
readonly configPath: Schema.optionalKey<Schema.String>;
|
|
43
|
+
readonly format: Schema.optionalKey<Schema.Literals<readonly ["json", "text"]>>;
|
|
44
|
+
}>, {}>;
|
|
45
|
+
export declare class ReleaseStatusOptions extends ReleaseStatusOptions_base {
|
|
46
|
+
}
|
|
47
|
+
declare const ReleaseResumeConfigOptions_base: Schema.Class<ReleaseResumeConfigOptions, Schema.Struct<{
|
|
48
|
+
readonly root: Schema.optionalKey<Schema.String>;
|
|
49
|
+
readonly configPath: Schema.optionalKey<Schema.String>;
|
|
50
|
+
readonly execute: Schema.optionalKey<Schema.Boolean>;
|
|
51
|
+
readonly approveIrreversible: Schema.optionalKey<Schema.Boolean>;
|
|
52
|
+
}>, {}>;
|
|
53
|
+
export declare class ReleaseResumeConfigOptions extends ReleaseResumeConfigOptions_base {
|
|
54
|
+
}
|
|
55
|
+
declare const ReleaseReconcileConfigOptions_base: Schema.Class<ReleaseReconcileConfigOptions, Schema.Struct<{
|
|
56
|
+
readonly root: Schema.optionalKey<Schema.String>;
|
|
57
|
+
readonly configPath: Schema.optionalKey<Schema.String>;
|
|
58
|
+
readonly execute: Schema.optionalKey<Schema.Boolean>;
|
|
59
|
+
}>, {}>;
|
|
60
|
+
export declare class ReleaseReconcileConfigOptions extends ReleaseReconcileConfigOptions_base {
|
|
61
|
+
}
|
|
62
|
+
declare const ReleaseEligibilityConfigOptions_base: Schema.Class<ReleaseEligibilityConfigOptions, Schema.Struct<{
|
|
63
|
+
readonly root: Schema.optionalKey<Schema.String>;
|
|
64
|
+
readonly configPath: Schema.optionalKey<Schema.String>;
|
|
65
|
+
readonly packagePath: Schema.optionalKey<Schema.String>;
|
|
66
|
+
}>, {}>;
|
|
67
|
+
export declare class ReleaseEligibilityConfigOptions extends ReleaseEligibilityConfigOptions_base {
|
|
68
|
+
}
|
|
69
|
+
export declare const planReleaseConfig: (options?: PlanReleaseConfigOptions | undefined) => Effect.Effect<import("../domain/release.js").ReleasePlan, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto>;
|
|
70
|
+
export declare const renderReleaseConfigPlan: (options?: PlanReleaseConfigOptions | undefined) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto>;
|
|
71
|
+
export declare const renderReleaseConfig: (options?: RenderReleaseConfigOptions | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").WorkspaceWriteError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto>;
|
|
72
|
+
export declare const validateReleaseConfig: (options?: ReleaseConfigOptions | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError | import("../host/host.js").CommandRunnerError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto>;
|
|
73
|
+
export declare const executeReleaseConfig: (options?: ReleaseExecutionOptions | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError | import("../host/host.js").CommandRunnerError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto>;
|
|
74
|
+
export declare const verifyReleaseConfig: (options?: ReleaseConfigOptions | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError | import("../host/host.js").CommandRunnerError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../host/http.js").ReleaseHttp>;
|
|
75
|
+
export declare const runReleaseConfig: (options?: ReleaseExecutionOptions | undefined) => Effect.Effect<import("../domain/evidence.js").ReleaseWorkflowEvidence, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").WorkspaceWriteError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError | import("../host/host.js").CommandRunnerError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../host/http.js").ReleaseHttp>;
|
|
76
|
+
export declare const statusReleaseConfig: (options?: ReleaseStatusOptions | undefined) => Effect.Effect<import("../domain/status.js").ReleaseStatusReport, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").EvidenceReadError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto>;
|
|
77
|
+
export declare const renderReleaseStatus: (options?: ReleaseStatusOptions | undefined) => Effect.Effect<string, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").EvidenceReadError | import("../targets/registry.js").MissingTargetAdapterError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto>;
|
|
78
|
+
export declare const resumeReleaseConfig: (options?: ReleaseResumeConfigOptions | undefined) => Effect.Effect<import("../domain/evidence.js").ReleaseWorkflowEvidence, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").EvidenceReadError | import("../planner/errors.js").WorkspaceWriteError | import("../planner/errors.js").ResumeBlockedError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError | import("../host/host.js").CommandRunnerError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../host/http.js").ReleaseHttp>;
|
|
79
|
+
export declare const reconcileReleaseConfig: (options?: ReleaseReconcileConfigOptions | undefined) => Effect.Effect<import("../domain/evidence.js").EvidenceBundle, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | import("../domain/operation.js").ExecutionApprovalError | import("../planner/errors.js").ReleaseNormalizationError | import("../planner/errors.js").PlanConstructionError | import("../planner/errors.js").RemoteStateInspectionError | import("../planner/errors.js").ReconciliationBlockedError | import("../planner/errors.js").OperationFailedError | import("../targets/registry.js").MissingTargetAdapterError | import("../host/host.js").CommandRunnerError, FileSystem.FileSystem | Path.Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto | import("../host/http.js").ReleaseHttp>;
|
|
80
|
+
export declare const checkReleaseConfigEligibility: (options?: ReleaseEligibilityConfigOptions | undefined) => Effect.Effect<import("../domain/remote-state.js").ReleaseEligibilityDecision, ConfigReadError | import("../config/errors.js").ConfigParseError | import("../config/errors.js").ConfigValidationError | ReleaseEligibilityCheckError | import("../host/host.js").CommandRunnerError, FileSystem.FileSystem | Path.Path | import("../host/host.js").ReleaseCommandRunner>;
|
|
81
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/workflows/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAuBrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,mBAAmB,6BAA6B,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,eAAO,MAAM,iBAAiB,4CAAoC,CAAA;AAClE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;;;;;AAE7D,qBAAa,oBAAqB,SAAQ,yBAGxC;CAAG;;;;;;AAEL,qBAAa,wBAAyB,SAAQ,6BAI5C;CAAG;;;;;;AAEL,qBAAa,0BAA2B,SAAQ,+BAI9C;CAAG;;;;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAK3C;CAAG;;;;;;AAEL,qBAAa,oBAAqB,SAAQ,yBAIxC;CAAG;;;;;;;AAEL,qBAAa,0BAA2B,SAAQ,+BAK9C;CAAG;;;;;;AAEL,qBAAa,6BAA8B,SAAQ,kCAMjD;CAAG;;;;;;AAEL,qBAAa,+BAAgC,SAAQ,oCAMnD;CAAG;AAmGL,eAAO,MAAM,iBAAiB,6jBAQ5B,CAAA;AAEF,eAAO,MAAM,uBAAuB,yhBAOlC,CAAA;AAEF,eAAO,MAAM,mBAAmB,wuBAK9B,CAAA;AAEF,eAAO,MAAM,qBAAqB,4tBAKhC,CAAA;AAEF,eAAO,MAAM,oBAAoB,+tBAK/B,CAAA;AAEF,eAAO,MAAM,mBAAmB,owBAK9B,CAAA;AAEF,eAAO,MAAM,gBAAgB,q0BAK3B,CAAA;AAEF,eAAO,MAAM,mBAAmB,mnBAK9B,CAAA;AAEF,eAAO,MAAM,mBAAmB,wkBAO9B,CAAA;AAEF,eAAO,MAAM,mBAAmB,+6BAK9B,CAAA;AAEF,eAAO,MAAM,sBAAsB,q4BAKjC,CAAA;AAEF,eAAO,MAAM,6BAA6B,oaASxC,CAAA"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as FileSystem from "effect/FileSystem";
|
|
3
|
+
import * as Path from "effect/Path";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import { ConfigReadError } from "../config/errors.js";
|
|
6
|
+
import { parseReleaseIntent } from "../config/load.js";
|
|
7
|
+
import { DEFAULT_CONFIG_PATH } from "../config/schema.js";
|
|
8
|
+
import { ExecutionApproval } from "../domain/operation.js";
|
|
9
|
+
import { createReleasePlan } from "../planner/create-release-plan.js";
|
|
10
|
+
import { executePlan, renderPlan, runApprovedReleaseWorkflow, validatePlan, verifyPlan } from "../planner/executor.js";
|
|
11
|
+
import { renderPlanJson, renderPlanText } from "../planner/render-plan.js";
|
|
12
|
+
import { ReleaseResumeOptions, renderReleaseStatusJson, renderReleaseStatusText, resumeApprovedReleaseWorkflow, statusReleasePlan } from "../planner/status.js";
|
|
13
|
+
import { reconcileReleasePlan, ReleaseReconcileOptions } from "../planner/reconcile.js";
|
|
14
|
+
import { checkReleaseEligibility, ReleasePackageManifest, releaseEligibilityRemoteCheckFromIntent } from "../planner/release-eligibility.js";
|
|
15
|
+
import { ReleaseEligibilityCheckError } from "../planner/errors.js";
|
|
16
|
+
import { RELEASE_VERSION } from "../version.js";
|
|
17
|
+
export { RELEASE_VERSION };
|
|
18
|
+
export const ReleasePlanFormat = Schema.Literals(["json", "text"]);
|
|
19
|
+
export class ReleaseConfigOptions extends Schema.Class("ReleaseConfigOptions")({
|
|
20
|
+
root: Schema.optionalKey(Schema.String),
|
|
21
|
+
configPath: Schema.optionalKey(Schema.String)
|
|
22
|
+
}) {
|
|
23
|
+
}
|
|
24
|
+
export class PlanReleaseConfigOptions extends Schema.Class("PlanReleaseConfigOptions")({
|
|
25
|
+
root: Schema.optionalKey(Schema.String),
|
|
26
|
+
configPath: Schema.optionalKey(Schema.String),
|
|
27
|
+
format: Schema.optionalKey(ReleasePlanFormat)
|
|
28
|
+
}) {
|
|
29
|
+
}
|
|
30
|
+
export class RenderReleaseConfigOptions extends Schema.Class("RenderReleaseConfigOptions")({
|
|
31
|
+
root: Schema.optionalKey(Schema.String),
|
|
32
|
+
configPath: Schema.optionalKey(Schema.String),
|
|
33
|
+
execute: Schema.optionalKey(Schema.Boolean)
|
|
34
|
+
}) {
|
|
35
|
+
}
|
|
36
|
+
export class ReleaseExecutionOptions extends Schema.Class("ReleaseExecutionOptions")({
|
|
37
|
+
root: Schema.optionalKey(Schema.String),
|
|
38
|
+
configPath: Schema.optionalKey(Schema.String),
|
|
39
|
+
execute: Schema.optionalKey(Schema.Boolean),
|
|
40
|
+
approveIrreversible: Schema.optionalKey(Schema.Boolean)
|
|
41
|
+
}) {
|
|
42
|
+
}
|
|
43
|
+
export class ReleaseStatusOptions extends Schema.Class("ReleaseStatusOptions")({
|
|
44
|
+
root: Schema.optionalKey(Schema.String),
|
|
45
|
+
configPath: Schema.optionalKey(Schema.String),
|
|
46
|
+
format: Schema.optionalKey(ReleasePlanFormat)
|
|
47
|
+
}) {
|
|
48
|
+
}
|
|
49
|
+
export class ReleaseResumeConfigOptions extends Schema.Class("ReleaseResumeConfigOptions")({
|
|
50
|
+
root: Schema.optionalKey(Schema.String),
|
|
51
|
+
configPath: Schema.optionalKey(Schema.String),
|
|
52
|
+
execute: Schema.optionalKey(Schema.Boolean),
|
|
53
|
+
approveIrreversible: Schema.optionalKey(Schema.Boolean)
|
|
54
|
+
}) {
|
|
55
|
+
}
|
|
56
|
+
export class ReleaseReconcileConfigOptions extends Schema.Class("ReleaseReconcileConfigOptions")({
|
|
57
|
+
root: Schema.optionalKey(Schema.String),
|
|
58
|
+
configPath: Schema.optionalKey(Schema.String),
|
|
59
|
+
execute: Schema.optionalKey(Schema.Boolean)
|
|
60
|
+
}) {
|
|
61
|
+
}
|
|
62
|
+
export class ReleaseEligibilityConfigOptions extends Schema.Class("ReleaseEligibilityConfigOptions")({
|
|
63
|
+
root: Schema.optionalKey(Schema.String),
|
|
64
|
+
configPath: Schema.optionalKey(Schema.String),
|
|
65
|
+
packagePath: Schema.optionalKey(Schema.String)
|
|
66
|
+
}) {
|
|
67
|
+
}
|
|
68
|
+
const configRoot = (path, options) => {
|
|
69
|
+
if (options.root !== undefined) {
|
|
70
|
+
return options.root;
|
|
71
|
+
}
|
|
72
|
+
if (options.configPath !== undefined && path.isAbsolute(options.configPath)) {
|
|
73
|
+
return path.dirname(options.configPath);
|
|
74
|
+
}
|
|
75
|
+
return ".";
|
|
76
|
+
};
|
|
77
|
+
const configPath = (options) => options.configPath ?? DEFAULT_CONFIG_PATH;
|
|
78
|
+
const packagePath = (options) => options.packagePath ?? "package.json";
|
|
79
|
+
const configReadPath = (path, options) => {
|
|
80
|
+
const pathName = configPath(options);
|
|
81
|
+
return path.isAbsolute(pathName) ? pathName : path.resolve(configRoot(path, options), pathName);
|
|
82
|
+
};
|
|
83
|
+
const packageReadPath = (path, options) => {
|
|
84
|
+
const pathName = packagePath(options);
|
|
85
|
+
return path.isAbsolute(pathName) ? pathName : path.resolve(configRoot(path, options), pathName);
|
|
86
|
+
};
|
|
87
|
+
const approvalFromOptions = (options) => ExecutionApproval.make({
|
|
88
|
+
execute: options.execute ?? false,
|
|
89
|
+
approveIrreversible: options.approveIrreversible ?? false
|
|
90
|
+
});
|
|
91
|
+
const resumeOptionsFromConfigOptions = (options) => ReleaseResumeOptions.make({
|
|
92
|
+
execute: options.execute ?? false,
|
|
93
|
+
approveIrreversible: options.approveIrreversible ?? false
|
|
94
|
+
});
|
|
95
|
+
const reconcileOptionsFromConfigOptions = (options) => ReleaseReconcileOptions.make({
|
|
96
|
+
execute: options.execute ?? false
|
|
97
|
+
});
|
|
98
|
+
const renderApprovalFromOptions = (options) => ExecutionApproval.make({
|
|
99
|
+
execute: options.execute ?? false,
|
|
100
|
+
approveIrreversible: false
|
|
101
|
+
});
|
|
102
|
+
const readReleaseConfig = Effect.fn("workflows.config.readReleaseConfig")(function* (options) {
|
|
103
|
+
const fs = yield* FileSystem.FileSystem;
|
|
104
|
+
const path = yield* Path.Path;
|
|
105
|
+
const pathName = configPath(options);
|
|
106
|
+
const readPath = configReadPath(path, options);
|
|
107
|
+
return yield* fs.readFileString(readPath).pipe(Effect.mapError((error) => ConfigReadError.make({
|
|
108
|
+
path: pathName,
|
|
109
|
+
reason: error.message
|
|
110
|
+
})));
|
|
111
|
+
});
|
|
112
|
+
const decodePackageManifest = Schema.decodeUnknownEffect(ReleasePackageManifest);
|
|
113
|
+
const readPackageManifest = Effect.fn("workflows.config.readPackageManifest")(function* (options) {
|
|
114
|
+
const fs = yield* FileSystem.FileSystem;
|
|
115
|
+
const path = yield* Path.Path;
|
|
116
|
+
const pathName = packagePath(options);
|
|
117
|
+
const readPath = packageReadPath(path, options);
|
|
118
|
+
const contents = yield* fs.readFileString(readPath).pipe(Effect.mapError((error) => ConfigReadError.make({
|
|
119
|
+
path: pathName,
|
|
120
|
+
reason: error.message
|
|
121
|
+
})));
|
|
122
|
+
const parsed = yield* Effect.try({
|
|
123
|
+
try: () => JSON.parse(contents),
|
|
124
|
+
catch: (cause) => ReleaseEligibilityCheckError.make({
|
|
125
|
+
reason: `package manifest is not valid JSON: ${cause instanceof Error ? cause.message : String(cause)}`
|
|
126
|
+
})
|
|
127
|
+
});
|
|
128
|
+
return yield* decodePackageManifest(parsed).pipe(Effect.mapError((error) => ReleaseEligibilityCheckError.make({
|
|
129
|
+
reason: `package manifest is missing release identity fields: ${error.message}`
|
|
130
|
+
})));
|
|
131
|
+
});
|
|
132
|
+
export const planReleaseConfig = Effect.fn("workflows.config.planReleaseConfig")(function* (options = PlanReleaseConfigOptions.make({})) {
|
|
133
|
+
const path = yield* Path.Path;
|
|
134
|
+
const pathName = configPath(options);
|
|
135
|
+
const contents = yield* readReleaseConfig(options);
|
|
136
|
+
const intent = yield* parseReleaseIntent(contents, pathName);
|
|
137
|
+
return yield* createReleasePlan(intent, configRoot(path, options), pathName);
|
|
138
|
+
});
|
|
139
|
+
export const renderReleaseConfigPlan = Effect.fn("workflows.config.renderReleaseConfigPlan")(function* (options = PlanReleaseConfigOptions.make({})) {
|
|
140
|
+
const plan = yield* planReleaseConfig(options);
|
|
141
|
+
return (options.format ?? "text") === "json"
|
|
142
|
+
? renderPlanJson(plan)
|
|
143
|
+
: renderPlanText(plan);
|
|
144
|
+
});
|
|
145
|
+
export const renderReleaseConfig = Effect.fn("workflows.config.renderReleaseConfig")(function* (options = RenderReleaseConfigOptions.make({})) {
|
|
146
|
+
const plan = yield* planReleaseConfig(options);
|
|
147
|
+
return yield* renderPlan(plan, renderApprovalFromOptions(options));
|
|
148
|
+
});
|
|
149
|
+
export const validateReleaseConfig = Effect.fn("workflows.config.validateReleaseConfig")(function* (options = ReleaseConfigOptions.make({})) {
|
|
150
|
+
const plan = yield* planReleaseConfig(options);
|
|
151
|
+
return yield* validatePlan(plan);
|
|
152
|
+
});
|
|
153
|
+
export const executeReleaseConfig = Effect.fn("workflows.config.executeReleaseConfig")(function* (options = ReleaseExecutionOptions.make({})) {
|
|
154
|
+
const plan = yield* planReleaseConfig(options);
|
|
155
|
+
return yield* executePlan(plan, approvalFromOptions(options));
|
|
156
|
+
});
|
|
157
|
+
export const verifyReleaseConfig = Effect.fn("workflows.config.verifyReleaseConfig")(function* (options = ReleaseConfigOptions.make({})) {
|
|
158
|
+
const plan = yield* planReleaseConfig(options);
|
|
159
|
+
return yield* verifyPlan(plan);
|
|
160
|
+
});
|
|
161
|
+
export const runReleaseConfig = Effect.fn("workflows.config.runReleaseConfig")(function* (options = ReleaseExecutionOptions.make({})) {
|
|
162
|
+
const plan = yield* planReleaseConfig(options);
|
|
163
|
+
return yield* runApprovedReleaseWorkflow(plan, approvalFromOptions(options));
|
|
164
|
+
});
|
|
165
|
+
export const statusReleaseConfig = Effect.fn("workflows.config.statusReleaseConfig")(function* (options = ReleaseStatusOptions.make({})) {
|
|
166
|
+
const plan = yield* planReleaseConfig(options);
|
|
167
|
+
return yield* statusReleasePlan(plan);
|
|
168
|
+
});
|
|
169
|
+
export const renderReleaseStatus = Effect.fn("workflows.config.renderReleaseStatus")(function* (options = ReleaseStatusOptions.make({})) {
|
|
170
|
+
const report = yield* statusReleaseConfig(options);
|
|
171
|
+
return (options.format ?? "text") === "json"
|
|
172
|
+
? renderReleaseStatusJson(report)
|
|
173
|
+
: renderReleaseStatusText(report);
|
|
174
|
+
});
|
|
175
|
+
export const resumeReleaseConfig = Effect.fn("workflows.config.resumeReleaseConfig")(function* (options = ReleaseResumeConfigOptions.make({})) {
|
|
176
|
+
const plan = yield* planReleaseConfig(options);
|
|
177
|
+
return yield* resumeApprovedReleaseWorkflow(plan, resumeOptionsFromConfigOptions(options));
|
|
178
|
+
});
|
|
179
|
+
export const reconcileReleaseConfig = Effect.fn("workflows.config.reconcileReleaseConfig")(function* (options = ReleaseReconcileConfigOptions.make({})) {
|
|
180
|
+
const plan = yield* planReleaseConfig(options);
|
|
181
|
+
return yield* reconcileReleasePlan(plan, reconcileOptionsFromConfigOptions(options));
|
|
182
|
+
});
|
|
183
|
+
export const checkReleaseConfigEligibility = Effect.fn("workflows.config.checkReleaseConfigEligibility")(function* (options = ReleaseEligibilityConfigOptions.make({})) {
|
|
184
|
+
const pathName = configPath(options);
|
|
185
|
+
const contents = yield* readReleaseConfig(options);
|
|
186
|
+
const intent = yield* parseReleaseIntent(contents, pathName);
|
|
187
|
+
const manifest = yield* readPackageManifest(options);
|
|
188
|
+
const remoteCheck = yield* releaseEligibilityRemoteCheckFromIntent(manifest, intent);
|
|
189
|
+
return yield* checkReleaseEligibility(remoteCheck);
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/workflows/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import { EvidenceBundle, ReleaseWorkflowEvidence, ReleaseWorkflowFailureEvidence } from "../domain/evidence.js";
|
|
4
|
+
import { ReleasePlan } from "../domain/release.js";
|
|
5
|
+
export type * from "../types/effect-internal.js";
|
|
6
|
+
declare const WorkflowEvidencePathsWritten_base: Schema.Class<WorkflowEvidencePathsWritten, Schema.Struct<{
|
|
7
|
+
readonly render: Schema.optionalKey<Schema.String>;
|
|
8
|
+
readonly validation: Schema.optionalKey<Schema.String>;
|
|
9
|
+
readonly execution: Schema.optionalKey<Schema.String>;
|
|
10
|
+
readonly verification: Schema.optionalKey<Schema.String>;
|
|
11
|
+
}>, {}>;
|
|
12
|
+
export declare class WorkflowEvidencePathsWritten extends WorkflowEvidencePathsWritten_base {
|
|
13
|
+
}
|
|
14
|
+
export declare const releaseEvidencePath: (plan: ReleasePlan, name: string) => string;
|
|
15
|
+
export declare const writeNamedEvidence: (plan: ReleasePlan, name: string, evidence: EvidenceBundle) => Effect.Effect<string, import("../planner/errors.js").EvidenceWriteError, import("effect/FileSystem").FileSystem | import("effect/Path").Path>;
|
|
16
|
+
export declare const writeFailedOperationEvidence: (plan: ReleasePlan, name: string, error: {
|
|
17
|
+
readonly evidence?: EvidenceBundle | undefined;
|
|
18
|
+
}) => Effect.Effect<string | undefined, import("../planner/errors.js").EvidenceWriteError, import("effect/FileSystem").FileSystem | import("effect/Path").Path>;
|
|
19
|
+
type WritableWorkflowEvidence = ReleaseWorkflowEvidence | ReleaseWorkflowFailureEvidence;
|
|
20
|
+
export declare const writeWorkflowEvidence: (plan: ReleasePlan, evidence: WritableWorkflowEvidence) => Effect.Effect<WorkflowEvidencePathsWritten, import("../planner/errors.js").EvidenceWriteError, import("effect/FileSystem").FileSystem | import("effect/Path").Path>;
|
|
21
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/workflows/evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIlD,mBAAmB,6BAA6B,CAAA;;;;;;;AAEhD,qBAAa,4BAA6B,SAAQ,iCAOhD;CAAG;AAEL,eAAO,MAAM,mBAAmB,GAAI,MAAM,WAAW,EAAE,MAAM,MAAM,KAAG,MAC5B,CAAA;AAE1C,eAAO,MAAM,kBAAkB,8MAQ7B,CAAA;AAEF,eAAO,MAAM,4BAA4B;wBAGV,cAAc,GAAG,SAAS;+JAMvD,CAAA;AAEF,KAAK,wBAAwB,GAAG,uBAAuB,GAAG,8BAA8B,CAAA;AAExF,eAAO,MAAM,qBAAqB,gOA8BhC,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import { writeEvidenceBundle } from "../planner/evidence-recorder.js";
|
|
4
|
+
import { workflowEvidencePaths } from "../planner/status.js";
|
|
5
|
+
export class WorkflowEvidencePathsWritten extends Schema.Class("WorkflowEvidencePathsWritten")({
|
|
6
|
+
render: Schema.optionalKey(Schema.String),
|
|
7
|
+
validation: Schema.optionalKey(Schema.String),
|
|
8
|
+
execution: Schema.optionalKey(Schema.String),
|
|
9
|
+
verification: Schema.optionalKey(Schema.String)
|
|
10
|
+
}) {
|
|
11
|
+
}
|
|
12
|
+
export const releaseEvidencePath = (plan, name) => `${plan.evidenceDirectory}/${name}.json`;
|
|
13
|
+
export const writeNamedEvidence = Effect.fn("workflows.evidence.writeNamedEvidence")(function* (plan, name, evidence) {
|
|
14
|
+
const path = releaseEvidencePath(plan, name);
|
|
15
|
+
yield* writeEvidenceBundle(path, evidence, plan.source.root);
|
|
16
|
+
return path;
|
|
17
|
+
});
|
|
18
|
+
export const writeFailedOperationEvidence = Effect.fn("workflows.evidence.writeFailedOperationEvidence")(function* (plan, name, error) {
|
|
19
|
+
if (error.evidence === undefined) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
return yield* writeNamedEvidence(plan, name, error.evidence);
|
|
23
|
+
});
|
|
24
|
+
export const writeWorkflowEvidence = Effect.fn("workflows.evidence.writeWorkflowEvidence")(function* (plan, evidence) {
|
|
25
|
+
const paths = workflowEvidencePaths(plan);
|
|
26
|
+
const written = {};
|
|
27
|
+
if (evidence.render !== undefined) {
|
|
28
|
+
written.render = paths.render;
|
|
29
|
+
yield* writeEvidenceBundle(paths.render, evidence.render, plan.source.root);
|
|
30
|
+
}
|
|
31
|
+
if (evidence.validation !== undefined) {
|
|
32
|
+
written.validation = paths.validation;
|
|
33
|
+
yield* writeEvidenceBundle(paths.validation, evidence.validation, plan.source.root);
|
|
34
|
+
}
|
|
35
|
+
if (evidence.execution !== undefined) {
|
|
36
|
+
written.execution = paths.execution;
|
|
37
|
+
yield* writeEvidenceBundle(paths.execution, evidence.execution, plan.source.root);
|
|
38
|
+
}
|
|
39
|
+
if (evidence.verification !== undefined) {
|
|
40
|
+
written.verification = paths.verification;
|
|
41
|
+
yield* writeEvidenceBundle(paths.verification, evidence.verification, plan.source.root);
|
|
42
|
+
}
|
|
43
|
+
return WorkflowEvidencePathsWritten.make(written);
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/workflows/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
3
|
+
import { ReleaseHttp } from "../host/http.js";
|
|
4
|
+
import { TargetRegistry } from "../targets/registry.js";
|
|
5
|
+
export type * from "../types/effect-internal.js";
|
|
6
|
+
export declare const LiveReleaseWorkflowLayer: Layer.Layer<ReleaseHttp | TargetRegistry, never, HttpClient.HttpClient>;
|
|
7
|
+
//# sourceMappingURL=live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/workflows/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAChD,WAAW,GAAG,cAAc,EAC5B,KAAK,EACL,UAAU,CAAC,UAAU,CAItB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { LiveReleaseHttpLayer } from "../host/http-live.js";
|
|
3
|
+
import { LiveTargetRegistryLayer } from "../targets/live.js";
|
|
4
|
+
export const LiveReleaseWorkflowLayer = Layer.mergeAll(LiveReleaseHttpLayer, LiveTargetRegistryLayer);
|
|
5
|
+
//# sourceMappingURL=live.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/workflows/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAK5D,MAAM,CAAC,MAAM,wBAAwB,GAIjC,KAAK,CAAC,QAAQ,CAChB,oBAAoB,EACpB,uBAAuB,CACxB,CAAA"}
|