bonescript-compiler 0.5.8 → 0.6.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 (51) hide show
  1. package/dist/ast.d.ts +2 -0
  2. package/dist/cli.js +52 -8
  3. package/dist/cli.js.map +1 -1
  4. package/dist/emit_admin.d.ts +5 -0
  5. package/dist/emit_admin.js +340 -35
  6. package/dist/emit_admin.js.map +1 -1
  7. package/dist/emit_audit.js +38 -4
  8. package/dist/emit_audit.js.map +1 -1
  9. package/dist/emit_capability.js +14 -0
  10. package/dist/emit_capability.js.map +1 -1
  11. package/dist/emit_full.js +10 -2
  12. package/dist/emit_full.js.map +1 -1
  13. package/dist/emit_maintenance.js +35 -3
  14. package/dist/emit_maintenance.js.map +1 -1
  15. package/dist/emit_runtime.d.ts +18 -1
  16. package/dist/emit_runtime.js +212 -32
  17. package/dist/emit_runtime.js.map +1 -1
  18. package/dist/emit_websocket.js +22 -2
  19. package/dist/emit_websocket.js.map +1 -1
  20. package/dist/emit_zod.js +12 -1
  21. package/dist/emit_zod.js.map +1 -1
  22. package/dist/formatter.d.ts +1 -0
  23. package/dist/formatter.js +10 -2
  24. package/dist/formatter.js.map +1 -1
  25. package/dist/ir.d.ts +2 -0
  26. package/dist/lexer.d.ts +1 -0
  27. package/dist/lexer.js +4 -0
  28. package/dist/lexer.js.map +1 -1
  29. package/dist/lowering.js +2 -0
  30. package/dist/lowering.js.map +1 -1
  31. package/dist/parse_decls.js +36 -1
  32. package/dist/parse_decls.js.map +1 -1
  33. package/dist/typechecker.js +9 -0
  34. package/dist/typechecker.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/ast.ts +2 -0
  37. package/src/cli.ts +58 -10
  38. package/src/emit_admin.ts +342 -35
  39. package/src/emit_audit.ts +40 -4
  40. package/src/emit_capability.ts +13 -0
  41. package/src/emit_full.ts +9 -2
  42. package/src/emit_maintenance.ts +35 -3
  43. package/src/emit_runtime.ts +224 -32
  44. package/src/emit_websocket.ts +22 -2
  45. package/src/emit_zod.ts +11 -1
  46. package/src/formatter.ts +9 -2
  47. package/src/ir.ts +2 -0
  48. package/src/lexer.ts +2 -0
  49. package/src/lowering.ts +5 -3
  50. package/src/parse_decls.ts +31 -1
  51. package/src/typechecker.ts +10 -0
@@ -1 +1 @@
1
- {"version":3,"file":"emit_capability.js","sourceRoot":"","sources":["../src/emit_capability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit_capability.js","sourceRoot":"","sources":["../src/emit_capability.ts"],"names":[],"mappings":"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"}
package/dist/emit_full.js CHANGED
@@ -138,15 +138,23 @@ class FullEmitter {
138
138
  }
139
139
  // 5. Source: main entry point
140
140
  files.push({ path: "src/index.ts", content: (0, emit_runtime_1.emitIndex)(system), language: "typescript", source_module: "root" });
141
- // 6. SQL migrations — run schema emitter ONCE, then match by model name
141
+ // 6. SQL migrations — run schema emitter ONCE, then match by model name.
142
+ // Multiple modules (e.g. an api_service AND its backing data_store) can
143
+ // reference the same model. We dedupe by output path so each table only
144
+ // appears once in migrations/ and once in the migrate.ts blocks list.
142
145
  const schemas = [];
146
+ const seenPaths = new Set();
143
147
  const allSchemaFiles = this.schemaEmitter.emit(system);
144
148
  for (const mod of system.modules) {
145
149
  if (mod.kind === "data_store" || mod.kind === "api_service") {
146
150
  for (const model of mod.models) {
147
151
  const schemaFile = allSchemaFiles.find(f => f.path.includes(toSnakeCase(model.name)) && f.language === "sql");
148
152
  if (schemaFile) {
149
- files.push({ ...schemaFile, path: `migrations/${schemaFile.path.replace("schema/", "")}` });
153
+ const targetPath = `migrations/${schemaFile.path.replace("schema/", "")}`;
154
+ if (seenPaths.has(targetPath))
155
+ continue;
156
+ seenPaths.add(targetPath);
157
+ files.push({ ...schemaFile, path: targetPath });
150
158
  schemas.push(schemaFile.content);
151
159
  }
152
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emit_full.js","sourceRoot":"","sources":["../src/emit_full.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit_full.js","sourceRoot":"","sources":["../src/emit_full.ts"],"names":[],"mappings":"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"}
@@ -211,9 +211,29 @@ function emitHealthChecks(system) {
211
211
  lines.push(` res.json({ status: "ok", uptime: process.uptime() });`);
212
212
  lines.push(`});`);
213
213
  lines.push(``);
214
- // Metrics endpoint
215
- lines.push(`// Prometheus-style metrics`);
216
- lines.push(`healthRouter.get("/metrics", (_req: Request, res: Response) => {`);
214
+ // Metrics endpoint — restricted to internal callers.
215
+ // Accepted: shared bearer in METRICS_TOKEN, or loopback / RFC1918 source IPs.
216
+ // External scrapers must inject the bearer; otherwise 403.
217
+ lines.push(`// Prometheus-style metrics — restricted to internal callers`);
218
+ lines.push(`function isInternalMetricsRequest(req: Request): boolean {`);
219
+ lines.push(` const expected = process.env.METRICS_TOKEN || "";`);
220
+ lines.push(` if (expected) {`);
221
+ lines.push(` const header = req.headers.authorization || "";`);
222
+ lines.push(` if (header.startsWith("Bearer ") && header.slice(7) === expected) return true;`);
223
+ lines.push(` }`);
224
+ lines.push(` const ip = (req.ip || "").replace(/^::ffff:/, "");`);
225
+ lines.push(` if (ip === "127.0.0.1" || ip === "::1") return true;`);
226
+ lines.push(` if (ip.startsWith("10.") || ip.startsWith("192.168.")) return true;`);
227
+ lines.push(` // RFC1918 172.16.0.0/12`);
228
+ lines.push(` const m = ip.match(/^172\\.(\\d{1,3})\\./);`);
229
+ lines.push(` if (m && +m[1] >= 16 && +m[1] <= 31) return true;`);
230
+ lines.push(` return false;`);
231
+ lines.push(`}`);
232
+ lines.push(`healthRouter.get("/metrics", (req: Request, res: Response) => {`);
233
+ lines.push(` if (!isInternalMetricsRequest(req)) {`);
234
+ lines.push(` res.status(403).json({ error: { code: "FORBIDDEN", message: "Metrics restricted to internal callers" } });`);
235
+ lines.push(` return;`);
236
+ lines.push(` }`);
217
237
  lines.push(` res.type("text/plain").send(dumpMetrics());`);
218
238
  lines.push(`});`);
219
239
  lines.push(``);
@@ -337,6 +357,7 @@ interface Field {
337
357
  name: string;
338
358
  type: string;
339
359
  nullable: boolean;
360
+ renamed_from?: string | null;
340
361
  }
341
362
 
342
363
  interface Model {
@@ -376,8 +397,18 @@ export function diffModels(oldModels: Model[], newModels: Model[]): string[] {
376
397
  const oldFields = new Map(oldModel.fields.map(f => [f.name, f]));
377
398
  const newFields = new Map(newModel.fields.map(f => [f.name, f]));
378
399
 
400
+ // Renames first — avoid double-counting as add+drop.
401
+ const renamedOld = new Set<string>();
402
+ for (const [fname, field] of newFields) {
403
+ if (field.renamed_from && oldFields.has(field.renamed_from) && !oldFields.has(fname)) {
404
+ statements.push(\`ALTER TABLE \${tableName} RENAME COLUMN \${field.renamed_from} TO \${fname};\`);
405
+ renamedOld.add(field.renamed_from);
406
+ }
407
+ }
408
+
379
409
  // New columns (backward-compatible)
380
410
  for (const [fname, field] of newFields) {
411
+ if (field.renamed_from && renamedOld.has(field.renamed_from)) continue;
381
412
  if (!oldFields.has(fname)) {
382
413
  const sqlType = mapType(field.type);
383
414
  const nullability = field.nullable ? "" : " NOT NULL DEFAULT (CASE WHEN false THEN NULL ELSE NULL END)";
@@ -387,6 +418,7 @@ export function diffModels(oldModels: Model[], newModels: Model[]): string[] {
387
418
 
388
419
  // Removed columns (NOT auto-dropped — backward compat)
389
420
  for (const [fname] of oldFields) {
421
+ if (renamedOld.has(fname)) continue;
390
422
  if (!newFields.has(fname)) {
391
423
  statements.push(\`-- WARNING: Column \${tableName}.\${fname} removed from schema. Run manually: ALTER TABLE \${tableName} DROP COLUMN \${fname};\`);
392
424
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emit_maintenance.js","sourceRoot":"","sources":["../src/emit_maintenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit_maintenance.js","sourceRoot":"","sources":["../src/emit_maintenance.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,21 @@ export declare function emitAuthMiddleware(system: IR.IRSystem): string;
10
10
  export declare function emitEntityRouter(mod: IR.IRModule, system: IR.IRSystem): string;
11
11
  export declare function emitStateMachineRuntime(sm: IR.IRStateMachine): string;
12
12
  export declare function emitIndex(system: IR.IRSystem): string;
13
- export declare function emitMigration(system: IR.IRSystem, schemas: string[]): string;
13
+ /**
14
+ * A migration block paired with a stable identifier and content checksum.
15
+ * - `id` is a human-readable, ordered name (e.g. "0001_create_sellers").
16
+ * - `checksum` is a sha256 of the SQL body — used by the ledger to detect
17
+ * tampering with already-applied migrations.
18
+ */
19
+ export interface MigrationBlock {
20
+ id: string;
21
+ checksum: string;
22
+ sql: string;
23
+ }
24
+ /**
25
+ * Build deterministic migration blocks from raw schema strings.
26
+ * The order of `schemas` is preserved; each block gets a zero-padded prefix
27
+ * so lexicographic sort matches insertion order.
28
+ */
29
+ export declare function buildMigrationBlocks(schemas: string[]): MigrationBlock[];
30
+ export declare function emitMigration(_system: IR.IRSystem, schemas: string[]): string;
@@ -4,7 +4,8 @@
4
4
  * Generates runnable service code from IR.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.emitMigration = exports.emitIndex = exports.emitStateMachineRuntime = exports.emitEntityRouter = exports.emitAuthMiddleware = exports.emitDbClient = exports.emitTsConfig = exports.emitPackageJson = void 0;
7
+ exports.emitMigration = exports.buildMigrationBlocks = exports.emitIndex = exports.emitStateMachineRuntime = exports.emitEntityRouter = exports.emitAuthMiddleware = exports.emitDbClient = exports.emitTsConfig = exports.emitPackageJson = void 0;
8
+ const crypto_1 = require("crypto");
8
9
  const emit_capability_1 = require("./emit_capability");
9
10
  function toSnakeCase(s) {
10
11
  return s.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
@@ -44,28 +45,31 @@ function emitPackageJson(system) {
44
45
  migrate: "ts-node src/migrate.ts",
45
46
  },
46
47
  dependencies: {
47
- express: "4.18.2",
48
- pg: "8.11.3",
49
- ioredis: "5.3.2",
50
- ws: "8.16.0",
51
- uuid: "9.0.0",
48
+ // Pinned to specific patch versions. Update consciously — a bump should
49
+ // be paired with a quick read of the release notes / advisories.
50
+ express: "4.22.2", // 4.22.x patches qs / path-to-regexp DoS
51
+ pg: "8.13.1",
52
+ ioredis: "5.4.1",
53
+ ws: "8.18.0", // 8.17.1 patched CVE-2024-37890 (DoS)
54
+ uuid: "10.0.0",
52
55
  cors: "2.8.5",
53
- helmet: "7.1.0",
54
- "express-rate-limit": "7.1.5",
56
+ helmet: "8.0.0",
57
+ "express-rate-limit": "7.5.0",
55
58
  jsonwebtoken: "9.0.2",
56
- dotenv: "16.3.1",
59
+ dotenv: "16.4.7",
57
60
  "node-cron": "3.0.3",
61
+ zod: "3.23.8",
58
62
  },
59
63
  devDependencies: {
60
64
  "@types/express": "4.17.21",
61
- "@types/node": "18.19.0",
62
- "@types/pg": "8.10.9",
63
- "@types/ws": "8.5.10",
65
+ "@types/node": "20.14.0",
66
+ "@types/pg": "8.11.10",
67
+ "@types/ws": "8.5.13",
64
68
  "@types/cors": "2.8.17",
65
- "@types/jsonwebtoken": "9.0.5",
66
- "@types/uuid": "9.0.7",
69
+ "@types/jsonwebtoken": "9.0.7",
70
+ "@types/uuid": "10.0.0",
67
71
  "@types/node-cron": "3.0.11",
68
- typescript: "5.3.3",
72
+ typescript: "5.6.3",
69
73
  "ts-node": "10.9.2",
70
74
  },
71
75
  };
@@ -139,6 +143,7 @@ function emitAuthMiddleware(system) {
139
143
  return `// Generated by BoneScript compiler. DO NOT EDIT.
140
144
  import { Request, Response, NextFunction } from "express";
141
145
  import jwt from "jsonwebtoken";
146
+ import { v4 as uuid } from "uuid";
142
147
 
143
148
  // JWT_SECRET must be set in production. The server will refuse to start without it
144
149
  // when NODE_ENV is "production" to prevent accidental use of a weak fallback.
@@ -164,23 +169,45 @@ export interface AuthContext {
164
169
  trace_id: string;
165
170
  }
166
171
 
172
+ // Trace IDs are server-generated. We accept a client-supplied X-Trace-Id only
173
+ // if it parses as a UUID, so callers can correlate their own logs without
174
+ // being able to forge correlation IDs in audit / event records.
175
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
176
+ function resolveTraceId(req: Request): string {
177
+ const supplied = req.headers["x-trace-id"];
178
+ if (typeof supplied === "string" && UUID_RE.test(supplied)) return supplied;
179
+ return uuid();
180
+ }
181
+
167
182
  export function authMiddleware(req: Request, res: Response, next: NextFunction): void {
168
183
  const header = req.headers.authorization;
184
+ const traceId = resolveTraceId(req);
169
185
  if (!header || !header.startsWith("Bearer ")) {
170
- (req as any).auth = { authenticated: false, actor_id: null, trace_id: req.headers["x-trace-id"] as string || "" };
186
+ (req as any).auth = { authenticated: false, actor_id: null, trace_id: traceId };
171
187
  next();
172
188
  return;
173
189
  }
174
190
  try {
175
191
  const token = header.slice(7);
176
- const decoded = jwt.verify(token, JWT_SECRET) as { sub: string };
192
+ // Pin algorithms to HS256 and require an expiration. Without pinning,
193
+ // jsonwebtoken would accept any algorithm including RS/HS confusion attacks.
194
+ // maxAge is a safety net even if exp is set far in the future.
195
+ const decoded = jwt.verify(token, JWT_SECRET, {
196
+ algorithms: ["HS256"],
197
+ maxAge: process.env.JWT_MAX_AGE || "1h",
198
+ }) as { sub?: unknown };
199
+ if (typeof decoded.sub !== "string" || decoded.sub.length === 0) {
200
+ (req as any).auth = { authenticated: false, actor_id: null, trace_id: traceId };
201
+ next();
202
+ return;
203
+ }
177
204
  (req as any).auth = {
178
205
  authenticated: true,
179
206
  actor_id: decoded.sub,
180
- trace_id: req.headers["x-trace-id"] as string || "",
207
+ trace_id: traceId,
181
208
  };
182
209
  } catch {
183
- (req as any).auth = { authenticated: false, actor_id: null, trace_id: req.headers["x-trace-id"] as string || "" };
210
+ (req as any).auth = { authenticated: false, actor_id: null, trace_id: traceId };
184
211
  }
185
212
  next();
186
213
  }
@@ -218,6 +245,9 @@ function emitEntityRouter(mod, system) {
218
245
  }
219
246
  lines.push(`import { logger } from "../logger";`);
220
247
  lines.push(`import { counter } from "../metrics";`);
248
+ // Zod schemas for input validation. The Create / Update derivatives are
249
+ // generated alongside the full model schema in src/schemas.ts.
250
+ lines.push(`import { ${toPascalCase(entityModel.name)}CreateSchema, ${toPascalCase(entityModel.name)}UpdateSchema } from "../schemas";`);
221
251
  lines.push(`import * as __algorithms from "../algorithms";`);
222
252
  lines.push(`const { shortestPath, topologicalSort, binarySearch, bipartiteMatching, roundRobin, weightedAverage, percentile, rankBy, consistentHash } = __algorithms as any;`);
223
253
  lines.push(``);
@@ -252,9 +282,15 @@ function emitEntityRouter(mod, system) {
252
282
  lines.push(`// CREATE`);
253
283
  const __crudMiddlewares = modRateLimit > 0 ? "__routeRateLimit, requireAuth" : "requireAuth";
254
284
  lines.push(`${toCamelCase(routeBase)}Router.post("/", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
285
+ lines.push(` // Validate the request body against the generated Zod schema.`);
286
+ lines.push(` const __parsed = ${toPascalCase(entityModel.name)}CreateSchema.safeParse(req.body);`);
287
+ lines.push(` if (!__parsed.success) {`);
288
+ lines.push(` return res.status(400).json({ error: { code: "VALIDATION_FAILED", message: "Invalid request body", issues: __parsed.error.flatten() } });`);
289
+ lines.push(` }`);
290
+ lines.push(` const __body = __parsed.data;`);
255
291
  lines.push(` try {`);
256
292
  lines.push(` const id = uuid();`);
257
- lines.push(` const { ${insertFields.map(f => f.name).join(", ")} } = req.body;`);
293
+ lines.push(` const { ${insertFields.map(f => f.name).join(", ")} } = __body as any;`);
258
294
  if (mod.state_machines.length > 0) {
259
295
  lines.push(` const state = ${mod.state_machines[0].entity.toUpperCase()}_INITIAL;`);
260
296
  }
@@ -315,10 +351,35 @@ function emitEntityRouter(mod, system) {
315
351
  lines.push(` }`);
316
352
  lines.push(`});`);
317
353
  lines.push(``);
318
- // UPDATE — with state machine enforcement
354
+ // UPDATE — with state machine enforcement and column allow-list
355
+ // The allow-list is derived from the IR model so generated SQL never
356
+ // interpolates user-supplied keys as identifiers.
357
+ const updatableColumns = entityModel.fields
358
+ .filter(f => !["id", "created_at", "updated_at"].includes(f.name))
359
+ .map(f => f.name);
360
+ // Entities with a state machine carry a `state` column not present in the
361
+ // IR field list. Include it so PUT can drive transitions.
362
+ if (mod.state_machines.length > 0 && !updatableColumns.includes("state")) {
363
+ updatableColumns.push("state");
364
+ }
319
365
  lines.push(`// UPDATE`);
366
+ lines.push(`const __${toCamelCase(routeBase)}Updatable = new Set<string>(${JSON.stringify(updatableColumns)});`);
320
367
  lines.push(`${toCamelCase(routeBase)}Router.put("/:id", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
321
- lines.push(` const fields = { ...req.body };`);
368
+ lines.push(` // 1. Validate body shape and types via Zod (UpdateSchema is partial).`);
369
+ lines.push(` const __parsed = ${toPascalCase(entityModel.name)}UpdateSchema.safeParse(req.body);`);
370
+ lines.push(` if (!__parsed.success) {`);
371
+ lines.push(` return res.status(400).json({ error: { code: "VALIDATION_FAILED", message: "Invalid request body", issues: __parsed.error.flatten() } });`);
372
+ lines.push(` }`);
373
+ lines.push(` // 2. Reject unknown columns (defense in depth — Zod would already strip them).`);
374
+ lines.push(` const __unknown = Object.keys(req.body || {}).filter(k => !__${toCamelCase(routeBase)}Updatable.has(k));`);
375
+ lines.push(` if (__unknown.length > 0) {`);
376
+ lines.push(` return res.status(400).json({ error: { code: "UNKNOWN_FIELDS", message: \`Unknown fields: \${__unknown.join(", ")}\`, fields: __unknown } });`);
377
+ lines.push(` }`);
378
+ lines.push(` // 3. Use the Zod-parsed object as the update set.`);
379
+ lines.push(` const fields: Record<string, unknown> = __parsed.data as Record<string, unknown>;`);
380
+ lines.push(` if (Object.keys(fields).length === 0) {`);
381
+ lines.push(` return res.status(400).json({ error: { code: "NO_FIELDS", message: "No updatable fields supplied" } });`);
382
+ lines.push(` }`);
322
383
  if (mod.state_machines.length > 0) {
323
384
  const sm = mod.state_machines[0];
324
385
  lines.push(` // State machine enforcement`);
@@ -331,8 +392,9 @@ function emitEntityRouter(mod, system) {
331
392
  lines.push(` if (!tr.ok) return res.status(422).json({ error: { code: "INVALID_TRANSITION", message: \`Cannot transition from \${current.state} to \${fields.state}\` } });`);
332
393
  lines.push(` }`);
333
394
  }
334
- lines.push(` const sets = Object.keys(fields).map((k, i) => \`\${k} = $\${i + 2}\`).join(", ");`);
335
- lines.push(` const values = Object.values(fields);`);
395
+ lines.push(` const keys = Object.keys(fields);`);
396
+ lines.push(` const sets = keys.map((k, i) => \`\${k} = $\${i + 2}\`).join(", ");`);
397
+ lines.push(` const values = keys.map(k => fields[k]);`);
336
398
  lines.push(` const sql = \`UPDATE ${tableName} SET \${sets}, updated_at = NOW() WHERE id = $1 RETURNING *\`;`);
337
399
  lines.push(` const rows = await query(sql, [req.params.id, ...values]);`);
338
400
  lines.push(` if (rows.length === 0) return res.status(404).json({ error: { code: "NOT_FOUND", message: "Not found" } });`);
@@ -567,6 +629,14 @@ function emitIndex(system) {
567
629
  lines.push(`const httpServer = createServer(app);`);
568
630
  lines.push(`const PORT = parseInt(process.env.PORT || "3000");`);
569
631
  lines.push(``);
632
+ lines.push(`// Trust the immediate hop's X-Forwarded-* headers when running behind a`);
633
+ lines.push(`// load balancer / k8s ingress. Override with TRUST_PROXY=<n> for multi-hop`);
634
+ lines.push(`// (e.g. "2" for ingress + service mesh). Set to "false" to disable.`);
635
+ lines.push(`const __trust = process.env.TRUST_PROXY ?? "loopback, linklocal, uniquelocal";`);
636
+ lines.push(`if (__trust === "false") app.set("trust proxy", false);`);
637
+ lines.push(`else if (/^\\d+$/.test(__trust)) app.set("trust proxy", Number(__trust));`);
638
+ lines.push(`else app.set("trust proxy", __trust);`);
639
+ lines.push(``);
570
640
  lines.push(`// Middleware`);
571
641
  lines.push(`app.use(helmet());`);
572
642
  lines.push(`// CORS: restrict to ALLOWED_ORIGINS env var (comma-separated). Defaults to same-origin only.`);
@@ -662,22 +732,132 @@ function emitIndex(system) {
662
732
  return lines.join("\n");
663
733
  }
664
734
  exports.emitIndex = emitIndex;
665
- // ─── Migration Script ─────────────────────────────────────────────────────────
666
- function emitMigration(system, schemas) {
735
+ /**
736
+ * Build deterministic migration blocks from raw schema strings.
737
+ * The order of `schemas` is preserved; each block gets a zero-padded prefix
738
+ * so lexicographic sort matches insertion order.
739
+ */
740
+ function buildMigrationBlocks(schemas) {
741
+ const blocks = [];
742
+ schemas.forEach((sql, i) => {
743
+ const checksum = (0, crypto_1.createHash)("sha256").update(sql).digest("hex");
744
+ // Try to extract the module name from the schema header for a friendlier id.
745
+ const moduleMatch = sql.match(/^--\s*Module:\s*(\S+)/m);
746
+ const tableMatch = sql.match(/CREATE TABLE IF NOT EXISTS\s+(\w+)/i);
747
+ const slug = (tableMatch?.[1] || moduleMatch?.[1] || `block_${i}`)
748
+ .replace(/[^a-zA-Z0-9_]/g, "_")
749
+ .toLowerCase();
750
+ const id = `${String(i).padStart(4, "0")}_${slug}`;
751
+ blocks.push({ id, checksum, sql });
752
+ });
753
+ return blocks;
754
+ }
755
+ exports.buildMigrationBlocks = buildMigrationBlocks;
756
+ function emitMigration(_system, schemas) {
757
+ const blocks = buildMigrationBlocks(schemas);
667
758
  const lines = [];
668
759
  lines.push(`// Generated by BoneScript compiler. DO NOT EDIT.`);
760
+ lines.push(`// Migration runner with a schema_migrations ledger.`);
761
+ lines.push(`// Each block is hashed at compile time; runs are skipped if the same`);
762
+ lines.push(`// (id, checksum) pair has already been recorded as applied.`);
669
763
  lines.push(`require("dotenv").config();`);
764
+ lines.push(`import * as fs from "fs";`);
765
+ lines.push(`import * as path from "path";`);
766
+ lines.push(`import { createHash } from "crypto";`);
670
767
  lines.push(`import { pool } from "./db";`);
671
768
  lines.push(``);
769
+ lines.push(`interface Block { id: string; checksum: string; sql: string; }`);
770
+ lines.push(``);
771
+ lines.push(`const GENERATED_BLOCKS: Block[] = [`);
772
+ for (const b of blocks) {
773
+ const escaped = b.sql.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
774
+ lines.push(` {`);
775
+ lines.push(` id: ${JSON.stringify(b.id)},`);
776
+ lines.push(` checksum: ${JSON.stringify(b.checksum)},`);
777
+ lines.push(` sql: \`${escaped}\`,`);
778
+ lines.push(` },`);
779
+ }
780
+ lines.push(`];`);
781
+ lines.push(``);
782
+ lines.push(`/**`);
783
+ lines.push(` * Pick up any hand-authored migrations dropped into migrations/_manual/.`);
784
+ lines.push(` * Files are picked up in lexicographic order; \`bonec diff --write\` writes`);
785
+ lines.push(` * them with a numeric prefix so insertion order is stable.`);
786
+ lines.push(` */`);
787
+ lines.push(`function loadManualBlocks(): Block[] {`);
788
+ lines.push(` const dir = path.resolve(__dirname, "..", "migrations", "_manual");`);
789
+ lines.push(` if (!fs.existsSync(dir)) return [];`);
790
+ lines.push(` return fs.readdirSync(dir)`);
791
+ lines.push(` .filter(f => f.endsWith(".sql"))`);
792
+ lines.push(` .sort()`);
793
+ lines.push(` .map(f => {`);
794
+ lines.push(` const sql = fs.readFileSync(path.join(dir, f), "utf-8");`);
795
+ lines.push(` return {`);
796
+ lines.push(` id: "manual_" + f.replace(/\\.sql$/, ""),`);
797
+ lines.push(` checksum: createHash("sha256").update(sql).digest("hex"),`);
798
+ lines.push(` sql,`);
799
+ lines.push(` };`);
800
+ lines.push(` });`);
801
+ lines.push(`}`);
802
+ lines.push(``);
803
+ lines.push(`const LEDGER_DDL = \`CREATE TABLE IF NOT EXISTS schema_migrations (`);
804
+ lines.push(` id VARCHAR PRIMARY KEY,`);
805
+ lines.push(` checksum VARCHAR NOT NULL,`);
806
+ lines.push(` applied_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),`);
807
+ lines.push(` applied_by VARCHAR NOT NULL DEFAULT current_user,`);
808
+ lines.push(` duration_ms INTEGER NOT NULL DEFAULT 0`);
809
+ lines.push(`);\`;`);
810
+ lines.push(``);
672
811
  lines.push(`async function migrate() {`);
673
- lines.push(` console.log("Running migrations...");`);
674
812
  lines.push(` const client = await pool.connect();`);
813
+ lines.push(` let applied = 0, skipped = 0;`);
675
814
  lines.push(` try {`);
676
- for (const schema of schemas) {
677
- const escaped = schema.replace(/`/g, "\\`").replace(/\$/g, "\\$");
678
- lines.push(` await client.query(\`${escaped}\`);`);
679
- }
680
- lines.push(` console.log("Migrations complete.");`);
815
+ lines.push(` await client.query(LEDGER_DDL);`);
816
+ lines.push(``);
817
+ lines.push(` // Generated blocks come first (compile-time schema), then manual diffs.`);
818
+ lines.push(` const allBlocks: Block[] = [...GENERATED_BLOCKS, ...loadManualBlocks()];`);
819
+ lines.push(``);
820
+ lines.push(` // Load already-applied entries.`);
821
+ lines.push(` const existing = await client.query(`);
822
+ lines.push(` "SELECT id, checksum FROM schema_migrations"`);
823
+ lines.push(` );`);
824
+ lines.push(` const rows = existing.rows as Array<{ id: string; checksum: string }>;`);
825
+ lines.push(` const appliedById = new Map(rows.map(r => [r.id, r.checksum]));`);
826
+ lines.push(``);
827
+ lines.push(` for (const block of allBlocks) {`);
828
+ lines.push(` const prior = appliedById.get(block.id);`);
829
+ lines.push(` if (prior === block.checksum) {`);
830
+ lines.push(` skipped++;`);
831
+ lines.push(` continue;`);
832
+ lines.push(` }`);
833
+ lines.push(` if (prior && prior !== block.checksum) {`);
834
+ lines.push(` // Someone changed an already-applied migration. Refuse to proceed —`);
835
+ lines.push(` // an explicit migration file should be authored instead.`);
836
+ lines.push(` throw new Error(`);
837
+ lines.push(" `Migration ${block.id} was previously applied with a different ` +");
838
+ lines.push(" `checksum. Generate a new migration via 'bonec diff --write' ` +");
839
+ lines.push(" `instead of editing existing schemas.`");
840
+ lines.push(` );`);
841
+ lines.push(` }`);
842
+ lines.push(``);
843
+ lines.push(` const start = Date.now();`);
844
+ lines.push(` try {`);
845
+ lines.push(` await client.query("BEGIN");`);
846
+ lines.push(` await client.query(block.sql);`);
847
+ lines.push(` await client.query(`);
848
+ lines.push(` "INSERT INTO schema_migrations (id, checksum, duration_ms) VALUES ($1, $2, $3)",`);
849
+ lines.push(` [block.id, block.checksum, Date.now() - start]`);
850
+ lines.push(` );`);
851
+ lines.push(` await client.query("COMMIT");`);
852
+ lines.push(" console.log(` applied ${block.id} (${Date.now() - start}ms)`);");
853
+ lines.push(` applied++;`);
854
+ lines.push(` } catch (e) {`);
855
+ lines.push(` await client.query("ROLLBACK").catch(() => {});`);
856
+ lines.push(` throw e;`);
857
+ lines.push(` }`);
858
+ lines.push(` }`);
859
+ lines.push(``);
860
+ lines.push(" console.log(`Migrations complete: ${applied} applied, ${skipped} already up to date.`);");
681
861
  lines.push(` } finally {`);
682
862
  lines.push(` client.release();`);
683
863
  lines.push(` await pool.end();`);