bonescript-compiler 0.5.8 → 0.6.1

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 (56) 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_nakama.js +36 -36
  16. package/dist/emit_notify.js +30 -2
  17. package/dist/emit_notify.js.map +1 -1
  18. package/dist/emit_runtime.d.ts +18 -1
  19. package/dist/emit_runtime.js +265 -85
  20. package/dist/emit_runtime.js.map +1 -1
  21. package/dist/emit_websocket.js +22 -2
  22. package/dist/emit_websocket.js.map +1 -1
  23. package/dist/emit_zod.js +12 -1
  24. package/dist/emit_zod.js.map +1 -1
  25. package/dist/formatter.d.ts +1 -0
  26. package/dist/formatter.js +10 -2
  27. package/dist/formatter.js.map +1 -1
  28. package/dist/ir.d.ts +2 -0
  29. package/dist/lexer.d.ts +1 -0
  30. package/dist/lexer.js +4 -0
  31. package/dist/lexer.js.map +1 -1
  32. package/dist/lowering.js +2 -0
  33. package/dist/lowering.js.map +1 -1
  34. package/dist/parse_decls.js +36 -1
  35. package/dist/parse_decls.js.map +1 -1
  36. package/dist/typechecker.js +9 -0
  37. package/dist/typechecker.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/ast.ts +2 -0
  40. package/src/cli.ts +58 -10
  41. package/src/emit_admin.ts +342 -35
  42. package/src/emit_audit.ts +40 -4
  43. package/src/emit_capability.ts +13 -0
  44. package/src/emit_full.ts +9 -2
  45. package/src/emit_maintenance.ts +35 -3
  46. package/src/emit_nakama.ts +576 -576
  47. package/src/emit_notify.ts +30 -2
  48. package/src/emit_runtime.ts +955 -763
  49. package/src/emit_websocket.ts +22 -2
  50. package/src/emit_zod.ts +11 -1
  51. package/src/formatter.ts +9 -2
  52. package/src/ir.ts +2 -0
  53. package/src/lexer.ts +2 -0
  54. package/src/lowering.ts +5 -3
  55. package/src/parse_decls.ts +31 -1
  56. package/src/typechecker.ts +10 -0
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bonescript-compiler",
3
- "version": "0.5.8",
3
+ "version": "0.6.1",
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",
package/src/ast.ts CHANGED
@@ -60,6 +60,8 @@ export interface FieldNode extends ASTNode {
60
60
  name: string;
61
61
  type: TypeExprNode;
62
62
  defaultValue: ExprNode | null;
63
+ renamedFrom?: string | null;
64
+ sensitive?: boolean;
63
65
  }
64
66
 
65
67
  export interface StateGraphNode extends ASTNode {
package/src/cli.ts CHANGED
@@ -75,7 +75,7 @@ function main() {
75
75
  }
76
76
 
77
77
  function showHelp() {
78
- console.log("BoneScript compiler v0.5.8");
78
+ console.log("BoneScript compiler v0.6.1");
79
79
  console.log("");
80
80
  console.log("Usage:");
81
81
  console.log(" bonec compile <file> [--target <target>] Compile to runnable project");
@@ -85,7 +85,8 @@ function showHelp() {
85
85
  console.log(" bonec ir <file> Show IR (JSON)");
86
86
  console.log(" bonec fmt <file> Format file in place");
87
87
  console.log(" bonec watch <file> Recompile on change");
88
- console.log(" bonec diff <old.bone> <new.bone> Show schema migration diff");
88
+ console.log(" bonec diff <old.bone> <new.bone> [--write <output_dir>]");
89
+ console.log(" Show schema migration diff (or write to migrations/_manual)");
89
90
  console.log("");
90
91
  console.log("compile options:");
91
92
  console.log(" --target <name> Output target (default: express)");
@@ -515,12 +516,22 @@ function runCompileNakama(source: string, resolved: string) {
515
516
 
516
517
  function runDiff(args: string[]) {
517
518
  if (args.length < 2) {
518
- console.error("Usage: bone diff <old.bone> <new.bone>");
519
+ console.error("Usage: bone diff <old.bone> <new.bone> [--write <dir>]");
519
520
  process.exit(1);
520
521
  }
521
522
 
522
523
  const [oldFile, newFile] = args;
523
524
 
525
+ // Optional: --write <dir> writes the diff to a numbered migration file
526
+ // under <dir>/migrations/_manual/ so the next `npm run migrate` picks it up.
527
+ let writeDir: string | null = null;
528
+ for (let i = 2; i < args.length; i++) {
529
+ if (args[i] === "--write" && args[i + 1]) {
530
+ writeDir = path.resolve(args[i + 1]);
531
+ i++;
532
+ }
533
+ }
534
+
524
535
  const compileToIR = (filePath: string) => {
525
536
  const resolved = path.resolve(filePath);
526
537
  if (!fs.existsSync(resolved)) {
@@ -569,8 +580,18 @@ function runDiff(args: string[]) {
569
580
  if (!oldModel) continue;
570
581
 
571
582
  const table = name.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase() + "s";
572
- const oldFields = new Map(oldModel.fields.map((f: any) => [f.name, f]));
573
- const newFields = new Map(newModel.fields.map((f: any) => [f.name, f]));
583
+ const oldFields = new Map<string, any>(oldModel.fields.map((f: any) => [f.name, f]));
584
+ const newFields = new Map<string, any>(newModel.fields.map((f: any) => [f.name, f]));
585
+ const newFieldRenames = new Map<string, string>(); // newName -> oldName
586
+
587
+ // Detect renames first so we don't double-count them as add+drop.
588
+ for (const [fname, field] of newFields) {
589
+ const renamedFrom = (field as any).renamed_from;
590
+ if (renamedFrom && oldFields.has(renamedFrom) && !oldFields.has(fname)) {
591
+ statements.push(`ALTER TABLE ${table} RENAME COLUMN ${renamedFrom} TO ${fname};`);
592
+ newFieldRenames.set(fname, renamedFrom);
593
+ }
594
+ }
574
595
 
575
596
  const sqlTypeMap: Record<string, string> = {
576
597
  string: "VARCHAR", uint: "BIGINT", int: "BIGINT", float: "DOUBLE PRECISION",
@@ -578,13 +599,16 @@ function runDiff(args: string[]) {
578
599
  };
579
600
 
580
601
  for (const [fname, field] of newFields) {
602
+ if (newFieldRenames.has(fname)) continue;
581
603
  if (!oldFields.has(fname)) {
582
604
  const sqlType = sqlTypeMap[(field as any).type] || "JSONB";
583
605
  statements.push(`ALTER TABLE ${table} ADD COLUMN IF NOT EXISTS ${fname} ${sqlType};`);
584
606
  }
585
607
  }
586
608
 
609
+ const renamedOldNames = new Set(newFieldRenames.values());
587
610
  for (const [fname] of oldFields) {
611
+ if (renamedOldNames.has(fname)) continue;
588
612
  if (!newFields.has(fname)) {
589
613
  statements.push(`-- WARNING: Column '${table}.${fname}' removed`);
590
614
  statements.push(`-- Manual: ALTER TABLE ${table} DROP COLUMN ${fname};`);
@@ -594,12 +618,36 @@ function runDiff(args: string[]) {
594
618
 
595
619
  if (statements.length === 0) {
596
620
  console.log("No schema changes detected.");
597
- } else {
598
- console.log(`-- BoneScript schema diff: ${path.basename(oldFile)} → ${path.basename(newFile)}`);
599
- console.log(`-- Generated: ${new Date().toISOString()}`);
600
- console.log(``);
601
- console.log(statements.join("\n"));
621
+ return;
622
+ }
623
+
624
+ const header = [
625
+ `-- BoneScript schema diff: ${path.basename(oldFile)} → ${path.basename(newFile)}`,
626
+ `-- Generated: ${new Date().toISOString()}`,
627
+ ``,
628
+ ];
629
+ const body = [...header, ...statements].join("\n");
630
+
631
+ if (!writeDir) {
632
+ console.log(body);
633
+ return;
602
634
  }
635
+
636
+ // Write to <dir>/migrations/_manual/<timestamp>_<slug>.sql.
637
+ // Compile picks this up alongside generated schemas; the schema_migrations
638
+ // ledger ensures it only runs once.
639
+ const manualDir = path.join(writeDir, "migrations", "_manual");
640
+ if (!fs.existsSync(manualDir)) fs.mkdirSync(manualDir, { recursive: true });
641
+
642
+ const existing = fs.readdirSync(manualDir).filter(f => f.endsWith(".sql"));
643
+ const nextSeq = String(existing.length + 1).padStart(4, "0");
644
+ const stamp = new Date().toISOString().replace(/[:.]/g, "").slice(0, 15);
645
+ const slug = path.basename(newFile, path.extname(newFile)).replace(/[^a-z0-9]/gi, "_").toLowerCase();
646
+ const fileName = `${nextSeq}_${stamp}_${slug}.sql`;
647
+ const target = path.join(manualDir, fileName);
648
+ fs.writeFileSync(target, body, "utf-8");
649
+ console.log(`v Wrote migration: ${target}`);
650
+ console.log(` Run \`npm run migrate\` from the output dir to apply.`);
603
651
  }
604
652
 
605
653
  // ─── Debug ────────────────────────────────────────────────────────────────────