@mannyc1/ts-release 0.0.3 → 0.0.6

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 (146) hide show
  1. package/ARCHITECTURE.md +1 -1
  2. package/README.md +73 -8
  3. package/SPEC.md +15 -1
  4. package/dist/config/errors.d.ts +2 -1
  5. package/dist/config/errors.d.ts.map +1 -1
  6. package/dist/config/errors.js +4 -3
  7. package/dist/config/errors.js.map +1 -1
  8. package/dist/config/load.d.ts.map +1 -1
  9. package/dist/config/load.js +5 -3
  10. package/dist/config/load.js.map +1 -1
  11. package/dist/domain/artifact.d.ts +3 -3
  12. package/dist/domain/artifact.d.ts.map +1 -1
  13. package/dist/domain/artifact.js +1 -1
  14. package/dist/domain/artifact.js.map +1 -1
  15. package/dist/domain/evidence.d.ts +14 -14
  16. package/dist/domain/evidence.d.ts.map +1 -1
  17. package/dist/domain/evidence.js +4 -3
  18. package/dist/domain/evidence.js.map +1 -1
  19. package/dist/domain/operation.d.ts +14 -14
  20. package/dist/domain/operation.d.ts.map +1 -1
  21. package/dist/domain/operation.js +8 -13
  22. package/dist/domain/operation.js.map +1 -1
  23. package/dist/domain/release.d.ts +83 -9
  24. package/dist/domain/release.d.ts.map +1 -1
  25. package/dist/domain/release.js +75 -5
  26. package/dist/domain/release.js.map +1 -1
  27. package/dist/domain/remote-state.d.ts +20 -25
  28. package/dist/domain/remote-state.d.ts.map +1 -1
  29. package/dist/domain/remote-state.js +14 -22
  30. package/dist/domain/remote-state.js.map +1 -1
  31. package/dist/domain/status.d.ts +4 -4
  32. package/dist/domain/status.d.ts.map +1 -1
  33. package/dist/domain/status.js +3 -2
  34. package/dist/domain/status.js.map +1 -1
  35. package/dist/domain/target.d.ts +7 -7
  36. package/dist/domain/target.d.ts.map +1 -1
  37. package/dist/domain/target.js +1 -1
  38. package/dist/domain/target.js.map +1 -1
  39. package/dist/host/host.d.ts +1 -0
  40. package/dist/host/host.d.ts.map +1 -1
  41. package/dist/host/host.js +2 -1
  42. package/dist/host/host.js.map +1 -1
  43. package/dist/host/http-live.d.ts.map +1 -1
  44. package/dist/host/http-live.js +4 -3
  45. package/dist/host/http-live.js.map +1 -1
  46. package/dist/host/http.d.ts +1 -0
  47. package/dist/host/http.d.ts.map +1 -1
  48. package/dist/host/http.js +2 -1
  49. package/dist/host/http.js.map +1 -1
  50. package/dist/host/platform.d.ts.map +1 -1
  51. package/dist/host/platform.js +6 -13
  52. package/dist/host/platform.js.map +1 -1
  53. package/dist/host/test.d.ts.map +1 -1
  54. package/dist/host/test.js +43 -0
  55. package/dist/host/test.js.map +1 -1
  56. package/dist/internal/workflow-phases.d.ts +3 -0
  57. package/dist/internal/workflow-phases.d.ts.map +1 -0
  58. package/dist/internal/workflow-phases.js +2 -0
  59. package/dist/internal/workflow-phases.js.map +1 -0
  60. package/dist/internal/workspace-path.d.ts +4 -5
  61. package/dist/internal/workspace-path.d.ts.map +1 -1
  62. package/dist/internal/workspace-path.js +3 -0
  63. package/dist/internal/workspace-path.js.map +1 -1
  64. package/dist/planner/artifact-inventory.d.ts.map +1 -1
  65. package/dist/planner/artifact-inventory.js +6 -7
  66. package/dist/planner/artifact-inventory.js.map +1 -1
  67. package/dist/planner/errors.d.ts +12 -6
  68. package/dist/planner/errors.d.ts.map +1 -1
  69. package/dist/planner/errors.js +20 -12
  70. package/dist/planner/errors.js.map +1 -1
  71. package/dist/planner/evidence-recorder.d.ts.map +1 -1
  72. package/dist/planner/evidence-recorder.js +26 -36
  73. package/dist/planner/evidence-recorder.js.map +1 -1
  74. package/dist/planner/executor.d.ts.map +1 -1
  75. package/dist/planner/executor.js +2 -13
  76. package/dist/planner/executor.js.map +1 -1
  77. package/dist/planner/normalize-release.d.ts +11 -2
  78. package/dist/planner/normalize-release.d.ts.map +1 -1
  79. package/dist/planner/normalize-release.js +88 -10
  80. package/dist/planner/normalize-release.js.map +1 -1
  81. package/dist/planner/reconcile.d.ts.map +1 -1
  82. package/dist/planner/reconcile.js +5 -81
  83. package/dist/planner/reconcile.js.map +1 -1
  84. package/dist/planner/release-eligibility.d.ts +18 -13
  85. package/dist/planner/release-eligibility.d.ts.map +1 -1
  86. package/dist/planner/release-eligibility.js +428 -29
  87. package/dist/planner/release-eligibility.js.map +1 -1
  88. package/dist/planner/render-plan.d.ts +1 -1
  89. package/dist/planner/render-plan.js +2 -1
  90. package/dist/planner/render-plan.js.map +1 -1
  91. package/dist/planner/status.d.ts +8 -8
  92. package/dist/planner/status.d.ts.map +1 -1
  93. package/dist/planner/status.js +57 -86
  94. package/dist/planner/status.js.map +1 -1
  95. package/dist/targets/adapter-helpers.d.ts +36 -3
  96. package/dist/targets/adapter-helpers.d.ts.map +1 -1
  97. package/dist/targets/adapter-helpers.js +60 -3
  98. package/dist/targets/adapter-helpers.js.map +1 -1
  99. package/dist/targets/github-release.d.ts +25 -0
  100. package/dist/targets/github-release.d.ts.map +1 -0
  101. package/dist/targets/github-release.js +82 -0
  102. package/dist/targets/github-release.js.map +1 -0
  103. package/dist/targets/github.d.ts +2 -2
  104. package/dist/targets/github.d.ts.map +1 -1
  105. package/dist/targets/github.js +24 -75
  106. package/dist/targets/github.js.map +1 -1
  107. package/dist/targets/homebrew.d.ts +2 -2
  108. package/dist/targets/homebrew.d.ts.map +1 -1
  109. package/dist/targets/homebrew.js +28 -54
  110. package/dist/targets/homebrew.js.map +1 -1
  111. package/dist/targets/live.d.ts.map +1 -1
  112. package/dist/targets/live.js +29 -20
  113. package/dist/targets/live.js.map +1 -1
  114. package/dist/targets/npm.d.ts +2 -2
  115. package/dist/targets/npm.d.ts.map +1 -1
  116. package/dist/targets/npm.js +37 -59
  117. package/dist/targets/npm.js.map +1 -1
  118. package/dist/targets/pypi.d.ts +2 -2
  119. package/dist/targets/pypi.d.ts.map +1 -1
  120. package/dist/targets/pypi.js +25 -37
  121. package/dist/targets/pypi.js.map +1 -1
  122. package/dist/targets/scoop.d.ts +2 -2
  123. package/dist/targets/scoop.d.ts.map +1 -1
  124. package/dist/targets/scoop.js +13 -28
  125. package/dist/targets/scoop.js.map +1 -1
  126. package/dist/workflows/config.d.ts +123 -24
  127. package/dist/workflows/config.d.ts.map +1 -1
  128. package/dist/workflows/config.js +217 -53
  129. package/dist/workflows/config.js.map +1 -1
  130. package/dist/workflows/diagnostics.d.ts +6 -6
  131. package/dist/workflows/diagnostics.d.ts.map +1 -1
  132. package/dist/workflows/diagnostics.js +136 -83
  133. package/dist/workflows/diagnostics.js.map +1 -1
  134. package/dist/workflows/evidence.d.ts +8 -3
  135. package/dist/workflows/evidence.d.ts.map +1 -1
  136. package/dist/workflows/evidence.js +14 -15
  137. package/dist/workflows/evidence.js.map +1 -1
  138. package/dist/workflows/init.d.ts +14 -1
  139. package/dist/workflows/init.d.ts.map +1 -1
  140. package/dist/workflows/init.js +138 -81
  141. package/dist/workflows/init.js.map +1 -1
  142. package/package.json +7 -3
  143. package/templates/README.md +5 -0
  144. package/templates/github-actions/plan-and-approved-execute.yml +10 -5
  145. package/templates/github-actions/plan-only.yml +5 -2
  146. package/templates/github-actions/trusted-publishing.yml +7 -5
@@ -0,0 +1,82 @@
1
+ import { CommandSpec, HttpEnvHeader, HttpHeader, HttpRequestSpec } from "../domain/operation.js";
2
+ export const githubAuthEnvNames = (target) => target.tokenEnv === undefined ? [] : [target.tokenEnv];
3
+ export const githubGhCommand = (target, args, includeAuth) => CommandSpec.make({
4
+ executable: "gh",
5
+ args: [...args],
6
+ requiredEnv: includeAuth ? githubAuthEnvNames(target) : [],
7
+ redactedEnv: includeAuth ? githubAuthEnvNames(target) : []
8
+ });
9
+ export const githubTargetArtifacts = (target, context) => context.artifacts.filter((artifact) => artifact.consumers.includes(target.id));
10
+ export const githubReleaseAssetName = (pathName) => {
11
+ const parts = pathName.replaceAll("\\", "/").split("/");
12
+ return parts[parts.length - 1] ?? pathName;
13
+ };
14
+ export const githubTargetArtifactAssetNames = (target, context) => githubTargetArtifacts(target, context).map((artifact) => githubReleaseAssetName(artifact.path));
15
+ export const githubReleaseTag = (context) => context.identity.tag ?? context.identity.version;
16
+ export const githubReleaseTitle = (context) => `${context.identity.name} ${context.identity.version}`;
17
+ export const githubReleaseCreateArgs = (target, context) => {
18
+ const args = [
19
+ "release",
20
+ "create",
21
+ githubReleaseTag(context),
22
+ "--repo",
23
+ target.repository,
24
+ "--title",
25
+ githubReleaseTitle(context)
26
+ ];
27
+ if (target.draft === true) {
28
+ args.push("--draft");
29
+ }
30
+ if (target.prerelease === true) {
31
+ args.push("--prerelease");
32
+ }
33
+ if (context.identity.notes !== undefined) {
34
+ args.push("--notes", context.identity.notes);
35
+ }
36
+ for (const artifact of githubTargetArtifacts(target, context)) {
37
+ args.push(artifact.path);
38
+ }
39
+ return args;
40
+ };
41
+ export const githubReleaseApiUrl = (target, tag) => `https://api.github.com/repos/${target.repository}/releases/tags/${encodeURIComponent(tag)}`;
42
+ export const githubApiHeaders = () => [
43
+ HttpHeader.make({ name: "Accept", value: "application/vnd.github+json" }),
44
+ HttpHeader.make({ name: "X-GitHub-Api-Version", value: "2022-11-28" })
45
+ ];
46
+ export const githubApiEnvHeaders = (target) => target.tokenEnv === undefined
47
+ ? []
48
+ : [
49
+ HttpEnvHeader.make({
50
+ name: "Authorization",
51
+ valueEnv: target.tokenEnv,
52
+ prefix: "Bearer "
53
+ })
54
+ ];
55
+ export const githubApiGetRequestSpec = (target, url) => HttpRequestSpec.make({
56
+ method: "GET",
57
+ url,
58
+ headers: githubApiHeaders(),
59
+ envHeaders: githubApiEnvHeaders(target),
60
+ requiredEnv: githubAuthEnvNames(target),
61
+ redactedEnv: githubAuthEnvNames(target)
62
+ });
63
+ export const githubReleaseRequestSpec = (target, tag) => githubApiGetRequestSpec(target, githubReleaseApiUrl(target, tag));
64
+ export const githubReleaseCreateCommand = (target, context) => githubGhCommand(target, githubReleaseCreateArgs(target, context), true);
65
+ export const githubReleaseViewCommand = (target, context) => githubGhCommand(target, [
66
+ "release",
67
+ "view",
68
+ githubReleaseTag(context),
69
+ "--repo",
70
+ target.repository,
71
+ "--json",
72
+ "tagName,name,isDraft,isPrerelease,assets"
73
+ ], true);
74
+ export const githubReleasePublishDraftCommand = (target, context) => githubGhCommand(target, [
75
+ "release",
76
+ "edit",
77
+ githubReleaseTag(context),
78
+ "--repo",
79
+ target.repository,
80
+ "--draft=false"
81
+ ], true);
82
+ //# sourceMappingURL=github-release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-release.js","sourceRoot":"","sources":["../../src/targets/github-release.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,eAAe,EAChB,MAAM,wBAAwB,CAAA;AAW/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAA2B,EAAyB,EAAE,CACvF,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAA2B,EAC3B,IAA2B,EAC3B,WAAoB,EACP,EAAE,CACf,WAAW,CAAC,IAAI,CAAC;IACf,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAC1D,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;CAC3D,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAA2B,EAC3B,OAA6B,EAC7B,EAAE,CACF,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AAEhF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,MAA2B,EAC3B,OAA6B,EACN,EAAE,CACzB,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;AAEjG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA6B,EAAU,EAAE,CACxE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAA;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAA6B,EAAU,EAAE,CAC1E,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;AAExD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAA2B,EAC3B,OAA6B,EACN,EAAE;IACzB,MAAM,IAAI,GAAkB;QAC1B,SAAS;QACT,QAAQ;QACR,gBAAgB,CAAC,OAAO,CAAC;QACzB,QAAQ;QACR,MAAM,CAAC,UAAU;QACjB,SAAS;QACT,kBAAkB,CAAC,OAAO,CAAC;KAC5B,CAAA;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA2B,EAAE,GAAW,EAAU,EAAE,CACtF,gCAAgC,MAAM,CAAC,UAAU,kBAAkB,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAA;AAE9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAA8B,EAAE,CAAC;IAC/D,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;IACzE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;CACvE,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA2B,EAAgC,EAAE,CAC/F,MAAM,CAAC,QAAQ,KAAK,SAAS;IAC3B,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC;QACA,aAAa,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,SAAS;SAClB,CAAC;KACH,CAAA;AAEL,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAA2B,EAC3B,GAAW,EACM,EAAE,CACnB,eAAe,CAAC,IAAI,CAAC;IACnB,MAAM,EAAE,KAAK;IACb,GAAG;IACH,OAAO,EAAE,gBAAgB,EAAE;IAC3B,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC;CACxC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAA2B,EAC3B,GAAW,EACM,EAAE,CACnB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,MAA2B,EAC3B,OAA6B,EAChB,EAAE,CACf,eAAe,CAAC,MAAM,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAA2B,EAC3B,OAA6B,EAChB,EAAE,CACf,eAAe,CACb,MAAM,EACN;IACE,SAAS;IACT,MAAM;IACN,gBAAgB,CAAC,OAAO,CAAC;IACzB,QAAQ;IACR,MAAM,CAAC,UAAU;IACjB,QAAQ;IACR,0CAA0C;CAC3C,EACD,IAAI,CACL,CAAA;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,MAA2B,EAC3B,OAA6B,EAChB,EAAE,CACf,eAAe,CACb,MAAM,EACN;IACE,SAAS;IACT,MAAM;IACN,gBAAgB,CAAC,OAAO,CAAC;IACzB,QAAQ;IACR,MAAM,CAAC,UAAU;IACjB,eAAe;CAChB,EACD,IAAI,CACL,CAAA"}
@@ -1,11 +1,11 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { PublishCommandOperation, ValidateCommandOperation, VerifyHttpOperation } from "../domain/operation.js";
2
+ import { PublishCommandOperation, VerifyHttpOperation, VerifyRemoteOperation } from "../domain/operation.js";
3
3
  import { ReleaseModel } from "../domain/release.js";
4
4
  import { GitHubReleaseTarget, TargetCapabilities } from "../domain/target.js";
5
5
  import { PlanConstructionError } from "../planner/errors.js";
6
6
  import { GitHubTargetAdapter } from "./adapter.js";
7
7
  export type * from "../types/effect-internal.js";
8
8
  export declare const githubTargetCapabilities: (target: GitHubReleaseTarget) => TargetCapabilities;
9
- export declare const planGitHubOperations: (target: GitHubReleaseTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation | VerifyHttpOperation)[], PlanConstructionError, never>;
9
+ export declare const planGitHubOperations: (target: GitHubReleaseTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | VerifyRemoteOperation | VerifyHttpOperation)[], PlanConstructionError, never>;
10
10
  export declare const GitHubAdapter: GitHubTargetAdapter;
11
11
  //# sourceMappingURL=github.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAWL,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAGnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,mBAAmB,6BAA6B,CAAA;AAyBhD,eAAO,MAAM,wBAAwB,GAAI,QAAQ,mBAAmB,KAAG,kBACN,CAAA;AA8JjE,eAAO,MAAM,oBAAoB,4VAoD/B,CAAA;AAEF,eAAO,MAAM,aAAa,EAAE,mBAI3B,CAAA"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAOL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAGnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAmBlD,mBAAmB,6BAA6B,CAAA;AAKhD,eAAO,MAAM,wBAAwB,GAAI,QAAQ,mBAAmB,KAAG,kBACN,CAAA;AA6FjE,eAAO,MAAM,oBAAoB,4VAkD/B,CAAA;AAEF,eAAO,MAAM,aAAa,EAAE,mBAI3B,CAAA"}
@@ -1,19 +1,12 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { CommandSpec, executeGate, HttpEnvHeader, HttpHeader, HttpJsonArrayObjectFieldEqualsCheck, HttpJsonEqualsCheck, HttpRequestSpec, irreversibleGate, noApprovalGate, PublishCommandOperation, ValidateCommandOperation, VerifyHttpOperation } from "../domain/operation.js";
2
+ import { executeGate, HttpJsonArrayObjectFieldEqualsCheck, HttpJsonEqualsCheck, irreversibleGate, noApprovalGate, PublishCommandOperation, VerifyHttpOperation, VerifyRemoteOperation } from "../domain/operation.js";
3
3
  import { PlanConstructionError } from "../planner/errors.js";
4
- import { rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation } from "./adapter-helpers.js";
5
- const envNames = (target) => target.tokenEnv === undefined ? [] : [target.tokenEnv];
6
- const ghCommand = (target, args, includeAuth) => CommandSpec.make({
7
- executable: "gh",
8
- args: [...args],
9
- requiredEnv: includeAuth ? envNames(target) : [],
10
- redactedEnv: includeAuth ? envNames(target) : []
11
- });
4
+ import { readOnlyCommandValidationOperation, rejectNoDryRunInStrictMode, targetCapabilitiesFor, validationNoteOperation } from "./adapter-helpers.js";
5
+ import { githubGhCommand, githubReleaseAssetName, githubReleaseCreateCommand, githubReleaseRequestSpec, githubReleaseTag, githubReleaseTitle, githubReleaseViewCommand, githubTargetArtifacts } from "./github-release.js";
12
6
  const githubValidationStrategy = (target) => target.dryRunSupport === "none" ? "skipped" : "simulated-plan";
13
7
  export const githubTargetCapabilities = (target) => targetCapabilitiesFor(target, githubValidationStrategy(target));
14
- const targetArtifacts = (target, model) => model.artifacts.filter((artifact) => artifact.consumers.includes(target.id));
15
8
  const rejectDirectoryAssets = Effect.fn("github.rejectDirectoryAssets")(function* (target, model) {
16
- const directoryAsset = targetArtifacts(target, model).find((artifact) => artifact.format === "directory");
9
+ const directoryAsset = githubTargetArtifacts(target, model).find((artifact) => artifact.format === "directory");
17
10
  if (directoryAsset === undefined) {
18
11
  return;
19
12
  }
@@ -22,68 +15,26 @@ const rejectDirectoryAssets = Effect.fn("github.rejectDirectoryAssets")(function
22
15
  reason: "GitHub release assets must be file-like, not directories."
23
16
  }));
24
17
  });
25
- const pathBaseName = (path) => {
26
- const parts = path.replaceAll("\\", "/").split("/");
27
- return parts[parts.length - 1] ?? path;
28
- };
29
- const githubReleaseTag = (model) => model.identity.tag ?? model.identity.version;
30
- const githubReleaseTitle = (model) => `${model.identity.name} ${model.identity.version}`;
31
- const releaseArgs = (target, model) => {
32
- const args = [
33
- "release",
34
- "create",
35
- githubReleaseTag(model),
36
- "--repo",
37
- target.repository,
38
- "--title",
39
- githubReleaseTitle(model)
40
- ];
18
+ const githubVerificationOperations = (target, model) => {
41
19
  if (target.draft === true) {
42
- args.push("--draft");
43
- }
44
- if (target.prerelease === true) {
45
- args.push("--prerelease");
46
- }
47
- if (model.identity.notes !== undefined) {
48
- args.push("--notes", model.identity.notes);
49
- }
50
- for (const artifact of targetArtifacts(target, model)) {
51
- args.push(artifact.path);
20
+ return [
21
+ VerifyRemoteOperation.make({
22
+ id: `${target.id}:github-release-verify-gh`,
23
+ targetId: target.id,
24
+ description: "Verify the GitHub draft release through the GitHub CLI.",
25
+ risk: "read-only",
26
+ gate: noApprovalGate("GitHub CLI release verification is read-only."),
27
+ command: githubReleaseViewCommand(target, model)
28
+ })
29
+ ];
52
30
  }
53
- return args;
54
- };
55
- const githubReleaseApiUrl = (target, tag) => `https://api.github.com/repos/${target.repository}/releases/tags/${encodeURIComponent(tag)}`;
56
- const githubApiHeaders = () => [
57
- HttpHeader.make({ name: "Accept", value: "application/vnd.github+json" }),
58
- HttpHeader.make({ name: "X-GitHub-Api-Version", value: "2022-11-28" })
59
- ];
60
- const githubApiEnvHeaders = (target) => target.tokenEnv === undefined
61
- ? []
62
- : [
63
- HttpEnvHeader.make({
64
- name: "Authorization",
65
- valueEnv: target.tokenEnv,
66
- prefix: "Bearer "
67
- })
68
- ];
69
- const githubReleaseRequestSpec = (target, tag) => HttpRequestSpec.make({
70
- method: "GET",
71
- url: githubReleaseApiUrl(target, tag),
72
- headers: githubApiHeaders(),
73
- envHeaders: githubApiEnvHeaders(target),
74
- requiredEnv: envNames(target),
75
- redactedEnv: envNames(target)
76
- });
77
- const githubReleaseCreateCommand = (target, model) => ghCommand(target, releaseArgs(target, model), true);
78
- const githubVerificationOperations = (target, model) => {
79
31
  const tag = githubReleaseTag(model);
80
32
  const title = githubReleaseTitle(model);
81
- const isDraft = target.draft === true;
82
33
  const isPrerelease = target.prerelease === true;
83
- const artifactChecks = targetArtifacts(target, model).map((artifact) => HttpJsonArrayObjectFieldEqualsCheck.make({
34
+ const artifactChecks = githubTargetArtifacts(target, model).map((artifact) => HttpJsonArrayObjectFieldEqualsCheck.make({
84
35
  path: ["assets"],
85
36
  field: "name",
86
- expected: pathBaseName(artifact.path)
37
+ expected: githubReleaseAssetName(artifact.path)
87
38
  }));
88
39
  return [
89
40
  VerifyHttpOperation.make({
@@ -105,7 +56,7 @@ const githubVerificationOperations = (target, model) => {
105
56
  }),
106
57
  HttpJsonEqualsCheck.make({
107
58
  path: ["draft"],
108
- expected: isDraft
59
+ expected: false
109
60
  }),
110
61
  HttpJsonEqualsCheck.make({
111
62
  path: ["prerelease"],
@@ -140,21 +91,19 @@ export const planGitHubOperations = Effect.fn("planGitHubOperations")(function*
140
91
  ? irreversibleGate("Creating this GitHub release is externally visible and configured as immutable.")
141
92
  : executeGate("Creating or updating a GitHub release is externally visible.");
142
93
  return [
143
- ValidateCommandOperation.make({
94
+ readOnlyCommandValidationOperation({
144
95
  id: `${target.id}:gh-version`,
145
96
  targetId: target.id,
146
97
  description: "Check GitHub CLI availability.",
147
- risk: "read-only",
148
- gate: noApprovalGate("CLI availability validation is read-only."),
149
- command: ghCommand(target, ["--version"], false)
98
+ gateReason: "CLI availability validation is read-only.",
99
+ command: githubGhCommand(target, ["--version"], false)
150
100
  }),
151
- ValidateCommandOperation.make({
101
+ readOnlyCommandValidationOperation({
152
102
  id: `${target.id}:gh-auth-status`,
153
103
  targetId: target.id,
154
104
  description: "Validate GitHub CLI authentication.",
155
- risk: "read-only",
156
- gate: noApprovalGate("gh auth status checks authentication without publishing."),
157
- command: ghCommand(target, ["auth", "status"], true)
105
+ gateReason: "gh auth status checks authentication without publishing.",
106
+ command: githubGhCommand(target, ["auth", "status"], true)
158
107
  }),
159
108
  githubDryRunOperation(target, dryRunSupport),
160
109
  PublishCommandOperation.make({
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/targets/github.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { PublishCommandOperation, RenderFileOperation, ValidateCommandOperation } from "../domain/operation.js";
2
+ import { RenderFileOperation } from "../domain/operation.js";
3
3
  import { ReleaseModel } from "../domain/release.js";
4
4
  import { HomebrewTapTarget, TargetCapabilities } from "../domain/target.js";
5
5
  import { PlanConstructionError } from "../planner/errors.js";
6
6
  import { HomebrewTargetAdapter } from "./adapter.js";
7
7
  export type * from "../types/effect-internal.js";
8
8
  export declare const homebrewTargetCapabilities: (target: HomebrewTapTarget) => TargetCapabilities;
9
- export declare const planHomebrewOperations: (target: HomebrewTapTarget, model: ReleaseModel) => Effect.Effect<(RenderFileOperation | ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], PlanConstructionError, never>;
9
+ export declare const planHomebrewOperations: (target: HomebrewTapTarget, model: ReleaseModel) => Effect.Effect<(RenderFileOperation | import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | import("../domain/operation.js").PublishCommandOperation | import("../domain/operation.js").VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], PlanConstructionError, never>;
10
10
  export declare const HomebrewAdapter: HomebrewTargetAdapter;
11
11
  //# sourceMappingURL=homebrew.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"homebrew.d.ts","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAML,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAUpD,mBAAmB,6BAA6B,CAAA;AAyBhD,eAAO,MAAM,0BAA0B,GAAI,QAAQ,iBAAiB,KAAG,kBACW,CAAA;AA0ElF,eAAO,MAAM,sBAAsB,0VAmDjC,CAAA;AAEF,eAAO,MAAM,eAAe,EAAE,qBAI7B,CAAA"}
1
+ {"version":3,"file":"homebrew.d.ts","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAGL,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAepD,mBAAmB,6BAA6B,CAAA;AAUhD,eAAO,MAAM,0BAA0B,GAAI,QAAQ,iBAAiB,KAAG,kBACW,CAAA;AA6DlF,eAAO,MAAM,sBAAsB,4ZA8CjC,CAAA;AAEF,eAAO,MAAM,eAAe,EAAE,qBAI7B,CAAA"}
@@ -1,26 +1,14 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { CommandSpec, executeGate, irreversibleGate, noApprovalGate, PublishCommandOperation, RenderFileOperation, ValidateCommandOperation } 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
- });
2
+ import { executeGate, RenderFileOperation } from "../domain/operation.js";
3
+ import { catalogGitPushOperation, catalogPathBaseName, dryRunValidationOperation, findRequiredArtifact, noAuthCommand, readOnlyCommandValidationOperation, requireSha256FileArtifact, rejectNoDryRunInStrictMode, rejectUnsupportedCatalogTokenEnv, targetCapabilitiesFor, validationStrategyForDryRun } from "./adapter-helpers.js";
11
4
  const rejectUnsupportedTokenEnv = Effect.fn("rejectUnsupportedHomebrewTokenEnv")(function* (target) {
12
- if (target.tokenEnv !== undefined) {
13
- return yield* Effect.fail(PlanConstructionError.make({
14
- targetId: target.id,
15
- reason: "Homebrew tap 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
- }
5
+ return yield* rejectUnsupportedCatalogTokenEnv({
6
+ targetId: target.id,
7
+ targetLabel: "Homebrew tap",
8
+ tokenEnv: target.tokenEnv
9
+ });
18
10
  });
19
11
  export const homebrewTargetCapabilities = (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
12
  const rubyString = (value) => JSON.stringify(value);
25
13
  const formulaClassName = (formulaName) => {
26
14
  const parts = formulaName.split(/[^A-Za-z0-9]+/).filter((part) => part.length > 0);
@@ -54,41 +42,27 @@ const renderFormula = (target, model) => Effect.gen(function* () {
54
42
  ""
55
43
  ].join("\n");
56
44
  });
57
- const dryRunOperation = (target) => {
58
- const dryRunSupport = target.dryRunSupport;
59
- return dryRunSupport === "native"
60
- ? ValidateCommandOperation.make({
61
- id: `${target.id}:brew-audit`,
62
- targetId: target.id,
63
- description: "Validate generated Homebrew formula with brew audit.",
64
- risk: "read-only",
65
- gate: noApprovalGate("brew audit validates the generated formula without publishing."),
66
- command: command("brew", ["audit", "--strict", "--formula", target.formulaPath])
67
- })
68
- : validationNoteOperation({
69
- id: `${target.id}:brew-audit`,
70
- targetId: target.id,
71
- dryRunSupport,
72
- simulatedDescription: "Record simulated Homebrew formula validation.",
73
- skippedDescription: "Record skipped Homebrew formula validation.",
74
- simulatedMessage: "Homebrew formula validation is simulated by the deterministic release plan.",
75
- skippedMessage: "Homebrew formula validation was skipped because this target declares no dry-run support."
76
- });
77
- };
45
+ const dryRunOperation = (target) => dryRunValidationOperation({
46
+ id: `${target.id}:brew-audit`,
47
+ targetId: target.id,
48
+ dryRunSupport: target.dryRunSupport,
49
+ nativeDescription: "Validate generated Homebrew formula with brew audit.",
50
+ nativeGateReason: "brew audit validates the generated formula without publishing.",
51
+ command: noAuthCommand("brew", ["audit", "--strict", "--formula", target.formulaPath]),
52
+ simulatedDescription: "Record simulated Homebrew formula validation.",
53
+ skippedDescription: "Record skipped Homebrew formula validation.",
54
+ simulatedMessage: "Homebrew formula validation is simulated by the deterministic release plan.",
55
+ skippedMessage: "Homebrew formula validation was skipped because this target declares no dry-run support."
56
+ });
78
57
  export const planHomebrewOperations = Effect.fn("planHomebrewOperations")(function* (target, model) {
79
58
  yield* rejectUnsupportedTokenEnv(target);
80
59
  yield* rejectNoDryRunInStrictMode(target, model, "Homebrew tap target declares no dry-run support in strict mode.");
81
60
  const formula = yield* renderFormula(target, model);
82
- const publishRisk = target.mutability === "immutable" ? "irreversible" : "externally-visible";
83
- const publishGate = publishRisk === "irreversible"
84
- ? irreversibleGate("Pushing a Homebrew tap update is configured as irreversible.")
85
- : executeGate("Pushing a Homebrew tap update is externally visible.");
86
- const tapDirectory = target.tapDirectory ?? ".";
87
61
  const operations = [
88
62
  RenderFileOperation.make({
89
63
  id: `${target.id}:homebrew-render-formula`,
90
64
  targetId: target.id,
91
- description: `Render Homebrew formula ${pathBaseName(target.formulaPath)}.`,
65
+ description: `Render Homebrew formula ${catalogPathBaseName(target.formulaPath)}.`,
92
66
  risk: "writes-local",
93
67
  gate: executeGate("Rendering a Homebrew formula writes a local generated file."),
94
68
  path: target.formulaPath,
@@ -96,22 +70,22 @@ export const planHomebrewOperations = Effect.fn("planHomebrewOperations")(functi
96
70
  })
97
71
  ];
98
72
  if (target.dryRunSupport === "native") {
99
- operations.push(ValidateCommandOperation.make({
73
+ operations.push(readOnlyCommandValidationOperation({
100
74
  id: `${target.id}:brew-version`,
101
75
  targetId: target.id,
102
76
  description: "Check Homebrew CLI availability.",
103
- risk: "read-only",
104
- gate: noApprovalGate("CLI availability validation is read-only."),
105
- command: command("brew", ["--version"])
77
+ gateReason: "CLI availability validation is read-only.",
78
+ command: noAuthCommand("brew", ["--version"])
106
79
  }));
107
80
  }
108
- operations.push(dryRunOperation(target), PublishCommandOperation.make({
81
+ operations.push(dryRunOperation(target), catalogGitPushOperation({
109
82
  id: `${target.id}:homebrew-push`,
110
83
  targetId: target.id,
111
84
  description: `Push Homebrew tap update for ${model.identity.name}@${model.identity.version}.`,
112
- risk: publishRisk,
113
- gate: publishGate,
114
- command: command("git", ["-C", tapDirectory, "push"])
85
+ mutability: target.mutability,
86
+ directory: target.tapDirectory,
87
+ irreversibleReason: "Pushing a Homebrew tap update is configured as irreversible.",
88
+ externallyVisibleReason: "Pushing a Homebrew tap update is externally visible."
115
89
  }));
116
90
  return operations;
117
91
  });
@@ -1 +1 @@
1
- {"version":3,"file":"homebrew.js","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"homebrew.js","sourceRoot":"","sources":["../../src/targets/homebrew.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/targets/live.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAOrC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,mBAAmB,6BAA6B,CAAA;AAmChD,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAG9D,CAAA"}
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/targets/live.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAcrC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,mBAAmB,6BAA6B,CAAA;AAuDhD,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAG9D,CAAA"}
@@ -6,34 +6,43 @@ import { NpmAdapter } from "./npm.js";
6
6
  import { PyPiAdapter } from "./pypi.js";
7
7
  import { TargetRegistry } from "./registry.js";
8
8
  import { ScoopAdapter } from "./scoop.js";
9
- const planLiveTargetOperations = Effect.fn("planLiveTargetOperations")(function* (target, model) {
10
- switch (target._tag) {
11
- case "NpmRegistryTarget":
12
- return yield* NpmAdapter.planOperations(target, model);
13
- case "GitHubReleaseTarget":
14
- return yield* GitHubAdapter.planOperations(target, model);
15
- case "HomebrewTapTarget":
16
- return yield* HomebrewAdapter.planOperations(target, model);
17
- case "PyPiRegistryTarget":
18
- return yield* PyPiAdapter.planOperations(target, model);
19
- case "ScoopBucketTarget":
20
- return yield* ScoopAdapter.planOperations(target, model);
21
- }
22
- });
23
- const liveTargetCapabilities = (target) => {
9
+ const liveTargetAdapters = {
10
+ NpmRegistryTarget: NpmAdapter,
11
+ GitHubReleaseTarget: GitHubAdapter,
12
+ HomebrewTapTarget: HomebrewAdapter,
13
+ PyPiRegistryTarget: PyPiAdapter,
14
+ ScoopBucketTarget: ScoopAdapter
15
+ };
16
+ const withLiveTargetAdapter = (target, handlers) => {
24
17
  switch (target._tag) {
25
18
  case "NpmRegistryTarget":
26
- return NpmAdapter.capabilities(target);
19
+ return handlers.NpmRegistryTarget(liveTargetAdapters.NpmRegistryTarget, target);
27
20
  case "GitHubReleaseTarget":
28
- return GitHubAdapter.capabilities(target);
21
+ return handlers.GitHubReleaseTarget(liveTargetAdapters.GitHubReleaseTarget, target);
29
22
  case "HomebrewTapTarget":
30
- return HomebrewAdapter.capabilities(target);
23
+ return handlers.HomebrewTapTarget(liveTargetAdapters.HomebrewTapTarget, target);
31
24
  case "PyPiRegistryTarget":
32
- return PyPiAdapter.capabilities(target);
25
+ return handlers.PyPiRegistryTarget(liveTargetAdapters.PyPiRegistryTarget, target);
33
26
  case "ScoopBucketTarget":
34
- return ScoopAdapter.capabilities(target);
27
+ return handlers.ScoopBucketTarget(liveTargetAdapters.ScoopBucketTarget, target);
35
28
  }
36
29
  };
30
+ const planLiveTargetOperations = Effect.fn("planLiveTargetOperations")(function* (target, model) {
31
+ return yield* withLiveTargetAdapter(target, {
32
+ NpmRegistryTarget: (adapter, target) => adapter.planOperations(target, model),
33
+ GitHubReleaseTarget: (adapter, target) => adapter.planOperations(target, model),
34
+ HomebrewTapTarget: (adapter, target) => adapter.planOperations(target, model),
35
+ PyPiRegistryTarget: (adapter, target) => adapter.planOperations(target, model),
36
+ ScoopBucketTarget: (adapter, target) => adapter.planOperations(target, model)
37
+ });
38
+ });
39
+ const liveTargetCapabilities = (target) => withLiveTargetAdapter(target, {
40
+ NpmRegistryTarget: (adapter, target) => adapter.capabilities(target),
41
+ GitHubReleaseTarget: (adapter, target) => adapter.capabilities(target),
42
+ HomebrewTapTarget: (adapter, target) => adapter.capabilities(target),
43
+ PyPiRegistryTarget: (adapter, target) => adapter.capabilities(target),
44
+ ScoopBucketTarget: (adapter, target) => adapter.capabilities(target)
45
+ });
37
46
  export const LiveTargetRegistryLayer = Layer.succeed(TargetRegistry)({
38
47
  targetCapabilities: liveTargetCapabilities,
39
48
  planTargetOperations: planLiveTargetOperations
@@ -1 +1 @@
1
- {"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/targets/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAIzC,MAAM,wBAAwB,GAAG,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAC9E,MAAoB,EACpB,KAAmB;IAEnB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,mBAAmB;YACtB,OAAO,KAAK,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACxD,KAAK,qBAAqB;YACxB,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC3D,KAAK,mBAAmB;YACtB,OAAO,KAAK,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7D,KAAK,oBAAoB;YACvB,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACzD,KAAK,mBAAmB;YACtB,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,CAAC,MAAoB,EAAE,EAAE;IACtD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,mBAAmB;YACtB,OAAO,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACxC,KAAK,qBAAqB;YACxB,OAAO,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC3C,KAAK,mBAAmB;YACtB,OAAO,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC7C,KAAK,oBAAoB;YACvB,OAAO,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QACzC,KAAK,mBAAmB;YACtB,OAAO,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAgC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAChG,kBAAkB,EAAE,sBAAsB;IAC1C,oBAAoB,EAAE,wBAAwB;CAC/C,CAAC,CAAA"}
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/targets/live.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { PublishCommandOperation, ValidateCommandOperation, VerifyRemoteOperation } from "../domain/operation.js";
2
+ import { PublishCommandOperation, VerifyRemoteOperation } from "../domain/operation.js";
3
3
  import { ReleaseModel } from "../domain/release.js";
4
4
  import { NpmRegistryTarget, TargetCapabilities } from "../domain/target.js";
5
5
  import { NpmTargetAdapter } from "./adapter.js";
6
6
  export type * from "../types/effect-internal.js";
7
7
  export declare const npmTargetCapabilities: (target: NpmRegistryTarget) => TargetCapabilities;
8
- export declare const planNpmOperations: (target: NpmRegistryTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], import("../planner/errors.js").PlanConstructionError, never>;
8
+ export declare const planNpmOperations: (target: NpmRegistryTarget, model: ReleaseModel) => Effect.Effect<(import("../domain/operation.js").RenderFileOperation | import("../domain/operation.js").ValidateCommandOperation | import("../domain/operation.js").ValidationNoteOperation | PublishCommandOperation | VerifyRemoteOperation | import("../domain/operation.js").VerifyHttpOperation)[], import("../planner/errors.js").PlanConstructionError, never>;
9
9
  export declare const NpmAdapter: NpmTargetAdapter;
10
10
  //# sourceMappingURL=npm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAKL,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAQ/C,mBAAmB,6BAA6B,CAAA;AA4ChD,eAAO,MAAM,qBAAqB,GAAI,QAAQ,iBAAiB,KAAG,kBAejE,CAAA;AAmED,eAAO,MAAM,iBAAiB,yXAyC5B,CAAA;AAEF,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAA"}
1
+ {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/targets/npm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAKL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAU/C,mBAAmB,6BAA6B,CAAA;AAwChD,eAAO,MAAM,qBAAqB,GAAI,QAAQ,iBAAiB,KAAG,kBAOjE,CAAA;AAyDD,eAAO,MAAM,iBAAiB,0ZAuC5B,CAAA;AAEF,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAA"}