@stackbilt/cli 0.9.2 → 0.11.0

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 (103) hide show
  1. package/LICENSE +17 -1
  2. package/README.md +57 -0
  3. package/dist/__tests__/auth-wiring.test.d.ts +2 -0
  4. package/dist/__tests__/auth-wiring.test.d.ts.map +1 -0
  5. package/dist/__tests__/auth-wiring.test.js +158 -0
  6. package/dist/__tests__/auth-wiring.test.js.map +1 -0
  7. package/dist/__tests__/bootstrap.test.d.ts +2 -0
  8. package/dist/__tests__/bootstrap.test.d.ts.map +1 -0
  9. package/dist/__tests__/bootstrap.test.js +134 -0
  10. package/dist/__tests__/bootstrap.test.js.map +1 -0
  11. package/dist/__tests__/credentials.test.d.ts +2 -0
  12. package/dist/__tests__/credentials.test.d.ts.map +1 -0
  13. package/dist/__tests__/credentials.test.js +145 -0
  14. package/dist/__tests__/credentials.test.js.map +1 -0
  15. package/dist/__tests__/integration/precommit-hook.test.js +4 -4
  16. package/dist/__tests__/login.test.d.ts +2 -0
  17. package/dist/__tests__/login.test.d.ts.map +1 -0
  18. package/dist/__tests__/login.test.js +43 -0
  19. package/dist/__tests__/login.test.js.map +1 -0
  20. package/dist/__tests__/named-scaffolds.test.d.ts +2 -0
  21. package/dist/__tests__/named-scaffolds.test.d.ts.map +1 -0
  22. package/dist/__tests__/named-scaffolds.test.js +58 -0
  23. package/dist/__tests__/named-scaffolds.test.js.map +1 -0
  24. package/dist/__tests__/score.test.d.ts +2 -0
  25. package/dist/__tests__/score.test.d.ts.map +1 -0
  26. package/dist/__tests__/score.test.js +234 -0
  27. package/dist/__tests__/score.test.js.map +1 -0
  28. package/dist/commands/adf-named-scaffolds.d.ts +45 -0
  29. package/dist/commands/adf-named-scaffolds.d.ts.map +1 -0
  30. package/dist/commands/adf-named-scaffolds.js +114 -0
  31. package/dist/commands/adf-named-scaffolds.js.map +1 -0
  32. package/dist/commands/adf-tidy.d.ts.map +1 -1
  33. package/dist/commands/adf-tidy.js +6 -3
  34. package/dist/commands/adf-tidy.js.map +1 -1
  35. package/dist/commands/adf.d.ts +1 -0
  36. package/dist/commands/adf.d.ts.map +1 -1
  37. package/dist/commands/adf.js +39 -15
  38. package/dist/commands/adf.js.map +1 -1
  39. package/dist/commands/architect.d.ts.map +1 -1
  40. package/dist/commands/architect.js +7 -3
  41. package/dist/commands/architect.js.map +1 -1
  42. package/dist/commands/audit.js +24 -7
  43. package/dist/commands/audit.js.map +1 -1
  44. package/dist/commands/blast.d.ts +13 -0
  45. package/dist/commands/blast.d.ts.map +1 -0
  46. package/dist/commands/blast.js +226 -0
  47. package/dist/commands/blast.js.map +1 -0
  48. package/dist/commands/bootstrap.d.ts.map +1 -1
  49. package/dist/commands/bootstrap.js +300 -101
  50. package/dist/commands/bootstrap.js.map +1 -1
  51. package/dist/commands/doctor.d.ts.map +1 -1
  52. package/dist/commands/doctor.js +9 -2
  53. package/dist/commands/doctor.js.map +1 -1
  54. package/dist/commands/init.d.ts.map +1 -1
  55. package/dist/commands/init.js +127 -8
  56. package/dist/commands/init.js.map +1 -1
  57. package/dist/commands/login.d.ts +4 -1
  58. package/dist/commands/login.d.ts.map +1 -1
  59. package/dist/commands/login.js +27 -6
  60. package/dist/commands/login.js.map +1 -1
  61. package/dist/commands/run.d.ts.map +1 -1
  62. package/dist/commands/run.js +8 -5
  63. package/dist/commands/run.js.map +1 -1
  64. package/dist/commands/score.d.ts +9 -0
  65. package/dist/commands/score.d.ts.map +1 -0
  66. package/dist/commands/score.js +1273 -0
  67. package/dist/commands/score.js.map +1 -0
  68. package/dist/commands/serve.d.ts.map +1 -1
  69. package/dist/commands/serve.js +44 -0
  70. package/dist/commands/serve.js.map +1 -1
  71. package/dist/commands/setup.js +2 -2
  72. package/dist/commands/setup.js.map +1 -1
  73. package/dist/commands/surface.d.ts +15 -0
  74. package/dist/commands/surface.d.ts.map +1 -0
  75. package/dist/commands/surface.js +112 -0
  76. package/dist/commands/surface.js.map +1 -0
  77. package/dist/commands/validate-ontology.d.ts +14 -0
  78. package/dist/commands/validate-ontology.d.ts.map +1 -0
  79. package/dist/commands/validate-ontology.js +328 -0
  80. package/dist/commands/validate-ontology.js.map +1 -0
  81. package/dist/commands/validate.d.ts.map +1 -1
  82. package/dist/commands/validate.js +44 -0
  83. package/dist/commands/validate.js.map +1 -1
  84. package/dist/config.d.ts +25 -0
  85. package/dist/config.d.ts.map +1 -1
  86. package/dist/config.js +1 -0
  87. package/dist/config.js.map +1 -1
  88. package/dist/credentials.d.ts +22 -1
  89. package/dist/credentials.d.ts.map +1 -1
  90. package/dist/credentials.js +35 -1
  91. package/dist/credentials.js.map +1 -1
  92. package/dist/http-client.d.ts +13 -4
  93. package/dist/http-client.d.ts.map +1 -1
  94. package/dist/http-client.js +3 -2
  95. package/dist/http-client.js.map +1 -1
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +22 -3
  98. package/dist/index.js.map +1 -1
  99. package/dist/types/scaffold-contract-types.d.ts +90 -0
  100. package/dist/types/scaffold-contract-types.d.ts.map +1 -0
  101. package/dist/types/scaffold-contract-types.js +22 -0
  102. package/dist/types/scaffold-contract-types.js.map +1 -0
  103. package/package.json +12 -9
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ /**
3
+ * charter blast <file> [<file> ...]
4
+ *
5
+ * Computes blast radius for the given seed files: which other files
6
+ * transitively import them, up to a configurable depth.
7
+ *
8
+ * Pure heuristic — no LLM, no runtime type checking. Uses regex-based
9
+ * import extraction (see @stackbilt/blast).
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.blastCommand = blastCommand;
46
+ exports.detectTsconfigAliases = detectTsconfigAliases;
47
+ const path = __importStar(require("path"));
48
+ const fs = __importStar(require("fs"));
49
+ const index_1 = require("../index");
50
+ const flags_1 = require("../flags");
51
+ const blast_1 = require("@stackbilt/blast");
52
+ const zod_1 = require("zod");
53
+ // Flags that consume a value (so the next positional should not be treated as a seed file).
54
+ // Includes local flags (--root, --depth) and global CLI flags (--format, --config).
55
+ const VALUE_FLAGS = new Set(['--root', '--depth', '--format', '--config']);
56
+ async function blastCommand(options, args) {
57
+ const seedArgs = [];
58
+ for (let i = 0; i < args.length; i++) {
59
+ const a = args[i];
60
+ if (a.startsWith('--')) {
61
+ if (VALUE_FLAGS.has(a))
62
+ i++; // skip the flag's value
63
+ continue;
64
+ }
65
+ seedArgs.push(a);
66
+ }
67
+ if (seedArgs.length === 0) {
68
+ throw new index_1.CLIError('Usage: charter blast <file> [<file> ...] [--root <dir>] [--depth <n>]\n' +
69
+ 'Example: charter blast src/kernel/dispatch.ts --depth 4');
70
+ }
71
+ const rootArg = (0, flags_1.getFlag)(args, '--root') || '.';
72
+ const depthStr = (0, flags_1.getFlag)(args, '--depth');
73
+ const root = path.resolve(rootArg);
74
+ const aliases = detectTsconfigAliases(root);
75
+ // Route argv through the schema. BlastInputSchema owns the depth default
76
+ // and the "positive integer" rule.
77
+ let input;
78
+ try {
79
+ input = blast_1.BlastInputSchema.parse({
80
+ seeds: seedArgs,
81
+ root: rootArg,
82
+ maxDepth: depthStr !== undefined ? Number(depthStr) : undefined,
83
+ aliases,
84
+ });
85
+ }
86
+ catch (err) {
87
+ if (err instanceof zod_1.z.ZodError) {
88
+ const msg = err.issues
89
+ .map((i) => `${i.path.join('.') || '<root>'}: ${i.message}`)
90
+ .join('; ');
91
+ throw new index_1.CLIError(`Invalid arguments: ${msg}`);
92
+ }
93
+ throw err;
94
+ }
95
+ // Pre-flight existence check — matches prior CLI error text.
96
+ for (const seed of input.seeds) {
97
+ if (!fs.existsSync(path.resolve(seed))) {
98
+ throw new index_1.CLIError(`Seed file not found: ${seed}`);
99
+ }
100
+ }
101
+ const result = (0, blast_1.analyze)(input);
102
+ if (options.format === 'json') {
103
+ console.log(JSON.stringify({
104
+ root: path.relative(process.cwd(), result.root),
105
+ fileCount: result.fileCount,
106
+ seeds: result.seeds,
107
+ affected: result.affected,
108
+ maxDepth: result.maxDepth,
109
+ hotFiles: result.hotFiles,
110
+ summary: result.summary,
111
+ }, null, 2));
112
+ return index_1.EXIT_CODE.SUCCESS;
113
+ }
114
+ console.log('');
115
+ console.log(` Blast radius analysis`);
116
+ console.log(` root: ${path.relative(process.cwd(), result.root) || '.'}`);
117
+ console.log(` scanned: ${result.fileCount} files`);
118
+ console.log(` seeds: ${result.seeds.length}`);
119
+ for (const seed of result.seeds) {
120
+ console.log(` - ${seed}`);
121
+ }
122
+ console.log(` max depth: ${input.maxDepth} (reached: ${result.maxDepth})`);
123
+ console.log(` affected: ${result.summary.totalAffected} file(s)`);
124
+ console.log('');
125
+ if (result.affected.length > 0) {
126
+ console.log(' Affected files:');
127
+ const limit = 50;
128
+ for (const file of result.affected.slice(0, limit)) {
129
+ console.log(` - ${file}`);
130
+ }
131
+ if (result.affected.length > limit) {
132
+ console.log(` ... (${result.affected.length - limit} more)`);
133
+ }
134
+ console.log('');
135
+ }
136
+ if (result.hotFiles.length > 0) {
137
+ console.log(' Hot files (most imported):');
138
+ for (const hot of result.hotFiles.slice(0, 10)) {
139
+ console.log(` ${String(hot.importers).padStart(4)}x ${hot.file}`);
140
+ }
141
+ console.log('');
142
+ }
143
+ // Governance signal: high blast radius = cross-cutting
144
+ if (result.summary.totalAffected >= 20) {
145
+ console.log(` [warn] Blast radius is large (${result.summary.totalAffected} files). ` +
146
+ `Consider classifying this change as CROSS_CUTTING.`);
147
+ console.log('');
148
+ }
149
+ return index_1.EXIT_CODE.SUCCESS;
150
+ }
151
+ function readTsconfig(tsconfigPath) {
152
+ if (!fs.existsSync(tsconfigPath))
153
+ return null;
154
+ try {
155
+ const raw = fs.readFileSync(tsconfigPath, 'utf8');
156
+ // Strip JSON comments (tsconfig allows them)
157
+ const cleaned = raw.replace(/\/\/[^\n]*/g, '').replace(/\/\*[\s\S]*?\*\//g, '');
158
+ return JSON.parse(cleaned);
159
+ }
160
+ catch {
161
+ return null;
162
+ }
163
+ }
164
+ /**
165
+ * Walk the tsconfig `extends` chain and merge compilerOptions.paths from
166
+ * parents into the child. Shallower (closer to the child) wins on conflicts.
167
+ */
168
+ function loadTsconfigChain(tsconfigPath, seen = new Set()) {
169
+ const abs = path.resolve(tsconfigPath);
170
+ if (seen.has(abs))
171
+ return {};
172
+ seen.add(abs);
173
+ const parsed = readTsconfig(abs);
174
+ if (!parsed)
175
+ return {};
176
+ const merged = { compilerOptions: { baseUrl: '.', paths: {} } };
177
+ // Resolve extends first, then overlay current file's options on top
178
+ const extendsRaw = parsed.extends;
179
+ const extendsList = Array.isArray(extendsRaw) ? extendsRaw : extendsRaw ? [extendsRaw] : [];
180
+ for (const ext of extendsList) {
181
+ let extPath = ext;
182
+ if (!extPath.endsWith('.json'))
183
+ extPath += '.json';
184
+ if (!path.isAbsolute(extPath))
185
+ extPath = path.resolve(path.dirname(abs), extPath);
186
+ const parent = loadTsconfigChain(extPath, seen);
187
+ if (parent.compilerOptions?.paths) {
188
+ Object.assign(merged.compilerOptions.paths, parent.compilerOptions.paths);
189
+ }
190
+ if (parent.compilerOptions?.baseUrl) {
191
+ // baseUrl is relative to the tsconfig that declared it
192
+ merged.compilerOptions.baseUrl = path.resolve(path.dirname(extPath), parent.compilerOptions.baseUrl);
193
+ }
194
+ }
195
+ if (parsed.compilerOptions?.paths) {
196
+ Object.assign(merged.compilerOptions.paths, parsed.compilerOptions.paths);
197
+ }
198
+ if (parsed.compilerOptions?.baseUrl) {
199
+ merged.compilerOptions.baseUrl = path.resolve(path.dirname(abs), parsed.compilerOptions.baseUrl);
200
+ }
201
+ return merged;
202
+ }
203
+ function detectTsconfigAliases(root) {
204
+ const tsconfigPath = path.join(root, 'tsconfig.json');
205
+ const merged = loadTsconfigChain(tsconfigPath);
206
+ const paths = merged.compilerOptions?.paths;
207
+ const baseUrl = merged.compilerOptions?.baseUrl ?? root;
208
+ if (!paths || Object.keys(paths).length === 0)
209
+ return {};
210
+ const aliases = {};
211
+ for (const [key, targets] of Object.entries(paths)) {
212
+ if (!targets || targets.length === 0)
213
+ continue;
214
+ // Normalize "@/*" -> "@/", "src/*" -> "src/"
215
+ const aliasKey = key.replace(/\*$/, '');
216
+ const targetPath = targets[0].replace(/\*$/, '');
217
+ // baseUrl is already absolute after loadTsconfigChain; produce an absolute alias target
218
+ const absoluteTarget = path.isAbsolute(targetPath)
219
+ ? targetPath
220
+ : path.resolve(baseUrl, targetPath);
221
+ // Express target as relative to root so buildGraph's resolveSpecifier can join it
222
+ aliases[aliasKey] = path.relative(root, absoluteTarget) || '.';
223
+ }
224
+ return aliases;
225
+ }
226
+ //# sourceMappingURL=blast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blast.js","sourceRoot":"","sources":["../../src/commands/blast.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA+D3C,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8L3F"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA+D3C,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyS3F"}