jazz-tools 2.0.0-alpha.16 → 2.0.0-alpha.18

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 (71) hide show
  1. package/bin/jazz-tools.js +46 -11
  2. package/bin/native/jazz-tools-darwin-arm64 +0 -0
  3. package/bin/native/jazz-tools-darwin-x64 +0 -0
  4. package/bin/native/jazz-tools-linux-arm64 +0 -0
  5. package/bin/native/jazz-tools-linux-x64 +0 -0
  6. package/bin/native/jazz-tools-windows-x64.exe +0 -0
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +16 -9
  9. package/dist/cli.js.map +1 -1
  10. package/dist/cli.test.js +189 -3
  11. package/dist/cli.test.js.map +1 -1
  12. package/dist/codegen/codegen.test.js +3 -3
  13. package/dist/codegen/codegen.test.js.map +1 -1
  14. package/dist/codegen/query-builder-generator.js +2 -2
  15. package/dist/codegen/query-builder-generator.js.map +1 -1
  16. package/dist/expo/polyfills.d.ts +2 -0
  17. package/dist/expo/polyfills.d.ts.map +1 -0
  18. package/dist/expo/polyfills.js +12 -0
  19. package/dist/expo/polyfills.js.map +1 -0
  20. package/dist/mcp/build-index.test.js +3 -1
  21. package/dist/mcp/build-index.test.js.map +1 -1
  22. package/dist/react/index.d.ts +1 -1
  23. package/dist/react/index.d.ts.map +1 -1
  24. package/dist/react/index.js +1 -1
  25. package/dist/react/index.js.map +1 -1
  26. package/dist/react/provider.d.ts +9 -7
  27. package/dist/react/provider.d.ts.map +1 -1
  28. package/dist/react/provider.js +4 -2
  29. package/dist/react/provider.js.map +1 -1
  30. package/dist/react-core/index.d.ts +1 -1
  31. package/dist/react-core/index.d.ts.map +1 -1
  32. package/dist/react-core/index.js +1 -1
  33. package/dist/react-core/index.js.map +1 -1
  34. package/dist/react-core/provider.d.ts +23 -5
  35. package/dist/react-core/provider.d.ts.map +1 -1
  36. package/dist/react-core/provider.js +89 -8
  37. package/dist/react-core/provider.js.map +1 -1
  38. package/dist/react-native/index.d.ts +1 -1
  39. package/dist/react-native/index.d.ts.map +1 -1
  40. package/dist/react-native/index.js +1 -1
  41. package/dist/react-native/index.js.map +1 -1
  42. package/dist/react-native/provider.d.ts +7 -6
  43. package/dist/react-native/provider.d.ts.map +1 -1
  44. package/dist/react-native/provider.js +4 -2
  45. package/dist/react-native/provider.js.map +1 -1
  46. package/dist/runtime/client.mutations.test.js +17 -2
  47. package/dist/runtime/client.mutations.test.js.map +1 -1
  48. package/dist/runtime/napi.fjall.db.all.integration.test.d.ts +2 -0
  49. package/dist/runtime/napi.fjall.db.all.integration.test.d.ts.map +1 -0
  50. package/dist/runtime/napi.fjall.db.all.integration.test.js +76 -0
  51. package/dist/runtime/napi.fjall.db.all.integration.test.js.map +1 -0
  52. package/dist/runtime/napi.fjall.db.subscribeAll.integration.test.d.ts +2 -0
  53. package/dist/runtime/napi.fjall.db.subscribeAll.integration.test.d.ts.map +1 -0
  54. package/dist/runtime/napi.fjall.db.subscribeAll.integration.test.js +47 -0
  55. package/dist/runtime/napi.fjall.db.subscribeAll.integration.test.js.map +1 -0
  56. package/dist/runtime/napi.fjall.test-helpers.d.ts +34 -0
  57. package/dist/runtime/napi.fjall.test-helpers.d.ts.map +1 -0
  58. package/dist/runtime/napi.fjall.test-helpers.js +172 -0
  59. package/dist/runtime/napi.fjall.test-helpers.js.map +1 -0
  60. package/dist/runtime/napi.integration.test.js +30 -0
  61. package/dist/runtime/napi.integration.test.js.map +1 -1
  62. package/dist/runtime/query-adapter.d.ts.map +1 -1
  63. package/dist/runtime/query-adapter.js +9 -4
  64. package/dist/runtime/query-adapter.js.map +1 -1
  65. package/dist/runtime/query-adapter.test.js +32 -0
  66. package/dist/runtime/query-adapter.test.js.map +1 -1
  67. package/dist/runtime/testing/napi-runtime-test-utils.d.ts +6 -0
  68. package/dist/runtime/testing/napi-runtime-test-utils.d.ts.map +1 -1
  69. package/dist/runtime/testing/napi-runtime-test-utils.js +17 -8
  70. package/dist/runtime/testing/napi-runtime-test-utils.js.map +1 -1
  71. package/package.json +19 -5
package/bin/jazz-tools.js CHANGED
@@ -32,13 +32,13 @@ function ensureExecutable(binaryPath, name) {
32
32
  chmodSync(binaryPath, 0o755);
33
33
  } catch (error) {
34
34
  const details = error instanceof Error ? error.message : String(error);
35
- fail(`Bundled binary ${name} is not executable and chmod failed: ${details}`);
35
+ fail(`Binary ${name} is not executable and chmod failed: ${details}`);
36
36
  }
37
37
 
38
38
  try {
39
39
  accessSync(binaryPath, constants.X_OK);
40
40
  } catch {
41
- fail(`Bundled binary ${name} is not executable after chmod.`);
41
+ fail(`Binary ${name} is not executable after chmod.`);
42
42
  }
43
43
  }
44
44
 
@@ -61,6 +61,39 @@ function parseSchemaDir(args) {
61
61
  return schemaDir;
62
62
  }
63
63
 
64
+ function parseWrapperArgs(rawArgs) {
65
+ let rustBinOverride;
66
+ const args = [];
67
+
68
+ for (let i = 0; i < rawArgs.length; i++) {
69
+ const arg = rawArgs[i];
70
+
71
+ if (arg === "--rust-bin") {
72
+ const value = rawArgs[i + 1];
73
+ if (!value) {
74
+ fail("Missing value for --rust-bin.");
75
+ }
76
+ rustBinOverride = value;
77
+ i += 1;
78
+ continue;
79
+ }
80
+
81
+ const prefix = "--rust-bin=";
82
+ if (arg.startsWith(prefix)) {
83
+ const value = arg.slice(prefix.length);
84
+ if (!value) {
85
+ fail("Missing value for --rust-bin.");
86
+ }
87
+ rustBinOverride = value;
88
+ continue;
89
+ }
90
+
91
+ args.push(arg);
92
+ }
93
+
94
+ return { args, rustBinOverride };
95
+ }
96
+
64
97
  function exitWithSpawnResult(result, name) {
65
98
  if (result.error) {
66
99
  fail(`Failed to execute ${name}: ${result.error.message}`);
@@ -79,7 +112,7 @@ function exitWithSpawnResult(result, name) {
79
112
 
80
113
  const here = dirname(fileURLToPath(import.meta.url));
81
114
 
82
- const args = process.argv.slice(2);
115
+ const { args, rustBinOverride } = parseWrapperArgs(process.argv.slice(2));
83
116
  const command = args[0];
84
117
 
85
118
  // Handle the MCP server before any Rust binary resolution.
@@ -98,9 +131,14 @@ if (command === "mcp") {
98
131
  ];
99
132
 
100
133
  const bundledBinaryPath = binaryName ? join(here, "native", binaryName) : undefined;
134
+ if (rustBinOverride && !existsSync(rustBinOverride)) {
135
+ fail(`Configured Rust binary missing: ${rustBinOverride}`);
136
+ }
101
137
  const binaryPath =
102
- (bundledBinaryPath && existsSync(bundledBinaryPath) ? bundledBinaryPath : undefined) ??
103
- fallbackCandidates.find((candidate) => existsSync(candidate));
138
+ rustBinOverride ??
139
+ (bundledBinaryPath && existsSync(bundledBinaryPath)
140
+ ? bundledBinaryPath
141
+ : fallbackCandidates.find((candidate) => existsSync(candidate)));
104
142
 
105
143
  if (!binaryPath) {
106
144
  const lines = [];
@@ -117,19 +155,16 @@ if (command === "mcp") {
117
155
  fail(lines.join("\n"));
118
156
  }
119
157
 
120
- ensureExecutable(binaryPath, binaryName ?? localBinaryName);
158
+ ensureExecutable(binaryPath, rustBinOverride ?? binaryName ?? localBinaryName);
121
159
 
122
160
  if (command === "build") {
123
161
  const schemaDirArg = parseSchemaDir(args.slice(1));
124
162
  const schemaDir = resolve(process.cwd(), schemaDirArg);
125
- const currentSqlPath = join(schemaDir, "current.sql");
126
163
  const currentTsPath = join(schemaDir, "current.ts");
127
164
  const tsCliPath = join(here, "..", "dist", "cli.js");
128
165
 
129
- if (!existsSync(currentSqlPath) && existsSync(currentTsPath) && existsSync(tsCliPath)) {
130
- console.log(
131
- `Detected ${schemaDirArg}/current.ts without current.sql. Running TypeScript schema build bootstrap.`,
132
- );
166
+ if (existsSync(currentTsPath) && existsSync(tsCliPath)) {
167
+ console.log(`Detected ${schemaDirArg}/current.ts. Running TypeScript schema build.`);
133
168
  const tsBuildResult = spawnSync(
134
169
  process.execPath,
135
170
  [tsCliPath, "build", "--schema-dir", schemaDirArg, "--jazz-bin", binaryPath],
Binary file
Binary file
Binary file
Binary file
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAiBA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAySD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDhE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAeA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAkTD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDhE"}
package/dist/cli.js CHANGED
@@ -2,14 +2,13 @@
2
2
  // CLI for jazz-tools schema tooling
3
3
  import { spawn } from "child_process";
4
4
  import { access, readdir, writeFile } from "fs/promises";
5
- import { join, basename, dirname } from "path";
5
+ import { join, basename, dirname, resolve } from "path";
6
6
  import { pathToFileURL } from "url";
7
- import { register } from "tsx/esm/api";
7
+ import { register as registerCjs } from "tsx/cjs/api";
8
+ import { register as registerEsm } from "tsx/esm/api";
8
9
  import { schemaToSql, lensesToSql } from "./sql-gen.js";
9
10
  import { getCollectedSchema, getCollectedMigrations, resetCollectedState } from "./dsl.js";
10
11
  import { generateClient } from "./codegen/index.js";
11
- // Allow loading `.ts` schema files when invoked via `node dist/cli.js`.
12
- register();
13
12
  function parseArgs() {
14
13
  const args = process.argv.slice(2);
15
14
  const command = args[0] || "";
@@ -25,11 +24,21 @@ function parseArgs() {
25
24
  }
26
25
  return { command, options: { jazzBin, schemaDir } };
27
26
  }
28
- // Counter for cache-busting dynamic imports
27
+ // Allow loading `.ts` schema files when invoked via `node dist/cli.js`.
28
+ registerEsm();
29
+ // Counter for cache-busting module loads.
29
30
  let importCounter = 0;
31
+ function requirePermissionsModule(filePath) {
32
+ const loader = registerCjs({ namespace: `jazz-tools-cli-permissions-${++importCounter}` });
33
+ try {
34
+ return loader.require(resolve(filePath), import.meta.url);
35
+ }
36
+ finally {
37
+ loader.unregister();
38
+ }
39
+ }
30
40
  async function loadSchemaModule(filePath) {
31
41
  resetCollectedState();
32
- // Add cache-busting query param since Node.js caches dynamic imports
33
42
  const url = pathToFileURL(filePath).href + `?v=${++importCounter}`;
34
43
  await import(url);
35
44
  }
@@ -39,7 +48,6 @@ async function loadSchema(filePath) {
39
48
  }
40
49
  async function loadMigrationModule(filePath) {
41
50
  resetCollectedState();
42
- // Add cache-busting query param since Node.js caches dynamic imports
43
51
  const url = pathToFileURL(filePath).href + `?v=${++importCounter}`;
44
52
  await import(url);
45
53
  return getCollectedMigrations();
@@ -123,8 +131,7 @@ function isPermissionsMap(input) {
123
131
  return Object.values(input).every((value) => isTablePoliciesLike(value));
124
132
  }
125
133
  async function loadPermissionsModule(filePath) {
126
- const url = pathToFileURL(filePath).href + `?v=${++importCounter}`;
127
- const module = await import(url);
134
+ const module = requirePermissionsModule(filePath);
128
135
  const candidate = module.default ?? module.permissions ?? null;
129
136
  if (!candidate) {
130
137
  throw new Error(`Missing permissions export in ${basename(filePath)}. ` +
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cli.test.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { spawnSync } from "node:child_process";
1
2
  import { chmod, mkdtemp, mkdir, readFile, rm, writeFile } from "node:fs/promises";
2
3
  import { tmpdir } from "node:os";
3
4
  import { join } from "node:path";
@@ -6,6 +7,10 @@ import { afterEach, describe, expect, it } from "vitest";
6
7
  import { build } from "./cli.js";
7
8
  const dslPath = fileURLToPath(new URL("./dsl.ts", import.meta.url));
8
9
  const permissionsDslPath = fileURLToPath(new URL("./permissions/index.ts", import.meta.url));
10
+ // Bin integration tests run in a subprocess that loads dist/cli.js, so current.ts must import
11
+ // from the compiled dist to share the same dsl module instance (and thus _collectedSchema state).
12
+ const distDslPath = fileURLToPath(new URL("../dist/dsl.js", import.meta.url));
13
+ const distPermissionsDslPath = fileURLToPath(new URL("../dist/permissions/index.js", import.meta.url));
9
14
  const tempRoots = [];
10
15
  afterEach(async () => {
11
16
  await Promise.all(tempRoots.splice(0).map((root) => rm(root, { recursive: true, force: true })));
@@ -20,6 +25,14 @@ async function createWorkspace() {
20
25
  await chmod(jazzBin, 0o755);
21
26
  return { root, schemaDir, jazzBin };
22
27
  }
28
+ async function createFakeRustBin() {
29
+ const root = await mkdtemp(join(tmpdir(), "jazz-tools-cli-rust-bin-"));
30
+ tempRoots.push(root);
31
+ const rustBin = join(root, "fake-jazz-tools");
32
+ await writeFile(rustBin, "#!/bin/sh\nexit 0\n");
33
+ await chmod(rustBin, 0o755);
34
+ return rustBin;
35
+ }
23
36
  function currentSchemaWithoutInlinePermissions() {
24
37
  return `
25
38
  import { table, col } from ${JSON.stringify(dslPath)};
@@ -52,10 +65,10 @@ table("todos", {
52
65
  });
53
66
  `;
54
67
  }
55
- function permissionsSchema() {
68
+ function permissionsSchema(appImportPath = "./app.js") {
56
69
  return `
57
70
  import { definePermissions } from ${JSON.stringify(permissionsDslPath)};
58
- import { app } from "./app";
71
+ import { app } from ${JSON.stringify(appImportPath)};
59
72
 
60
73
  export default definePermissions(app, ({ policy, session }) => [
61
74
  policy.todos.allowRead.where({ owner_id: session.user_id }),
@@ -81,7 +94,7 @@ export const nope = 42;
81
94
  function permissionsSchemaNamedExport() {
82
95
  return `
83
96
  import { definePermissions } from ${JSON.stringify(permissionsDslPath)};
84
- import { app } from "./app";
97
+ import { app } from "./app.js";
85
98
 
86
99
  export const permissions = definePermissions(app, ({ policy, session }) => [
87
100
  policy.todos.allowRead.where({ owner_id: session.user_id }),
@@ -95,6 +108,77 @@ export default {
95
108
  };
96
109
  `;
97
110
  }
111
+ // Bin integration variants — import from dist/dsl.js to share the module instance with dist/cli.js.
112
+ function binCurrentSchema() {
113
+ return `
114
+ import { table, col } from ${JSON.stringify(distDslPath)};
115
+
116
+ table("projects", {
117
+ name: col.string(),
118
+ });
119
+
120
+ table("todos", {
121
+ title: col.string(),
122
+ owner_id: col.string(),
123
+ });
124
+ `;
125
+ }
126
+ function binSchemaWithMessagesAndCanvases() {
127
+ return `
128
+ import { table, col } from ${JSON.stringify(distDslPath)};
129
+
130
+ table("messages", {
131
+ content: col.string(),
132
+ isPublic: col.boolean(),
133
+ });
134
+
135
+ table("canvases", {
136
+ name: col.string(),
137
+ isPublic: col.boolean(),
138
+ });
139
+ `;
140
+ }
141
+ function binMigrationDropIsPublicFromBothTables() {
142
+ return `
143
+ import { migrate, col } from ${JSON.stringify(distDslPath)};
144
+
145
+ migrate("messages", {
146
+ isPublic: col.drop().boolean({ backwardsDefault: false }),
147
+ });
148
+
149
+ migrate("canvases", {
150
+ isPublic: col.drop().boolean({ backwardsDefault: false }),
151
+ });
152
+ `;
153
+ }
154
+ function binPermissionsSchema(appImportPath = "./app.js") {
155
+ return `
156
+ import { definePermissions } from ${JSON.stringify(distPermissionsDslPath)};
157
+ import { app } from ${JSON.stringify(appImportPath)};
158
+
159
+ export default definePermissions(app, ({ policy, session }) => [
160
+ policy.todos.allowRead.where({ owner_id: session.user_id }),
161
+ ]);
162
+ `;
163
+ }
164
+ function currentSchemaWithComments() {
165
+ return `
166
+ import { table, col } from ${JSON.stringify(distDslPath)};
167
+
168
+ table("projects", {
169
+ name: col.string(),
170
+ });
171
+
172
+ table("todos", {
173
+ title: col.string(),
174
+ owner_id: col.string(),
175
+ });
176
+
177
+ table("comments", {
178
+ body: col.string(),
179
+ });
180
+ `;
181
+ }
98
182
  function schemaWithMessagesAndCanvases() {
99
183
  return `
100
184
  import { table, col } from ${JSON.stringify(dslPath)};
@@ -123,6 +207,15 @@ migrate("canvases", {
123
207
  });
124
208
  `;
125
209
  }
210
+ describe("cli build basic output", () => {
211
+ it("generates app.ts even when current.sql already exists", async () => {
212
+ const { schemaDir, jazzBin } = await createWorkspace();
213
+ await writeFile(join(schemaDir, "current.ts"), currentSchemaWithoutInlinePermissions());
214
+ await writeFile(join(schemaDir, "current.sql"), "-- stale");
215
+ await build({ schemaDir, jazzBin });
216
+ await readFile(join(schemaDir, "app.ts"), "utf8");
217
+ });
218
+ });
126
219
  describe("cli build migration SQL generation", () => {
127
220
  it("generates DROP COLUMN for every table when migrate() is called on multiple tables", async () => {
128
221
  const { schemaDir, jazzBin } = await createWorkspace();
@@ -152,6 +245,22 @@ describe("cli build permissions generation", () => {
152
245
  expect(appTs).toContain('"column": "owner_id"');
153
246
  expect(permissionsTest).toContain("Permissions test starter.");
154
247
  });
248
+ it("loads permissions.ts when it imports app from ./app.ts", async () => {
249
+ const { schemaDir, jazzBin } = await createWorkspace();
250
+ await writeFile(join(schemaDir, "current.ts"), currentSchemaWithoutInlinePermissions());
251
+ await writeFile(join(schemaDir, "permissions.ts"), permissionsSchema("./app.ts"));
252
+ await build({ schemaDir, jazzBin });
253
+ const sql = await readFile(join(schemaDir, "current.sql"), "utf8");
254
+ expect(sql).toContain("CREATE POLICY todos_select_policy ON todos FOR SELECT USING (owner_id = @session.user_id);");
255
+ });
256
+ it("loads permissions.ts when it imports app from ./app", async () => {
257
+ const { schemaDir, jazzBin } = await createWorkspace();
258
+ await writeFile(join(schemaDir, "current.ts"), currentSchemaWithoutInlinePermissions());
259
+ await writeFile(join(schemaDir, "permissions.ts"), permissionsSchema("./app"));
260
+ await build({ schemaDir, jazzBin });
261
+ const sql = await readFile(join(schemaDir, "current.sql"), "utf8");
262
+ expect(sql).toContain("CREATE POLICY todos_select_policy ON todos FOR SELECT USING (owner_id = @session.user_id);");
263
+ });
155
264
  it("fails when current.ts uses inline table permissions", async () => {
156
265
  const { schemaDir, jazzBin } = await createWorkspace();
157
266
  await writeFile(join(schemaDir, "current.ts"), currentSchemaWithInlinePermissions());
@@ -193,4 +302,81 @@ describe("cli build permissions generation", () => {
193
302
  await expect(build({ schemaDir, jazzBin })).rejects.toThrow(/invalid permissions export/i);
194
303
  });
195
304
  });
305
+ // Integration test: exercises the bin/jazz-tools.js entry point, which applies extra
306
+ // logic on top of build() to decide whether to invoke the TS CLI at all.
307
+ const binPath = fileURLToPath(new URL("../bin/jazz-tools.js", import.meta.url));
308
+ function runBinBuild(schemaDir, rustBin) {
309
+ const result = spawnSync(process.execPath, [binPath, "build", "--schema-dir", schemaDir, "--rust-bin", rustBin], {
310
+ stdio: "inherit",
311
+ });
312
+ expect(result.status).toBe(0);
313
+ }
314
+ describe("bin integration", () => {
315
+ it("generates current.sql on first build (no current.sql)", async () => {
316
+ const { schemaDir } = await createWorkspace();
317
+ const rustBin = await createFakeRustBin();
318
+ await writeFile(join(schemaDir, "current.ts"), binCurrentSchema());
319
+ runBinBuild(schemaDir, rustBin);
320
+ await readFile(join(schemaDir, "current.sql"), "utf8");
321
+ });
322
+ it("generates app.ts on first build (no current.sql)", async () => {
323
+ const { schemaDir } = await createWorkspace();
324
+ const rustBin = await createFakeRustBin();
325
+ await writeFile(join(schemaDir, "current.ts"), binCurrentSchema());
326
+ runBinBuild(schemaDir, rustBin);
327
+ await readFile(join(schemaDir, "app.ts"), "utf8");
328
+ });
329
+ it("regenerates current.sql and app.ts when current.sql already exists", async () => {
330
+ // Regression: bin skips the TS CLI step when current.sql is present,
331
+ // so neither file is updated on subsequent builds.
332
+ const { schemaDir } = await createWorkspace();
333
+ const rustBin = await createFakeRustBin();
334
+ await writeFile(join(schemaDir, "current.ts"), binCurrentSchema());
335
+ await writeFile(join(schemaDir, "current.sql"), "-- stale");
336
+ runBinBuild(schemaDir, rustBin);
337
+ const sql = await readFile(join(schemaDir, "current.sql"), "utf8");
338
+ expect(sql).toContain("CREATE TABLE");
339
+ await readFile(join(schemaDir, "app.ts"), "utf8");
340
+ });
341
+ // bootstrap → change current.ts → rebuild
342
+ it("updates current.sql when current.ts changes after initial build", async () => {
343
+ const { schemaDir } = await createWorkspace();
344
+ const rustBin = await createFakeRustBin();
345
+ await writeFile(join(schemaDir, "current.ts"), binCurrentSchema());
346
+ runBinBuild(schemaDir, rustBin);
347
+ await writeFile(join(schemaDir, "current.ts"), currentSchemaWithComments());
348
+ runBinBuild(schemaDir, rustBin);
349
+ const sql = await readFile(join(schemaDir, "current.sql"), "utf8");
350
+ expect(sql).toContain("CREATE TABLE comments");
351
+ });
352
+ it("updates app.ts when current.ts changes after initial build", async () => {
353
+ const { schemaDir } = await createWorkspace();
354
+ const rustBin = await createFakeRustBin();
355
+ await writeFile(join(schemaDir, "current.ts"), binCurrentSchema());
356
+ runBinBuild(schemaDir, rustBin);
357
+ await writeFile(join(schemaDir, "current.ts"), currentSchemaWithComments());
358
+ runBinBuild(schemaDir, rustBin);
359
+ const appTs = await readFile(join(schemaDir, "app.ts"), "utf8");
360
+ expect(appTs).toContain("comments");
361
+ });
362
+ it("generates migration SQL from stub on rebuild when current.sql already exists", async () => {
363
+ const { schemaDir } = await createWorkspace();
364
+ const rustBin = await createFakeRustBin();
365
+ await writeFile(join(schemaDir, "current.ts"), binSchemaWithMessagesAndCanvases());
366
+ runBinBuild(schemaDir, rustBin);
367
+ await writeFile(join(schemaDir, "migration_v1_v2_aaaaaaaaaaaa_bbbbbbbbbbbb.ts"), binMigrationDropIsPublicFromBothTables());
368
+ runBinBuild(schemaDir, rustBin);
369
+ await readFile(join(schemaDir, "migration_v1_v2_fwd_aaaaaaaaaaaa_bbbbbbbbbbbb.sql"), "utf8");
370
+ await readFile(join(schemaDir, "migration_v1_v2_bwd_aaaaaaaaaaaa_bbbbbbbbbbbb.sql"), "utf8");
371
+ });
372
+ it("loads permissions.ts that imports ./app via bin entry point", async () => {
373
+ const { schemaDir } = await createWorkspace();
374
+ const rustBin = await createFakeRustBin();
375
+ await writeFile(join(schemaDir, "current.ts"), binCurrentSchema());
376
+ await writeFile(join(schemaDir, "permissions.ts"), binPermissionsSchema("./app"));
377
+ runBinBuild(schemaDir, rustBin);
378
+ const sql = await readFile(join(schemaDir, "current.sql"), "utf8");
379
+ expect(sql).toContain("CREATE POLICY todos_select_policy ON todos FOR SELECT USING (owner_id = @session.user_id);");
380
+ });
381
+ });
196
382
  //# sourceMappingURL=cli.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
@@ -850,8 +850,8 @@ describe("generateQueryBuilderClasses", () => {
850
850
  const wasm = schemaToWasm(schema);
851
851
  const output = generateTypes(wasm);
852
852
  expect(output).toContain("export class TodoQueryBuilder<I extends Record<string, never> = {}, S extends TodoSelectableColumn = keyof Todo> implements QueryBuilder<TodoSelected<S>> {");
853
- expect(output).toContain("declare readonly _rowType: TodoSelected<S>;");
854
- expect(output).toContain("declare readonly _initType: TodoInit;");
853
+ expect(output).toContain("readonly _rowType!: TodoSelected<S>;");
854
+ expect(output).toContain("readonly _initType!: TodoInit;");
855
855
  expect(output).toContain("where(conditions: TodoWhereInput)");
856
856
  expect(output).toContain("select<NewS extends TodoSelectableColumn>(...columns: [NewS, ...NewS[]]): TodoQueryBuilder<I, NewS>");
857
857
  expect(output).toContain("orderBy(column: TodoOrderableColumn");
@@ -867,7 +867,7 @@ describe("generateQueryBuilderClasses", () => {
867
867
  const wasm = schemaToWasm(schema);
868
868
  const output = generateTypes(wasm);
869
869
  expect(output).toContain("export class TodoQueryBuilder<I extends TodoInclude = {}, S extends TodoSelectableColumn = keyof Todo> implements QueryBuilder<TodoSelectedWithIncludes<I, S>> {");
870
- expect(output).toContain("declare readonly _rowType: TodoSelectedWithIncludes<I, S>;");
870
+ expect(output).toContain("readonly _rowType!: TodoSelectedWithIncludes<I, S>;");
871
871
  });
872
872
  it("generates include method for tables with relations", () => {
873
873
  table("users", { name: col.string() });