@mannyc1/ts-release 0.0.1 → 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.
Files changed (117) hide show
  1. package/ARCHITECTURE.md +53 -0
  2. package/README.md +177 -34
  3. package/SPEC.md +8 -1
  4. package/dist/cli/command.d.ts +1 -1
  5. package/dist/cli/command.d.ts.map +1 -1
  6. package/dist/cli/command.js +101 -53
  7. package/dist/cli/command.js.map +1 -1
  8. package/dist/cli/main.js +3 -9
  9. package/dist/cli/main.js.map +1 -1
  10. package/dist/domain/operation.d.ts.map +1 -1
  11. package/dist/domain/operation.js +31 -1
  12. package/dist/domain/operation.js.map +1 -1
  13. package/dist/domain/remote-state.d.ts +90 -0
  14. package/dist/domain/remote-state.d.ts.map +1 -0
  15. package/dist/domain/remote-state.js +85 -0
  16. package/dist/domain/remote-state.js.map +1 -0
  17. package/dist/domain/status.d.ts +43 -0
  18. package/dist/domain/status.d.ts.map +1 -0
  19. package/dist/domain/status.js +50 -0
  20. package/dist/domain/status.js.map +1 -0
  21. package/dist/domain/target.d.ts +32 -2
  22. package/dist/domain/target.d.ts.map +1 -1
  23. package/dist/domain/target.js +35 -2
  24. package/dist/domain/target.js.map +1 -1
  25. package/dist/host/host.d.ts +7 -23
  26. package/dist/host/host.d.ts.map +1 -1
  27. package/dist/host/host.js +3 -22
  28. package/dist/host/host.js.map +1 -1
  29. package/dist/host/http-live.d.ts +1 -2
  30. package/dist/host/http-live.d.ts.map +1 -1
  31. package/dist/host/http-live.js +15 -9
  32. package/dist/host/http-live.js.map +1 -1
  33. package/dist/host/platform.d.ts +10 -0
  34. package/dist/host/platform.d.ts.map +1 -0
  35. package/dist/host/platform.js +121 -0
  36. package/dist/host/platform.js.map +1 -0
  37. package/dist/host/test.d.ts +6 -3
  38. package/dist/host/test.d.ts.map +1 -1
  39. package/dist/host/test.js +111 -25
  40. package/dist/host/test.js.map +1 -1
  41. package/dist/planner/artifact-inventory.d.ts +9 -0
  42. package/dist/planner/artifact-inventory.d.ts.map +1 -0
  43. package/dist/planner/artifact-inventory.js +66 -0
  44. package/dist/planner/artifact-inventory.js.map +1 -0
  45. package/dist/planner/create-release-plan.d.ts +1 -1
  46. package/dist/planner/create-release-plan.d.ts.map +1 -1
  47. package/dist/planner/errors.d.ts +37 -1
  48. package/dist/planner/errors.d.ts.map +1 -1
  49. package/dist/planner/errors.js +30 -0
  50. package/dist/planner/errors.js.map +1 -1
  51. package/dist/planner/evidence-recorder.d.ts +13 -8
  52. package/dist/planner/evidence-recorder.d.ts.map +1 -1
  53. package/dist/planner/evidence-recorder.js +98 -18
  54. package/dist/planner/evidence-recorder.js.map +1 -1
  55. package/dist/planner/executor.d.ts +31 -19
  56. package/dist/planner/executor.d.ts.map +1 -1
  57. package/dist/planner/executor.js +19 -6
  58. package/dist/planner/executor.js.map +1 -1
  59. package/dist/planner/normalize-release.d.ts +2 -2
  60. package/dist/planner/normalize-release.d.ts.map +1 -1
  61. package/dist/planner/normalize-release.js +40 -43
  62. package/dist/planner/normalize-release.js.map +1 -1
  63. package/dist/planner/reconcile.d.ts +17 -0
  64. package/dist/planner/reconcile.d.ts.map +1 -0
  65. package/dist/planner/reconcile.js +280 -0
  66. package/dist/planner/reconcile.js.map +1 -0
  67. package/dist/planner/release-eligibility.d.ts +33 -0
  68. package/dist/planner/release-eligibility.d.ts.map +1 -0
  69. package/dist/planner/release-eligibility.js +172 -0
  70. package/dist/planner/release-eligibility.js.map +1 -0
  71. package/dist/planner/render-plan.d.ts.map +1 -1
  72. package/dist/planner/render-plan.js +21 -0
  73. package/dist/planner/render-plan.js.map +1 -1
  74. package/dist/planner/status.d.ts +40 -0
  75. package/dist/planner/status.d.ts.map +1 -0
  76. package/dist/planner/status.js +336 -0
  77. package/dist/planner/status.js.map +1 -0
  78. package/dist/runtime/bun.d.ts +9 -0
  79. package/dist/runtime/bun.d.ts.map +1 -0
  80. package/dist/runtime/bun.js +10 -0
  81. package/dist/runtime/bun.js.map +1 -0
  82. package/dist/targets/github.d.ts.map +1 -1
  83. package/dist/targets/github.js +17 -13
  84. package/dist/targets/github.js.map +1 -1
  85. package/dist/targets/npm.d.ts +2 -2
  86. package/dist/targets/npm.d.ts.map +1 -1
  87. package/dist/targets/npm.js +74 -14
  88. package/dist/targets/npm.js.map +1 -1
  89. package/dist/version.d.ts +2 -0
  90. package/dist/version.d.ts.map +1 -0
  91. package/dist/version.js +2 -0
  92. package/dist/version.js.map +1 -0
  93. package/dist/workflows/config.d.ts +81 -0
  94. package/dist/workflows/config.d.ts.map +1 -0
  95. package/dist/workflows/config.js +191 -0
  96. package/dist/workflows/config.js.map +1 -0
  97. package/dist/workflows/evidence.d.ts +21 -0
  98. package/dist/workflows/evidence.d.ts.map +1 -0
  99. package/dist/workflows/evidence.js +45 -0
  100. package/dist/workflows/evidence.js.map +1 -0
  101. package/dist/workflows/live.d.ts +7 -0
  102. package/dist/workflows/live.d.ts.map +1 -0
  103. package/dist/workflows/live.js +5 -0
  104. package/dist/workflows/live.js.map +1 -0
  105. package/examples/README.md +6 -3
  106. package/examples/multi-target/release.config.json +6 -1
  107. package/examples/npm-first-publish/release.config.json +32 -0
  108. package/examples/npm-only/release.config.json +6 -1
  109. package/package.json +31 -9
  110. package/dist/cli/programmatic.d.ts +0 -25
  111. package/dist/cli/programmatic.d.ts.map +0 -1
  112. package/dist/cli/programmatic.js +0 -53
  113. package/dist/cli/programmatic.js.map +0 -1
  114. package/dist/host/bun.d.ts +0 -9
  115. package/dist/host/bun.d.ts.map +0 -1
  116. package/dist/host/bun.js +0 -156
  117. package/dist/host/bun.js.map +0 -1
package/dist/host/test.js CHANGED
@@ -1,9 +1,85 @@
1
+ import * as ConfigProvider from "effect/ConfigProvider";
2
+ import * as Crypto from "effect/Crypto";
1
3
  import * as Effect from "effect/Effect";
4
+ import * as FileSystem from "effect/FileSystem";
2
5
  import * as Layer from "effect/Layer";
3
- import { CommandResult, FileInfo, HostError, ReleaseHost } from "./host.js";
6
+ import * as Option from "effect/Option";
7
+ import * as Path from "effect/Path";
8
+ import * as PlatformError from "effect/PlatformError";
9
+ import { CommandResult, CommandRunnerError, ReleaseCommandRunner } from "./host.js";
4
10
  export const commandKey = (command) => [command.executable, ...command.args].join("\u0000");
5
- const checksumPrefix = (algorithm) => algorithm === "sha256" ? "sha256" : "sha512";
6
- export const makeTestReleaseHostLayer = (options = {}) => {
11
+ const notFound = (method, path) => PlatformError.systemError({
12
+ _tag: "NotFound",
13
+ module: "FileSystem",
14
+ method,
15
+ pathOrDescriptor: path,
16
+ description: "File not found"
17
+ });
18
+ const fileInfo = (sizeBytes) => ({
19
+ type: "File",
20
+ mtime: Option.none(),
21
+ atime: Option.none(),
22
+ birthtime: Option.none(),
23
+ dev: 0,
24
+ ino: Option.none(),
25
+ mode: 0,
26
+ nlink: Option.none(),
27
+ uid: Option.none(),
28
+ gid: Option.none(),
29
+ rdev: Option.none(),
30
+ size: FileSystem.Size(sizeBytes),
31
+ blksize: Option.none(),
32
+ blocks: Option.none()
33
+ });
34
+ const directoryInfo = {
35
+ type: "Directory",
36
+ mtime: Option.none(),
37
+ atime: Option.none(),
38
+ birthtime: Option.none(),
39
+ dev: 0,
40
+ ino: Option.none(),
41
+ mode: 0,
42
+ nlink: Option.none(),
43
+ uid: Option.none(),
44
+ gid: Option.none(),
45
+ rdev: Option.none(),
46
+ size: FileSystem.Size(0),
47
+ blksize: Option.none(),
48
+ blocks: Option.none()
49
+ };
50
+ const textEncoder = new TextEncoder();
51
+ const textDecoder = new TextDecoder();
52
+ const pathVariants = (path) => {
53
+ const cwd = globalThis.process?.cwd();
54
+ if (cwd === undefined) {
55
+ return [path];
56
+ }
57
+ if (path === cwd) {
58
+ return [path, "."];
59
+ }
60
+ const cwdPrefix = `${cwd}/`;
61
+ return path.startsWith(cwdPrefix)
62
+ ? [path, path.slice(cwdPrefix.length)]
63
+ : [path];
64
+ };
65
+ const getFixtureFile = (files, path) => {
66
+ for (const variant of pathVariants(path)) {
67
+ const contents = files.get(variant);
68
+ if (contents !== undefined) {
69
+ return contents;
70
+ }
71
+ }
72
+ return undefined;
73
+ };
74
+ const hasFixtureDirectory = (directories, path) => {
75
+ for (const variant of pathVariants(path)) {
76
+ if (directories.has(variant)) {
77
+ return true;
78
+ }
79
+ }
80
+ return false;
81
+ };
82
+ export const makeTestCommandRunnerLayer = (options = {}) => {
7
83
  const files = new Map(options.files ?? []);
8
84
  const directories = new Set(options.directories ?? []);
9
85
  const env = new Map(options.env ?? []);
@@ -15,31 +91,42 @@ export const makeTestReleaseHostLayer = (options = {}) => {
15
91
  timestampIndex += 1;
16
92
  return value;
17
93
  };
18
- return Layer.succeed(ReleaseHost)({
19
- readFileString: (path) => Effect.sync(() => files.get(path)).pipe(Effect.flatMap((contents) => contents === undefined
20
- ? Effect.fail(HostError.make({ operation: "readFileString", path, reason: "File not found" }))
21
- : Effect.succeed(contents))),
22
- writeFileString: (path, contents) => Effect.sync(() => {
23
- files.set(path, contents);
24
- }),
94
+ const envRecord = {};
95
+ for (const [name, value] of env) {
96
+ envRecord[name] = value;
97
+ }
98
+ return Layer.mergeAll(FileSystem.layerNoop({
25
99
  stat: (path) => Effect.sync(() => {
26
- const contents = files.get(path);
100
+ const contents = getFixtureFile(files, path);
27
101
  if (contents !== undefined) {
28
- return FileInfo.make({ path, sizeBytes: contents.length, kind: "file" });
102
+ return fileInfo(textEncoder.encode(contents).byteLength);
29
103
  }
30
- if (directories.has(path)) {
31
- return FileInfo.make({ path, sizeBytes: 0, kind: "directory" });
104
+ if (hasFixtureDirectory(directories, path)) {
105
+ return directoryInfo;
32
106
  }
33
107
  return undefined;
34
108
  }).pipe(Effect.flatMap((info) => info === undefined
35
- ? Effect.fail(HostError.make({ operation: "stat", path, reason: "File not found" }))
109
+ ? Effect.fail(notFound("stat", path))
36
110
  : Effect.succeed(info))),
37
- hashFile: (path, algorithm) => Effect.sync(() => files.get(path)).pipe(Effect.flatMap((contents) => directories.has(path)
38
- ? Effect.fail(HostError.make({ operation: "hashFile", path, reason: "Only file artifacts can be hashed" }))
39
- : contents === undefined
40
- ? Effect.fail(HostError.make({ operation: "hashFile", path, reason: "File not found" }))
41
- : Effect.succeed(`${checksumPrefix(algorithm)}:${contents.length}:${path}`))),
42
- readEnv: (name) => Effect.sync(() => env.get(name)),
111
+ readFile: (path) => Effect.sync(() => getFixtureFile(files, path)).pipe(Effect.flatMap((contents) => contents === undefined
112
+ ? Effect.fail(notFound("readFile", path))
113
+ : Effect.succeed(textEncoder.encode(contents)))),
114
+ readFileString: (path) => Effect.sync(() => getFixtureFile(files, path)).pipe(Effect.flatMap((contents) => contents === undefined
115
+ ? Effect.fail(notFound("readFileString", path))
116
+ : Effect.succeed(contents))),
117
+ makeDirectory: (path) => Effect.sync(() => {
118
+ directories.add(path);
119
+ }),
120
+ writeFile: (path, data) => Effect.sync(() => {
121
+ files.set(path, textDecoder.decode(data));
122
+ }),
123
+ writeFileString: (path, data) => Effect.sync(() => {
124
+ files.set(path, data);
125
+ })
126
+ }), Path.layer, Layer.succeed(Crypto.Crypto)(Crypto.make({
127
+ randomBytes: (size) => new Uint8Array(size),
128
+ digest: (_algorithm, data) => Effect.succeed(data)
129
+ })), Layer.succeed(ReleaseCommandRunner)({
43
130
  runCommand: (command) => Effect.gen(function* () {
44
131
  const missing = [];
45
132
  for (const name of command.requiredEnv) {
@@ -48,7 +135,7 @@ export const makeTestReleaseHostLayer = (options = {}) => {
48
135
  }
49
136
  }
50
137
  if (missing.length > 0) {
51
- return yield* Effect.fail(HostError.make({
138
+ return yield* Effect.fail(CommandRunnerError.make({
52
139
  operation: "runCommand",
53
140
  reason: `Missing required environment variables: ${missing.join(", ")}`
54
141
  }));
@@ -69,8 +156,7 @@ export const makeTestReleaseHostLayer = (options = {}) => {
69
156
  endedAt,
70
157
  durationMillis: 0
71
158
  });
72
- }),
73
- now: Effect.sync(nextTimestamp)
74
- });
159
+ })
160
+ }), ConfigProvider.layer(ConfigProvider.fromEnv({ env: envRecord })));
75
161
  };
76
162
  //# sourceMappingURL=test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/host/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAkB3E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAU,EAAE,CACzD,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAEtD,MAAM,cAAc,GAAG,CAAC,SAA4B,EAAU,EAAE,CAC9D,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,UAAkC,EAAE,EACV,EAAE;IAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAC1C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;IACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAChD,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAA;IAC5E,IAAI,cAAc,GAAG,CAAC,CAAA;IAEtB,MAAM,aAAa,GAAG,GAAW,EAAE;QACjC,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,0BAA0B,CAAA;QAC3G,cAAc,IAAI,CAAC,CAAA;QACnB,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CACvB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACrC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC9F,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC7B,CACF;QAEH,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAClC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC3B,CAAC,CAAC;QAEJ,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CACb,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YAC1E,CAAC;YACD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;YACjE,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,IAAI,KAAK,SAAS;YAChB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACpF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CACzB,CACF;QAEH,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACrC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;YACnB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC,CAAC;YAC3G,CAAC,CAAC,QAAQ,KAAK,SAAS;gBACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBACxF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAC9E,CACF;QAEH,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEnD,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,OAAO,GAAkB,EAAE,CAAA;YACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,YAAY;oBACvB,MAAM,EAAE,2CAA2C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACxE,CAAC,CACH,CAAA;YACH,CAAC;YACD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;YACjC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI;gBACpD,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;aACX,CAAA;YACD,OAAO,aAAa,CAAC,IAAI,CAAC;gBACxB,OAAO;gBACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,SAAS;gBACT,OAAO;gBACP,cAAc,EAAE,CAAC;aAClB,CAAC,CAAA;QACJ,CAAC,CAAC;QAEJ,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;KAChC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/host/test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import * as Crypto from "effect/Crypto";
2
+ import * as Effect from "effect/Effect";
3
+ import * as FileSystem from "effect/FileSystem";
4
+ import * as Path from "effect/Path";
5
+ import { ArtifactIntent, ArtifactInventoryItem } from "../domain/artifact.js";
6
+ import { ReleaseNormalizationError } from "./errors.js";
7
+ export type * from "../types/effect-internal.js";
8
+ export declare const inventoryArtifact: (root: string, artifact: ArtifactIntent) => Effect.Effect<ArtifactInventoryItem, ReleaseNormalizationError, FileSystem.FileSystem | Path.Path | Crypto.Crypto>;
9
+ //# sourceMappingURL=artifact-inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-inventory.d.ts","sourceRoot":"","sources":["../../src/planner/artifact-inventory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,EACL,cAAc,EACd,qBAAqB,EAGtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAEvD,mBAAmB,6BAA6B,CAAA;AA0EhD,eAAO,MAAM,iBAAiB,gKAyB5B,CAAA"}
@@ -0,0 +1,66 @@
1
+ import * as Crypto from "effect/Crypto";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Encoding from "effect/Encoding";
4
+ import * as FileSystem from "effect/FileSystem";
5
+ import * as Path from "effect/Path";
6
+ import { ArtifactInventoryItem, Checksum } from "../domain/artifact.js";
7
+ import { ReleaseNormalizationError } from "./errors.js";
8
+ const checksumName = (algorithm) => algorithm === "sha256" ? "SHA-256" : "SHA-512";
9
+ const formatUnknown = (cause) => cause instanceof Error ? cause.message : String(cause);
10
+ const artifactPath = (path, root, pathName) => path.isAbsolute(pathName) ? pathName : path.resolve(root, pathName);
11
+ const artifactKind = (info) => info.type === "Directory" ? "directory" : info.type === "File" ? "file" : "other";
12
+ const normalizationPlatformError = (field) => (cause) => ReleaseNormalizationError.make({
13
+ field,
14
+ reason: formatUnknown(cause)
15
+ });
16
+ const validateArtifactFormat = (artifact, kind) => {
17
+ if (artifact.format === "directory" && kind !== "directory") {
18
+ return Effect.fail(ReleaseNormalizationError.make({
19
+ field: `artifacts.${artifact.id}.format`,
20
+ reason: `Expected directory artifact at ${artifact.path}`
21
+ }));
22
+ }
23
+ if (artifact.format !== "directory" && kind === "directory") {
24
+ return Effect.fail(ReleaseNormalizationError.make({
25
+ field: `artifacts.${artifact.id}.format`,
26
+ reason: `Expected file-like artifact at ${artifact.path}`
27
+ }));
28
+ }
29
+ return Effect.void;
30
+ };
31
+ const checksumArtifact = Effect.fn("checksumArtifact")(function* (artifact, targetPath, fileType) {
32
+ if (fileType !== "File") {
33
+ return yield* Effect.fail(ReleaseNormalizationError.make({
34
+ field: `artifacts.${artifact.id}.checksum`,
35
+ reason: "Only file artifacts can be hashed"
36
+ }));
37
+ }
38
+ const fs = yield* FileSystem.FileSystem;
39
+ const crypto = yield* Crypto.Crypto;
40
+ const bytes = yield* fs.readFile(targetPath).pipe(Effect.mapError(normalizationPlatformError(`artifacts.${artifact.id}.checksum`)));
41
+ const digest = yield* crypto.digest(checksumName("sha256"), bytes).pipe(Effect.mapError(normalizationPlatformError(`artifacts.${artifact.id}.checksum`)));
42
+ return Checksum.make({
43
+ algorithm: "sha256",
44
+ value: Encoding.encodeHex(digest)
45
+ });
46
+ });
47
+ export const inventoryArtifact = Effect.fn("inventoryArtifact")(function* (root, artifact) {
48
+ const fs = yield* FileSystem.FileSystem;
49
+ const path = yield* Path.Path;
50
+ const targetPath = artifactPath(path, root, artifact.path);
51
+ const info = yield* fs.stat(targetPath).pipe(Effect.mapError(normalizationPlatformError(`artifacts.${artifact.id}.path`)));
52
+ const kind = artifactKind(info);
53
+ yield* validateArtifactFormat(artifact, kind);
54
+ const checksum = artifact.checksum ?? (artifact.format === "directory"
55
+ ? undefined
56
+ : yield* checksumArtifact(artifact, targetPath, info.type));
57
+ return ArtifactInventoryItem.make({
58
+ id: artifact.id,
59
+ path: artifact.path,
60
+ format: artifact.format,
61
+ consumers: [...artifact.consumers].sort(),
62
+ sizeBytes: Number(info.size),
63
+ ...(checksum === undefined ? {} : { checksum })
64
+ });
65
+ });
66
+ //# sourceMappingURL=artifact-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-inventory.js","sourceRoot":"","sources":["../../src/planner/artifact-inventory.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import { ReleaseIntent, ReleasePlan } from "../domain/release.js";
3
3
  export type * from "../types/effect-internal.js";
4
- export declare const createReleasePlan: (intent: ReleaseIntent, root?: string | undefined, configPath?: string | undefined) => Effect.Effect<ReleasePlan, import("./errors.js").ReleaseNormalizationError | import("./errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError, import("../host/host.js").ReleaseHost | import("../targets/registry.js").TargetRegistry>;
4
+ export declare const createReleasePlan: (intent: ReleaseIntent, root?: string | undefined, configPath?: string | undefined) => Effect.Effect<ReleasePlan, import("./errors.js").ReleaseNormalizationError | import("./errors.js").PlanConstructionError | import("../targets/registry.js").MissingTargetAdapterError, import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("../targets/registry.js").TargetRegistry | import("../host/host.js").ReleaseCommandRunner | import("effect/Crypto").Crypto>;
5
5
  //# sourceMappingURL=create-release-plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-release-plan.d.ts","sourceRoot":"","sources":["../../src/planner/create-release-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAmB,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIlF,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,iBAAiB,wWAuB5B,CAAA"}
1
+ {"version":3,"file":"create-release-plan.d.ts","sourceRoot":"","sources":["../../src/planner/create-release-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAmB,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIlF,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,iBAAiB,wdAuB5B,CAAA"}
@@ -25,6 +25,42 @@ declare const EvidenceWriteError_base: Schema.Class<EvidenceWriteError, Schema.T
25
25
  }>, import("effect/Cause").YieldableError>;
26
26
  export declare class EvidenceWriteError extends EvidenceWriteError_base {
27
27
  }
28
+ declare const EvidenceReadError_base: Schema.Class<EvidenceReadError, Schema.TaggedStruct<"EvidenceReadError", {
29
+ readonly path: Schema.String;
30
+ readonly reason: Schema.String;
31
+ }>, import("effect/Cause").YieldableError>;
32
+ export declare class EvidenceReadError extends EvidenceReadError_base {
33
+ }
34
+ declare const WorkspaceWriteError_base: Schema.Class<WorkspaceWriteError, Schema.TaggedStruct<"WorkspaceWriteError", {
35
+ readonly path: Schema.String;
36
+ readonly reason: Schema.String;
37
+ }>, import("effect/Cause").YieldableError>;
38
+ export declare class WorkspaceWriteError extends WorkspaceWriteError_base {
39
+ }
40
+ declare const ResumeBlockedError_base: Schema.Class<ResumeBlockedError, Schema.TaggedStruct<"ResumeBlockedError", {
41
+ readonly operationId: Schema.String;
42
+ readonly reason: Schema.String;
43
+ }>, import("effect/Cause").YieldableError>;
44
+ export declare class ResumeBlockedError extends ResumeBlockedError_base {
45
+ }
46
+ declare const RemoteStateInspectionError_base: Schema.Class<RemoteStateInspectionError, Schema.TaggedStruct<"RemoteStateInspectionError", {
47
+ readonly targetId: Schema.String;
48
+ readonly reason: Schema.String;
49
+ }>, import("effect/Cause").YieldableError>;
50
+ export declare class RemoteStateInspectionError extends RemoteStateInspectionError_base {
51
+ }
52
+ declare const ReleaseEligibilityCheckError_base: Schema.Class<ReleaseEligibilityCheckError, Schema.TaggedStruct<"ReleaseEligibilityCheckError", {
53
+ readonly targetId: Schema.optionalKey<Schema.String>;
54
+ readonly reason: Schema.String;
55
+ }>, import("effect/Cause").YieldableError>;
56
+ export declare class ReleaseEligibilityCheckError extends ReleaseEligibilityCheckError_base {
57
+ }
58
+ declare const ReconciliationBlockedError_base: Schema.Class<ReconciliationBlockedError, Schema.TaggedStruct<"ReconciliationBlockedError", {
59
+ readonly targetId: Schema.String;
60
+ readonly reasons: Schema.$Array<Schema.String>;
61
+ }>, import("effect/Cause").YieldableError>;
62
+ export declare class ReconciliationBlockedError extends ReconciliationBlockedError_base {
63
+ }
28
64
  declare const OperationFailedError_base: Schema.Class<OperationFailedError, Schema.TaggedStruct<"OperationFailedError", {
29
65
  readonly operationId: Schema.String;
30
66
  readonly exitCode: Schema.optionalKey<Schema.Number>;
@@ -35,5 +71,5 @@ declare const OperationFailedError_base: Schema.Class<OperationFailedError, Sche
35
71
  }>, import("effect/Cause").YieldableError>;
36
72
  export declare class OperationFailedError extends OperationFailedError_base {
37
73
  }
38
- export type PlannerError = ReleaseNormalizationError | ArtifactInventoryError | PlanConstructionError | EvidenceWriteError | OperationFailedError;
74
+ export type PlannerError = ReleaseNormalizationError | ArtifactInventoryError | PlanConstructionError | EvidenceWriteError | EvidenceReadError | WorkspaceWriteError | ResumeBlockedError | RemoteStateInspectionError | ReleaseEligibilityCheckError | ReconciliationBlockedError | OperationFailedError;
39
75
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/planner/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AAEtF,mBAAmB,6BAA6B,CAAA;;;;;AAEhD,qBAAa,yBAA0B,SAAQ,8BAM9C;CAAG;;;;;AAEJ,qBAAa,sBAAuB,SAAQ,2BAM3C;CAAG;;;;;AAEJ,qBAAa,qBAAsB,SAAQ,0BAGzC;CAAG;;;;;AAEL,qBAAa,kBAAmB,SAAQ,uBAGtC;CAAG;;;;;;;;;AAEL,qBAAa,oBAAqB,SAAQ,yBAOxC;CAAG;AAEL,MAAM,MAAM,YAAY,GACpB,yBAAyB,GACzB,sBAAsB,GACtB,qBAAqB,GACrB,kBAAkB,GAClB,oBAAoB,CAAA"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/planner/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AAEtF,mBAAmB,6BAA6B,CAAA;;;;;AAEhD,qBAAa,yBAA0B,SAAQ,8BAM9C;CAAG;;;;;AAEJ,qBAAa,sBAAuB,SAAQ,2BAM3C;CAAG;;;;;AAEJ,qBAAa,qBAAsB,SAAQ,0BAGzC;CAAG;;;;;AAEL,qBAAa,kBAAmB,SAAQ,uBAGtC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAGrC;CAAG;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBAGvC;CAAG;;;;;AAEL,qBAAa,kBAAmB,SAAQ,uBAGtC;CAAG;;;;;AAEL,qBAAa,0BAA2B,SAAQ,+BAM/C;CAAG;;;;;AAEJ,qBAAa,4BAA6B,SAAQ,iCAMjD;CAAG;;;;;AAEJ,qBAAa,0BAA2B,SAAQ,+BAM/C;CAAG;;;;;;;;;AAEJ,qBAAa,oBAAqB,SAAQ,yBAOxC;CAAG;AAEL,MAAM,MAAM,YAAY,GACpB,yBAAyB,GACzB,sBAAsB,GACtB,qBAAqB,GACrB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,kBAAkB,GAClB,0BAA0B,GAC1B,4BAA4B,GAC5B,0BAA0B,GAC1B,oBAAoB,CAAA"}
@@ -20,6 +20,36 @@ export class EvidenceWriteError extends Schema.TaggedErrorClass()("EvidenceWrite
20
20
  reason: Schema.String
21
21
  }) {
22
22
  }
23
+ export class EvidenceReadError extends Schema.TaggedErrorClass()("EvidenceReadError", {
24
+ path: Schema.String,
25
+ reason: Schema.String
26
+ }) {
27
+ }
28
+ export class WorkspaceWriteError extends Schema.TaggedErrorClass()("WorkspaceWriteError", {
29
+ path: Schema.String,
30
+ reason: Schema.String
31
+ }) {
32
+ }
33
+ export class ResumeBlockedError extends Schema.TaggedErrorClass()("ResumeBlockedError", {
34
+ operationId: Schema.String,
35
+ reason: Schema.String
36
+ }) {
37
+ }
38
+ export class RemoteStateInspectionError extends Schema.TaggedErrorClass()("RemoteStateInspectionError", {
39
+ targetId: Schema.String,
40
+ reason: Schema.String
41
+ }) {
42
+ }
43
+ export class ReleaseEligibilityCheckError extends Schema.TaggedErrorClass()("ReleaseEligibilityCheckError", {
44
+ targetId: Schema.optionalKey(Schema.String),
45
+ reason: Schema.String
46
+ }) {
47
+ }
48
+ export class ReconciliationBlockedError extends Schema.TaggedErrorClass()("ReconciliationBlockedError", {
49
+ targetId: Schema.String,
50
+ reasons: Schema.Array(Schema.String)
51
+ }) {
52
+ }
23
53
  export class OperationFailedError extends Schema.TaggedErrorClass()("OperationFailedError", {
24
54
  operationId: Schema.String,
25
55
  exitCode: Schema.optionalKey(Schema.Number),
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/planner/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AAItF,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,gBAAgB,EAA6B,CACjG,2BAA2B,EAC3B;IACE,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG;AAEJ,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC,gBAAgB,EAA0B,CAC3F,wBAAwB,EACxB;IACE,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG;AAEJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,gBAAgB,EAAyB,CAAC,uBAAuB,EAAE;IACnH,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,gBAAgB,EAAsB,CAAC,oBAAoB,EAAE;IAC1G,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,gBAAgB,EAAwB,CAAC,sBAAsB,EAAE;IAChH,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;IAC5C,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,8BAA8B,CAAC;CACrE,CAAC;CAAG"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/planner/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AAItF,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,gBAAgB,EAA6B,CACjG,2BAA2B,EAC3B;IACE,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG;AAEJ,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC,gBAAgB,EAA0B,CAC3F,wBAAwB,EACxB;IACE,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG;AAEJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,gBAAgB,EAAyB,CAAC,uBAAuB,EAAE;IACnH,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,gBAAgB,EAAsB,CAAC,oBAAoB,EAAE;IAC1G,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,gBAAgB,EAAqB,CAAC,mBAAmB,EAAE;IACvG,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,gBAAgB,EAAuB,CAAC,qBAAqB,EAAE;IAC7G,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,gBAAgB,EAAsB,CAAC,oBAAoB,EAAE;IAC1G,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,gBAAgB,EAA8B,CACnG,4BAA4B,EAC5B;IACE,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG;AAEJ,MAAM,OAAO,4BAA6B,SAAQ,MAAM,CAAC,gBAAgB,EAAgC,CACvG,8BAA8B,EAC9B;IACE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG;AAEJ,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,gBAAgB,EAA8B,CACnG,4BAA4B,EAC5B;IACE,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;CACrC,CACF;CAAG;AAEJ,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,gBAAgB,EAAwB,CAAC,sBAAsB,EAAE;IAChH,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;IAC5C,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,8BAA8B,CAAC;CACrE,CAAC;CAAG"}
@@ -1,21 +1,26 @@
1
1
  import * as Effect from "effect/Effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import * as Path from "effect/Path";
2
4
  import * as Schema from "effect/Schema";
3
5
  import { CommandEvidence, EvidenceBundle, EvidenceRecord, ExecutionEvidence, HttpEvidence, ValidationEvidence } from "../domain/evidence.js";
4
6
  import { VerifyHttpOperation } from "../domain/operation.js";
5
7
  import { ReleasePlan } from "../domain/release.js";
6
- import { ReleaseHost } from "../host/host.js";
8
+ import { ReleaseCommandRunner } from "../host/host.js";
7
9
  import { ReleaseHttp } from "../host/http.js";
8
- import { EvidenceWriteError } from "./errors.js";
10
+ import { EvidenceReadError, EvidenceWriteError } from "./errors.js";
9
11
  export type * from "../types/effect-internal.js";
10
12
  export declare const emptyEvidenceBundle: (plan: ReleasePlan) => EvidenceBundle;
11
13
  export declare const appendEvidenceRecord: (bundle: EvidenceBundle, record: EvidenceRecord) => EvidenceBundle;
12
14
  export declare const redactText: (input: string, secrets: ReadonlyArray<string>) => string;
13
- export declare const readRedactionSecrets: (operation: 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 | VerifyHttpOperation) => Effect.Effect<string[], never, ReleaseHost>;
14
- export declare const commandEvidenceFromResult: (operation: import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation) => Effect.Effect<CommandEvidence, import("../host/host.js").HostError, ReleaseHost>;
15
- export declare const httpEvidenceFromResult: (operation: VerifyHttpOperation) => Effect.Effect<HttpEvidence, never, ReleaseHost | ReleaseHttp>;
16
- export declare const executionEvidence: (operation: 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 | VerifyHttpOperation, message: string) => Effect.Effect<ExecutionEvidence, never, ReleaseHost>;
17
- export declare const validationNoteEvidence: (operation: import("../domain/operation.js").ValidationNoteOperation) => Effect.Effect<ValidationEvidence, never, ReleaseHost>;
15
+ export declare const readRedactionSecrets: (operation: 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 | VerifyHttpOperation) => Effect.Effect<string[], never, never>;
16
+ export declare const commandEvidenceFromResult: (operation: import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation) => Effect.Effect<CommandEvidence, import("../host/host.js").CommandRunnerError, ReleaseCommandRunner>;
17
+ export declare const httpEvidenceFromResult: (operation: VerifyHttpOperation) => Effect.Effect<HttpEvidence, never, ReleaseHttp>;
18
+ export declare const executionEvidence: (operation: 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 | VerifyHttpOperation, message: string) => Effect.Effect<ExecutionEvidence, never, never>;
19
+ export declare const validationNoteEvidence: (operation: import("../domain/operation.js").ValidationNoteOperation) => Effect.Effect<ValidationEvidence, never, never>;
18
20
  export declare const renderEvidenceJson: (bundle: EvidenceBundle) => string;
19
- export declare const writeEvidenceBundle: (path: string, bundle: EvidenceBundle) => Effect.Effect<void, EvidenceWriteError, ReleaseHost>;
21
+ export declare const writeEvidenceBundle: (pathName: string, bundle: EvidenceBundle, root?: string | undefined) => Effect.Effect<void, EvidenceWriteError, FileSystem.FileSystem | Path.Path>;
20
22
  export declare const decodeEvidenceBundle: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => Effect.Effect<EvidenceBundle, Schema.SchemaError, never>;
23
+ export declare const readEvidenceBundle: (pathName: string, root?: string | undefined) => Effect.Effect<EvidenceBundle, EvidenceReadError, FileSystem.FileSystem | Path.Path>;
24
+ export declare const tryReadEvidenceBundle: (pathName: string, root?: string | undefined) => Effect.Effect<EvidenceBundle | undefined, EvidenceReadError, FileSystem.FileSystem | Path.Path>;
25
+ export declare const mergeEvidenceBundles: (plan: ReleasePlan, existing: EvidenceBundle | undefined, fresh: EvidenceBundle) => Effect.Effect<EvidenceBundle, EvidenceReadError, never>;
21
26
  //# sourceMappingURL=evidence-recorder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evidence-recorder.d.ts","sourceRoot":"","sources":["../../src/planner/evidence-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EAEjB,YAAY,EAEZ,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAA0D,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACpH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,mBAAmB,GAAI,MAAM,WAAW,KAAG,cAMpD,CAAA;AAEJ,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,cAAc,EACtB,QAAQ,cAAc,KACrB,cAMC,CAAA;AAEJ,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,SAAS,aAAa,CAAC,MAAM,CAAC,KAAG,MAQ1E,CAAA;AAED,eAAO,MAAM,oBAAoB,mXAe/B,CAAA;AAEF,eAAO,MAAM,yBAAyB,gRAqBpC,CAAA;AA2GF,eAAO,MAAM,sBAAsB,mGA2DjC,CAAA;AAEF,eAAO,MAAM,iBAAiB,6YAY5B,CAAA;AAEF,eAAO,MAAM,sBAAsB,gIAejC,CAAA;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,KAAG,MACpB,CAAA;AAExC,eAAO,MAAM,mBAAmB,gGAU9B,CAAA;AAEF,eAAO,MAAM,oBAAoB,iIAA6C,CAAA"}
1
+ {"version":3,"file":"evidence-recorder.d.ts","sourceRoot":"","sources":["../../src/planner/evidence-recorder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAEnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EAEjB,YAAY,EAEZ,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAA0D,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACpH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEnE,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,mBAAmB,GAAI,MAAM,WAAW,KAAG,cAMpD,CAAA;AAEJ,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,cAAc,EACtB,QAAQ,cAAc,KACrB,cAMC,CAAA;AAEJ,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,SAAS,aAAa,CAAC,MAAM,CAAC,KAAG,MAQ1E,CAAA;AAsBD,eAAO,MAAM,oBAAoB,6WAc/B,CAAA;AAEF,eAAO,MAAM,yBAAyB,kSAqBpC,CAAA;AA2GF,eAAO,MAAM,sBAAsB,qFA0DjC,CAAA;AAEF,eAAO,MAAM,iBAAiB,uYAW5B,CAAA;AAEF,eAAO,MAAM,sBAAsB,0HAcjC,CAAA;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,KAAG,MACpB,CAAA;AAExC,eAAO,MAAM,mBAAmB,qJAmB9B,CAAA;AAEF,eAAO,MAAM,oBAAoB,iIAA6C,CAAA;AAyB9E,eAAO,MAAM,kBAAkB,sIAa7B,CAAA;AAEF,eAAO,MAAM,qBAAqB,kJAmChC,CAAA;AAmBF,eAAO,MAAM,oBAAoB,6IAc/B,CAAA"}