outfitter 0.2.5 → 0.2.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 (131) hide show
  1. package/README.md +8 -5
  2. package/dist/actions.d.ts +2 -0
  3. package/dist/actions.js +34 -0
  4. package/dist/cli.js +1 -1
  5. package/dist/commands/add.d.ts +54 -0
  6. package/dist/commands/add.js +16 -0
  7. package/dist/commands/check.d.ts +91 -0
  8. package/dist/commands/check.js +14 -0
  9. package/dist/commands/demo.d.ts +21 -0
  10. package/dist/commands/demo.js +8 -0
  11. package/dist/commands/docs-module-loader.d.ts +2 -0
  12. package/dist/commands/docs-module-loader.js +8 -0
  13. package/dist/commands/doctor.d.ts +2 -0
  14. package/dist/commands/doctor.js +13 -0
  15. package/dist/commands/init.d.ts +7 -0
  16. package/dist/commands/init.js +31 -0
  17. package/dist/commands/migrate-kit.d.ts +2 -0
  18. package/dist/commands/migrate-kit.js +15 -0
  19. package/dist/commands/repo.d.ts +3 -0
  20. package/dist/commands/repo.js +9 -0
  21. package/dist/commands/scaffold.d.ts +4 -0
  22. package/dist/commands/scaffold.js +31 -0
  23. package/dist/commands/shared-deps.d.ts +36 -0
  24. package/dist/commands/shared-deps.js +10 -0
  25. package/dist/commands/upgrade-codemods.d.ts +42 -0
  26. package/dist/commands/upgrade-codemods.js +15 -0
  27. package/dist/commands/upgrade-planner.d.ts +58 -0
  28. package/dist/commands/upgrade-planner.js +8 -0
  29. package/dist/commands/upgrade-workspace.d.ts +76 -0
  30. package/dist/commands/upgrade-workspace.js +16 -0
  31. package/dist/commands/upgrade.d.ts +214 -0
  32. package/dist/commands/upgrade.js +25 -0
  33. package/dist/create/index.d.ts +5 -0
  34. package/dist/create/index.js +29 -0
  35. package/dist/create/planner.d.ts +3 -0
  36. package/dist/create/planner.js +21 -0
  37. package/dist/create/presets.d.ts +3 -0
  38. package/dist/create/presets.js +12 -0
  39. package/dist/create/types.d.ts +2 -0
  40. package/dist/create/types.js +1 -0
  41. package/dist/engine/blocks.d.ts +3 -0
  42. package/dist/engine/blocks.js +12 -0
  43. package/dist/engine/collector.d.ts +2 -0
  44. package/dist/engine/collector.js +8 -0
  45. package/dist/engine/config.d.ts +3 -0
  46. package/dist/engine/config.js +12 -0
  47. package/dist/engine/executor.d.ts +3 -0
  48. package/dist/engine/executor.js +16 -0
  49. package/dist/engine/index.d.ts +8 -0
  50. package/dist/engine/index.js +59 -0
  51. package/dist/engine/names.d.ts +2 -0
  52. package/dist/engine/names.js +16 -0
  53. package/dist/engine/post-scaffold.d.ts +3 -0
  54. package/dist/engine/post-scaffold.js +8 -0
  55. package/dist/engine/render-plan.d.ts +7 -0
  56. package/dist/engine/render-plan.js +9 -0
  57. package/dist/engine/template.d.ts +3 -0
  58. package/dist/engine/template.js +17 -0
  59. package/dist/engine/types.d.ts +2 -0
  60. package/dist/engine/types.js +8 -0
  61. package/dist/engine/workspace.d.ts +3 -0
  62. package/dist/engine/workspace.js +13 -0
  63. package/dist/index.d.ts +10 -0
  64. package/dist/index.js +1 -1
  65. package/dist/manifest.d.ts +71 -0
  66. package/dist/manifest.js +16 -0
  67. package/dist/output-mode.d.ts +2 -0
  68. package/dist/output-mode.js +10 -0
  69. package/dist/shared/{chunk-tpwtpa74.js → chunk-k59f60cp.js} +858 -396
  70. package/dist/shared/outfitter-193jvzg4.d.ts +5 -0
  71. package/dist/shared/outfitter-1dd0k853.js +194 -0
  72. package/dist/shared/outfitter-1dvma85c.js +322 -0
  73. package/dist/shared/outfitter-1h7k8xxt.js +29 -0
  74. package/dist/shared/outfitter-2ngep1h2.d.ts +5 -0
  75. package/dist/shared/outfitter-2np85etz.js +95 -0
  76. package/dist/shared/outfitter-33w361tc.d.ts +18 -0
  77. package/dist/shared/outfitter-344t1r38.js +1 -0
  78. package/dist/shared/outfitter-3weh61w7.d.ts +25 -0
  79. package/dist/shared/outfitter-4s9meh3j.js +221 -0
  80. package/dist/shared/outfitter-66b25bj8.js +125 -0
  81. package/dist/shared/outfitter-6bkqjk86.d.ts +3 -0
  82. package/dist/shared/outfitter-79vfxt6y.js +269 -0
  83. package/dist/shared/outfitter-7ha7p61k.d.ts +6 -0
  84. package/dist/shared/outfitter-7r12fj7f.js +30 -0
  85. package/dist/shared/outfitter-8y2dfx6n.js +11 -0
  86. package/dist/shared/outfitter-9x1brcmq.js +184 -0
  87. package/dist/shared/outfitter-9zqc2njf.js +859 -0
  88. package/dist/shared/outfitter-a79xrm12.d.ts +17 -0
  89. package/dist/shared/outfitter-amc4jbs1.d.ts +50 -0
  90. package/dist/shared/outfitter-ara3djt0.js +73 -0
  91. package/dist/shared/outfitter-avhm5z6w.js +82 -0
  92. package/dist/shared/outfitter-bkwpbkr9.d.ts +63 -0
  93. package/dist/shared/outfitter-bn9c8p2e.js +204 -0
  94. package/dist/shared/outfitter-bpr28y54.js +70 -0
  95. package/dist/shared/outfitter-cwq39bv4.d.ts +48 -0
  96. package/dist/shared/outfitter-d7pq7d0k.js +196 -0
  97. package/dist/shared/outfitter-dd0btgec.d.ts +40 -0
  98. package/dist/shared/outfitter-e2zz5wv7.d.ts +51 -0
  99. package/dist/shared/outfitter-ehp18x1n.js +1 -0
  100. package/dist/shared/outfitter-gdvm5c0b.d.ts +4 -0
  101. package/dist/shared/outfitter-h1mnzzd1.d.ts +14 -0
  102. package/dist/shared/outfitter-hvsaxgcp.js +1 -0
  103. package/dist/shared/outfitter-hws10ze7.js +532 -0
  104. package/dist/shared/outfitter-j833sxws.js +61 -0
  105. package/dist/shared/outfitter-j8yc7294.d.ts +22 -0
  106. package/dist/shared/outfitter-k112c427.js +21 -0
  107. package/dist/shared/outfitter-k56rmt24.d.ts +30 -0
  108. package/dist/shared/outfitter-ksa1pp4t.d.ts +4 -0
  109. package/dist/shared/outfitter-ksyvwmb5.js +191 -0
  110. package/dist/shared/outfitter-mdt37hqm.js +4 -0
  111. package/dist/shared/outfitter-mtbpabf3.js +91 -0
  112. package/dist/shared/outfitter-mxz69pgy.js +713 -0
  113. package/dist/shared/outfitter-npemy7ta.d.ts +53 -0
  114. package/dist/shared/outfitter-npyfbdmc.d.ts +6 -0
  115. package/dist/shared/outfitter-pyy1zkfh.d.ts +133 -0
  116. package/dist/shared/outfitter-q9agarmb.js +42 -0
  117. package/dist/shared/outfitter-qfh36ddg.d.ts +66 -0
  118. package/dist/shared/outfitter-qn864k6h.js +581 -0
  119. package/dist/shared/outfitter-rdc5v5ms.js +746 -0
  120. package/dist/shared/outfitter-sgtq57qr.d.ts +5 -0
  121. package/dist/shared/outfitter-ttjr95y9.js +98 -0
  122. package/dist/shared/outfitter-vh4xgb93.js +35 -0
  123. package/dist/shared/outfitter-yvksv5qb.js +322 -0
  124. package/dist/shared/outfitter-zwyvewr1.js +36 -0
  125. package/dist/targets/index.d.ts +4 -0
  126. package/dist/targets/index.js +29 -0
  127. package/dist/targets/registry.d.ts +3 -0
  128. package/dist/targets/registry.js +28 -0
  129. package/dist/targets/types.d.ts +2 -0
  130. package/dist/targets/types.js +1 -0
  131. package/package.json +19 -12
package/README.md CHANGED
@@ -184,25 +184,28 @@ outfitter migrate kit --dry-run
184
184
  outfitter migrate kit .
185
185
  ```
186
186
 
187
- ### `update`
187
+ ### `upgrade`
188
188
 
189
189
  Check installed `@outfitter/*` packages against npm versions.
190
190
 
191
191
  ```bash
192
- outfitter update [options]
192
+ outfitter upgrade [options]
193
193
  ```
194
194
 
195
195
  Options:
196
196
 
197
197
  - `--guide` - Include composed migration guidance
198
+ - `--all` - Include breaking changes
199
+ - `--dry-run` - Preview without making changes
200
+ - `--yes` - Skip interactive prompts
198
201
  - `--cwd <path>` - Working directory to inspect
199
202
 
200
203
  Examples:
201
204
 
202
205
  ```bash
203
- outfitter update
204
- outfitter update --guide
205
- outfitter update --json --cwd .
206
+ outfitter upgrade
207
+ outfitter upgrade --guide
208
+ outfitter upgrade --json --cwd .
206
209
  ```
207
210
 
208
211
  ### `doctor`
@@ -0,0 +1,2 @@
1
+ import { outfitterActions } from "./shared/outfitter-6bkqjk86";
2
+ export { outfitterActions };
@@ -0,0 +1,34 @@
1
+ // @bun
2
+ import {
3
+ outfitterActions
4
+ } from "./shared/outfitter-rdc5v5ms.js";
5
+ import"./shared/outfitter-mxz69pgy.js";
6
+ import"./shared/outfitter-hws10ze7.js";
7
+ import"./shared/outfitter-qn864k6h.js";
8
+ import"./shared/outfitter-ehp18x1n.js";
9
+ import"./shared/outfitter-1dd0k853.js";
10
+ import"./shared/outfitter-9zqc2njf.js";
11
+ import"./shared/outfitter-yvksv5qb.js";
12
+ import"./shared/outfitter-d7pq7d0k.js";
13
+ import"./shared/outfitter-bpr28y54.js";
14
+ import"./shared/outfitter-ksyvwmb5.js";
15
+ import"./shared/outfitter-1dvma85c.js";
16
+ import"./shared/outfitter-4s9meh3j.js";
17
+ import"./shared/outfitter-344t1r38.js";
18
+ import"./shared/outfitter-2np85etz.js";
19
+ import"./shared/outfitter-q9agarmb.js";
20
+ import"./shared/outfitter-66b25bj8.js";
21
+ import"./shared/outfitter-9x1brcmq.js";
22
+ import"./shared/outfitter-j833sxws.js";
23
+ import"./shared/outfitter-79vfxt6y.js";
24
+ import"./shared/outfitter-mtbpabf3.js";
25
+ import"./shared/outfitter-ttjr95y9.js";
26
+ import"./shared/outfitter-7r12fj7f.js";
27
+ import"./shared/outfitter-ara3djt0.js";
28
+ import"./shared/outfitter-k112c427.js";
29
+ import"./shared/outfitter-8y2dfx6n.js";
30
+ import"./shared/outfitter-1h7k8xxt.js";
31
+ import"./shared/outfitter-mdt37hqm.js";
32
+ export {
33
+ outfitterActions
34
+ };
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  createRepoCommand,
4
4
  outfitterActions
5
- } from "./shared/chunk-tpwtpa74.js";
5
+ } from "./shared/chunk-k59f60cp.js";
6
6
 
7
7
  // src/cli.ts
8
8
  import { readFileSync } from "node:fs";
@@ -0,0 +1,54 @@
1
+ import { OutputMode } from "@outfitter/cli/types";
2
+ import { Result } from "@outfitter/contracts";
3
+ import { AddBlockResult } from "@outfitter/tooling";
4
+ /**
5
+ * Input for the add command.
6
+ */
7
+ interface AddInput {
8
+ /** Block name to add */
9
+ readonly block: string;
10
+ /** Overwrite existing files */
11
+ readonly force: boolean;
12
+ /** Show what would be done without making changes */
13
+ readonly dryRun: boolean;
14
+ /** Working directory (defaults to cwd) */
15
+ readonly cwd?: string;
16
+ }
17
+ /**
18
+ * Error returned when adding a block fails.
19
+ */
20
+ declare class AddError extends Error {
21
+ readonly _tag: "AddError";
22
+ constructor(message: string);
23
+ }
24
+ /**
25
+ * Runs the add command programmatically.
26
+ *
27
+ * @param input - Add command input
28
+ * @returns Result with details of what was added
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const result = await runAdd({
33
+ * block: "scaffolding",
34
+ * force: false,
35
+ * dryRun: false,
36
+ * });
37
+ *
38
+ * if (result.isOk()) {
39
+ * console.log(`Created ${result.value.created.length} files`);
40
+ * }
41
+ * ```
42
+ */
43
+ declare function runAdd(input: AddInput): Promise<Result<AddBlockResult, AddError>>;
44
+ /**
45
+ * Prints the results of the add command.
46
+ */
47
+ declare function printAddResults(result: AddBlockResult, dryRun: boolean, options?: {
48
+ mode?: OutputMode;
49
+ }): Promise<void>;
50
+ /**
51
+ * Lists available blocks.
52
+ */
53
+ declare function listBlocks(): Result<string[], AddError>;
54
+ export { runAdd, printAddResults, listBlocks, AddInput, AddError };
@@ -0,0 +1,16 @@
1
+ // @bun
2
+ import {
3
+ AddError,
4
+ listBlocks,
5
+ printAddResults,
6
+ runAdd
7
+ } from "../shared/outfitter-79vfxt6y.js";
8
+ import"../shared/outfitter-mtbpabf3.js";
9
+ import"../shared/outfitter-7r12fj7f.js";
10
+ import"../shared/outfitter-mdt37hqm.js";
11
+ export {
12
+ runAdd,
13
+ printAddResults,
14
+ listBlocks,
15
+ AddError
16
+ };
@@ -0,0 +1,91 @@
1
+ import { OutputMode } from "@outfitter/cli/types";
2
+ import { Result } from "@outfitter/contracts";
3
+ /**
4
+ * Options for the check command.
5
+ */
6
+ interface CheckOptions {
7
+ /** Working directory to check. */
8
+ readonly cwd: string;
9
+ /** Show diff information for drifted files. */
10
+ readonly verbose?: boolean;
11
+ /** Check a specific block only. */
12
+ readonly block?: string;
13
+ /** Machine-oriented output for CI. */
14
+ readonly ci?: boolean;
15
+ /** Output mode override. */
16
+ readonly outputMode?: OutputMode;
17
+ }
18
+ /**
19
+ * Information about a drifted file (included in verbose mode).
20
+ */
21
+ interface DriftedFileInfo {
22
+ /** File path relative to project root. */
23
+ readonly path: string;
24
+ /** Reason for drift classification. */
25
+ readonly reason: "modified" | "missing";
26
+ }
27
+ /**
28
+ * Status of a single block after comparison.
29
+ */
30
+ interface BlockCheckStatus {
31
+ /** Block name. */
32
+ readonly name: string;
33
+ /** Comparison result. */
34
+ readonly status: "current" | "drifted" | "missing";
35
+ /** Tooling version the block was installed from. */
36
+ readonly installedFrom?: string;
37
+ /** Current tooling version providing the registry. */
38
+ readonly currentToolingVersion?: string;
39
+ /** Drifted file details (populated when verbose is true). */
40
+ readonly driftedFiles?: DriftedFileInfo[];
41
+ }
42
+ /**
43
+ * Complete result of the check command.
44
+ */
45
+ interface CheckResult {
46
+ /** Per-block comparison results. */
47
+ readonly blocks: BlockCheckStatus[];
48
+ /** Number of blocks checked. */
49
+ readonly totalChecked: number;
50
+ /** Number of blocks matching the registry. */
51
+ readonly currentCount: number;
52
+ /** Number of blocks with local modifications. */
53
+ readonly driftedCount: number;
54
+ /** Number of blocks with missing files. */
55
+ readonly missingCount: number;
56
+ }
57
+ /**
58
+ * Error returned when the check command fails.
59
+ */
60
+ declare class CheckError extends Error {
61
+ readonly _tag: "CheckError";
62
+ constructor(message: string);
63
+ }
64
+ /**
65
+ * Runs the check command programmatically.
66
+ *
67
+ * Reads the manifest (or falls back to file-presence heuristic) and
68
+ * compares each installed block against the registry.
69
+ *
70
+ * @param options - Check command options
71
+ * @returns Result with per-block comparison statuses
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const result = await runCheck({ cwd: process.cwd() });
76
+ * if (result.isOk()) {
77
+ * if (result.value.driftedCount > 0) {
78
+ * console.log("Some blocks have drifted from the registry");
79
+ * }
80
+ * }
81
+ * ```
82
+ */
83
+ declare function runCheck(options: CheckOptions): Promise<Result<CheckResult, CheckError>>;
84
+ /**
85
+ * Formats and outputs check results.
86
+ */
87
+ declare function printCheckResults(result: CheckResult, options?: {
88
+ mode?: OutputMode;
89
+ verbose?: boolean;
90
+ }): Promise<void>;
91
+ export { runCheck, printCheckResults, DriftedFileInfo, CheckResult, CheckOptions, CheckError, BlockCheckStatus };
@@ -0,0 +1,14 @@
1
+ // @bun
2
+ import {
3
+ CheckError,
4
+ printCheckResults,
5
+ runCheck
6
+ } from "../shared/outfitter-1dvma85c.js";
7
+ import"../shared/outfitter-mtbpabf3.js";
8
+ import"../shared/outfitter-7r12fj7f.js";
9
+ import"../shared/outfitter-mdt37hqm.js";
10
+ export {
11
+ runCheck,
12
+ printCheckResults,
13
+ CheckError
14
+ };
@@ -0,0 +1,21 @@
1
+ import { CliOutputMode } from "../shared/outfitter-a79xrm12";
2
+ /**
3
+ * Options for forwarding to the demo CLI.
4
+ */
5
+ interface DemoOptions {
6
+ readonly section?: string | undefined;
7
+ readonly list?: boolean | undefined;
8
+ readonly animate?: boolean | undefined;
9
+ readonly outputMode: CliOutputMode;
10
+ }
11
+ /**
12
+ * Result of forwarding the demo command.
13
+ */
14
+ interface DemoResult {
15
+ readonly exitCode: number;
16
+ }
17
+ /**
18
+ * Runs the demo command through available entrypoints.
19
+ */
20
+ declare function runDemo(options: DemoOptions): Promise<DemoResult>;
21
+ export { runDemo, DemoResult, DemoOptions };
@@ -0,0 +1,8 @@
1
+ // @bun
2
+ import {
3
+ runDemo
4
+ } from "../shared/outfitter-ksyvwmb5.js";
5
+ import"../shared/outfitter-mdt37hqm.js";
6
+ export {
7
+ runDemo
8
+ };
@@ -0,0 +1,2 @@
1
+ import { CreateDocsCommandOptions, DocsCommandIo, DocsExportTarget, ExecuteCheckCommandOptions, ExecuteExportCommandOptions, ExecuteSyncCommandOptions, loadDocsModule } from "../shared/outfitter-dd0btgec";
2
+ export { loadDocsModule, ExecuteSyncCommandOptions, ExecuteExportCommandOptions, ExecuteCheckCommandOptions, DocsExportTarget, DocsCommandIo, CreateDocsCommandOptions };
@@ -0,0 +1,8 @@
1
+ // @bun
2
+ import {
3
+ loadDocsModule
4
+ } from "../shared/outfitter-zwyvewr1.js";
5
+ import"../shared/outfitter-mdt37hqm.js";
6
+ export {
7
+ loadDocsModule
8
+ };
@@ -0,0 +1,2 @@
1
+ import { BunVersionCheck, CheckResult, ConfigFilesCheck, DependenciesCheck, DirectoriesCheck, DoctorOptions, DoctorResult, DoctorSummary, PackageJsonCheck, doctorCommand, printDoctorResults, runDoctor } from "../shared/outfitter-pyy1zkfh";
2
+ export { runDoctor, printDoctorResults, doctorCommand, PackageJsonCheck, DoctorSummary, DoctorResult, DoctorOptions, DirectoriesCheck, DependenciesCheck, ConfigFilesCheck, CheckResult, BunVersionCheck };
@@ -0,0 +1,13 @@
1
+ // @bun
2
+ import {
3
+ doctorCommand,
4
+ printDoctorResults,
5
+ runDoctor
6
+ } from "../shared/outfitter-d7pq7d0k.js";
7
+ import"../shared/outfitter-7r12fj7f.js";
8
+ import"../shared/outfitter-mdt37hqm.js";
9
+ export {
10
+ runDoctor,
11
+ printDoctorResults,
12
+ doctorCommand
13
+ };
@@ -0,0 +1,7 @@
1
+ import { InitError, InitOptions, InitPresetId, InitResult, InitStructure, initCommand, printInitResults, runInit } from "../shared/outfitter-bkwpbkr9";
2
+ import "../shared/outfitter-y784nh31";
3
+ import "../shared/outfitter-33w361tc";
4
+ import "../shared/outfitter-k56rmt24";
5
+ import "../shared/outfitter-3weh61w7";
6
+ import "../shared/outfitter-amc4jbs1";
7
+ export { runInit, printInitResults, initCommand, InitStructure, InitResult, InitPresetId, InitOptions, InitError };
@@ -0,0 +1,31 @@
1
+ // @bun
2
+ import {
3
+ InitError,
4
+ initCommand,
5
+ printInitResults,
6
+ runInit
7
+ } from "../shared/outfitter-qn864k6h.js";
8
+ import"../shared/outfitter-ehp18x1n.js";
9
+ import"../shared/outfitter-1dd0k853.js";
10
+ import"../shared/outfitter-4s9meh3j.js";
11
+ import"../shared/outfitter-344t1r38.js";
12
+ import"../shared/outfitter-2np85etz.js";
13
+ import"../shared/outfitter-q9agarmb.js";
14
+ import"../shared/outfitter-66b25bj8.js";
15
+ import"../shared/outfitter-9x1brcmq.js";
16
+ import"../shared/outfitter-j833sxws.js";
17
+ import"../shared/outfitter-79vfxt6y.js";
18
+ import"../shared/outfitter-mtbpabf3.js";
19
+ import"../shared/outfitter-ttjr95y9.js";
20
+ import"../shared/outfitter-7r12fj7f.js";
21
+ import"../shared/outfitter-ara3djt0.js";
22
+ import"../shared/outfitter-k112c427.js";
23
+ import"../shared/outfitter-8y2dfx6n.js";
24
+ import"../shared/outfitter-1h7k8xxt.js";
25
+ import"../shared/outfitter-mdt37hqm.js";
26
+ export {
27
+ runInit,
28
+ printInitResults,
29
+ initCommand,
30
+ InitError
31
+ };
@@ -0,0 +1,2 @@
1
+ import { MigrateKitError, MigrateKitOptions, MigrateKitResult, migrateKitCommand, printMigrateKitResults, runMigrateKit } from "../shared/outfitter-npemy7ta";
2
+ export { runMigrateKit, printMigrateKitResults, migrateKitCommand, MigrateKitResult, MigrateKitOptions, MigrateKitError };
@@ -0,0 +1,15 @@
1
+ // @bun
2
+ import {
3
+ MigrateKitError,
4
+ migrateKitCommand,
5
+ printMigrateKitResults,
6
+ runMigrateKit
7
+ } from "../shared/outfitter-mxz69pgy.js";
8
+ import"../shared/outfitter-7r12fj7f.js";
9
+ import"../shared/outfitter-mdt37hqm.js";
10
+ export {
11
+ runMigrateKit,
12
+ printMigrateKitResults,
13
+ migrateKitCommand,
14
+ MigrateKitError
15
+ };
@@ -0,0 +1,3 @@
1
+ import { CreateRepoCommandOptions, RepoCheckSubject, RepoCommandIo, RepoToolingInvocation, createRepoCommand } from "../shared/outfitter-j8yc7294";
2
+ import "../shared/outfitter-dd0btgec";
3
+ export { createRepoCommand, RepoToolingInvocation, RepoCommandIo, RepoCheckSubject, CreateRepoCommandOptions };
@@ -0,0 +1,9 @@
1
+ // @bun
2
+ import {
3
+ createRepoCommand
4
+ } from "../shared/outfitter-bn9c8p2e.js";
5
+ import"../shared/outfitter-zwyvewr1.js";
6
+ import"../shared/outfitter-mdt37hqm.js";
7
+ export {
8
+ createRepoCommand
9
+ };
@@ -0,0 +1,4 @@
1
+ import { ScaffoldCommandError, ScaffoldCommandResult, ScaffoldOptions, printScaffoldResults, runScaffold, scaffoldCommand } from "../shared/outfitter-cwq39bv4";
2
+ import "../shared/outfitter-3weh61w7";
3
+ import "../shared/outfitter-amc4jbs1";
4
+ export { scaffoldCommand, runScaffold, printScaffoldResults, ScaffoldOptions, ScaffoldCommandResult, ScaffoldCommandError };
@@ -0,0 +1,31 @@
1
+ // @bun
2
+ import {
3
+ ScaffoldCommandError,
4
+ printScaffoldResults,
5
+ runScaffold,
6
+ scaffoldCommand
7
+ } from "../shared/outfitter-hws10ze7.js";
8
+ import"../shared/outfitter-ehp18x1n.js";
9
+ import"../shared/outfitter-1dd0k853.js";
10
+ import"../shared/outfitter-4s9meh3j.js";
11
+ import"../shared/outfitter-344t1r38.js";
12
+ import"../shared/outfitter-2np85etz.js";
13
+ import"../shared/outfitter-q9agarmb.js";
14
+ import"../shared/outfitter-66b25bj8.js";
15
+ import"../shared/outfitter-9x1brcmq.js";
16
+ import"../shared/outfitter-j833sxws.js";
17
+ import"../shared/outfitter-79vfxt6y.js";
18
+ import"../shared/outfitter-mtbpabf3.js";
19
+ import"../shared/outfitter-ttjr95y9.js";
20
+ import"../shared/outfitter-7r12fj7f.js";
21
+ import"../shared/outfitter-ara3djt0.js";
22
+ import"../shared/outfitter-k112c427.js";
23
+ import"../shared/outfitter-8y2dfx6n.js";
24
+ import"../shared/outfitter-1h7k8xxt.js";
25
+ import"../shared/outfitter-mdt37hqm.js";
26
+ export {
27
+ scaffoldCommand,
28
+ runScaffold,
29
+ printScaffoldResults,
30
+ ScaffoldCommandError
31
+ };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Shared dependencies and scripts injected into all scaffolded projects.
3
+ *
4
+ * Edit this file to update versions across all templates. These are merged
5
+ * with template-specific values, with template values taking precedence.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * Shared devDependencies injected into all scaffolded projects.
11
+ * Template-specific devDependencies take precedence over these defaults.
12
+ *
13
+ * Keep these in sync with the root package.json versions.
14
+ */
15
+ declare const SHARED_DEV_DEPS: {
16
+ readonly "@biomejs/biome": "^2.3.12";
17
+ readonly "@outfitter/tooling": "^0.2.1";
18
+ readonly "@types/bun": "^1.3.7";
19
+ readonly lefthook: "^2.0.16";
20
+ readonly typescript: "^5.9.3";
21
+ readonly ultracite: "^7.1.1";
22
+ };
23
+ /**
24
+ * Shared scripts injected into all scaffolded projects.
25
+ * Template-specific scripts take precedence over these defaults.
26
+ */
27
+ declare const SHARED_SCRIPTS: {
28
+ readonly check: "ultracite check";
29
+ readonly "clean:artifacts": "rm -rf dist .turbo";
30
+ readonly "verify:ci": "bun run typecheck && bun run check && bun run build && bun run test";
31
+ readonly lint: "biome check .";
32
+ readonly "lint:fix": "biome check . --write";
33
+ readonly format: "biome format --write .";
34
+ readonly typecheck: "tsc --noEmit";
35
+ };
36
+ export { SHARED_SCRIPTS, SHARED_DEV_DEPS };
@@ -0,0 +1,10 @@
1
+ // @bun
2
+ import {
3
+ SHARED_DEV_DEPS,
4
+ SHARED_SCRIPTS
5
+ } from "../shared/outfitter-k112c427.js";
6
+ import"../shared/outfitter-mdt37hqm.js";
7
+ export {
8
+ SHARED_SCRIPTS,
9
+ SHARED_DEV_DEPS
10
+ };
@@ -0,0 +1,42 @@
1
+ import { OutfitterError } from "@outfitter/contracts";
2
+ import { Result } from "@outfitter/contracts";
3
+ /** Options passed to a codemod's transform function. */
4
+ interface CodemodOptions {
5
+ readonly targetDir: string;
6
+ readonly dryRun: boolean;
7
+ }
8
+ /** Result returned by a codemod's transform function. */
9
+ interface CodemodResult {
10
+ readonly changedFiles: readonly string[];
11
+ readonly skippedFiles: readonly string[];
12
+ readonly errors: readonly string[];
13
+ }
14
+ /** A discovered codemod with resolved paths. */
15
+ interface DiscoveredCodemod {
16
+ /** Path relative to the codemods directory. */
17
+ readonly relativePath: string;
18
+ /** Absolute path to the codemod file. */
19
+ readonly absolutePath: string;
20
+ }
21
+ /**
22
+ * Find the codemods directory, checking known locations.
23
+ *
24
+ * Searches:
25
+ * 1. Relative to the target cwd
26
+ * 2. Walking up parent directories from cwd (monorepo root detection)
27
+ * 3. Relative to the outfitter binary itself (development mode)
28
+ */
29
+ declare function findCodemodsDir(cwd: string, binaryDir?: string): string | null;
30
+ /**
31
+ * Discover codemods referenced in migration docs for a package version range.
32
+ *
33
+ * Scans migration doc frontmatter for `codemod` references in the `changes`
34
+ * array, resolves them to absolute paths in the codemods directory, and
35
+ * deduplicates.
36
+ */
37
+ declare function discoverCodemods(migrationsDir: string, codemodsDir: string, shortName: string, fromVersion: string, toVersion: string): DiscoveredCodemod[];
38
+ /**
39
+ * Run a single codemod by importing and executing its `transform` function.
40
+ */
41
+ declare function runCodemod(codemodPath: string, targetDir: string, dryRun: boolean): Promise<Result<CodemodResult, OutfitterError>>;
42
+ export { runCodemod, findCodemodsDir, discoverCodemods, DiscoveredCodemod, CodemodResult, CodemodOptions };
@@ -0,0 +1,15 @@
1
+ // @bun
2
+ import {
3
+ discoverCodemods,
4
+ findCodemodsDir,
5
+ runCodemod
6
+ } from "../shared/outfitter-9zqc2njf.js";
7
+ import"../shared/outfitter-yvksv5qb.js";
8
+ import"../shared/outfitter-bpr28y54.js";
9
+ import"../shared/outfitter-7r12fj7f.js";
10
+ import"../shared/outfitter-mdt37hqm.js";
11
+ export {
12
+ runCodemod,
13
+ findCodemodsDir,
14
+ discoverCodemods
15
+ };
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Pure, deterministic planner for the `outfitter upgrade` command.
3
+ *
4
+ * Classifies each installed package into one of four bump categories
5
+ * based on the installed version, the latest available version, and
6
+ * metadata about whether the bump contains breaking changes.
7
+ *
8
+ * Pre-1.0 packages (major version 0) treat minor bumps as breaking
9
+ * per semver convention.
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ /** Classification of a version bump for a single package. */
14
+ type BumpClassification = "upToDate" | "upgradableNonBreaking" | "upgradableBreaking" | "blocked";
15
+ /** Describes the planned action for a single package. */
16
+ interface PackageUpgradeAction {
17
+ /** Full package name (e.g. "@outfitter/cli") */
18
+ readonly name: string;
19
+ /** Currently installed version */
20
+ readonly currentVersion: string;
21
+ /** Latest available version */
22
+ readonly latestVersion: string;
23
+ /** Bump classification */
24
+ readonly classification: BumpClassification;
25
+ /** Whether this update contains breaking changes */
26
+ readonly breaking: boolean;
27
+ /** Migration doc path if available */
28
+ readonly migrationDoc?: string;
29
+ }
30
+ /** The complete update plan with per-package actions and aggregate summary. */
31
+ interface UpgradePlan {
32
+ /** Per-package update actions, sorted by name for deterministic output. */
33
+ readonly packages: PackageUpgradeAction[];
34
+ /** Aggregate counts by classification. */
35
+ readonly summary: {
36
+ readonly upToDate: number;
37
+ readonly upgradableNonBreaking: number;
38
+ readonly upgradableBreaking: number;
39
+ readonly blocked: number;
40
+ };
41
+ }
42
+ /**
43
+ * Analyze installed packages against their latest versions and produce
44
+ * a deterministic update plan.
45
+ *
46
+ * This function is **pure** — no side effects, no I/O, no process.env reads.
47
+ * Same inputs always produce the same output.
48
+ *
49
+ * @param installed - Map of package name to currently installed version.
50
+ * @param latest - Map of package name to latest version info (version string + breaking flag).
51
+ * @param migrationDocs - Optional map of package name to migration doc path.
52
+ * @returns A deterministic update plan with per-package actions and summary.
53
+ */
54
+ declare function analyzeUpgrades(installed: Map<string, string>, latest: Map<string, {
55
+ version: string;
56
+ breaking?: boolean;
57
+ }>, migrationDocs?: Map<string, string>): UpgradePlan;
58
+ export { analyzeUpgrades, UpgradePlan, PackageUpgradeAction, BumpClassification };
@@ -0,0 +1,8 @@
1
+ // @bun
2
+ import {
3
+ analyzeUpgrades
4
+ } from "../shared/outfitter-bpr28y54.js";
5
+ import"../shared/outfitter-mdt37hqm.js";
6
+ export {
7
+ analyzeUpgrades
8
+ };