@mannyc1/ts-release 0.0.2 → 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 (125) hide show
  1. package/ARCHITECTURE.md +54 -14
  2. package/README.md +163 -73
  3. package/SPEC.md +38 -8
  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 +116 -0
  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/host/http-live.d.ts.map +1 -1
  21. package/dist/host/http-live.js +3 -0
  22. package/dist/host/http-live.js.map +1 -1
  23. package/dist/host/http.d.ts +3 -1
  24. package/dist/host/http.d.ts.map +1 -1
  25. package/dist/host/http.js +3 -1
  26. package/dist/host/http.js.map +1 -1
  27. package/dist/host/test.d.ts +1 -0
  28. package/dist/host/test.d.ts.map +1 -1
  29. package/dist/host/test.js +24 -7
  30. package/dist/host/test.js.map +1 -1
  31. package/dist/internal/workspace-path.d.ts +16 -0
  32. package/dist/internal/workspace-path.d.ts.map +1 -0
  33. package/dist/internal/workspace-path.js +33 -0
  34. package/dist/internal/workspace-path.js.map +1 -0
  35. package/dist/planner/artifact-inventory.d.ts.map +1 -1
  36. package/dist/planner/artifact-inventory.js +22 -3
  37. package/dist/planner/artifact-inventory.js.map +1 -1
  38. package/dist/planner/create-release-plan.d.ts +1 -1
  39. package/dist/planner/evidence-recorder.d.ts.map +1 -1
  40. package/dist/planner/evidence-recorder.js +22 -4
  41. package/dist/planner/evidence-recorder.js.map +1 -1
  42. package/dist/planner/executor.d.ts +4 -4
  43. package/dist/planner/executor.d.ts.map +1 -1
  44. package/dist/planner/executor.js +36 -4
  45. package/dist/planner/executor.js.map +1 -1
  46. package/dist/planner/normalize-release.d.ts.map +1 -1
  47. package/dist/planner/normalize-release.js +11 -10
  48. package/dist/planner/normalize-release.js.map +1 -1
  49. package/dist/planner/reconcile.d.ts +1 -1
  50. package/dist/planner/reconcile.d.ts.map +1 -1
  51. package/dist/planner/reconcile.js +72 -15
  52. package/dist/planner/reconcile.js.map +1 -1
  53. package/dist/planner/release-eligibility.d.ts +4 -3
  54. package/dist/planner/release-eligibility.d.ts.map +1 -1
  55. package/dist/planner/release-eligibility.js +9 -2
  56. package/dist/planner/release-eligibility.js.map +1 -1
  57. package/dist/planner/render-plan.d.ts +10 -0
  58. package/dist/planner/render-plan.d.ts.map +1 -1
  59. package/dist/planner/render-plan.js +158 -0
  60. package/dist/planner/render-plan.js.map +1 -1
  61. package/dist/planner/status.d.ts +1 -1
  62. package/dist/planner/status.d.ts.map +1 -1
  63. package/dist/planner/status.js +8 -2
  64. package/dist/planner/status.js.map +1 -1
  65. package/dist/targets/github.d.ts.map +1 -1
  66. package/dist/targets/github.js +11 -0
  67. package/dist/targets/github.js.map +1 -1
  68. package/dist/workflows/config.d.ts +89 -17
  69. package/dist/workflows/config.d.ts.map +1 -1
  70. package/dist/workflows/config.js +131 -21
  71. package/dist/workflows/config.js.map +1 -1
  72. package/dist/workflows/diagnostics.d.ts +62 -0
  73. package/dist/workflows/diagnostics.d.ts.map +1 -0
  74. package/dist/workflows/diagnostics.js +474 -0
  75. package/dist/workflows/diagnostics.js.map +1 -0
  76. package/dist/workflows/index.d.ts +7 -0
  77. package/dist/workflows/index.d.ts.map +1 -0
  78. package/dist/workflows/index.js +6 -0
  79. package/dist/workflows/index.js.map +1 -0
  80. package/dist/workflows/init.d.ts +71 -0
  81. package/dist/workflows/init.d.ts.map +1 -0
  82. package/dist/workflows/init.js +384 -0
  83. package/dist/workflows/init.js.map +1 -0
  84. package/dist/workflows/live.d.ts +2 -0
  85. package/dist/workflows/live.d.ts.map +1 -1
  86. package/dist/workflows/live.js +2 -0
  87. package/dist/workflows/live.js.map +1 -1
  88. package/dist/workflows/options.d.ts +30 -0
  89. package/dist/workflows/options.d.ts.map +1 -0
  90. package/dist/workflows/options.js +16 -0
  91. package/dist/workflows/options.js.map +1 -0
  92. package/examples/README.md +16 -12
  93. package/examples/github-release/release.config.json +1 -0
  94. package/examples/homebrew-tap/release.config.json +1 -0
  95. package/examples/multi-target/release.config.json +5 -1
  96. package/examples/non-strict-skips/release.config.json +1 -0
  97. package/examples/npm-first-publish/release.config.json +1 -0
  98. package/examples/npm-only/release.config.json +5 -1
  99. package/examples/pypi-registry/release.config.json +1 -0
  100. package/examples/scoop-bucket/release.config.json +1 -0
  101. package/package.json +31 -24
  102. package/templates/README.md +54 -0
  103. package/templates/github-actions/plan-and-approved-execute.yml +53 -0
  104. package/templates/github-actions/plan-only.yml +30 -0
  105. package/templates/github-actions/trusted-publishing.yml +59 -0
  106. package/templates/multi-target-homebrew/release.config.json +70 -0
  107. package/templates/multi-target-scoop/release.config.json +72 -0
  108. package/templates/npm-github/release.config.json +50 -0
  109. package/templates/npm-only/release.config.json +39 -0
  110. package/dist/cli/command.d.ts +0 -4
  111. package/dist/cli/command.d.ts.map +0 -1
  112. package/dist/cli/command.js +0 -173
  113. package/dist/cli/command.js.map +0 -1
  114. package/dist/cli/main.d.ts +0 -3
  115. package/dist/cli/main.d.ts.map +0 -1
  116. package/dist/cli/main.js +0 -9
  117. package/dist/cli/main.js.map +0 -1
  118. package/dist/runtime/bun.d.ts +0 -9
  119. package/dist/runtime/bun.d.ts.map +0 -1
  120. package/dist/runtime/bun.js +0 -10
  121. package/dist/runtime/bun.js.map +0 -1
  122. package/dist/version.d.ts +0 -2
  123. package/dist/version.d.ts.map +0 -1
  124. package/dist/version.js +0 -2
  125. package/dist/version.js.map +0 -1
@@ -0,0 +1,384 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import * as Path from "effect/Path";
4
+ import * as Schema from "effect/Schema";
5
+ import { DEFAULT_CONFIG_PATH, RELEASE_CONFIG_SCHEMA_ID } from "../config/schema.js";
6
+ import { hasParentTraversal, isInsidePathBoundary, resolveWorkspacePath, validateWorkspaceWritePath } from "../internal/workspace-path.js";
7
+ import { releaseConfigFields } from "./options.js";
8
+ export const ReleaseInitTemplateName = Schema.Literals([
9
+ "npm-only",
10
+ "npm-github",
11
+ "multi-target-homebrew",
12
+ "multi-target-scoop"
13
+ ]);
14
+ export const ReleaseInitFormat = Schema.Literals(["json", "text"]);
15
+ export class ReleaseInitOptions extends Schema.Class("ReleaseInitOptions")({
16
+ root: Schema.optionalKey(Schema.String),
17
+ configPath: Schema.optionalKey(Schema.String),
18
+ template: Schema.optionalKey(ReleaseInitTemplateName),
19
+ package: Schema.optionalKey(Schema.String),
20
+ repo: Schema.optionalKey(Schema.String),
21
+ workflow: Schema.optionalKey(Schema.String),
22
+ tap: Schema.optionalKey(Schema.String),
23
+ bucket: Schema.optionalKey(Schema.String),
24
+ githubActions: Schema.optionalKey(Schema.Boolean),
25
+ write: Schema.optionalKey(Schema.Boolean),
26
+ overwrite: Schema.optionalKey(Schema.Boolean),
27
+ format: Schema.optionalKey(ReleaseInitFormat)
28
+ }) {
29
+ }
30
+ export class ReleaseInitProposedFile extends Schema.Class("ReleaseInitProposedFile")({
31
+ path: Schema.String,
32
+ contents: Schema.String,
33
+ alreadyExists: Schema.Boolean
34
+ }) {
35
+ }
36
+ export class ReleaseInitPlan extends Schema.Class("ReleaseInitPlan")({
37
+ schemaVersion: Schema.Literal("release-init/v1"),
38
+ template: ReleaseInitTemplateName,
39
+ files: Schema.Array(ReleaseInitProposedFile),
40
+ nextCommand: Schema.String
41
+ }) {
42
+ }
43
+ export class ReleaseInitWriteError extends Schema.TaggedErrorClass()("ReleaseInitWriteError", {
44
+ path: Schema.String,
45
+ reason: Schema.String
46
+ }) {
47
+ }
48
+ export const TS_RELEASE_ACTION_REFERENCE = "mannyc2/ts-release-action@v1";
49
+ const releaseInitOptionsFromInput = (input = {}) => ReleaseInitOptions.make({
50
+ ...releaseConfigFields(input),
51
+ ...(input.template === undefined ? {} : { template: input.template }),
52
+ ...(input.package === undefined ? {} : { package: input.package }),
53
+ ...(input.repo === undefined ? {} : { repo: input.repo }),
54
+ ...(input.workflow === undefined ? {} : { workflow: input.workflow }),
55
+ ...(input.tap === undefined ? {} : { tap: input.tap }),
56
+ ...(input.bucket === undefined ? {} : { bucket: input.bucket }),
57
+ ...(input.githubActions === undefined ? {} : { githubActions: input.githubActions }),
58
+ ...(input.write === undefined ? {} : { write: input.write }),
59
+ ...(input.overwrite === undefined ? {} : { overwrite: input.overwrite }),
60
+ ...(input.format === undefined ? {} : { format: input.format })
61
+ });
62
+ const initRoot = (path, options) => {
63
+ if (options.root !== undefined) {
64
+ return options.root;
65
+ }
66
+ if (options.configPath !== undefined && path.isAbsolute(options.configPath)) {
67
+ return path.dirname(options.configPath);
68
+ }
69
+ return ".";
70
+ };
71
+ const normalizeOptions = (options, root) => ({
72
+ root,
73
+ configPath: options.configPath ?? DEFAULT_CONFIG_PATH,
74
+ template: options.template ?? "npm-only",
75
+ packageName: options["package"] ?? "@scope/pkg",
76
+ repository: options.repo ?? "owner/repo",
77
+ workflow: options.workflow ?? "release.yml",
78
+ tap: options.tap ?? "owner/homebrew-tap",
79
+ bucket: options.bucket ?? "owner/scoop-bucket",
80
+ githubActions: options.githubActions ?? false
81
+ });
82
+ const packageShortName = (packageName) => {
83
+ const withoutScope = packageName.includes("/") ? packageName.split("/").at(-1) ?? packageName : packageName;
84
+ const normalized = withoutScope.replace(/^@/, "").replace(/[^A-Za-z0-9-]+/g, "-");
85
+ return normalized.length === 0 ? "pkg" : normalized;
86
+ };
87
+ const configTargetNpm = (options) => ({
88
+ _tag: "NpmRegistryTarget",
89
+ id: "npm",
90
+ registry: "https://registry.npmjs.org",
91
+ packageName: options.packageName,
92
+ packagePath: ".",
93
+ trustedPublishing: {
94
+ provider: "github-actions",
95
+ workflow: options.workflow,
96
+ packageExists: true,
97
+ verifyPackageExists: true
98
+ },
99
+ access: "public",
100
+ provenance: true,
101
+ dryRunSupport: "native",
102
+ mutability: "immutable",
103
+ recovery: "publish-new-version"
104
+ });
105
+ const configTargetGitHub = (options) => ({
106
+ _tag: "GitHubReleaseTarget",
107
+ id: "github",
108
+ repository: options.repository,
109
+ tokenEnv: "GH_TOKEN",
110
+ draft: true,
111
+ prerelease: false,
112
+ dryRunSupport: "simulated",
113
+ mutability: "mutable-release",
114
+ recovery: "delete-and-recreate"
115
+ });
116
+ const configTargetHomebrew = (options) => {
117
+ const name = packageShortName(options.packageName);
118
+ return {
119
+ _tag: "HomebrewTapTarget",
120
+ id: "homebrew",
121
+ repository: options.tap,
122
+ formulaName: name,
123
+ formulaPath: `.release/generated/${name}.rb`,
124
+ artifactId: "archive",
125
+ homepage: `https://github.com/${options.repository}`,
126
+ url: `https://github.com/${options.repository}/releases/download/v0.1.0/${name}-0.1.0.tgz`,
127
+ installPath: `bin/${name}`,
128
+ dryRunSupport: "simulated",
129
+ mutability: "mutable-index",
130
+ recovery: "manual"
131
+ };
132
+ };
133
+ const configTargetScoop = (options) => {
134
+ const name = packageShortName(options.packageName);
135
+ return {
136
+ _tag: "ScoopBucketTarget",
137
+ id: "scoop",
138
+ repository: options.bucket,
139
+ manifestName: name,
140
+ manifestPath: `.release/generated/${name}.json`,
141
+ artifactId: "archive",
142
+ homepage: `https://github.com/${options.repository}`,
143
+ description: `Example Scoop manifest for ${name}`,
144
+ license: "MIT",
145
+ url: `https://github.com/${options.repository}/releases/download/v0.1.0/${name}-0.1.0.zip`,
146
+ bin: `${name}.exe`,
147
+ dryRunSupport: "simulated",
148
+ mutability: "mutable-index",
149
+ recovery: "manual"
150
+ };
151
+ };
152
+ const releaseConfigForTemplate = (options) => {
153
+ const name = packageShortName(options.packageName);
154
+ const artifacts = [
155
+ {
156
+ id: "package",
157
+ path: ".",
158
+ format: "directory",
159
+ consumers: ["npm"]
160
+ }
161
+ ];
162
+ const targets = [configTargetNpm(options)];
163
+ if (options.template !== "npm-only") {
164
+ targets.push(configTargetGitHub(options));
165
+ }
166
+ if (options.template === "multi-target-homebrew") {
167
+ artifacts.push({
168
+ id: "archive",
169
+ path: `artifacts/${name}-0.1.0.tgz`,
170
+ format: "tarball",
171
+ consumers: ["github", "homebrew"]
172
+ });
173
+ targets.push(configTargetHomebrew(options));
174
+ }
175
+ if (options.template === "multi-target-scoop") {
176
+ artifacts.push({
177
+ id: "archive",
178
+ path: `artifacts/${name}-0.1.0.zip`,
179
+ format: "zip",
180
+ consumers: ["github", "scoop"]
181
+ });
182
+ targets.push(configTargetScoop(options));
183
+ }
184
+ return {
185
+ $schema: RELEASE_CONFIG_SCHEMA_ID,
186
+ identity: {
187
+ name: options.packageName,
188
+ version: "0.1.0",
189
+ commit: "abc123",
190
+ tag: "v0.1.0"
191
+ },
192
+ artifacts,
193
+ targets,
194
+ strict: true,
195
+ evidenceDirectory: ".release/evidence/{version}"
196
+ };
197
+ };
198
+ export const renderGithubActionsTrustedPublishingWorkflow = (configPath) => [
199
+ "name: Release",
200
+ "",
201
+ "on:",
202
+ " workflow_dispatch:",
203
+ "",
204
+ "permissions:",
205
+ " contents: read",
206
+ "",
207
+ "jobs:",
208
+ " plan:",
209
+ " runs-on: ubuntu-latest",
210
+ " steps:",
211
+ " - uses: actions/checkout@v4",
212
+ " - uses: oven-sh/setup-bun@v2",
213
+ " - run: bun install --frozen-lockfile",
214
+ ` - uses: ${TS_RELEASE_ACTION_REFERENCE}`,
215
+ " with:",
216
+ " command: plan",
217
+ ` config: ${configPath}`,
218
+ " format: markdown",
219
+ " write-step-summary: true",
220
+ " plan-path: release-plan.md",
221
+ " - uses: actions/upload-artifact@v4",
222
+ " if: always()",
223
+ " with:",
224
+ " name: release-plan",
225
+ " path: |",
226
+ " release-plan.md",
227
+ " .release/evidence/",
228
+ "",
229
+ " execute:",
230
+ " needs: plan",
231
+ " runs-on: ubuntu-latest",
232
+ " environment: release",
233
+ " permissions:",
234
+ " contents: write",
235
+ " id-token: write",
236
+ " steps:",
237
+ " - uses: actions/checkout@v4",
238
+ " - uses: oven-sh/setup-bun@v2",
239
+ " - uses: actions/setup-node@v4",
240
+ " with:",
241
+ " node-version: 22.14.0",
242
+ " registry-url: https://registry.npmjs.org",
243
+ " - run: npm install -g npm@^11.5.1",
244
+ " - run: bun install --frozen-lockfile",
245
+ " - run: bun run build",
246
+ ` - uses: ${TS_RELEASE_ACTION_REFERENCE}`,
247
+ " with:",
248
+ " command: run",
249
+ ` config: ${configPath}`,
250
+ " execute: true",
251
+ " approve-irreversible: true",
252
+ " write-step-summary: true",
253
+ " - uses: actions/upload-artifact@v4",
254
+ " if: always()",
255
+ " with:",
256
+ " name: release-evidence",
257
+ " path: .release/evidence/",
258
+ ""
259
+ ].join("\n");
260
+ const workflowConfigPath = (path, options) => {
261
+ const root = path.resolve(options.root);
262
+ const config = resolveWorkspacePath(path, options.root, options.configPath);
263
+ const relative = path.relative(root, config).replaceAll("\\", "/");
264
+ if (relative.length === 0 || relative === ".." || relative.startsWith("../")) {
265
+ return path.basename(options.configPath);
266
+ }
267
+ return relative;
268
+ };
269
+ const proposedFileSpecs = (path, options) => {
270
+ const config = `${JSON.stringify(releaseConfigForTemplate(options), null, 2)}\n`;
271
+ const files = [
272
+ {
273
+ path: options.configPath,
274
+ contents: config
275
+ }
276
+ ];
277
+ if (options.githubActions) {
278
+ files.push({
279
+ path: `.github/workflows/${options.workflow}`,
280
+ contents: renderGithubActionsTrustedPublishingWorkflow(workflowConfigPath(path, options))
281
+ });
282
+ }
283
+ return files;
284
+ };
285
+ const workspacePath = (path, root, pathName) => {
286
+ const result = validateWorkspaceWritePath(path, root, pathName);
287
+ if (result._tag === "Ok") {
288
+ return Effect.succeed(result.path);
289
+ }
290
+ return Effect.fail(ReleaseInitWriteError.make({
291
+ path: pathName,
292
+ reason: result.reason === "empty-or-parent-traversal"
293
+ ? "Path must be non-empty and must not contain parent traversal."
294
+ : "Path must resolve inside the workspace root."
295
+ }));
296
+ };
297
+ const validateWorkflowFileName = (workflow) => {
298
+ const hasPathSeparator = workflow.includes("/") || workflow.includes("\\");
299
+ const hasWorkflowExtension = workflow.endsWith(".yml") || workflow.endsWith(".yaml");
300
+ if (workflow.trim().length > 0 && !hasPathSeparator && !hasParentTraversal(workflow) && hasWorkflowExtension) {
301
+ return Effect.void;
302
+ }
303
+ return Effect.fail(ReleaseInitWriteError.make({
304
+ path: workflow,
305
+ reason: "Workflow must be a .yml or .yaml filename without path separators."
306
+ }));
307
+ };
308
+ const validateInitOptions = Effect.fn("workflows.init.validateInitOptions")(function* (path, options) {
309
+ yield* workspacePath(path, options.root, options.configPath);
310
+ if (!options.githubActions) {
311
+ return;
312
+ }
313
+ yield* validateWorkflowFileName(options.workflow);
314
+ const workflowsRoot = resolveWorkspacePath(path, options.root, ".github/workflows");
315
+ const workflowPath = yield* workspacePath(path, options.root, `.github/workflows/${options.workflow}`);
316
+ if (isInsidePathBoundary(path, workflowsRoot, workflowPath)) {
317
+ return;
318
+ }
319
+ return yield* Effect.fail(ReleaseInitWriteError.make({
320
+ path: options.workflow,
321
+ reason: "Workflow output must resolve inside .github/workflows."
322
+ }));
323
+ });
324
+ export const planReleaseInit = Effect.fn("workflows.init.planReleaseInit")(function* (input = {}) {
325
+ const options = releaseInitOptionsFromInput(input);
326
+ const fs = yield* FileSystem.FileSystem;
327
+ const path = yield* Path.Path;
328
+ const normalized = normalizeOptions(options, initRoot(path, options));
329
+ yield* validateInitOptions(path, normalized);
330
+ const files = yield* Effect.forEach(proposedFileSpecs(path, normalized), (file) => workspacePath(path, normalized.root, file.path).pipe(Effect.flatMap((targetPath) => fs.exists(targetPath).pipe(Effect.map((alreadyExists) => ReleaseInitProposedFile.make({
331
+ path: file.path,
332
+ contents: file.contents,
333
+ alreadyExists
334
+ }))))));
335
+ return ReleaseInitPlan.make({
336
+ schemaVersion: "release-init/v1",
337
+ template: normalized.template,
338
+ files,
339
+ nextCommand: `release plan --config ${normalized.configPath} --format text`
340
+ });
341
+ });
342
+ const writeInitFile = Effect.fn("workflows.init.writeInitFile")(function* (root, file, overwrite) {
343
+ if (file.alreadyExists && !overwrite) {
344
+ return yield* Effect.fail(ReleaseInitWriteError.make({
345
+ path: file.path,
346
+ reason: "File already exists. Pass --overwrite to replace it."
347
+ }));
348
+ }
349
+ const fs = yield* FileSystem.FileSystem;
350
+ const path = yield* Path.Path;
351
+ const outputPath = yield* workspacePath(path, root, file.path);
352
+ yield* fs.makeDirectory(path.dirname(outputPath), { recursive: true });
353
+ yield* fs.writeFileString(outputPath, file.contents);
354
+ });
355
+ export const runReleaseInit = Effect.fn("workflows.init.runReleaseInit")(function* (input = {}) {
356
+ const options = releaseInitOptionsFromInput(input);
357
+ const path = yield* Path.Path;
358
+ const normalized = normalizeOptions(options, initRoot(path, options));
359
+ const plan = yield* planReleaseInit(options);
360
+ if (options.write !== true) {
361
+ return plan;
362
+ }
363
+ yield* Effect.forEach(plan.files, (file) => writeInitFile(normalized.root, file, options.overwrite === true), { discard: true });
364
+ return plan;
365
+ });
366
+ export const renderReleaseInitJson = (plan) => `${JSON.stringify(plan, null, 2)}\n`;
367
+ export const renderReleaseInitText = (plan) => {
368
+ const lines = [
369
+ `template: ${plan.template}`,
370
+ "files:"
371
+ ];
372
+ for (const file of plan.files) {
373
+ lines.push(` - ${file.path}${file.alreadyExists ? " (exists)" : " (new)"}`);
374
+ lines.push(`--- ${file.path}`);
375
+ lines.push(file.contents.trimEnd());
376
+ }
377
+ lines.push(`next: ${plan.nextCommand}`);
378
+ return `${lines.join("\n")}\n`;
379
+ };
380
+ export const renderReleaseInitPlan = (plan, format = "text") => format === "json" ? renderReleaseInitJson(plan) : renderReleaseInitText(plan);
381
+ export const plan = planReleaseInit;
382
+ export const run = runReleaseInit;
383
+ export const renderPlan = renderReleaseInitPlan;
384
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/workflows/init.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import * as HttpClient from "effect/unstable/http/HttpClient";
3
3
  import { ReleaseHttp } from "../host/http.js";
4
+ import type { PlatformCommandRunnerOptions } from "../host/platform.js";
4
5
  import { TargetRegistry } from "../targets/registry.js";
5
6
  export type * from "../types/effect-internal.js";
6
7
  export declare const LiveReleaseWorkflowLayer: Layer.Layer<ReleaseHttp | TargetRegistry, never, HttpClient.HttpClient>;
8
+ export declare const makeLayer: (options?: PlatformCommandRunnerOptions) => Layer.Layer<import("../host/host.js").ReleaseCommandRunner | ReleaseHttp | TargetRegistry, never, HttpClient.HttpClient | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner>;
7
9
  //# sourceMappingURL=live.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/workflows/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAChD,WAAW,GAAG,cAAc,EAC5B,KAAK,EACL,UAAU,CAAC,UAAU,CAItB,CAAA"}
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/workflows/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,mBAAmB,6BAA6B,CAAA;AAEhD,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAChD,WAAW,GAAG,cAAc,EAC5B,KAAK,EACL,UAAU,CAAC,UAAU,CAItB,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,UAAS,4BAAiC,yMAKzC,CAAA"}
@@ -1,5 +1,7 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import { LiveReleaseHttpLayer } from "../host/http-live.js";
3
+ import { makePlatformCommandRunnerLayer } from "../host/platform.js";
3
4
  import { LiveTargetRegistryLayer } from "../targets/live.js";
4
5
  export const LiveReleaseWorkflowLayer = Layer.mergeAll(LiveReleaseHttpLayer, LiveTargetRegistryLayer);
6
+ export const makeLayer = (options = {}) => Layer.mergeAll(makePlatformCommandRunnerLayer(options), LiveReleaseWorkflowLayer);
5
7
  //# sourceMappingURL=live.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/workflows/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAK5D,MAAM,CAAC,MAAM,wBAAwB,GAIjC,KAAK,CAAC,QAAQ,CAChB,oBAAoB,EACpB,uBAAuB,CACxB,CAAA"}
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/workflows/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAK5D,MAAM,CAAC,MAAM,wBAAwB,GAIjC,KAAK,CAAC,QAAQ,CAChB,oBAAoB,EACpB,uBAAuB,CACxB,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,UAAwC,EAAE,EAC1C,EAAE,CACF,KAAK,CAAC,QAAQ,CACZ,8BAA8B,CAAC,OAAO,CAAC,EACvC,wBAAwB,CACzB,CAAA"}
@@ -0,0 +1,30 @@
1
+ export interface ReleaseConfigFields {
2
+ readonly root?: string | undefined;
3
+ readonly configPath?: string | undefined;
4
+ }
5
+ export interface ReleaseFormatField<Format extends string> {
6
+ readonly format?: Format | undefined;
7
+ }
8
+ export interface ReleaseExecutionFields extends ReleaseConfigFields {
9
+ readonly execute?: boolean | undefined;
10
+ readonly approveIrreversible?: boolean | undefined;
11
+ }
12
+ export declare const releaseConfigFields: (input: ReleaseConfigFields) => {
13
+ configPath?: string;
14
+ root?: string;
15
+ };
16
+ export declare const releaseFormatField: <Format extends string>(input: ReleaseFormatField<Format>) => {
17
+ format?: Format;
18
+ };
19
+ export declare const releaseExecuteField: (input: {
20
+ readonly execute?: boolean | undefined;
21
+ }) => {
22
+ execute?: boolean;
23
+ };
24
+ export declare const releaseExecutionFields: (input: ReleaseExecutionFields) => {
25
+ approveIrreversible?: boolean;
26
+ execute?: boolean;
27
+ configPath?: string;
28
+ root?: string;
29
+ };
30
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/workflows/options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC;AAED,MAAM,WAAW,kBAAkB,CAAC,MAAM,SAAS,MAAM;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACnD;AAED,eAAO,MAAM,mBAAmB,GAC9B,OAAO,mBAAmB;;;CAI1B,CAAA;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,SAAS,MAAM,EACtD,OAAO,kBAAkB,CAAC,MAAM,CAAC;;CAGjC,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE;;CAGjD,CAAA;AAEF,eAAO,MAAM,sBAAsB,GACjC,OAAO,sBAAsB;;;;;CAK7B,CAAA"}
@@ -0,0 +1,16 @@
1
+ export const releaseConfigFields = (input) => ({
2
+ ...(input.root === undefined ? {} : { root: input.root }),
3
+ ...(input.configPath === undefined ? {} : { configPath: input.configPath })
4
+ });
5
+ export const releaseFormatField = (input) => ({
6
+ ...(input.format === undefined ? {} : { format: input.format })
7
+ });
8
+ export const releaseExecuteField = (input) => ({
9
+ ...(input.execute === undefined ? {} : { execute: input.execute })
10
+ });
11
+ export const releaseExecutionFields = (input) => ({
12
+ ...releaseConfigFields(input),
13
+ ...releaseExecuteField(input),
14
+ ...(input.approveIrreversible === undefined ? {} : { approveIrreversible: input.approveIrreversible })
15
+ });
16
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/workflows/options.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAA0B,EAC1B,EAAE,CAAC,CAAC;IACJ,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACzD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;CAC5E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAiC,EACjC,EAAE,CAAC,CAAC;IACJ,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;CAChE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAiD,EACjD,EAAE,CAAC,CAAC;IACJ,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;CACnE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAA6B,EAC7B,EAAE,CAAC,CAAC;IACJ,GAAG,mBAAmB,CAAC,KAAK,CAAC;IAC7B,GAAG,mBAAmB,CAAC,KAAK,CAAC;IAC7B,GAAG,CAAC,KAAK,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC;CACvG,CAAC,CAAA"}
@@ -4,15 +4,17 @@ Start with the coordinated release example:
4
4
 
5
5
  ```sh
6
6
  cd examples/multi-target
7
- bun ../../dist/cli/main.js plan --config release.config.json --format text
7
+ bun ../../apps/release-ts/src/cli/main.ts plan --config release.config.json --format text
8
8
  ```
9
9
 
10
- That plan shows one release split across the target classes this package models:
11
- a release host (`github`), package registries (`npm`, `pypi`), and installer
12
- catalogs (`homebrew`, `scoop`). Inspect the artifact inventory, target
13
- capabilities, `argv` lines, approval gates, and generated catalog-file
14
- operations. `plan` is safe: publish operations stay data until a caller passes
15
- explicit execution approval.
10
+ That plan shows one release split across GitHub Releases, npm, and a Homebrew
11
+ tap. Inspect the artifact inventory, target capabilities, `argv` lines,
12
+ approval gates, and generated catalog-file operations. `plan` is safe: publish
13
+ operations stay data until a caller passes explicit execution approval.
14
+
15
+ Templates live in `../templates/` and are copyable starting points for new
16
+ repositories. These examples are runnable fixtures for this repository's
17
+ checks.
16
18
 
17
19
  Focused examples:
18
20
 
@@ -25,8 +27,10 @@ Focused examples:
25
27
  - `scoop-bucket`: Scoop bucket manifest rendering with simulated validation.
26
28
  - `non-strict-skips`: non-strict config that records skipped dry-run evidence.
27
29
 
28
- `npm-first-publish` demonstrates only the bootstrap shape for a package that
29
- does not exist on npm yet. Replace it with trusted publishing after the first
30
- version exists. TestPyPI is still a real registry publish target, not a dry-run.
31
- The examples only render plans; do not run publish operations without
32
- intentional credentials and approval flags.
30
+ Trusted-publishing npm examples use `provenance` and
31
+ `verifyPackageExists`. `npm-first-publish` demonstrates only the bootstrap shape
32
+ for a package that does not exist on npm yet, so it stays token-based and omits
33
+ `trustedPublishing`. Replace it with trusted publishing after the first version
34
+ exists. TestPyPI is still a real registry publish target, not a dry-run. The
35
+ examples only render plans; do not run publish operations without intentional
36
+ credentials and approval flags.
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "https://mannyc2.github.io/ts-release/schema/release-config.schema.json",
2
3
  "identity": {
3
4
  "name": "release-example-github",
4
5
  "version": "0.1.0",
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "https://mannyc2.github.io/ts-release/schema/release-config.schema.json",
2
3
  "identity": {
3
4
  "name": "release-example-homebrew",
4
5
  "version": "0.1.0",
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "https://mannyc2.github.io/ts-release/schema/release-config.schema.json",
2
3
  "identity": {
3
4
  "name": "release-example-multi-target",
4
5
  "version": "0.1.0",
@@ -41,8 +42,11 @@
41
42
  "trustedPublishing": {
42
43
  "provider": "github-actions",
43
44
  "workflow": "release.yml",
44
- "packageExists": true
45
+ "packageExists": true,
46
+ "verifyPackageExists": true
45
47
  },
48
+ "access": "public",
49
+ "provenance": true,
46
50
  "dryRunSupport": "native",
47
51
  "mutability": "immutable",
48
52
  "recovery": "publish-new-version"
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "https://mannyc2.github.io/ts-release/schema/release-config.schema.json",
2
3
  "identity": {
3
4
  "name": "release-example-skips",
4
5
  "version": "0.1.0",
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "https://mannyc2.github.io/ts-release/schema/release-config.schema.json",
2
3
  "identity": {
3
4
  "name": "@scope/release-example-first",
4
5
  "version": "0.1.0",
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "https://mannyc2.github.io/ts-release/schema/release-config.schema.json",
2
3
  "identity": {
3
4
  "name": "release-example-npm-only",
4
5
  "version": "0.1.0",
@@ -23,8 +24,11 @@
23
24
  "trustedPublishing": {
24
25
  "provider": "github-actions",
25
26
  "workflow": "release.yml",
26
- "packageExists": true
27
+ "packageExists": true,
28
+ "verifyPackageExists": true
27
29
  },
30
+ "access": "public",
31
+ "provenance": true,
28
32
  "dryRunSupport": "native",
29
33
  "mutability": "immutable",
30
34
  "recovery": "publish-new-version"
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "https://mannyc2.github.io/ts-release/schema/release-config.schema.json",
2
3
  "identity": {
3
4
  "name": "release-example-pypi",
4
5
  "version": "0.1.0",
@@ -1,4 +1,5 @@
1
1
  {
2
+ "$schema": "https://mannyc2.github.io/ts-release/schema/release-config.schema.json",
2
3
  "identity": {
3
4
  "name": "release-example-scoop",
4
5
  "version": "0.1.0",