outfitter 0.2.2 → 0.2.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.
- package/README.md +215 -116
- package/dist/actions.d.ts +2 -0
- package/dist/actions.js +34 -0
- package/dist/cli.js +3 -1
- package/dist/commands/add.d.ts +54 -0
- package/dist/commands/add.js +16 -0
- package/dist/commands/check.d.ts +91 -0
- package/dist/commands/check.js +14 -0
- package/dist/commands/demo.d.ts +21 -0
- package/dist/commands/demo.js +8 -0
- package/dist/commands/docs-module-loader.d.ts +2 -0
- package/dist/commands/docs-module-loader.js +8 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.js +13 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.js +31 -0
- package/dist/commands/migrate-kit.d.ts +2 -0
- package/dist/commands/migrate-kit.js +15 -0
- package/dist/commands/repo.d.ts +3 -0
- package/dist/commands/repo.js +9 -0
- package/dist/commands/scaffold.d.ts +4 -0
- package/dist/commands/scaffold.js +31 -0
- package/dist/commands/shared-deps.d.ts +36 -0
- package/dist/commands/shared-deps.js +10 -0
- package/dist/commands/update-planner.d.ts +58 -0
- package/dist/commands/update-planner.js +8 -0
- package/dist/commands/update-workspace.d.ts +76 -0
- package/dist/commands/update-workspace.js +16 -0
- package/dist/commands/update.d.ts +113 -0
- package/dist/commands/update.js +21 -0
- package/dist/create/index.d.ts +5 -0
- package/dist/create/index.js +29 -0
- package/dist/create/planner.d.ts +3 -0
- package/dist/create/planner.js +21 -0
- package/dist/create/presets.d.ts +3 -0
- package/dist/create/presets.js +12 -0
- package/dist/create/types.d.ts +2 -0
- package/dist/create/types.js +1 -0
- package/dist/engine/blocks.d.ts +3 -0
- package/dist/engine/blocks.js +12 -0
- package/dist/engine/collector.d.ts +2 -0
- package/dist/engine/collector.js +8 -0
- package/dist/engine/config.d.ts +3 -0
- package/dist/engine/config.js +12 -0
- package/dist/engine/executor.d.ts +3 -0
- package/dist/engine/executor.js +16 -0
- package/dist/engine/index.d.ts +8 -0
- package/dist/engine/index.js +59 -0
- package/dist/engine/names.d.ts +2 -0
- package/dist/engine/names.js +16 -0
- package/dist/engine/post-scaffold.d.ts +3 -0
- package/dist/engine/post-scaffold.js +8 -0
- package/dist/engine/render-plan.d.ts +7 -0
- package/dist/engine/render-plan.js +9 -0
- package/dist/engine/template.d.ts +3 -0
- package/dist/engine/template.js +17 -0
- package/dist/engine/types.d.ts +2 -0
- package/dist/engine/types.js +8 -0
- package/dist/engine/workspace.d.ts +3 -0
- package/dist/engine/workspace.js +13 -0
- package/dist/index.d.ts +228 -152
- package/dist/index.js +144 -14
- package/dist/manifest.d.ts +71 -0
- package/dist/manifest.js +16 -0
- package/dist/output-mode.d.ts +2 -0
- package/dist/output-mode.js +10 -0
- package/dist/shared/chunk-b0y0cwkr.js +5533 -0
- package/dist/shared/outfitter-193jvzg4.d.ts +5 -0
- package/dist/shared/outfitter-1dd0k853.js +194 -0
- package/dist/shared/outfitter-1h7k8xxt.js +29 -0
- package/dist/shared/outfitter-1qwpjt6w.js +125 -0
- package/dist/shared/outfitter-2ngep1h2.d.ts +5 -0
- package/dist/shared/outfitter-2np85etz.js +95 -0
- package/dist/shared/outfitter-33w361tc.d.ts +18 -0
- package/dist/shared/outfitter-344t1r38.js +1 -0
- package/dist/shared/outfitter-3weh61w7.d.ts +25 -0
- package/dist/shared/outfitter-4s9meh3j.js +221 -0
- package/dist/shared/outfitter-6a4bq054.js +322 -0
- package/dist/shared/outfitter-6bkqjk86.d.ts +3 -0
- package/dist/shared/outfitter-6gc3g5wk.js +98 -0
- package/dist/shared/outfitter-7cv5fg1m.js +61 -0
- package/dist/shared/outfitter-7ha7p61k.d.ts +6 -0
- package/dist/shared/outfitter-7r12fj7f.js +30 -0
- package/dist/shared/outfitter-8y2dfx6n.js +11 -0
- package/dist/shared/outfitter-9c8edfsn.js +715 -0
- package/dist/shared/outfitter-9x1brcmq.js +184 -0
- package/dist/shared/outfitter-a79xrm12.d.ts +17 -0
- package/dist/shared/outfitter-amc4jbs1.d.ts +50 -0
- package/dist/shared/outfitter-ara3djt0.js +73 -0
- package/dist/shared/outfitter-avhm5z6w.js +82 -0
- package/dist/shared/outfitter-b5nd42y4.d.ts +45 -0
- package/dist/shared/outfitter-dd0btgec.d.ts +40 -0
- package/dist/shared/outfitter-e2zz5wv7.d.ts +51 -0
- package/dist/shared/outfitter-ehp18x1n.js +1 -0
- package/dist/shared/outfitter-fnsmx3xg.js +750 -0
- package/dist/shared/outfitter-gdvm5c0b.d.ts +4 -0
- package/dist/shared/outfitter-gp4v5gkf.js +322 -0
- package/dist/shared/outfitter-h1mnzzd1.d.ts +14 -0
- package/dist/shared/outfitter-hpymx4m9.js +184 -0
- package/dist/shared/outfitter-hvsaxgcp.js +1 -0
- package/dist/shared/outfitter-j8yc7294.d.ts +22 -0
- package/dist/shared/outfitter-jyxwznk1.js +404 -0
- package/dist/shared/outfitter-k112c427.js +21 -0
- package/dist/shared/outfitter-k56rmt24.d.ts +30 -0
- package/dist/shared/outfitter-ksa1pp4t.d.ts +4 -0
- package/dist/shared/outfitter-mdt37hqm.js +4 -0
- package/dist/shared/outfitter-mtbpabf3.js +91 -0
- package/dist/shared/outfitter-nm4m0v6x.d.ts +131 -0
- package/dist/shared/outfitter-nmeecf1b.js +531 -0
- package/dist/shared/outfitter-npyfbdmc.d.ts +6 -0
- package/dist/shared/outfitter-pxt58tsq.js +582 -0
- package/dist/shared/outfitter-q9agarmb.js +42 -0
- package/dist/shared/outfitter-qfgj5xpq.js +70 -0
- package/dist/shared/outfitter-qfh36ddg.d.ts +66 -0
- package/dist/shared/outfitter-s6k8y2p4.js +269 -0
- package/dist/shared/outfitter-sftf1s26.js +199 -0
- package/dist/shared/outfitter-sg7ncy4a.d.ts +51 -0
- package/dist/shared/outfitter-sgtq57qr.d.ts +5 -0
- package/dist/shared/outfitter-txre6cdn.d.ts +60 -0
- package/dist/shared/outfitter-vh4xgb93.js +35 -0
- package/dist/shared/outfitter-ya44h1km.js +191 -0
- package/dist/shared/outfitter-zwyvewr1.js +36 -0
- package/dist/targets/index.d.ts +4 -0
- package/dist/targets/index.js +29 -0
- package/dist/targets/registry.d.ts +3 -0
- package/dist/targets/registry.js +28 -0
- package/dist/targets/types.d.ts +2 -0
- package/dist/targets/types.js +1 -0
- package/package.json +154 -37
- package/templates/minimal/.gitignore.template +30 -0
- package/templates/minimal/.lefthook.yml.template +26 -0
- package/templates/minimal/package.json.template +46 -0
- package/templates/minimal/src/index.ts.template +26 -0
- package/templates/minimal/tsconfig.json.template +34 -0
- package/dist/shared/chunk-sak1tt33.js +0 -3457
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// apps/outfitter/src/commands/demo.ts
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
import { output } from "@outfitter/cli/output";
|
|
5
|
+
import {
|
|
6
|
+
getPrimitiveIds,
|
|
7
|
+
isPrimitiveId,
|
|
8
|
+
renderAllDemos,
|
|
9
|
+
renderDemo
|
|
10
|
+
} from "@outfitter/tui/demo";
|
|
11
|
+
var EMBEDDED_DEMO_FLAG = "--__outfitter-embedded-demo";
|
|
12
|
+
function isCommandNotFound(error) {
|
|
13
|
+
if (!(error instanceof Error)) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return /ENOENT|not found|spawn/i.test(error.message);
|
|
17
|
+
}
|
|
18
|
+
async function tryRun(cmd) {
|
|
19
|
+
try {
|
|
20
|
+
const proc = Bun.spawn({
|
|
21
|
+
cmd,
|
|
22
|
+
stdin: "inherit",
|
|
23
|
+
stdout: "inherit",
|
|
24
|
+
stderr: "inherit"
|
|
25
|
+
});
|
|
26
|
+
return await proc.exited;
|
|
27
|
+
} catch (error) {
|
|
28
|
+
if (isCommandNotFound(error)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function localDemoCmds(args) {
|
|
35
|
+
const localDistPath = fileURLToPath(new URL("../../../cli-demo/dist/cli.js", import.meta.url));
|
|
36
|
+
const localSrcPath = fileURLToPath(new URL("../../../cli-demo/src/cli.ts", import.meta.url));
|
|
37
|
+
const cmds = [];
|
|
38
|
+
if (await Bun.file(localDistPath).exists()) {
|
|
39
|
+
cmds.push([process.execPath, localDistPath, ...args]);
|
|
40
|
+
}
|
|
41
|
+
if (await Bun.file(localSrcPath).exists()) {
|
|
42
|
+
cmds.push([process.execPath, localSrcPath, ...args]);
|
|
43
|
+
}
|
|
44
|
+
return cmds;
|
|
45
|
+
}
|
|
46
|
+
function embeddedDemoCmd(args) {
|
|
47
|
+
return [
|
|
48
|
+
process.execPath,
|
|
49
|
+
fileURLToPath(import.meta.url),
|
|
50
|
+
EMBEDDED_DEMO_FLAG,
|
|
51
|
+
...args
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
function toCliArgs(options) {
|
|
55
|
+
const args = [];
|
|
56
|
+
if (options.section) {
|
|
57
|
+
args.push(options.section);
|
|
58
|
+
}
|
|
59
|
+
if (options.list) {
|
|
60
|
+
args.push("--list");
|
|
61
|
+
}
|
|
62
|
+
if (options.animate) {
|
|
63
|
+
args.push("--animate");
|
|
64
|
+
}
|
|
65
|
+
if (options.outputMode === "json") {
|
|
66
|
+
args.push("--json");
|
|
67
|
+
} else if (options.outputMode === "jsonl") {
|
|
68
|
+
args.push("--jsonl");
|
|
69
|
+
}
|
|
70
|
+
return args;
|
|
71
|
+
}
|
|
72
|
+
function toOutputMode(mode) {
|
|
73
|
+
return mode;
|
|
74
|
+
}
|
|
75
|
+
function renderListSections() {
|
|
76
|
+
const sections = getPrimitiveIds();
|
|
77
|
+
return [
|
|
78
|
+
"Available demo sections:",
|
|
79
|
+
...sections.map((s) => `- ${s}`),
|
|
80
|
+
"- all"
|
|
81
|
+
].join(`
|
|
82
|
+
`);
|
|
83
|
+
}
|
|
84
|
+
function renderUnknownSection(section) {
|
|
85
|
+
const sections = getPrimitiveIds();
|
|
86
|
+
return [
|
|
87
|
+
`Unknown section: ${section}`,
|
|
88
|
+
"",
|
|
89
|
+
`Available sections: ${sections.join(", ")}, all`,
|
|
90
|
+
"",
|
|
91
|
+
"For app-specific sections (for example `errors`), run `outfitter-demo`."
|
|
92
|
+
].join(`
|
|
93
|
+
`);
|
|
94
|
+
}
|
|
95
|
+
function parseEmbeddedOptions(argv) {
|
|
96
|
+
let section;
|
|
97
|
+
let list = false;
|
|
98
|
+
let animate = false;
|
|
99
|
+
let outputMode = "human";
|
|
100
|
+
for (const arg of argv) {
|
|
101
|
+
if (arg === "--list" || arg === "-l") {
|
|
102
|
+
list = true;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (arg === "--animate" || arg === "-a") {
|
|
106
|
+
animate = true;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (arg === "--json") {
|
|
110
|
+
outputMode = "json";
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (arg === "--jsonl") {
|
|
114
|
+
outputMode = "jsonl";
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (arg.startsWith("-")) {
|
|
118
|
+
throw new Error(`Unknown option: ${arg}`);
|
|
119
|
+
}
|
|
120
|
+
if (section !== undefined) {
|
|
121
|
+
throw new Error(`Unexpected argument: ${arg}`);
|
|
122
|
+
}
|
|
123
|
+
section = arg;
|
|
124
|
+
}
|
|
125
|
+
return { section, list, animate, outputMode };
|
|
126
|
+
}
|
|
127
|
+
async function runEmbeddedDemo(options) {
|
|
128
|
+
const mode = toOutputMode(options.outputMode);
|
|
129
|
+
if (options.list) {
|
|
130
|
+
await output(renderListSections(), { mode });
|
|
131
|
+
return 0;
|
|
132
|
+
}
|
|
133
|
+
if (options.animate) {
|
|
134
|
+
await output(renderDemo("spinner"), { mode });
|
|
135
|
+
return 0;
|
|
136
|
+
}
|
|
137
|
+
if (options.section === undefined || options.section === "all") {
|
|
138
|
+
await output(renderAllDemos(), { mode });
|
|
139
|
+
return 0;
|
|
140
|
+
}
|
|
141
|
+
if (!isPrimitiveId(options.section)) {
|
|
142
|
+
await output(renderUnknownSection(options.section), { mode });
|
|
143
|
+
return 1;
|
|
144
|
+
}
|
|
145
|
+
await output(renderDemo(options.section), { mode });
|
|
146
|
+
return 0;
|
|
147
|
+
}
|
|
148
|
+
async function runEmbeddedFromArgv() {
|
|
149
|
+
if (process.argv[2] !== EMBEDDED_DEMO_FLAG) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const options = parseEmbeddedOptions(process.argv.slice(3));
|
|
153
|
+
const exitCode = await runEmbeddedDemo(options);
|
|
154
|
+
process.exit(exitCode);
|
|
155
|
+
}
|
|
156
|
+
if (import.meta.main) {
|
|
157
|
+
runEmbeddedFromArgv().catch((error) => {
|
|
158
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
159
|
+
process.stderr.write(`${message}
|
|
160
|
+
`);
|
|
161
|
+
process.exit(1);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
async function runDemo(options) {
|
|
165
|
+
const args = toCliArgs(options);
|
|
166
|
+
const commandCandidates = [
|
|
167
|
+
["outfitter-demo", ...args],
|
|
168
|
+
["cli-demo", ...args],
|
|
169
|
+
...await localDemoCmds(args),
|
|
170
|
+
embeddedDemoCmd(args)
|
|
171
|
+
];
|
|
172
|
+
for (const cmd of commandCandidates) {
|
|
173
|
+
const exitCode = await tryRun(cmd);
|
|
174
|
+
if (exitCode !== undefined) {
|
|
175
|
+
return { exitCode };
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
throw new Error([
|
|
179
|
+
"Demo functionality moved to the dedicated demo app.",
|
|
180
|
+
"",
|
|
181
|
+
"Run one of:",
|
|
182
|
+
" outfitter-demo --help",
|
|
183
|
+
" cli-demo --help",
|
|
184
|
+
"",
|
|
185
|
+
"In this monorepo, you can also run:",
|
|
186
|
+
" bun run apps/cli-demo/src/cli.ts --help"
|
|
187
|
+
].join(`
|
|
188
|
+
`));
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export { runDemo };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// apps/outfitter/src/commands/docs-module-loader.ts
|
|
3
|
+
import { existsSync } from "fs";
|
|
4
|
+
import { createRequire } from "module";
|
|
5
|
+
import { dirname, join } from "path";
|
|
6
|
+
import { pathToFileURL } from "url";
|
|
7
|
+
var require2 = createRequire(import.meta.url);
|
|
8
|
+
function resolveDocsEntrypoint() {
|
|
9
|
+
const packageJsonPath = require2.resolve("@outfitter/docs/package.json");
|
|
10
|
+
const packageRoot = dirname(packageJsonPath);
|
|
11
|
+
const srcEntrypoint = join(packageRoot, "src", "index.ts");
|
|
12
|
+
if (existsSync(srcEntrypoint)) {
|
|
13
|
+
return srcEntrypoint;
|
|
14
|
+
}
|
|
15
|
+
const distEntrypoint = join(packageRoot, "dist", "index.js");
|
|
16
|
+
if (existsSync(distEntrypoint)) {
|
|
17
|
+
return distEntrypoint;
|
|
18
|
+
}
|
|
19
|
+
throw new Error("Unable to resolve @outfitter/docs entrypoint (expected src/index.ts or dist/index.js).");
|
|
20
|
+
}
|
|
21
|
+
var docsModulePromise;
|
|
22
|
+
async function loadDocsModule() {
|
|
23
|
+
if (!docsModulePromise) {
|
|
24
|
+
docsModulePromise = (async () => {
|
|
25
|
+
const entrypoint = resolveDocsEntrypoint();
|
|
26
|
+
const module = await import(pathToFileURL(entrypoint).href);
|
|
27
|
+
if (typeof module.createDocsCommand !== "function" || typeof module.executeCheckCommand !== "function" || typeof module.executeSyncCommand !== "function" || typeof module.executeExportCommand !== "function") {
|
|
28
|
+
throw new Error("Resolved @outfitter/docs entrypoint does not export required docs functions.");
|
|
29
|
+
}
|
|
30
|
+
return module;
|
|
31
|
+
})();
|
|
32
|
+
}
|
|
33
|
+
return await docsModulePromise;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { loadDocsModule };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import "../shared/outfitter-y784nh31";
|
|
2
|
+
import { INIT_TARGET_IDS, READY_TARGET_IDS, SCAFFOLD_TARGET_IDS, TARGET_IDS, TARGET_REGISTRY, getInitTarget, getReadyTarget, getScaffoldTarget, getTarget, listTargets, resolvePlacement } from "../shared/outfitter-33w361tc";
|
|
3
|
+
import { TargetCategory, TargetDefinition, TargetId, TargetScope, TargetStatus } from "../shared/outfitter-k56rmt24";
|
|
4
|
+
export { resolvePlacement, listTargets, getTarget, getScaffoldTarget, getReadyTarget, getInitTarget, TargetStatus, TargetScope, TargetId, TargetDefinition, TargetCategory, TARGET_REGISTRY, TARGET_IDS, SCAFFOLD_TARGET_IDS, READY_TARGET_IDS, INIT_TARGET_IDS };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import"../shared/outfitter-ehp18x1n.js";
|
|
3
|
+
import {
|
|
4
|
+
INIT_TARGET_IDS,
|
|
5
|
+
READY_TARGET_IDS,
|
|
6
|
+
SCAFFOLD_TARGET_IDS,
|
|
7
|
+
TARGET_IDS,
|
|
8
|
+
TARGET_REGISTRY,
|
|
9
|
+
getInitTarget,
|
|
10
|
+
getReadyTarget,
|
|
11
|
+
getScaffoldTarget,
|
|
12
|
+
getTarget,
|
|
13
|
+
listTargets,
|
|
14
|
+
resolvePlacement
|
|
15
|
+
} from "../shared/outfitter-1dd0k853.js";
|
|
16
|
+
import"../shared/outfitter-mdt37hqm.js";
|
|
17
|
+
export {
|
|
18
|
+
resolvePlacement,
|
|
19
|
+
listTargets,
|
|
20
|
+
getTarget,
|
|
21
|
+
getScaffoldTarget,
|
|
22
|
+
getReadyTarget,
|
|
23
|
+
getInitTarget,
|
|
24
|
+
TARGET_REGISTRY,
|
|
25
|
+
TARGET_IDS,
|
|
26
|
+
SCAFFOLD_TARGET_IDS,
|
|
27
|
+
READY_TARGET_IDS,
|
|
28
|
+
INIT_TARGET_IDS
|
|
29
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { INIT_TARGET_IDS, READY_TARGET_IDS, SCAFFOLD_TARGET_IDS, TARGET_IDS, TARGET_REGISTRY, getInitTarget, getReadyTarget, getScaffoldTarget, getTarget, listTargets, resolvePlacement } from "../shared/outfitter-33w361tc";
|
|
2
|
+
import "../shared/outfitter-k56rmt24";
|
|
3
|
+
export { resolvePlacement, listTargets, getTarget, getScaffoldTarget, getReadyTarget, getInitTarget, TARGET_REGISTRY, TARGET_IDS, SCAFFOLD_TARGET_IDS, READY_TARGET_IDS, INIT_TARGET_IDS };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
INIT_TARGET_IDS,
|
|
4
|
+
READY_TARGET_IDS,
|
|
5
|
+
SCAFFOLD_TARGET_IDS,
|
|
6
|
+
TARGET_IDS,
|
|
7
|
+
TARGET_REGISTRY,
|
|
8
|
+
getInitTarget,
|
|
9
|
+
getReadyTarget,
|
|
10
|
+
getScaffoldTarget,
|
|
11
|
+
getTarget,
|
|
12
|
+
listTargets,
|
|
13
|
+
resolvePlacement
|
|
14
|
+
} from "../shared/outfitter-1dd0k853.js";
|
|
15
|
+
import"../shared/outfitter-mdt37hqm.js";
|
|
16
|
+
export {
|
|
17
|
+
resolvePlacement,
|
|
18
|
+
listTargets,
|
|
19
|
+
getTarget,
|
|
20
|
+
getScaffoldTarget,
|
|
21
|
+
getReadyTarget,
|
|
22
|
+
getInitTarget,
|
|
23
|
+
TARGET_REGISTRY,
|
|
24
|
+
TARGET_IDS,
|
|
25
|
+
SCAFFOLD_TARGET_IDS,
|
|
26
|
+
READY_TARGET_IDS,
|
|
27
|
+
INIT_TARGET_IDS
|
|
28
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// @bun
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "outfitter",
|
|
3
3
|
"description": "Outfitter umbrella CLI for scaffolding and project management",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.3",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
@@ -16,22 +16,34 @@
|
|
|
16
16
|
"default": "./dist/index.js"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
|
-
"./
|
|
19
|
+
"./actions": {
|
|
20
20
|
"import": {
|
|
21
|
-
"types": "./dist/
|
|
22
|
-
"default": "./dist/
|
|
21
|
+
"types": "./dist/actions.d.ts",
|
|
22
|
+
"default": "./dist/actions.js"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
-
"./commands/
|
|
25
|
+
"./commands/add": {
|
|
26
26
|
"import": {
|
|
27
|
-
"types": "./dist/commands/
|
|
28
|
-
"default": "./dist/commands/
|
|
27
|
+
"types": "./dist/commands/add.d.ts",
|
|
28
|
+
"default": "./dist/commands/add.js"
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
-
"./commands/
|
|
31
|
+
"./commands/check": {
|
|
32
32
|
"import": {
|
|
33
|
-
"types": "./dist/commands/
|
|
34
|
-
"default": "./dist/commands/
|
|
33
|
+
"types": "./dist/commands/check.d.ts",
|
|
34
|
+
"default": "./dist/commands/check.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"./commands/demo": {
|
|
38
|
+
"import": {
|
|
39
|
+
"types": "./dist/commands/demo.d.ts",
|
|
40
|
+
"default": "./dist/commands/demo.js"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"./commands/docs-module-loader": {
|
|
44
|
+
"import": {
|
|
45
|
+
"types": "./dist/commands/docs-module-loader.d.ts",
|
|
46
|
+
"default": "./dist/commands/docs-module-loader.js"
|
|
35
47
|
}
|
|
36
48
|
},
|
|
37
49
|
"./commands/doctor": {
|
|
@@ -40,46 +52,52 @@
|
|
|
40
52
|
"default": "./dist/commands/doctor.js"
|
|
41
53
|
}
|
|
42
54
|
},
|
|
55
|
+
"./commands/init": {
|
|
56
|
+
"import": {
|
|
57
|
+
"types": "./dist/commands/init.d.ts",
|
|
58
|
+
"default": "./dist/commands/init.js"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
43
61
|
"./commands/migrate-kit": {
|
|
44
62
|
"import": {
|
|
45
63
|
"types": "./dist/commands/migrate-kit.d.ts",
|
|
46
64
|
"default": "./dist/commands/migrate-kit.js"
|
|
47
65
|
}
|
|
48
66
|
},
|
|
49
|
-
"./commands/
|
|
67
|
+
"./commands/repo": {
|
|
50
68
|
"import": {
|
|
51
|
-
"types": "./dist/commands/
|
|
52
|
-
"default": "./dist/commands/
|
|
69
|
+
"types": "./dist/commands/repo.d.ts",
|
|
70
|
+
"default": "./dist/commands/repo.js"
|
|
53
71
|
}
|
|
54
72
|
},
|
|
55
|
-
"./commands/
|
|
73
|
+
"./commands/scaffold": {
|
|
56
74
|
"import": {
|
|
57
|
-
"types": "./dist/commands/
|
|
58
|
-
"default": "./dist/commands/
|
|
75
|
+
"types": "./dist/commands/scaffold.d.ts",
|
|
76
|
+
"default": "./dist/commands/scaffold.js"
|
|
59
77
|
}
|
|
60
78
|
},
|
|
61
|
-
"./commands/
|
|
79
|
+
"./commands/shared-deps": {
|
|
62
80
|
"import": {
|
|
63
|
-
"types": "./dist/commands/
|
|
64
|
-
"default": "./dist/commands/
|
|
81
|
+
"types": "./dist/commands/shared-deps.d.ts",
|
|
82
|
+
"default": "./dist/commands/shared-deps.js"
|
|
65
83
|
}
|
|
66
84
|
},
|
|
67
|
-
"./
|
|
85
|
+
"./commands/update": {
|
|
68
86
|
"import": {
|
|
69
|
-
"types": "./dist/
|
|
70
|
-
"default": "./dist/
|
|
87
|
+
"types": "./dist/commands/update.d.ts",
|
|
88
|
+
"default": "./dist/commands/update.js"
|
|
71
89
|
}
|
|
72
90
|
},
|
|
73
|
-
"./
|
|
91
|
+
"./commands/update-planner": {
|
|
74
92
|
"import": {
|
|
75
|
-
"types": "./dist/
|
|
76
|
-
"default": "./dist/
|
|
93
|
+
"types": "./dist/commands/update-planner.d.ts",
|
|
94
|
+
"default": "./dist/commands/update-planner.js"
|
|
77
95
|
}
|
|
78
96
|
},
|
|
79
|
-
"./
|
|
97
|
+
"./commands/update-workspace": {
|
|
80
98
|
"import": {
|
|
81
|
-
"types": "./dist/
|
|
82
|
-
"default": "./dist/
|
|
99
|
+
"types": "./dist/commands/update-workspace.d.ts",
|
|
100
|
+
"default": "./dist/commands/update-workspace.js"
|
|
83
101
|
}
|
|
84
102
|
},
|
|
85
103
|
"./create": {
|
|
@@ -88,19 +106,115 @@
|
|
|
88
106
|
"default": "./dist/create/index.js"
|
|
89
107
|
}
|
|
90
108
|
},
|
|
109
|
+
"./create/planner": {
|
|
110
|
+
"import": {
|
|
111
|
+
"types": "./dist/create/planner.d.ts",
|
|
112
|
+
"default": "./dist/create/planner.js"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"./create/presets": {
|
|
116
|
+
"import": {
|
|
117
|
+
"types": "./dist/create/presets.d.ts",
|
|
118
|
+
"default": "./dist/create/presets.js"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
91
121
|
"./create/types": {
|
|
92
122
|
"import": {
|
|
93
123
|
"types": "./dist/create/types.d.ts",
|
|
94
124
|
"default": "./dist/create/types.js"
|
|
95
125
|
}
|
|
96
126
|
},
|
|
97
|
-
"./
|
|
127
|
+
"./engine": {
|
|
128
|
+
"import": {
|
|
129
|
+
"types": "./dist/engine/index.d.ts",
|
|
130
|
+
"default": "./dist/engine/index.js"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"./engine/blocks": {
|
|
134
|
+
"import": {
|
|
135
|
+
"types": "./dist/engine/blocks.d.ts",
|
|
136
|
+
"default": "./dist/engine/blocks.js"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"./engine/collector": {
|
|
140
|
+
"import": {
|
|
141
|
+
"types": "./dist/engine/collector.d.ts",
|
|
142
|
+
"default": "./dist/engine/collector.js"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"./engine/config": {
|
|
146
|
+
"import": {
|
|
147
|
+
"types": "./dist/engine/config.d.ts",
|
|
148
|
+
"default": "./dist/engine/config.js"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"./engine/executor": {
|
|
152
|
+
"import": {
|
|
153
|
+
"types": "./dist/engine/executor.d.ts",
|
|
154
|
+
"default": "./dist/engine/executor.js"
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"./engine/names": {
|
|
158
|
+
"import": {
|
|
159
|
+
"types": "./dist/engine/names.d.ts",
|
|
160
|
+
"default": "./dist/engine/names.js"
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"./engine/post-scaffold": {
|
|
98
164
|
"import": {
|
|
99
|
-
"types": "./dist/
|
|
100
|
-
"default": "./dist/
|
|
165
|
+
"types": "./dist/engine/post-scaffold.d.ts",
|
|
166
|
+
"default": "./dist/engine/post-scaffold.js"
|
|
101
167
|
}
|
|
102
168
|
},
|
|
103
|
-
"./
|
|
169
|
+
"./engine/render-plan": {
|
|
170
|
+
"import": {
|
|
171
|
+
"types": "./dist/engine/render-plan.d.ts",
|
|
172
|
+
"default": "./dist/engine/render-plan.js"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"./engine/template": {
|
|
176
|
+
"import": {
|
|
177
|
+
"types": "./dist/engine/template.d.ts",
|
|
178
|
+
"default": "./dist/engine/template.js"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"./engine/types": {
|
|
182
|
+
"import": {
|
|
183
|
+
"types": "./dist/engine/types.d.ts",
|
|
184
|
+
"default": "./dist/engine/types.js"
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"./engine/workspace": {
|
|
188
|
+
"import": {
|
|
189
|
+
"types": "./dist/engine/workspace.d.ts",
|
|
190
|
+
"default": "./dist/engine/workspace.js"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"./manifest": {
|
|
194
|
+
"import": {
|
|
195
|
+
"types": "./dist/manifest.d.ts",
|
|
196
|
+
"default": "./dist/manifest.js"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"./package.json": "./package.json",
|
|
200
|
+
"./targets": {
|
|
201
|
+
"import": {
|
|
202
|
+
"types": "./dist/targets/index.d.ts",
|
|
203
|
+
"default": "./dist/targets/index.js"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"./targets/registry": {
|
|
207
|
+
"import": {
|
|
208
|
+
"types": "./dist/targets/registry.d.ts",
|
|
209
|
+
"default": "./dist/targets/registry.js"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
"./targets/types": {
|
|
213
|
+
"import": {
|
|
214
|
+
"types": "./dist/targets/types.d.ts",
|
|
215
|
+
"default": "./dist/targets/types.js"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
104
218
|
},
|
|
105
219
|
"bin": {
|
|
106
220
|
"outfitter": "./dist/cli.js",
|
|
@@ -115,6 +229,7 @@
|
|
|
115
229
|
"test:watch": "bun test --watch",
|
|
116
230
|
"lint": "biome lint ./src",
|
|
117
231
|
"lint:fix": "biome lint --write ./src",
|
|
232
|
+
"pretypecheck": "bun run --filter @outfitter/logging build && bun run --filter @outfitter/cli build",
|
|
118
233
|
"typecheck": "tsc --noEmit",
|
|
119
234
|
"sync:templates": "bun run ../../scripts/sync-templates.ts",
|
|
120
235
|
"prepack": "bun run sync:templates",
|
|
@@ -122,11 +237,13 @@
|
|
|
122
237
|
},
|
|
123
238
|
"dependencies": {
|
|
124
239
|
"@clack/prompts": "^0.10.0",
|
|
125
|
-
"@outfitter/cli": "0.
|
|
126
|
-
"@outfitter/
|
|
127
|
-
"@outfitter/
|
|
128
|
-
"@outfitter/
|
|
129
|
-
"@outfitter/
|
|
240
|
+
"@outfitter/cli": "0.4.0",
|
|
241
|
+
"@outfitter/tui": "0.2.0",
|
|
242
|
+
"@outfitter/config": "0.3.1",
|
|
243
|
+
"@outfitter/contracts": "0.3.0",
|
|
244
|
+
"@outfitter/docs": "0.1.1",
|
|
245
|
+
"@outfitter/logging": "0.4.0",
|
|
246
|
+
"@outfitter/tooling": "0.2.3",
|
|
130
247
|
"commander": "^14.0.2",
|
|
131
248
|
"typescript": "^5.9.3",
|
|
132
249
|
"zod": "^4.3.5"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
|
|
4
|
+
# Build output
|
|
5
|
+
dist/
|
|
6
|
+
|
|
7
|
+
# IDE
|
|
8
|
+
.idea/
|
|
9
|
+
.vscode/
|
|
10
|
+
*.swp
|
|
11
|
+
*.swo
|
|
12
|
+
|
|
13
|
+
# OS
|
|
14
|
+
.DS_Store
|
|
15
|
+
Thumbs.db
|
|
16
|
+
|
|
17
|
+
# Logs
|
|
18
|
+
*.log
|
|
19
|
+
npm-debug.log*
|
|
20
|
+
|
|
21
|
+
# Environment
|
|
22
|
+
.env
|
|
23
|
+
.env.local
|
|
24
|
+
.env.*.local
|
|
25
|
+
|
|
26
|
+
# Test coverage
|
|
27
|
+
coverage/
|
|
28
|
+
|
|
29
|
+
# Bun
|
|
30
|
+
bun.lockb
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Lefthook configuration
|
|
2
|
+
# https://github.com/evilmartians/lefthook
|
|
3
|
+
|
|
4
|
+
pre-commit:
|
|
5
|
+
parallel: true
|
|
6
|
+
commands:
|
|
7
|
+
format:
|
|
8
|
+
glob: "*.{js,ts,tsx,json,md}"
|
|
9
|
+
run: bunx biome format --no-errors-on-unmatched {staged_files}
|
|
10
|
+
stage_fixed: true
|
|
11
|
+
|
|
12
|
+
lint:
|
|
13
|
+
glob: "*.{js,ts,tsx}"
|
|
14
|
+
run: bunx biome lint --no-errors-on-unmatched {staged_files}
|
|
15
|
+
|
|
16
|
+
typecheck:
|
|
17
|
+
glob: "*.{ts,tsx}"
|
|
18
|
+
run: bun run typecheck
|
|
19
|
+
|
|
20
|
+
pre-push:
|
|
21
|
+
parallel: false
|
|
22
|
+
commands:
|
|
23
|
+
verify:
|
|
24
|
+
# TDD-aware strict verification with RED-phase branch carveout
|
|
25
|
+
# (*-tests, */tests, *_tests).
|
|
26
|
+
run: bunx @outfitter/tooling pre-push
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{packageName}}",
|
|
3
|
+
"version": "{{version}}",
|
|
4
|
+
"description": "{{description}}",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "bun build ./src/index.ts --outdir=dist --format=esm",
|
|
21
|
+
"dev": "bun run --watch src/index.ts",
|
|
22
|
+
"test": "bun test",
|
|
23
|
+
"test:watch": "bun test --watch",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"check": "ultracite check",
|
|
26
|
+
"verify:ci": "bun run typecheck && bun run check && bun run build && bun run test",
|
|
27
|
+
"lint": "biome check .",
|
|
28
|
+
"lint:fix": "biome check . --write",
|
|
29
|
+
"format": "biome format --write .",
|
|
30
|
+
"clean:artifacts": "rm -rf dist .turbo",
|
|
31
|
+
"clean": "rm -rf dist"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@biomejs/biome": "^2.3.12",
|
|
35
|
+
"@outfitter/tooling": "^0.2.1",
|
|
36
|
+
"@types/bun": "^1.3.7",
|
|
37
|
+
"lefthook": "^2.0.16",
|
|
38
|
+
"typescript": "^5.9.3",
|
|
39
|
+
"ultracite": "^7.1.1"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"bun": ">=1.3.7"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [],
|
|
45
|
+
"license": "MIT"
|
|
46
|
+
}
|