bonescript-compiler 0.3.0 → 0.4.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 (52) hide show
  1. package/dist/commands/compile.js +42 -10
  2. package/dist/commands/compile.js.map +1 -1
  3. package/dist/commands/init.d.ts +1 -1
  4. package/dist/commands/init.js +29 -2
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/emit_capability.js +61 -7
  7. package/dist/emit_capability.js.map +1 -1
  8. package/dist/emit_composition.js +37 -3
  9. package/dist/emit_composition.js.map +1 -1
  10. package/dist/emit_events.d.ts +1 -0
  11. package/dist/emit_events.js +68 -1
  12. package/dist/emit_events.js.map +1 -1
  13. package/dist/emit_full.js +33 -0
  14. package/dist/emit_full.js.map +1 -1
  15. package/dist/emit_models.d.ts +12 -0
  16. package/dist/emit_models.js +171 -0
  17. package/dist/emit_models.js.map +1 -0
  18. package/dist/emit_openapi.d.ts +9 -0
  19. package/dist/emit_openapi.js +308 -0
  20. package/dist/emit_openapi.js.map +1 -0
  21. package/dist/emit_router.js +19 -4
  22. package/dist/emit_router.js.map +1 -1
  23. package/dist/emit_tests.js +37 -0
  24. package/dist/emit_tests.js.map +1 -1
  25. package/dist/emitter.js +34 -5
  26. package/dist/emitter.js.map +1 -1
  27. package/dist/lowering.js +16 -1
  28. package/dist/lowering.js.map +1 -1
  29. package/dist/lowering_channels.d.ts +1 -1
  30. package/dist/lowering_channels.js +2 -2
  31. package/dist/lowering_channels.js.map +1 -1
  32. package/dist/typechecker.js +32 -13
  33. package/dist/typechecker.js.map +1 -1
  34. package/dist/verifier.d.ts +5 -0
  35. package/dist/verifier.js +140 -2
  36. package/dist/verifier.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/commands/compile.ts +41 -10
  39. package/src/commands/init.ts +28 -2
  40. package/src/emit_capability.ts +61 -6
  41. package/src/emit_composition.ts +36 -3
  42. package/src/emit_events.ts +70 -0
  43. package/src/emit_full.ts +36 -1
  44. package/src/emit_models.ts +176 -0
  45. package/src/emit_openapi.ts +318 -0
  46. package/src/emit_router.ts +18 -4
  47. package/src/emit_tests.ts +41 -0
  48. package/src/emitter.ts +592 -566
  49. package/src/lowering.ts +19 -1
  50. package/src/lowering_channels.ts +2 -2
  51. package/src/typechecker.ts +606 -591
  52. package/src/verifier.ts +495 -348
@@ -1 +1 @@
1
- {"version":3,"file":"typechecker.js","sourceRoot":"","sources":["../src/typechecker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typechecker.js","sourceRoot":"","sources":["../src/typechecker.ts"],"names":[],"mappings":"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"}
@@ -43,4 +43,9 @@ export declare class Verifier {
43
43
  private checkTypeScriptSyntax;
44
44
  private checkSqlSyntax;
45
45
  private checkImports;
46
+ private checkEventSources;
47
+ private checkPreconditions;
48
+ private checkMethodEffects;
49
+ private checkAuthDependencies;
50
+ private checkResolutionMap;
46
51
  }
package/dist/verifier.js CHANGED
@@ -27,13 +27,18 @@ exports.Verifier = void 0;
27
27
  class Verifier {
28
28
  verify(system, files) {
29
29
  const issues = [];
30
- // ─── IR Validation ─────────────────────────────────────────────────────
30
+ // ─── IR Validation ────────────────────────────────────────────────────────
31
31
  this.checkDependencies(system, issues);
32
+ this.checkEventSources(system, issues); // V002
32
33
  this.checkDuplicateIds(system, issues);
33
34
  this.checkModels(system, issues);
34
35
  this.checkStateMachines(system, issues);
35
36
  this.checkCircularDeps(system, issues);
36
- // ─── Generated Code Validation ─────────────────────────────────────────
37
+ this.checkPreconditions(system, issues); // V005
38
+ this.checkMethodEffects(system, issues); // V006
39
+ this.checkAuthDependencies(system, issues); // V011
40
+ this.checkResolutionMap(system, issues); // V012
41
+ // ─── Generated Code Validation ────────────────────────────────────────────
37
42
  this.checkTypeScriptSyntax(files, issues);
38
43
  this.checkSqlSyntax(files, issues);
39
44
  this.checkImports(files, issues);
@@ -291,6 +296,139 @@ class Verifier {
291
296
  }
292
297
  }
293
298
  }
299
+ // ─── V002: Event source exists as a module ────────────────────────────────
300
+ checkEventSources(system, issues) {
301
+ const moduleIds = new Set(system.modules.map(m => m.id));
302
+ for (const ev of system.events) {
303
+ if (ev.source && ev.source !== "unknown" && !moduleIds.has(ev.source)) {
304
+ issues.push({
305
+ code: "V002",
306
+ severity: "warning",
307
+ message: `Event '${ev.name}' source '${ev.source}' does not match any module id`,
308
+ location: ev.id,
309
+ });
310
+ }
311
+ }
312
+ }
313
+ // ─── V005: Preconditions reference accessible fields ─────────────────────
314
+ checkPreconditions(system, issues) {
315
+ // Build a map of all model field names by model name (lowercase for case-insensitive lookup)
316
+ const modelFields = new Map();
317
+ for (const mod of system.modules) {
318
+ for (const model of mod.models) {
319
+ const fields = new Set(model.fields.map(f => f.name));
320
+ // Add ontology-entailed fields always present
321
+ fields.add("id");
322
+ fields.add("created_at");
323
+ fields.add("updated_at");
324
+ fields.add("state");
325
+ modelFields.set(model.name, fields);
326
+ modelFields.set(model.name.toLowerCase(), fields);
327
+ }
328
+ }
329
+ // Simple field-path extractor: finds "word.word" patterns in a serialized expression
330
+ const fieldPathPattern = /\b([a-zA-Z_]\w*)\.([a-zA-Z_]\w*)\b/g;
331
+ for (const mod of system.modules) {
332
+ for (const iface of mod.interfaces) {
333
+ for (const method of iface.methods) {
334
+ for (const pre of method.preconditions) {
335
+ let match;
336
+ fieldPathPattern.lastIndex = 0;
337
+ while ((match = fieldPathPattern.exec(pre.expression)) !== null) {
338
+ const [, paramName, fieldName] = match;
339
+ // Skip known non-field patterns (e.g. "now()", numeric literals)
340
+ if (paramName === "now" || /^\d/.test(paramName))
341
+ continue;
342
+ // Check if the field exists in any model — warn if not found
343
+ const foundInAnyModel = [...modelFields.values()].some(f => f.has(fieldName));
344
+ if (!foundInAnyModel) {
345
+ issues.push({
346
+ code: "V005",
347
+ severity: "warning",
348
+ message: `Precondition in '${method.name}' references '${paramName}.${fieldName}' — field '${fieldName}' not found in any model`,
349
+ location: `${mod.id}.${method.name}`,
350
+ });
351
+ }
352
+ }
353
+ }
354
+ }
355
+ }
356
+ }
357
+ }
358
+ // ─── V006: Effects target fields that exist ───────────────────────────────
359
+ checkMethodEffects(system, issues) {
360
+ // Build a map of all model field names by model name
361
+ const modelFields = new Map();
362
+ for (const mod of system.modules) {
363
+ for (const model of mod.models) {
364
+ const fields = new Set(model.fields.map(f => f.name));
365
+ modelFields.set(model.name, fields);
366
+ modelFields.set(model.name.toLowerCase(), fields);
367
+ }
368
+ }
369
+ for (const mod of system.modules) {
370
+ for (const iface of mod.interfaces) {
371
+ for (const method of iface.methods) {
372
+ for (const effect of method.effects) {
373
+ const parts = effect.target.split(".");
374
+ if (parts.length < 2)
375
+ continue;
376
+ const fieldName = parts[1];
377
+ // Try to find the model — check all models for the field
378
+ // (we can't always resolve the param name to a model here without type info)
379
+ // Only error if the field name looks like a typo (not found in ANY model)
380
+ const foundInAnyModel = [...modelFields.values()].some(fields => fields.has(fieldName));
381
+ if (!foundInAnyModel && !["state", "status", "owner_id"].includes(fieldName)) {
382
+ issues.push({
383
+ code: "V006",
384
+ severity: "warning",
385
+ message: `Effect target '${effect.target}' in method '${method.name}' — field '${fieldName}' not found in any model`,
386
+ location: `${mod.id}.${method.name}`,
387
+ });
388
+ }
389
+ }
390
+ }
391
+ }
392
+ }
393
+ }
394
+ // ─── V011: Authenticated methods' modules depend on auth ─────────────────
395
+ checkAuthDependencies(system, issues) {
396
+ const authModuleIds = new Set(system.modules
397
+ .filter(m => m.kind === "auth_service" || m.config["auth_method"])
398
+ .map(m => m.id));
399
+ for (const mod of system.modules) {
400
+ const hasAuthenticatedMethod = mod.interfaces.some(i => i.methods.some(m => m.authenticated));
401
+ if (!hasAuthenticatedMethod)
402
+ continue;
403
+ // Module must either be an auth service itself or depend on one
404
+ const isAuthService = mod.kind === "auth_service";
405
+ const dependsOnAuth = mod.dependencies.some(dep => authModuleIds.has(dep));
406
+ const hasAuthConfig = mod.config["auth_method"] && mod.config["auth_method"] !== "none";
407
+ if (!isAuthService && !dependsOnAuth && !hasAuthConfig && authModuleIds.size > 0) {
408
+ issues.push({
409
+ code: "V011",
410
+ severity: "warning",
411
+ message: `Module '${mod.name}' has authenticated methods but does not declare an auth dependency`,
412
+ location: mod.id,
413
+ });
414
+ }
415
+ }
416
+ }
417
+ // ─── V012: Resolution map is complete ────────────────────────────────────
418
+ checkResolutionMap(system, issues) {
419
+ // Resolution map must have at least the system-level keys
420
+ const required = ["system.name", "system.version", "system.domain"];
421
+ for (const key of required) {
422
+ if (!system.resolution[key]) {
423
+ issues.push({
424
+ code: "V012",
425
+ severity: "warning",
426
+ message: `Resolution map missing required key '${key}' — run constraint solver`,
427
+ location: system.name,
428
+ });
429
+ }
430
+ }
431
+ }
294
432
  }
295
433
  exports.Verifier = Verifier;
296
434
  function resolvePath(base, relative) {
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bonescript-compiler",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "BoneScript compiler — compile .bone system descriptions into complete, runnable Node.js backends",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -53,6 +53,7 @@ export async function runCompile(source: string, resolved: string): Promise<void
53
53
  for (const err of typeErrors) {
54
54
  console.log(` ${err.code} at ${err.loc.line}:${err.loc.column}: ${err.message}`);
55
55
  }
56
+ process.exit(1);
56
57
  } else {
57
58
  console.log(` [3/7] Type check: v (0 errors)`);
58
59
  }
@@ -83,11 +84,13 @@ export async function runCompile(source: string, resolved: string): Promise<void
83
84
  // Stage 5: Constraint Solve
84
85
  const solver = new ConstraintSolver();
85
86
  let totalResolved = 0;
87
+ let solverFailed = false;
86
88
  for (const sys of irSystems) {
87
89
  const result = solver.solve(sys);
88
90
  sys.resolution = result.resolution;
89
91
  totalResolved += Object.keys(result.resolution).length;
90
92
  if (result.errors.length > 0) {
93
+ solverFailed = true;
91
94
  console.log(` [5/7] Constraint solve: ${result.errors.length} error(s)`);
92
95
  for (const err of result.errors) console.log(` x ${err}`);
93
96
  } else {
@@ -95,7 +98,24 @@ export async function runCompile(source: string, resolved: string): Promise<void
95
98
  for (const a of result.assumptions.slice(0, 5)) console.log(` ${a}`);
96
99
  if (result.assumptions.length > 5) console.log(` ... and ${result.assumptions.length - 5} more`);
97
100
  }
101
+
102
+ // Back-propagate resolved values into module configs so emitters pick them up.
103
+ // The solver resolves keys like "APIGateway.rate_limit" → write back to mod.config.
104
+ for (const mod of sys.modules) {
105
+ for (const [key, value] of Object.entries(result.resolution)) {
106
+ const prefix = `${mod.name}.`;
107
+ if (key.startsWith(prefix)) {
108
+ const prop = key.slice(prefix.length);
109
+ // Only overwrite if the module config doesn't already have an explicit value
110
+ if (mod.config[prop] === undefined || mod.config[prop] === null) {
111
+ const numVal = Number(value);
112
+ mod.config[prop] = isNaN(numVal) ? value : numVal;
113
+ }
114
+ }
115
+ }
116
+ }
98
117
  }
118
+ if (solverFailed) process.exit(1);
99
119
 
100
120
  // Stage 6: Code Emit
101
121
  const emitter = new FullEmitter();
@@ -108,19 +128,30 @@ export async function runCompile(source: string, resolved: string): Promise<void
108
128
  console.log(` ${lang}: ${count} file(s)`);
109
129
  }
110
130
 
111
- // Stage 7: Verify
112
- const verifyResult = new Verifier().verify(irSystems[0], allFiles);
113
- const errCount = verifyResult.issues.filter(i => i.severity === "error").length;
114
- const warnCount = verifyResult.issues.filter(i => i.severity === "warning").length;
115
- if (verifyResult.passed) {
116
- console.log(` [7/7] Verify: v (${allFiles.length} files, ${warnCount} warnings)`);
117
- } else {
118
- console.log(` [7/7] Verify: FAILED (${errCount} errors, ${warnCount} warnings)`);
131
+ // Stage 7: Verify — check ALL systems, not just the first
132
+ let verifyFailed = false;
133
+ let totalVerifyErrors = 0;
134
+ let totalVerifyWarnings = 0;
135
+ for (const sys of irSystems) {
136
+ const verifyResult = new Verifier().verify(sys, allFiles);
137
+ const errCount = verifyResult.issues.filter(i => i.severity === "error").length;
138
+ const warnCount = verifyResult.issues.filter(i => i.severity === "warning").length;
139
+ totalVerifyErrors += errCount;
140
+ totalVerifyWarnings += warnCount;
141
+ if (!verifyResult.passed) verifyFailed = true;
142
+ for (const issue of verifyResult.issues.slice(0, 10)) {
143
+ console.log(` ${issue.severity === "error" ? "x" : "!"} ${issue.code}: ${issue.message}`);
144
+ }
119
145
  }
120
- for (const issue of verifyResult.issues.slice(0, 10)) {
121
- console.log(` ${issue.severity === "error" ? "x" : "!"} ${issue.code}: ${issue.message}`);
146
+ if (verifyFailed) {
147
+ console.log(` [7/7] Verify: FAILED (${totalVerifyErrors} errors, ${totalVerifyWarnings} warnings)`);
148
+ } else {
149
+ console.log(` [7/7] Verify: v (${allFiles.length} files, ${totalVerifyWarnings} warnings)`);
122
150
  }
123
151
 
152
+ // Abort before writing output if verification failed
153
+ if (verifyFailed) process.exit(1);
154
+
124
155
  // Write output — all writes in parallel per directory
125
156
  const outputDir = path.resolve(path.dirname(resolved), "output");
126
157
  const allExtensions = irSystems.flatMap(s => s.extension_points || []);
@@ -1,9 +1,10 @@
1
1
  /**
2
- * bonec init <name> [--domain <domain>] [--out <dir>]
2
+ * bonec init <name> [--domain <domain>] [--out <dir>] [--force]
3
3
  * Scaffold a new project from a domain template.
4
4
  */
5
5
 
6
6
  import * as path from "path";
7
+ import * as fs from "fs";
7
8
  import { scaffold, ScaffoldDomain } from "../scaffold";
8
9
 
9
10
  const VALID_DOMAINS: ScaffoldDomain[] = [
@@ -12,15 +13,24 @@ const VALID_DOMAINS: ScaffoldDomain[] = [
12
13
  ];
13
14
 
14
15
  export async function runInit(args: string[]): Promise<void> {
16
+ // --list: show available domains
17
+ if (args.includes("--list") || args.includes("-l")) {
18
+ console.log("Available domains:");
19
+ for (const d of VALID_DOMAINS) console.log(` ${d}`);
20
+ return;
21
+ }
22
+
15
23
  if (args.length === 0) {
16
24
  console.error("Error: bonec init requires a project name.");
17
25
  console.error("Example: bonec init my-project --domain saas_platform");
26
+ console.error(" bonec init --list (show available domains)");
18
27
  process.exit(1);
19
28
  }
20
29
 
21
30
  const name = args[0];
22
31
  let domain: ScaffoldDomain = "saas_platform";
23
32
  let outDir = path.resolve(name);
33
+ let force = false;
24
34
 
25
35
  for (let i = 1; i < args.length; i++) {
26
36
  if (args[i] === "--domain" && args[i + 1]) {
@@ -29,6 +39,8 @@ export async function runInit(args: string[]): Promise<void> {
29
39
  } else if (args[i] === "--out" && args[i + 1]) {
30
40
  outDir = path.resolve(args[i + 1]);
31
41
  i++;
42
+ } else if (args[i] === "--force" || args[i] === "-f") {
43
+ force = true;
32
44
  }
33
45
  }
34
46
 
@@ -37,8 +49,22 @@ export async function runInit(args: string[]): Promise<void> {
37
49
  process.exit(1);
38
50
  }
39
51
 
52
+ // Check if output directory already has files (unless --force)
53
+ if (!force) {
54
+ try {
55
+ const existing = await fs.promises.readdir(outDir);
56
+ if (existing.length > 0) {
57
+ console.error(`Error: Directory '${outDir}' already exists and is not empty.`);
58
+ console.error(`Use --force to overwrite.`);
59
+ process.exit(1);
60
+ }
61
+ } catch {
62
+ // Directory doesn't exist — fine
63
+ }
64
+ }
65
+
40
66
  const result = await scaffold({ name, domain, outDir });
41
- console.log(`v Created ${result.created.length} file(s):`);
67
+ console.log(`✓ Created ${result.created.length} file(s):`);
42
68
  for (const f of result.created) console.log(` ${f}`);
43
69
  console.log(`\nNext steps:`);
44
70
  console.log(` cd ${outDir}`);
@@ -191,6 +191,7 @@ function compileEffect(
191
191
  mod: IR.IRModule,
192
192
  system: IR.IRSystem,
193
193
  paramIdx: { n: number },
194
+ method?: IR.IRMethod,
194
195
  ): CompiledEffect | null {
195
196
  const targetParts = effect.target.split(".");
196
197
  if (targetParts.length < 2) return null;
@@ -199,7 +200,20 @@ function compileEffect(
199
200
  const fieldName = targetParts[1];
200
201
  const nestedPath = targetParts.slice(2);
201
202
 
203
+ // Resolve the model: first try matching by param name → entity type via method inputs,
204
+ // then fall back to matching by entity name directly.
202
205
  const model = (() => {
206
+ // If we have method context, resolve the param name to its entity type
207
+ if (method) {
208
+ const param = method.input.find(p => p.name === entityParam);
209
+ if (param) {
210
+ for (const m of system.modules) {
211
+ const found = m.models.find(mdl => mdl.name === param.type || mdl.name.toLowerCase() === param.type.toLowerCase());
212
+ if (found) return found;
213
+ }
214
+ }
215
+ }
216
+ // Fall back to matching by entity name directly
203
217
  for (const m of system.modules) {
204
218
  const found = m.models.find(mdl =>
205
219
  toSnakeCase(mdl.name) === entityParam || mdl.name.toLowerCase() === entityParam.toLowerCase()
@@ -221,12 +235,15 @@ function compileEffect(
221
235
  const p1 = `$${paramIdx.n++}`;
222
236
  const p2 = `$${paramIdx.n++}`;
223
237
  const jsonbPathLiteral = `'{${nestedPath.join(",")}}'`;
238
+ // Use to_jsonb($1) directly — casting via ::text loses type information for
239
+ // non-string values (numbers, booleans, objects). to_jsonb() handles all
240
+ // PostgreSQL types correctly without an intermediate text cast.
224
241
  return {
225
242
  tableName, entityParam, idParam,
226
243
  assignments: [],
227
244
  description: `${effect.target} = ${effect.value}`,
228
245
  standalone: {
229
- sql: `UPDATE ${tableName} SET ${fieldName} = jsonb_set(COALESCE(${fieldName}, '{}'), ${jsonbPathLiteral}, to_jsonb(${p1}::text), true), updated_at = NOW() WHERE id = ${p2} RETURNING *`,
246
+ sql: `UPDATE ${tableName} SET ${fieldName} = jsonb_set(COALESCE(${fieldName}, '{}'), ${jsonbPathLiteral}, to_jsonb(${p1}), true), updated_at = NOW() WHERE id = ${p2} RETURNING *`,
230
247
  params: [valueTs, idParam],
231
248
  },
232
249
  };
@@ -490,7 +507,7 @@ export function emitCapabilityBody(
490
507
  lines.push(`${indent}// Effects (batched by entity to minimise round-trips)`);
491
508
 
492
509
  const paramIdx = { n: 1 };
493
- const compiled = method.effects.map(e => compileEffect(e, mod, system, paramIdx));
510
+ const compiled = method.effects.map(e => compileEffect(e, mod, system, paramIdx, method));
494
511
  const { batches, standalones } = batchEffects(compiled);
495
512
 
496
513
  // Emit batched UPDATEs
@@ -518,12 +535,50 @@ export function emitCapabilityBody(
518
535
  lines.push(`${indent}}`);
519
536
  }
520
537
 
521
- // Fallback for effects that couldn't be compiled
538
+ // Fallback for effects that couldn't be compiled.
539
+ // Collection-level effects (e.g. list<T>.field = value) are not yet supported
540
+ // by the batch compiler — emit a clear TODO rather than silently dropping them.
541
+ // Effects that reference a completely unknown model are a hard error.
522
542
  for (const effect of method.effects) {
523
543
  const paramIdx2 = { n: 1 };
524
- if (!compileEffect(effect, mod, system, paramIdx2)) {
525
- lines.push(`${indent}// EFFECT: ${effect.target} ${effect.op === "assign" ? "=" : effect.op === "add" ? "+=" : "-="} ${effect.value}`);
526
- lines.push(`${indent}// TODO: Implement this effect manually`);
544
+ if (!compileEffect(effect, mod, system, paramIdx2, method)) {
545
+ const targetParts = effect.target.split(".");
546
+ const paramName = targetParts[0];
547
+ const param = method.input.find(p => p.name === paramName);
548
+ const isCollectionEffect = param && (param.type.startsWith("list<") || param.type.startsWith("set<"));
549
+
550
+ if (isCollectionEffect) {
551
+ // Collection-level effects: apply the field update to all items in the collection
552
+ // using a single batched UPDATE ... WHERE id = ANY($ids::uuid[])
553
+ const innerType = param.type.replace(/^(list|set)<(.+)>$/, "$2");
554
+ // Find the model for the inner element type
555
+ let elemModel: IR.IRModel | undefined;
556
+ for (const m of system.modules) {
557
+ elemModel = m.models.find(mdl => mdl.name === innerType || mdl.name.toLowerCase() === innerType.toLowerCase());
558
+ if (elemModel) break;
559
+ }
560
+ const tableName = elemModel ? (elemModel.name.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase() + "s") : (innerType.toLowerCase() + "s");
561
+ const fieldName = targetParts[1];
562
+ const valueTs = targetParts[1] ? effect.value : "null";
563
+ const opSql = effect.op === "add"
564
+ ? `${fieldName} = ${fieldName} + $1`
565
+ : effect.op === "remove"
566
+ ? `${fieldName} = ${fieldName} - $1`
567
+ : `${fieldName} = $1`;
568
+ lines.push(`${indent}// Collection effect: ${effect.target} ${effect.op === "assign" ? "=" : effect.op === "add" ? "+=" : "-="} ${effect.value}`);
569
+ lines.push(`${indent}if (${paramName} && ${paramName}.length > 0) {`);
570
+ lines.push(`${indent} const __ids_${paramName} = ${paramName}.map((x: any) => x.id ?? x);`);
571
+ lines.push(`${indent} await query(`);
572
+ lines.push(`${indent} \`UPDATE ${tableName} SET ${opSql}, updated_at = NOW() WHERE id = ANY($2::uuid[])\`,`);
573
+ lines.push(`${indent} [${effect.value}, __ids_${paramName}],`);
574
+ lines.push(`${indent} );`);
575
+ lines.push(`${indent}}`);
576
+ } else {
577
+ throw new Error(
578
+ `Unsupported effect in method '${method.name}': target '${effect.target}' could not be resolved to a known model field. ` +
579
+ `Ensure the effect target matches a declared entity field (e.g. 'entityName.fieldName').`
580
+ );
581
+ }
527
582
  }
528
583
  }
529
584
  lines.push(``);