@mannyc1/ts-release 0.0.1 → 0.0.3

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 (162) hide show
  1. package/ARCHITECTURE.md +93 -0
  2. package/README.md +282 -49
  3. package/SPEC.md +46 -9
  4. package/dist/config/schema.d.ts +4 -0
  5. package/dist/config/schema.d.ts.map +1 -1
  6. package/dist/config/schema.js +13 -0
  7. package/dist/config/schema.js.map +1 -1
  8. package/dist/domain/evidence.d.ts +4 -0
  9. package/dist/domain/evidence.d.ts.map +1 -1
  10. package/dist/domain/evidence.js +4 -0
  11. package/dist/domain/evidence.js.map +1 -1
  12. package/dist/domain/operation.d.ts +1 -0
  13. package/dist/domain/operation.d.ts.map +1 -1
  14. package/dist/domain/operation.js +147 -1
  15. package/dist/domain/operation.js.map +1 -1
  16. package/dist/domain/release.d.ts +1 -0
  17. package/dist/domain/release.d.ts.map +1 -1
  18. package/dist/domain/release.js +1 -0
  19. package/dist/domain/release.js.map +1 -1
  20. package/dist/domain/remote-state.d.ts +90 -0
  21. package/dist/domain/remote-state.d.ts.map +1 -0
  22. package/dist/domain/remote-state.js +85 -0
  23. package/dist/domain/remote-state.js.map +1 -0
  24. package/dist/domain/status.d.ts +43 -0
  25. package/dist/domain/status.d.ts.map +1 -0
  26. package/dist/domain/status.js +50 -0
  27. package/dist/domain/status.js.map +1 -0
  28. package/dist/domain/target.d.ts +32 -2
  29. package/dist/domain/target.d.ts.map +1 -1
  30. package/dist/domain/target.js +35 -2
  31. package/dist/domain/target.js.map +1 -1
  32. package/dist/host/host.d.ts +7 -23
  33. package/dist/host/host.d.ts.map +1 -1
  34. package/dist/host/host.js +3 -22
  35. package/dist/host/host.js.map +1 -1
  36. package/dist/host/http-live.d.ts +1 -2
  37. package/dist/host/http-live.d.ts.map +1 -1
  38. package/dist/host/http-live.js +18 -9
  39. package/dist/host/http-live.js.map +1 -1
  40. package/dist/host/http.d.ts +3 -1
  41. package/dist/host/http.d.ts.map +1 -1
  42. package/dist/host/http.js +3 -1
  43. package/dist/host/http.js.map +1 -1
  44. package/dist/host/platform.d.ts +10 -0
  45. package/dist/host/platform.d.ts.map +1 -0
  46. package/dist/host/platform.js +121 -0
  47. package/dist/host/platform.js.map +1 -0
  48. package/dist/host/test.d.ts +7 -3
  49. package/dist/host/test.d.ts.map +1 -1
  50. package/dist/host/test.js +128 -25
  51. package/dist/host/test.js.map +1 -1
  52. package/dist/internal/workspace-path.d.ts +16 -0
  53. package/dist/internal/workspace-path.d.ts.map +1 -0
  54. package/dist/internal/workspace-path.js +33 -0
  55. package/dist/internal/workspace-path.js.map +1 -0
  56. package/dist/planner/artifact-inventory.d.ts +9 -0
  57. package/dist/planner/artifact-inventory.d.ts.map +1 -0
  58. package/dist/planner/artifact-inventory.js +85 -0
  59. package/dist/planner/artifact-inventory.js.map +1 -0
  60. package/dist/planner/create-release-plan.d.ts +1 -1
  61. package/dist/planner/create-release-plan.d.ts.map +1 -1
  62. package/dist/planner/errors.d.ts +37 -1
  63. package/dist/planner/errors.d.ts.map +1 -1
  64. package/dist/planner/errors.js +30 -0
  65. package/dist/planner/errors.js.map +1 -1
  66. package/dist/planner/evidence-recorder.d.ts +13 -8
  67. package/dist/planner/evidence-recorder.d.ts.map +1 -1
  68. package/dist/planner/evidence-recorder.js +116 -18
  69. package/dist/planner/evidence-recorder.js.map +1 -1
  70. package/dist/planner/executor.d.ts +31 -19
  71. package/dist/planner/executor.d.ts.map +1 -1
  72. package/dist/planner/executor.js +52 -7
  73. package/dist/planner/executor.js.map +1 -1
  74. package/dist/planner/normalize-release.d.ts +2 -2
  75. package/dist/planner/normalize-release.d.ts.map +1 -1
  76. package/dist/planner/normalize-release.js +50 -52
  77. package/dist/planner/normalize-release.js.map +1 -1
  78. package/dist/planner/reconcile.d.ts +17 -0
  79. package/dist/planner/reconcile.d.ts.map +1 -0
  80. package/dist/planner/reconcile.js +337 -0
  81. package/dist/planner/reconcile.js.map +1 -0
  82. package/dist/planner/release-eligibility.d.ts +34 -0
  83. package/dist/planner/release-eligibility.d.ts.map +1 -0
  84. package/dist/planner/release-eligibility.js +179 -0
  85. package/dist/planner/release-eligibility.js.map +1 -0
  86. package/dist/planner/render-plan.d.ts +10 -0
  87. package/dist/planner/render-plan.d.ts.map +1 -1
  88. package/dist/planner/render-plan.js +179 -0
  89. package/dist/planner/render-plan.js.map +1 -1
  90. package/dist/planner/status.d.ts +40 -0
  91. package/dist/planner/status.d.ts.map +1 -0
  92. package/dist/planner/status.js +342 -0
  93. package/dist/planner/status.js.map +1 -0
  94. package/dist/targets/github.d.ts.map +1 -1
  95. package/dist/targets/github.js +28 -13
  96. package/dist/targets/github.js.map +1 -1
  97. package/dist/targets/npm.d.ts +2 -2
  98. package/dist/targets/npm.d.ts.map +1 -1
  99. package/dist/targets/npm.js +74 -14
  100. package/dist/targets/npm.js.map +1 -1
  101. package/dist/workflows/config.d.ts +153 -0
  102. package/dist/workflows/config.d.ts.map +1 -0
  103. package/dist/workflows/config.js +301 -0
  104. package/dist/workflows/config.js.map +1 -0
  105. package/dist/workflows/diagnostics.d.ts +62 -0
  106. package/dist/workflows/diagnostics.d.ts.map +1 -0
  107. package/dist/workflows/diagnostics.js +474 -0
  108. package/dist/workflows/diagnostics.js.map +1 -0
  109. package/dist/workflows/evidence.d.ts +21 -0
  110. package/dist/workflows/evidence.d.ts.map +1 -0
  111. package/dist/workflows/evidence.js +45 -0
  112. package/dist/workflows/evidence.js.map +1 -0
  113. package/dist/workflows/index.d.ts +7 -0
  114. package/dist/workflows/index.d.ts.map +1 -0
  115. package/dist/workflows/index.js +6 -0
  116. package/dist/workflows/index.js.map +1 -0
  117. package/dist/workflows/init.d.ts +71 -0
  118. package/dist/workflows/init.d.ts.map +1 -0
  119. package/dist/workflows/init.js +384 -0
  120. package/dist/workflows/init.js.map +1 -0
  121. package/dist/workflows/live.d.ts +9 -0
  122. package/dist/workflows/live.d.ts.map +1 -0
  123. package/dist/workflows/live.js +7 -0
  124. package/dist/workflows/live.js.map +1 -0
  125. package/dist/workflows/options.d.ts +30 -0
  126. package/dist/workflows/options.d.ts.map +1 -0
  127. package/dist/workflows/options.js +16 -0
  128. package/dist/workflows/options.js.map +1 -0
  129. package/examples/README.md +16 -9
  130. package/examples/github-release/release.config.json +1 -0
  131. package/examples/homebrew-tap/release.config.json +1 -0
  132. package/examples/multi-target/release.config.json +10 -1
  133. package/examples/non-strict-skips/release.config.json +1 -0
  134. package/examples/npm-first-publish/release.config.json +33 -0
  135. package/examples/npm-only/release.config.json +10 -1
  136. package/examples/pypi-registry/release.config.json +1 -0
  137. package/examples/scoop-bucket/release.config.json +1 -0
  138. package/package.json +56 -27
  139. package/templates/README.md +54 -0
  140. package/templates/github-actions/plan-and-approved-execute.yml +53 -0
  141. package/templates/github-actions/plan-only.yml +30 -0
  142. package/templates/github-actions/trusted-publishing.yml +59 -0
  143. package/templates/multi-target-homebrew/release.config.json +70 -0
  144. package/templates/multi-target-scoop/release.config.json +72 -0
  145. package/templates/npm-github/release.config.json +50 -0
  146. package/templates/npm-only/release.config.json +39 -0
  147. package/dist/cli/command.d.ts +0 -4
  148. package/dist/cli/command.d.ts.map +0 -1
  149. package/dist/cli/command.js +0 -125
  150. package/dist/cli/command.js.map +0 -1
  151. package/dist/cli/main.d.ts +0 -3
  152. package/dist/cli/main.d.ts.map +0 -1
  153. package/dist/cli/main.js +0 -15
  154. package/dist/cli/main.js.map +0 -1
  155. package/dist/cli/programmatic.d.ts +0 -25
  156. package/dist/cli/programmatic.d.ts.map +0 -1
  157. package/dist/cli/programmatic.js +0 -53
  158. package/dist/cli/programmatic.js.map +0 -1
  159. package/dist/host/bun.d.ts +0 -9
  160. package/dist/host/bun.d.ts.map +0 -1
  161. package/dist/host/bun.js +0 -156
  162. package/dist/host/bun.js.map +0 -1
@@ -0,0 +1,85 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { TargetId } from "./target.js";
3
+ export const NpmRemoteState = Schema.Literals(["missing", "published"]);
4
+ export const GitHubReleaseAvailability = Schema.Literals(["missing", "draft", "published"]);
5
+ export const ReleaseEligibilityStatus = Schema.Literals(["ready", "complete", "partial"]);
6
+ export class ReleaseEligibilityInput extends Schema.Class("ReleaseEligibilityInput")({
7
+ packageName: Schema.String,
8
+ packageVersion: Schema.String,
9
+ expectedGithubDraft: Schema.Boolean,
10
+ npm: NpmRemoteState,
11
+ github: GitHubReleaseAvailability
12
+ }) {
13
+ }
14
+ export class ReleaseEligibilityDecision extends Schema.Class("ReleaseEligibilityDecision")({
15
+ shouldRelease: Schema.Boolean,
16
+ status: ReleaseEligibilityStatus,
17
+ reason: Schema.String
18
+ }) {
19
+ }
20
+ export class GitHubReleaseMissing extends Schema.TaggedClass()("GitHubReleaseMissing", {
21
+ targetId: TargetId,
22
+ repository: Schema.String,
23
+ tag: Schema.String
24
+ }) {
25
+ }
26
+ export class GitHubReleaseDraft extends Schema.TaggedClass()("GitHubReleaseDraft", {
27
+ targetId: TargetId,
28
+ repository: Schema.String,
29
+ tag: Schema.String,
30
+ title: Schema.String,
31
+ draft: Schema.Literal(true),
32
+ prerelease: Schema.Boolean,
33
+ assetNames: Schema.Array(Schema.String)
34
+ }) {
35
+ }
36
+ export class GitHubReleasePublished extends Schema.TaggedClass()("GitHubReleasePublished", {
37
+ targetId: TargetId,
38
+ repository: Schema.String,
39
+ tag: Schema.String,
40
+ title: Schema.String,
41
+ draft: Schema.Literal(false),
42
+ prerelease: Schema.Boolean,
43
+ assetNames: Schema.Array(Schema.String)
44
+ }) {
45
+ }
46
+ export class GitHubReleaseMismatch extends Schema.TaggedClass()("GitHubReleaseMismatch", {
47
+ targetId: TargetId,
48
+ repository: Schema.String,
49
+ tag: Schema.String,
50
+ reasons: Schema.Array(Schema.String)
51
+ }) {
52
+ }
53
+ export const GitHubReleaseRemoteState = Schema.Union([
54
+ GitHubReleaseMissing,
55
+ GitHubReleaseDraft,
56
+ GitHubReleasePublished,
57
+ GitHubReleaseMismatch
58
+ ]);
59
+ export class GitHubReconcileSkip extends Schema.TaggedClass()("GitHubReconcileSkip", {
60
+ targetId: TargetId,
61
+ reason: Schema.String
62
+ }) {
63
+ }
64
+ export class GitHubReconcileCreateRelease extends Schema.TaggedClass()("GitHubReconcileCreateRelease", {
65
+ targetId: TargetId,
66
+ reason: Schema.String
67
+ }) {
68
+ }
69
+ export class GitHubReconcilePublishDraft extends Schema.TaggedClass()("GitHubReconcilePublishDraft", {
70
+ targetId: TargetId,
71
+ reason: Schema.String
72
+ }) {
73
+ }
74
+ export class GitHubReconcileBlock extends Schema.TaggedClass()("GitHubReconcileBlock", {
75
+ targetId: TargetId,
76
+ reasons: Schema.Array(Schema.String)
77
+ }) {
78
+ }
79
+ export const GitHubReleaseReconciliationDecision = Schema.Union([
80
+ GitHubReconcileSkip,
81
+ GitHubReconcileCreateRelease,
82
+ GitHubReconcilePublishDraft,
83
+ GitHubReconcileBlock
84
+ ]);
85
+ //# sourceMappingURL=remote-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-state.js","sourceRoot":"","sources":["../../src/domain/remote-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import * as Schema from "effect/Schema";
2
+ export type * from "../types/effect-internal.js";
3
+ export declare const ReleaseWorkflowPhase: Schema.Literals<readonly ["render", "validation", "execution", "verification"]>;
4
+ export type ReleaseWorkflowPhase = typeof ReleaseWorkflowPhase.Type;
5
+ export declare const ReleaseOperationStatus: Schema.Literals<readonly ["pending", "passed", "warning", "skipped", "failed", "blocked"]>;
6
+ export type ReleaseOperationStatus = typeof ReleaseOperationStatus.Type;
7
+ export declare const ReleaseOverallStatus: Schema.Literals<readonly ["not-started", "in-progress", "failed", "blocked", "complete"]>;
8
+ export type ReleaseOverallStatus = typeof ReleaseOverallStatus.Type;
9
+ export declare const ReleaseResumeAction: Schema.Literals<readonly ["skip", "run", "retry-read-only", "block"]>;
10
+ export type ReleaseResumeAction = typeof ReleaseResumeAction.Type;
11
+ declare const ReleaseOperationStatusRecord_base: Schema.Class<ReleaseOperationStatusRecord, Schema.Struct<{
12
+ readonly operationId: Schema.String;
13
+ readonly targetId: Schema.optionalKey<Schema.String>;
14
+ readonly phase: Schema.Literals<readonly ["render", "validation", "execution", "verification"]>;
15
+ readonly risk: Schema.Literals<readonly ["read-only", "writes-local", "externally-visible", "irreversible"]>;
16
+ readonly status: Schema.Literals<readonly ["pending", "passed", "warning", "skipped", "failed", "blocked"]>;
17
+ readonly resumeAction: Schema.Literals<readonly ["skip", "run", "retry-read-only", "block"]>;
18
+ readonly evidenceId: Schema.optionalKey<Schema.String>;
19
+ readonly reason: Schema.optionalKey<Schema.String>;
20
+ }>, {}>;
21
+ export declare class ReleaseOperationStatusRecord extends ReleaseOperationStatusRecord_base {
22
+ }
23
+ declare const ReleasePhaseStatusRecord_base: Schema.Class<ReleasePhaseStatusRecord, Schema.Struct<{
24
+ readonly phase: Schema.Literals<readonly ["render", "validation", "execution", "verification"]>;
25
+ readonly status: Schema.Literals<readonly ["pending", "passed", "warning", "skipped", "failed", "blocked"]>;
26
+ readonly completed: Schema.Number;
27
+ readonly total: Schema.Number;
28
+ }>, {}>;
29
+ export declare class ReleasePhaseStatusRecord extends ReleasePhaseStatusRecord_base {
30
+ }
31
+ declare const ReleaseStatusReport_base: Schema.Class<ReleaseStatusReport, Schema.Struct<{
32
+ readonly schemaVersion: Schema.Literal<"release-status/v1">;
33
+ readonly releaseName: Schema.String;
34
+ readonly releaseVersion: Schema.String;
35
+ readonly overallStatus: Schema.Literals<readonly ["not-started", "in-progress", "failed", "blocked", "complete"]>;
36
+ readonly canResume: Schema.Boolean;
37
+ readonly evidenceDirectory: Schema.String;
38
+ readonly phases: Schema.$Array<typeof ReleasePhaseStatusRecord>;
39
+ readonly operations: Schema.$Array<typeof ReleaseOperationStatusRecord>;
40
+ }>, {}>;
41
+ export declare class ReleaseStatusReport extends ReleaseStatusReport_base {
42
+ }
43
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/domain/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,oBAAoB,iFAAyE,CAAA;AAC1G,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,eAAO,MAAM,sBAAsB,4FAOjC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE,eAAO,MAAM,oBAAoB,2FAM/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,eAAO,MAAM,mBAAmB,uEAA+D,CAAA;AAC/F,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;;;;;;;;;;;AAEjE,qBAAa,4BAA6B,SAAQ,iCAWhD;CAAG;;;;;;;AAEL,qBAAa,wBAAyB,SAAQ,6BAK5C;CAAG;;;;;;;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBASvC;CAAG"}
@@ -0,0 +1,50 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { OperationId, OperationRisk } from "./operation.js";
3
+ import { TargetId } from "./target.js";
4
+ export const ReleaseWorkflowPhase = Schema.Literals(["render", "validation", "execution", "verification"]);
5
+ export const ReleaseOperationStatus = Schema.Literals([
6
+ "pending",
7
+ "passed",
8
+ "warning",
9
+ "skipped",
10
+ "failed",
11
+ "blocked"
12
+ ]);
13
+ export const ReleaseOverallStatus = Schema.Literals([
14
+ "not-started",
15
+ "in-progress",
16
+ "failed",
17
+ "blocked",
18
+ "complete"
19
+ ]);
20
+ export const ReleaseResumeAction = Schema.Literals(["skip", "run", "retry-read-only", "block"]);
21
+ export class ReleaseOperationStatusRecord extends Schema.Class("ReleaseOperationStatusRecord")({
22
+ operationId: OperationId,
23
+ targetId: Schema.optionalKey(TargetId),
24
+ phase: ReleaseWorkflowPhase,
25
+ risk: OperationRisk,
26
+ status: ReleaseOperationStatus,
27
+ resumeAction: ReleaseResumeAction,
28
+ evidenceId: Schema.optionalKey(Schema.String),
29
+ reason: Schema.optionalKey(Schema.String)
30
+ }) {
31
+ }
32
+ export class ReleasePhaseStatusRecord extends Schema.Class("ReleasePhaseStatusRecord")({
33
+ phase: ReleaseWorkflowPhase,
34
+ status: ReleaseOperationStatus,
35
+ completed: Schema.Number,
36
+ total: Schema.Number
37
+ }) {
38
+ }
39
+ export class ReleaseStatusReport extends Schema.Class("ReleaseStatusReport")({
40
+ schemaVersion: Schema.Literal("release-status/v1"),
41
+ releaseName: Schema.String,
42
+ releaseVersion: Schema.String,
43
+ overallStatus: ReleaseOverallStatus,
44
+ canResume: Schema.Boolean,
45
+ evidenceDirectory: Schema.String,
46
+ phases: Schema.Array(ReleasePhaseStatusRecord),
47
+ operations: Schema.Array(ReleaseOperationStatusRecord)
48
+ }) {
49
+ }
50
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/domain/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAItC,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA;AAG1G,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,QAAQ,CAAC;IACpD,SAAS;IACT,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,SAAS;CACV,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC;IAClD,aAAa;IACb,aAAa;IACb,QAAQ;IACR,SAAS;IACT,UAAU;CACX,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAA;AAG/F,MAAM,OAAO,4BAA6B,SAAQ,MAAM,CAAC,KAAK,CAC5D,8BAA8B,CAC/B,CAAC;IACA,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;IACtC,KAAK,EAAE,oBAAoB;IAC3B,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,sBAAsB;IAC9B,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;CAC1C,CAAC;CAAG;AAEL,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,KAAK,CAA2B,0BAA0B,CAAC,CAAC;IAC/G,KAAK,EAAE,oBAAoB;IAC3B,MAAM,EAAE,sBAAsB;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC;CAAG;AAEL,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,KAAK,CAAsB,qBAAqB,CAAC,CAAC;IAChG,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,cAAc,EAAE,MAAM,CAAC,MAAM;IAC7B,aAAa,EAAE,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC,OAAO;IACzB,iBAAiB,EAAE,MAAM,CAAC,MAAM;IAChC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAC9C,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC;CACvD,CAAC;CAAG"}
@@ -2,7 +2,7 @@ import * as Schema from "effect/Schema";
2
2
  export type * from "../types/effect-internal.js";
3
3
  export declare const TargetId: Schema.String;
4
4
  export type TargetId = typeof TargetId.Type;
5
- export declare const TargetAuthRequirement: Schema.Literals<readonly ["none", "env-token", "cli-auth"]>;
5
+ export declare const TargetAuthRequirement: Schema.Literals<readonly ["none", "env-token", "cli-auth", "trusted-publishing"]>;
6
6
  export type TargetAuthRequirement = typeof TargetAuthRequirement.Type;
7
7
  export declare const TargetDryRunSupport: Schema.Literals<readonly ["none", "native", "simulated"]>;
8
8
  export type TargetDryRunSupport = typeof TargetDryRunSupport.Type;
@@ -14,11 +14,23 @@ export declare const TargetValidationStrategy: Schema.Literals<readonly ["native
14
14
  export type TargetValidationStrategy = typeof TargetValidationStrategy.Type;
15
15
  export declare const NpmAccess: Schema.Literals<readonly ["public", "restricted"]>;
16
16
  export type NpmAccess = typeof NpmAccess.Type;
17
+ export declare const NpmTrustedPublishingProvider: Schema.Literals<readonly ["github-actions"]>;
18
+ export type NpmTrustedPublishingProvider = typeof NpmTrustedPublishingProvider.Type;
19
+ declare const NpmTrustedPublishingConfig_base: Schema.Class<NpmTrustedPublishingConfig, Schema.Struct<{
20
+ readonly provider: Schema.Literals<readonly ["github-actions"]>;
21
+ readonly workflow: Schema.String;
22
+ readonly packageExists: Schema.Literal<true>;
23
+ readonly verifyPackageExists: Schema.optionalKey<Schema.Boolean>;
24
+ }>, {}>;
25
+ export declare class NpmTrustedPublishingConfig extends NpmTrustedPublishingConfig_base {
26
+ }
17
27
  declare const NpmRegistryTarget_base: Schema.Class<NpmRegistryTarget, Schema.TaggedStruct<"NpmRegistryTarget", {
18
28
  readonly id: Schema.String;
19
29
  readonly registry: Schema.String;
30
+ readonly packageName: Schema.String;
20
31
  readonly packagePath: Schema.String;
21
32
  readonly tokenEnv: Schema.optionalKey<Schema.String>;
33
+ readonly trustedPublishing: Schema.optionalKey<typeof NpmTrustedPublishingConfig>;
22
34
  readonly access: Schema.optionalKey<Schema.Literals<readonly ["public", "restricted"]>>;
23
35
  readonly provenance: Schema.optionalKey<Schema.Boolean>;
24
36
  readonly dryRunSupport: Schema.Literals<readonly ["none", "native", "simulated"]>;
@@ -88,14 +100,32 @@ export declare class ScoopBucketTarget extends ScoopBucketTarget_base {
88
100
  }
89
101
  export declare const TargetConfig: Schema.Union<readonly [typeof NpmRegistryTarget, typeof GitHubReleaseTarget, typeof HomebrewTapTarget, typeof PyPiRegistryTarget, typeof ScoopBucketTarget]>;
90
102
  export type TargetConfig = typeof TargetConfig.Type;
103
+ export declare const TargetRunsIn: Schema.Literals<readonly ["ci"]>;
104
+ export type TargetRunsIn = typeof TargetRunsIn.Type;
105
+ declare const TargetRequiredPermission_base: Schema.Class<TargetRequiredPermission, Schema.Struct<{
106
+ readonly name: Schema.String;
107
+ readonly value: Schema.String;
108
+ }>, {}>;
109
+ export declare class TargetRequiredPermission extends TargetRequiredPermission_base {
110
+ }
111
+ declare const TargetAuthSetup_base: Schema.Class<TargetAuthSetup, Schema.Struct<{
112
+ readonly runsIn: Schema.Literals<readonly ["ci"]>;
113
+ readonly provider: Schema.Literals<readonly ["github-actions"]>;
114
+ readonly workflow: Schema.String;
115
+ readonly requiredPermissions: Schema.$Array<typeof TargetRequiredPermission>;
116
+ readonly prerequisites: Schema.$Array<Schema.String>;
117
+ }>, {}>;
118
+ export declare class TargetAuthSetup extends TargetAuthSetup_base {
119
+ }
91
120
  declare const TargetCapabilities_base: Schema.Class<TargetCapabilities, Schema.Struct<{
92
121
  readonly targetId: Schema.String;
93
122
  readonly targetTag: Schema.String;
94
- readonly authRequirement: Schema.Literals<readonly ["none", "env-token", "cli-auth"]>;
123
+ readonly authRequirement: Schema.Literals<readonly ["none", "env-token", "cli-auth", "trusted-publishing"]>;
95
124
  readonly dryRunSupport: Schema.Literals<readonly ["none", "native", "simulated"]>;
96
125
  readonly mutability: Schema.Literals<readonly ["immutable", "mutable-release", "mutable-index"]>;
97
126
  readonly recovery: Schema.Literals<readonly ["publish-new-version", "delete-and-recreate", "manual"]>;
98
127
  readonly validationStrategy: Schema.Literals<readonly ["native-command", "simulated-plan", "skipped"]>;
128
+ readonly authSetup: Schema.optionalKey<typeof TargetAuthSetup>;
99
129
  }>, {}>;
100
130
  export declare class TargetCapabilities extends TargetCapabilities_base {
101
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../src/domain/target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,QAAQ,eAAgB,CAAA;AACrC,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,eAAO,MAAM,qBAAqB,6DAAqD,CAAA;AACvF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AAErE,eAAO,MAAM,mBAAmB,2DAAmD,CAAA;AACnF,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;AAEjE,eAAO,MAAM,gBAAgB,6EAAqE,CAAA;AAClG,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,cAAc,oFAA4E,CAAA;AACvG,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,wBAAwB,2EAAmE,CAAA;AACxG,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAE3E,eAAO,MAAM,SAAS,oDAA4C,CAAA;AAClE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;;;;;;;;;;;;AAE7C,qBAAa,iBAAkB,SAAQ,sBAUrC;CAAG;;;;;;;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBASvC;CAAG;;;;;;;;;;;;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAcrC;CAAG;;;;;;;;;;AAEL,qBAAa,kBAAmB,SAAQ,uBAQtC;CAAG;;;;;;;;;;;;;;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAgBrC;CAAG;AAEL,eAAO,MAAM,YAAY,8JAMvB,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;;;;;;;;;;AAEnD,qBAAa,kBAAmB,SAAQ,uBAQtC;CAAG;AAEL,eAAO,MAAM,WAAW,GAAI,MAAM,YAAY,EAAE,OAAO,YAAY,KAAG,MACrC,CAAA;AAEjC,eAAO,MAAM,uBAAuB,GAAI,MAAM,kBAAkB,EAAE,OAAO,kBAAkB,KAAG,MACjD,CAAA;AAE7C,eAAO,MAAM,qBAAqB,GAAI,QAAQ,YAAY,KAAG,qBAQ5D,CAAA"}
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../src/domain/target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,QAAQ,eAAgB,CAAA;AACrC,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,eAAO,MAAM,qBAAqB,mFAKhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AAErE,eAAO,MAAM,mBAAmB,2DAAmD,CAAA;AACnF,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;AAEjE,eAAO,MAAM,gBAAgB,6EAAqE,CAAA;AAClG,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,cAAc,oFAA4E,CAAA;AACvG,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,wBAAwB,2EAAmE,CAAA;AACxG,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAE3E,eAAO,MAAM,SAAS,oDAA4C,CAAA;AAClE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,eAAO,MAAM,4BAA4B,8CAAsC,CAAA;AAC/E,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAC,IAAI,CAAA;;;;;;;AAEnF,qBAAa,0BAA2B,SAAQ,+BAO9C;CAAG;;;;;;;;;;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAYrC;CAAG;;;;;;;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBASvC;CAAG;;;;;;;;;;;;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAcrC;CAAG;;;;;;;;;;AAEL,qBAAa,kBAAmB,SAAQ,uBAQtC;CAAG;;;;;;;;;;;;;;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAgBrC;CAAG;AAEL,eAAO,MAAM,YAAY,8JAMvB,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,YAAY,kCAA0B,CAAA;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;;;;;AAEnD,qBAAa,wBAAyB,SAAQ,6BAG5C;CAAG;;;;;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAMnC;CAAG;;;;;;;;;;;AAEL,qBAAa,kBAAmB,SAAQ,uBAStC;CAAG;AAEL,eAAO,MAAM,WAAW,GAAI,MAAM,YAAY,EAAE,OAAO,YAAY,KAAG,MACrC,CAAA;AAEjC,eAAO,MAAM,uBAAuB,GAAI,MAAM,kBAAkB,EAAE,OAAO,kBAAkB,KAAG,MACjD,CAAA;AAE7C,eAAO,MAAM,qBAAqB,GAAI,QAAQ,YAAY,KAAG,qBAW5D,CAAA"}
@@ -1,16 +1,31 @@
1
1
  import * as Schema from "effect/Schema";
2
2
  export const TargetId = Schema.String;
3
- export const TargetAuthRequirement = Schema.Literals(["none", "env-token", "cli-auth"]);
3
+ export const TargetAuthRequirement = Schema.Literals([
4
+ "none",
5
+ "env-token",
6
+ "cli-auth",
7
+ "trusted-publishing"
8
+ ]);
4
9
  export const TargetDryRunSupport = Schema.Literals(["none", "native", "simulated"]);
5
10
  export const TargetMutability = Schema.Literals(["immutable", "mutable-release", "mutable-index"]);
6
11
  export const TargetRecovery = Schema.Literals(["publish-new-version", "delete-and-recreate", "manual"]);
7
12
  export const TargetValidationStrategy = Schema.Literals(["native-command", "simulated-plan", "skipped"]);
8
13
  export const NpmAccess = Schema.Literals(["public", "restricted"]);
14
+ export const NpmTrustedPublishingProvider = Schema.Literals(["github-actions"]);
15
+ export class NpmTrustedPublishingConfig extends Schema.Class("NpmTrustedPublishingConfig")({
16
+ provider: NpmTrustedPublishingProvider,
17
+ workflow: Schema.String,
18
+ packageExists: Schema.Literal(true),
19
+ verifyPackageExists: Schema.optionalKey(Schema.Boolean)
20
+ }) {
21
+ }
9
22
  export class NpmRegistryTarget extends Schema.TaggedClass()("NpmRegistryTarget", {
10
23
  id: TargetId,
11
24
  registry: Schema.String,
25
+ packageName: Schema.String,
12
26
  packagePath: Schema.String,
13
27
  tokenEnv: Schema.optionalKey(Schema.String),
28
+ trustedPublishing: Schema.optionalKey(NpmTrustedPublishingConfig),
14
29
  access: Schema.optionalKey(NpmAccess),
15
30
  provenance: Schema.optionalKey(Schema.Boolean),
16
31
  dryRunSupport: TargetDryRunSupport,
@@ -80,6 +95,20 @@ export const TargetConfig = Schema.Union([
80
95
  PyPiRegistryTarget,
81
96
  ScoopBucketTarget
82
97
  ]);
98
+ export const TargetRunsIn = Schema.Literals(["ci"]);
99
+ export class TargetRequiredPermission extends Schema.Class("TargetRequiredPermission")({
100
+ name: Schema.String,
101
+ value: Schema.String
102
+ }) {
103
+ }
104
+ export class TargetAuthSetup extends Schema.Class("TargetAuthSetup")({
105
+ runsIn: TargetRunsIn,
106
+ provider: NpmTrustedPublishingProvider,
107
+ workflow: Schema.String,
108
+ requiredPermissions: Schema.Array(TargetRequiredPermission),
109
+ prerequisites: Schema.Array(Schema.String)
110
+ }) {
111
+ }
83
112
  export class TargetCapabilities extends Schema.Class("TargetCapabilities")({
84
113
  targetId: TargetId,
85
114
  targetTag: Schema.String,
@@ -87,12 +116,16 @@ export class TargetCapabilities extends Schema.Class("TargetCapabilities")({
87
116
  dryRunSupport: TargetDryRunSupport,
88
117
  mutability: TargetMutability,
89
118
  recovery: TargetRecovery,
90
- validationStrategy: TargetValidationStrategy
119
+ validationStrategy: TargetValidationStrategy,
120
+ authSetup: Schema.optionalKey(TargetAuthSetup)
91
121
  }) {
92
122
  }
93
123
  export const targetOrder = (left, right) => left.id.localeCompare(right.id);
94
124
  export const targetCapabilitiesOrder = (left, right) => left.targetId.localeCompare(right.targetId);
95
125
  export const targetAuthRequirement = (target) => {
126
+ if (target._tag === "NpmRegistryTarget" && target.trustedPublishing !== undefined) {
127
+ return "trusted-publishing";
128
+ }
96
129
  if (target._tag === "PyPiRegistryTarget") {
97
130
  return target.usernameEnv === undefined && target.passwordEnv === undefined ? "cli-auth" : "env-token";
98
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/domain/target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/domain/target.ts"],"names":[],"mappings":"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"}
@@ -2,22 +2,13 @@ import * as Context from "effect/Context";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Layer from "effect/Layer";
4
4
  import * as Schema from "effect/Schema";
5
- import { ChecksumAlgorithm } from "../domain/artifact.js";
6
5
  import { CommandSpec } from "../domain/operation.js";
7
6
  export type * from "../types/effect-internal.js";
8
- declare const HostError_base: Schema.Class<HostError, Schema.TaggedStruct<"HostError", {
7
+ declare const CommandRunnerError_base: Schema.Class<CommandRunnerError, Schema.TaggedStruct<"CommandRunnerError", {
9
8
  readonly operation: Schema.String;
10
- readonly path: Schema.optionalKey<Schema.String>;
11
9
  readonly reason: Schema.String;
12
10
  }>, import("effect/Cause").YieldableError>;
13
- export declare class HostError extends HostError_base {
14
- }
15
- declare const FileInfo_base: Schema.Class<FileInfo, Schema.Struct<{
16
- readonly path: Schema.String;
17
- readonly sizeBytes: Schema.Number;
18
- readonly kind: Schema.Literals<readonly ["file", "directory", "other"]>;
19
- }>, {}>;
20
- export declare class FileInfo extends FileInfo_base {
11
+ export declare class CommandRunnerError extends CommandRunnerError_base {
21
12
  }
22
13
  declare const CommandResult_base: Schema.Class<CommandResult, Schema.Struct<{
23
14
  readonly command: typeof CommandSpec;
@@ -30,18 +21,11 @@ declare const CommandResult_base: Schema.Class<CommandResult, Schema.Struct<{
30
21
  }>, {}>;
31
22
  export declare class CommandResult extends CommandResult_base {
32
23
  }
33
- export interface ReleaseHostShape {
34
- readonly readFileString: (path: string) => Effect.Effect<string, HostError>;
35
- readonly writeFileString: (path: string, contents: string) => Effect.Effect<void, HostError>;
36
- readonly stat: (path: string) => Effect.Effect<FileInfo, HostError>;
37
- readonly hashFile: (path: string, algorithm: ChecksumAlgorithm) => Effect.Effect<string, HostError>;
38
- readonly readEnv: (name: string) => Effect.Effect<string | undefined, never>;
39
- readonly runCommand: (command: CommandSpec) => Effect.Effect<CommandResult, HostError>;
40
- readonly now: Effect.Effect<string, never>;
24
+ export interface ReleaseCommandRunnerShape {
25
+ readonly runCommand: (command: CommandSpec) => Effect.Effect<CommandResult, CommandRunnerError>;
41
26
  }
42
- declare const ReleaseHost_base: Context.ServiceClass<ReleaseHost, "ReleaseHost", ReleaseHostShape>;
43
- export declare class ReleaseHost extends ReleaseHost_base {
27
+ declare const ReleaseCommandRunner_base: Context.ServiceClass<ReleaseCommandRunner, "ReleaseCommandRunner", ReleaseCommandRunnerShape>;
28
+ export declare class ReleaseCommandRunner extends ReleaseCommandRunner_base {
44
29
  }
45
- export declare const ReleaseHostTest: (host: ReleaseHostShape) => Layer.Layer<ReleaseHost>;
46
- export declare const missingEnvNames: (command: CommandSpec) => Effect.Effect<string[], never, ReleaseHost>;
30
+ export declare const ReleaseCommandRunnerTestLayer: (commandRunner: ReleaseCommandRunnerShape) => Layer.Layer<ReleaseCommandRunner>;
47
31
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/host/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,mBAAmB,6BAA6B,CAAA;;;;;;AAEhD,qBAAa,SAAU,SAAQ,cAI7B;CAAG;;;;;;AAEL,qBAAa,QAAS,SAAQ,aAI5B;CAAG;;;;;;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAQjC;CAAG;AAEL,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC3E,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC5F,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IACnE,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACnG,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,CAAC,CAAA;IAC5E,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IACtF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAC3C;;AAED,qBAAa,WAAY,SAAQ,gBAA+D;CAAG;AAEnG,eAAO,MAAM,eAAe,GAAI,MAAM,gBAAgB,KAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAC9C,CAAA;AAElC,eAAO,MAAM,eAAe,uEAU1B,CAAA"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/host/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,mBAAmB,6BAA6B,CAAA;;;;;AAEhD,qBAAa,kBAAmB,SAAQ,uBAGtC;CAAG;;;;;;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAQjC;CAAG;AAEL,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAA;CAChG;;AAED,qBAAa,oBAAqB,SAAQ,yBAGf;CAAG;AAE9B,eAAO,MAAM,6BAA6B,GACxC,eAAe,yBAAyB,KACvC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CACiB,CAAA"}
package/dist/host/host.js CHANGED
@@ -1,20 +1,12 @@
1
1
  import * as Context from "effect/Context";
2
- import * as Effect from "effect/Effect";
3
2
  import * as Layer from "effect/Layer";
4
3
  import * as Schema from "effect/Schema";
5
4
  import { CommandSpec } from "../domain/operation.js";
6
- export class HostError extends Schema.TaggedErrorClass()("HostError", {
5
+ export class CommandRunnerError extends Schema.TaggedErrorClass()("CommandRunnerError", {
7
6
  operation: Schema.String,
8
- path: Schema.optionalKey(Schema.String),
9
7
  reason: Schema.String
10
8
  }) {
11
9
  }
12
- export class FileInfo extends Schema.Class("FileInfo")({
13
- path: Schema.String,
14
- sizeBytes: Schema.Number,
15
- kind: Schema.Literals(["file", "directory", "other"])
16
- }) {
17
- }
18
10
  export class CommandResult extends Schema.Class("CommandResult")({
19
11
  command: CommandSpec,
20
12
  exitCode: Schema.Number,
@@ -25,18 +17,7 @@ export class CommandResult extends Schema.Class("CommandResult")({
25
17
  durationMillis: Schema.Number
26
18
  }) {
27
19
  }
28
- export class ReleaseHost extends Context.Service()("ReleaseHost") {
20
+ export class ReleaseCommandRunner extends Context.Service()("ReleaseCommandRunner") {
29
21
  }
30
- export const ReleaseHostTest = (host) => Layer.succeed(ReleaseHost)(host);
31
- export const missingEnvNames = Effect.fn("missingEnvNames")(function* (command) {
32
- const host = yield* ReleaseHost;
33
- const missing = [];
34
- for (const name of command.requiredEnv) {
35
- const value = yield* host.readEnv(name);
36
- if (value === undefined) {
37
- missing.push(name);
38
- }
39
- }
40
- return missing;
41
- });
22
+ export const ReleaseCommandRunnerTestLayer = (commandRunner) => Layer.succeed(ReleaseCommandRunner)(commandRunner);
42
23
  //# sourceMappingURL=host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/host/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAIpD,MAAM,OAAO,SAAU,SAAQ,MAAM,CAAC,gBAAgB,EAAa,CAAC,WAAW,EAAE;IAC/E,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,OAAO,QAAS,SAAQ,MAAM,CAAC,KAAK,CAAW,UAAU,CAAC,CAAC;IAC/D,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;CACtD,CAAC;CAAG;AAEL,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,KAAK,CAAgB,eAAe,CAAC,CAAC;IAC9E,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,cAAc,EAAE,MAAM,CAAC,MAAM;CAC9B,CAAC;CAAG;AAYL,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAiC,CAAC,aAAa,CAAC;CAAG;AAEnG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAsB,EAA4B,EAAE,CAClF,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAA;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAC,OAAoB;IACxF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,WAAW,CAAA;IAC/B,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/host/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAIpD,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,gBAAgB,EAAsB,CAAC,oBAAoB,EAAE;IAC1G,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,KAAK,CAAgB,eAAe,CAAC,CAAC;IAC9E,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,cAAc,EAAE,MAAM,CAAC,MAAM;CAC9B,CAAC;CAAG;AAML,MAAM,OAAO,oBAAqB,SAAQ,OAAO,CAAC,OAAO,EAGtD,CAAC,sBAAsB,CAAC;CAAG;AAE9B,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,aAAwC,EACL,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,aAAa,CAAC,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import * as HttpClient from "effect/unstable/http/HttpClient";
3
- import { ReleaseHost } from "./host.js";
4
3
  import { ReleaseHttp } from "./http.js";
5
4
  export type * from "../types/effect-internal.js";
6
- export declare const LiveReleaseHttpLayer: Layer.Layer<ReleaseHttp, never, ReleaseHost | HttpClient.HttpClient>;
5
+ export declare const LiveReleaseHttpLayer: Layer.Layer<ReleaseHttp, never, HttpClient.HttpClient>;
7
6
  //# sourceMappingURL=http-live.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-live.d.ts","sourceRoot":"","sources":["../../src/host/http-live.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAG7D,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAA;AACzD,OAAO,EAAyB,WAAW,EAAE,MAAM,WAAW,CAAA;AAE9D,mBAAmB,6BAA6B,CAAA;AA2ChD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,UAAU,CAAC,UAAU,CA4CnG,CAAA"}
1
+ {"version":3,"file":"http-live.d.ts","sourceRoot":"","sources":["../../src/host/http-live.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAG7D,OAAO,EAAyB,WAAW,EAAE,MAAM,WAAW,CAAA;AAE9D,mBAAmB,6BAA6B,CAAA;AAyDhD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CA6CrF,CAAA"}
@@ -1,11 +1,18 @@
1
+ import * as Config from "effect/Config";
1
2
  import * as Effect from "effect/Effect";
2
3
  import * as Layer from "effect/Layer";
4
+ import * as Option from "effect/Option";
3
5
  import * as HttpClient from "effect/unstable/http/HttpClient";
4
6
  import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
5
- import { ReleaseHost } from "./host.js";
7
+ import { HttpHeader } from "../domain/operation.js";
6
8
  import { HttpError, HttpResult, ReleaseHttp } from "./http.js";
7
9
  const formatUnknown = (cause) => cause instanceof Error ? cause.message : String(cause);
8
- const resolveHeaders = Effect.fn("resolveHeaders")(function* (host, request) {
10
+ const nowIso = Effect.fn("http.nowIso")(function* () {
11
+ const millis = yield* Effect.clockWith((clock) => clock.currentTimeMillis);
12
+ return new Date(millis).toISOString();
13
+ });
14
+ const readOptionalEnv = (name) => Config.string(name).pipe(Effect.option, Effect.map(Option.getOrUndefined));
15
+ const resolveHeaders = Effect.fn("resolveHeaders")(function* (request) {
9
16
  const envNames = new Set([
10
17
  ...request.requiredEnv,
11
18
  ...request.envHeaders.map((header) => header.valueEnv)
@@ -13,7 +20,7 @@ const resolveHeaders = Effect.fn("resolveHeaders")(function* (host, request) {
13
20
  const env = new Map();
14
21
  const missing = [];
15
22
  for (const name of envNames) {
16
- const value = yield* host.readEnv(name);
23
+ const value = yield* readOptionalEnv(name);
17
24
  if (value === undefined) {
18
25
  missing.push(name);
19
26
  }
@@ -40,14 +47,14 @@ const resolveHeaders = Effect.fn("resolveHeaders")(function* (host, request) {
40
47
  }
41
48
  return headers;
42
49
  });
50
+ const responseHeaders = (headers) => Object.entries(headers).map(([name, value]) => HttpHeader.make({ name, value }));
43
51
  export const LiveReleaseHttpLayer = Layer.effect(ReleaseHttp)(Effect.gen(function* () {
44
- const host = yield* ReleaseHost;
45
52
  const client = yield* HttpClient.HttpClient;
46
53
  return {
47
54
  runJson: (request) => Effect.gen(function* () {
48
- const headers = yield* resolveHeaders(host, request);
49
- const startedAt = new Date().toISOString();
50
- const started = performance.now();
55
+ const headers = yield* resolveHeaders(request);
56
+ const startedAt = yield* nowIso();
57
+ const started = yield* Effect.clockWith((clock) => clock.currentTimeMillis);
51
58
  const httpRequest = HttpClientRequest.make(request.method)(request.url, { headers });
52
59
  const response = yield* client.execute(httpRequest).pipe(Effect.mapError((error) => HttpError.make({
53
60
  operation: "execute",
@@ -61,14 +68,16 @@ export const LiveReleaseHttpLayer = Layer.effect(ReleaseHttp)(Effect.gen(functio
61
68
  url: request.url,
62
69
  reason: formatUnknown(error)
63
70
  })));
64
- const endedAt = new Date().toISOString();
71
+ const endedAt = yield* nowIso();
72
+ const ended = yield* Effect.clockWith((clock) => clock.currentTimeMillis);
65
73
  return HttpResult.make({
66
74
  request,
67
75
  status: response.status,
68
76
  json,
77
+ responseHeaders: responseHeaders(response.headers),
69
78
  startedAt,
70
79
  endedAt,
71
- durationMillis: Math.round(performance.now() - started)
80
+ durationMillis: Math.max(0, ended - started)
72
81
  });
73
82
  })
74
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"http-live.js","sourceRoot":"","sources":["../../src/host/http-live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-live.js","sourceRoot":"","sources":["../../src/host/http-live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,iBAAiB,MAAM,wCAAwC,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAmB,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAI9D,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE,CAC/C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAExD,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC1E,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;AACvC,CAAC,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAAC,IAAY,EAAqC,EAAE,CAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CACtB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAClC,CAAA;AAEH,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,EAAC,OAAwB;IACnF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;QACvB,GAAG,OAAO,CAAC,WAAW;QACtB,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;KACvD,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,SAAS,CAAC,IAAI,CAAC;YACb,SAAS,EAAE,gBAAgB;YAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,MAAM,EAAE,2CAA2C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACxE,CAAC,CACH,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;IACrC,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,GAAG,KAAK,EAAE,CAAA;QACzD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAAC,OAAyC,EAA6B,EAAE,CAC/F,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;AAElF,MAAM,CAAC,MAAM,oBAAoB,GAC/B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;IAC3C,OAAO;QACL,OAAO,EAAE,CAAC,OAAwB,EAAE,EAAE,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,CAAA;YACjC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAC3E,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YACpF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,SAAS,CAAC,IAAI,CAAC;gBACb,SAAS,EAAE,SAAS;gBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;aAC7B,CAAC,CACH,CACF,CAAA;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM;gBACpC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CACzB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,MAAM;oBACjB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;iBAC7B,CAAC,CACH,CACF,CAAA;YACH,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,CAAA;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACzE,OAAO,UAAU,CAAC,IAAI,CAAC;gBACrB,OAAO;gBACP,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI;gBACJ,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAClD,SAAS;gBACT,OAAO;gBACP,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;aAC7C,CAAC,CAAA;QACJ,CAAC,CAAC;KACL,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
@@ -2,7 +2,7 @@ import * as Context from "effect/Context";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Layer from "effect/Layer";
4
4
  import * as Schema from "effect/Schema";
5
- import { HttpRequestSpec } from "../domain/operation.js";
5
+ import { HttpHeader, HttpRequestSpec } from "../domain/operation.js";
6
6
  export type * from "../types/effect-internal.js";
7
7
  declare const HttpError_base: Schema.Class<HttpError, Schema.TaggedStruct<"HttpError", {
8
8
  readonly operation: Schema.String;
@@ -15,6 +15,7 @@ declare const HttpResult_base: Schema.Class<HttpResult, Schema.Struct<{
15
15
  readonly request: typeof HttpRequestSpec;
16
16
  readonly status: Schema.Number;
17
17
  readonly json: Schema.Codec<Schema.Json, Schema.Json, never, never>;
18
+ readonly responseHeaders: Schema.$Array<typeof HttpHeader>;
18
19
  readonly startedAt: Schema.String;
19
20
  readonly endedAt: Schema.String;
20
21
  readonly durationMillis: Schema.Number;
@@ -30,6 +31,7 @@ export declare class ReleaseHttp extends ReleaseHttp_base {
30
31
  export interface TestHttpResponse {
31
32
  readonly status: number;
32
33
  readonly json: Schema.Json;
34
+ readonly responseHeaders?: ReadonlyArray<HttpHeader> | undefined;
33
35
  }
34
36
  export interface TestReleaseHttpOptions {
35
37
  readonly responses?: ReadonlyMap<string, TestHttpResponse> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/host/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,mBAAmB,6BAA6B,CAAA;;;;;;AAEhD,qBAAa,SAAU,SAAQ,cAI7B;CAAG;;;;;;;;;AAEL,qBAAa,UAAW,SAAQ,eAO9B;CAAG;AAEL,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;CACrF;;AAED,qBAAa,WAAY,SAAQ,gBAA+D;CAAG;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CACxD;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,eAAe,KAAG,MACjB,CAAA;AAEzC,eAAO,MAAM,wBAAwB,GACnC,UAAS,sBAA2B,KACnC,KAAK,CAAC,KAAK,CAAC,WAAW,CAoCzB,CAAA"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/host/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAEpE,mBAAmB,6BAA6B,CAAA;;;;;;AAEhD,qBAAa,SAAU,SAAQ,cAI7B;CAAG;;;;;;;;;;AAEL,qBAAa,UAAW,SAAQ,eAQ9B;CAAG;AAEL,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;CACrF;;AAED,qBAAa,WAAY,SAAQ,gBAA+D;CAAG;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAA;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;CACjE;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CACxD;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,eAAe,KAAG,MACjB,CAAA;AAEzC,eAAO,MAAM,wBAAwB,GACnC,UAAS,sBAA2B,KACnC,KAAK,CAAC,KAAK,CAAC,WAAW,CAqCzB,CAAA"}