on-zero 0.2.10 → 0.3.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 (242) hide show
  1. package/dist/cjs/cli.cjs +0 -0
  2. package/dist/cjs/cli.native.js +0 -0
  3. package/dist/cjs/createPermissions.native.js.map +1 -1
  4. package/dist/cjs/createSchemaFromDrizzle.cjs +30 -0
  5. package/dist/cjs/createSchemaFromDrizzle.native.js +33 -0
  6. package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -0
  7. package/dist/cjs/createUseQuery.cjs +1 -1
  8. package/dist/cjs/createUseQuery.native.js +1 -1
  9. package/dist/cjs/createZeroClient.cjs +1 -1
  10. package/dist/cjs/createZeroClient.native.js +1 -1
  11. package/dist/cjs/createZeroClient.native.js.map +1 -1
  12. package/dist/cjs/createZeroServer.native.js.map +1 -1
  13. package/dist/cjs/generate.cjs +64 -12
  14. package/dist/cjs/generate.native.js +114 -12
  15. package/dist/cjs/generate.native.js.map +1 -1
  16. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  17. package/dist/cjs/index.cjs +2 -1
  18. package/dist/cjs/index.native.js +1 -0
  19. package/dist/cjs/index.native.js.map +1 -1
  20. package/dist/cjs/mutations.cjs +1 -1
  21. package/dist/cjs/mutations.native.js +1 -1
  22. package/dist/cjs/mutations.native.js.map +1 -1
  23. package/dist/cjs/server.native.js +1 -18
  24. package/dist/cjs/server.native.js.map +1 -1
  25. package/dist/cjs/vite-plugin.cjs +1 -1
  26. package/dist/cjs/vite-plugin.native.js +1 -1
  27. package/dist/cjs/vite-plugin.native.js.map +1 -1
  28. package/dist/esm/cli.mjs +0 -0
  29. package/dist/esm/cli.native.js +0 -0
  30. package/dist/esm/createPermissions.mjs.map +1 -1
  31. package/dist/esm/createPermissions.native.js.map +1 -1
  32. package/dist/esm/createSchemaFromDrizzle.mjs +5 -0
  33. package/dist/esm/createSchemaFromDrizzle.mjs.map +1 -0
  34. package/dist/esm/createSchemaFromDrizzle.native.js +5 -0
  35. package/dist/esm/createSchemaFromDrizzle.native.js.map +1 -0
  36. package/dist/esm/createUseQuery.mjs +2 -2
  37. package/dist/esm/createUseQuery.mjs.map +1 -1
  38. package/dist/esm/createUseQuery.native.js +2 -2
  39. package/dist/esm/createUseQuery.native.js.map +1 -1
  40. package/dist/esm/createZeroClient.mjs +2 -2
  41. package/dist/esm/createZeroClient.mjs.map +1 -1
  42. package/dist/esm/createZeroClient.native.js +2 -2
  43. package/dist/esm/createZeroClient.native.js.map +1 -1
  44. package/dist/esm/createZeroServer.mjs.map +1 -1
  45. package/dist/esm/createZeroServer.native.js.map +1 -1
  46. package/dist/esm/generate.mjs +64 -13
  47. package/dist/esm/generate.mjs.map +1 -1
  48. package/dist/esm/generate.native.js +114 -13
  49. package/dist/esm/generate.native.js.map +1 -1
  50. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  51. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  52. package/dist/esm/index.js +19 -24
  53. package/dist/esm/index.js.map +1 -6
  54. package/dist/esm/index.mjs +1 -0
  55. package/dist/esm/index.mjs.map +1 -1
  56. package/dist/esm/index.native.js +1 -0
  57. package/dist/esm/index.native.js.map +1 -1
  58. package/dist/esm/mutations.mjs +1 -1
  59. package/dist/esm/mutations.mjs.map +1 -1
  60. package/dist/esm/mutations.native.js +1 -1
  61. package/dist/esm/mutations.native.js.map +1 -1
  62. package/dist/esm/server.native.js +1 -1
  63. package/dist/esm/server.native.js.map +1 -1
  64. package/dist/esm/vite-plugin.mjs +1 -1
  65. package/dist/esm/vite-plugin.mjs.map +1 -1
  66. package/dist/esm/vite-plugin.native.js +1 -1
  67. package/dist/esm/vite-plugin.native.js.map +1 -1
  68. package/package.json +10 -4
  69. package/readme.md +80 -54
  70. package/src/createPermissions.ts +4 -9
  71. package/src/createSchemaFromDrizzle.ts +3 -0
  72. package/src/createUseQuery.tsx +4 -4
  73. package/src/createZeroClient.tsx +14 -14
  74. package/src/createZeroServer.ts +12 -12
  75. package/src/generate.test.ts +32 -32
  76. package/src/generate.ts +208 -55
  77. package/src/helpers/batchQuery.ts +1 -1
  78. package/src/helpers/createMutators.ts +7 -6
  79. package/src/helpers/didRunPermissionCheck.ts +1 -1
  80. package/src/helpers/mutatorContext.ts +2 -2
  81. package/src/helpers/prettyFormatZeroQuery.ts +1 -1
  82. package/src/helpers/queryContext.ts +1 -1
  83. package/src/helpers/useZeroDebug.ts +2 -2
  84. package/src/index.ts +2 -0
  85. package/src/mutations.ts +33 -7
  86. package/src/queryRegistry.ts +1 -1
  87. package/src/resolveQuery.ts +3 -3
  88. package/src/run.ts +5 -5
  89. package/src/server.native.ts +3 -0
  90. package/src/serverWhere.ts +2 -2
  91. package/src/types.ts +4 -2
  92. package/src/vite-plugin.ts +2 -2
  93. package/src/where.ts +5 -5
  94. package/src/zeroRunner.ts +2 -2
  95. package/types/createPermissions.d.ts +1 -1
  96. package/types/createPermissions.d.ts.map +1 -1
  97. package/types/createSchemaFromDrizzle.d.ts +4 -0
  98. package/types/createSchemaFromDrizzle.d.ts.map +1 -0
  99. package/types/createUseQuery.d.ts.map +1 -1
  100. package/types/createZeroServer.d.ts +11 -11
  101. package/types/generate.d.ts +29 -0
  102. package/types/generate.d.ts.map +1 -1
  103. package/types/helpers/createMutators.d.ts.map +1 -1
  104. package/types/index.d.ts +1 -0
  105. package/types/index.d.ts.map +1 -1
  106. package/types/mutations.d.ts +4 -1
  107. package/types/mutations.d.ts.map +1 -1
  108. package/types/resolveQuery.d.ts +1 -1
  109. package/types/resolveQuery.d.ts.map +1 -1
  110. package/types/server.native.d.ts +1 -0
  111. package/types/server.native.d.ts.map +1 -0
  112. package/types/types.d.ts.map +1 -1
  113. package/dist/cjs/cli.js +0 -42
  114. package/dist/cjs/cli.js.map +0 -6
  115. package/dist/cjs/constants.js +0 -23
  116. package/dist/cjs/constants.js.map +0 -6
  117. package/dist/cjs/createPermissions.js +0 -92
  118. package/dist/cjs/createPermissions.js.map +0 -6
  119. package/dist/cjs/createUseQuery.js +0 -35
  120. package/dist/cjs/createUseQuery.js.map +0 -6
  121. package/dist/cjs/createZeroClient.js +0 -178
  122. package/dist/cjs/createZeroClient.js.map +0 -6
  123. package/dist/cjs/createZeroServer.js +0 -189
  124. package/dist/cjs/createZeroServer.js.map +0 -6
  125. package/dist/cjs/generate.js +0 -811
  126. package/dist/cjs/generate.js.map +0 -6
  127. package/dist/cjs/generate.test.js +0 -404
  128. package/dist/cjs/generate.test.js.map +0 -6
  129. package/dist/cjs/helpers/batchQuery.js +0 -41
  130. package/dist/cjs/helpers/batchQuery.js.map +0 -6
  131. package/dist/cjs/helpers/createMutators.js +0 -118
  132. package/dist/cjs/helpers/createMutators.js.map +0 -6
  133. package/dist/cjs/helpers/didRunPermissionCheck.js +0 -26
  134. package/dist/cjs/helpers/didRunPermissionCheck.js.map +0 -6
  135. package/dist/cjs/helpers/ensureLoggedIn.js +0 -25
  136. package/dist/cjs/helpers/ensureLoggedIn.js.map +0 -6
  137. package/dist/cjs/helpers/getAuth.js +0 -31
  138. package/dist/cjs/helpers/getAuth.js.map +0 -6
  139. package/dist/cjs/helpers/mutatorContext.js +0 -44
  140. package/dist/cjs/helpers/mutatorContext.js.map +0 -6
  141. package/dist/cjs/helpers/prettyFormatZeroQuery.js +0 -92
  142. package/dist/cjs/helpers/prettyFormatZeroQuery.js.map +0 -6
  143. package/dist/cjs/helpers/queryContext.js +0 -33
  144. package/dist/cjs/helpers/queryContext.js.map +0 -6
  145. package/dist/cjs/helpers/useZeroDebug.js +0 -49
  146. package/dist/cjs/helpers/useZeroDebug.js.map +0 -6
  147. package/dist/cjs/index.js +0 -40
  148. package/dist/cjs/index.js.map +0 -6
  149. package/dist/cjs/modelRegistry.js +0 -32
  150. package/dist/cjs/modelRegistry.js.map +0 -6
  151. package/dist/cjs/mutations.js +0 -70
  152. package/dist/cjs/mutations.js.map +0 -6
  153. package/dist/cjs/queryRegistry.js +0 -32
  154. package/dist/cjs/queryRegistry.js.map +0 -6
  155. package/dist/cjs/resolveQuery.js +0 -40
  156. package/dist/cjs/resolveQuery.js.map +0 -6
  157. package/dist/cjs/run.js +0 -42
  158. package/dist/cjs/run.js.map +0 -6
  159. package/dist/cjs/server.js +0 -15
  160. package/dist/cjs/server.js.map +0 -6
  161. package/dist/cjs/serverWhere.js +0 -24
  162. package/dist/cjs/serverWhere.js.map +0 -6
  163. package/dist/cjs/serverWhere.test.js +0 -52
  164. package/dist/cjs/serverWhere.test.js.map +0 -6
  165. package/dist/cjs/state.js +0 -48
  166. package/dist/cjs/state.js.map +0 -6
  167. package/dist/cjs/types.js +0 -14
  168. package/dist/cjs/types.js.map +0 -6
  169. package/dist/cjs/usePermission.test.js +0 -29
  170. package/dist/cjs/usePermission.test.js.map +0 -6
  171. package/dist/cjs/vite-plugin.js +0 -89
  172. package/dist/cjs/vite-plugin.js.map +0 -6
  173. package/dist/cjs/where.js +0 -50
  174. package/dist/cjs/where.js.map +0 -6
  175. package/dist/cjs/zeroRunner.js +0 -35
  176. package/dist/cjs/zeroRunner.js.map +0 -6
  177. package/dist/cjs/zql.js +0 -26
  178. package/dist/cjs/zql.js.map +0 -6
  179. package/dist/esm/cli.js +0 -44
  180. package/dist/esm/cli.js.map +0 -6
  181. package/dist/esm/constants.js +0 -7
  182. package/dist/esm/constants.js.map +0 -6
  183. package/dist/esm/createPermissions.js +0 -81
  184. package/dist/esm/createPermissions.js.map +0 -6
  185. package/dist/esm/createUseQuery.js +0 -22
  186. package/dist/esm/createUseQuery.js.map +0 -6
  187. package/dist/esm/createZeroClient.js +0 -185
  188. package/dist/esm/createZeroClient.js.map +0 -6
  189. package/dist/esm/createZeroServer.js +0 -192
  190. package/dist/esm/createZeroServer.js.map +0 -6
  191. package/dist/esm/generate.js +0 -789
  192. package/dist/esm/generate.js.map +0 -6
  193. package/dist/esm/generate.test.js +0 -408
  194. package/dist/esm/generate.test.js.map +0 -6
  195. package/dist/esm/helpers/batchQuery.js +0 -25
  196. package/dist/esm/helpers/batchQuery.js.map +0 -6
  197. package/dist/esm/helpers/createMutators.js +0 -96
  198. package/dist/esm/helpers/createMutators.js.map +0 -6
  199. package/dist/esm/helpers/didRunPermissionCheck.js +0 -10
  200. package/dist/esm/helpers/didRunPermissionCheck.js.map +0 -6
  201. package/dist/esm/helpers/ensureLoggedIn.js +0 -10
  202. package/dist/esm/helpers/ensureLoggedIn.js.map +0 -6
  203. package/dist/esm/helpers/getAuth.js +0 -17
  204. package/dist/esm/helpers/getAuth.js.map +0 -6
  205. package/dist/esm/helpers/mutatorContext.js +0 -28
  206. package/dist/esm/helpers/mutatorContext.js.map +0 -6
  207. package/dist/esm/helpers/prettyFormatZeroQuery.js +0 -76
  208. package/dist/esm/helpers/prettyFormatZeroQuery.js.map +0 -6
  209. package/dist/esm/helpers/queryContext.js +0 -17
  210. package/dist/esm/helpers/queryContext.js.map +0 -6
  211. package/dist/esm/helpers/useZeroDebug.js +0 -35
  212. package/dist/esm/helpers/useZeroDebug.js.map +0 -6
  213. package/dist/esm/modelRegistry.js +0 -16
  214. package/dist/esm/modelRegistry.js.map +0 -6
  215. package/dist/esm/mutations.js +0 -56
  216. package/dist/esm/mutations.js.map +0 -6
  217. package/dist/esm/queryRegistry.js +0 -16
  218. package/dist/esm/queryRegistry.js.map +0 -6
  219. package/dist/esm/resolveQuery.js +0 -24
  220. package/dist/esm/resolveQuery.js.map +0 -6
  221. package/dist/esm/run.js +0 -27
  222. package/dist/esm/run.js.map +0 -6
  223. package/dist/esm/server.js +0 -2
  224. package/dist/esm/server.js.map +0 -6
  225. package/dist/esm/serverWhere.js +0 -8
  226. package/dist/esm/serverWhere.js.map +0 -6
  227. package/dist/esm/serverWhere.test.js +0 -55
  228. package/dist/esm/serverWhere.test.js.map +0 -6
  229. package/dist/esm/state.js +0 -33
  230. package/dist/esm/state.js.map +0 -6
  231. package/dist/esm/types.js +0 -1
  232. package/dist/esm/types.js.map +0 -6
  233. package/dist/esm/usePermission.test.js +0 -33
  234. package/dist/esm/usePermission.test.js.map +0 -6
  235. package/dist/esm/vite-plugin.js +0 -74
  236. package/dist/esm/vite-plugin.js.map +0 -6
  237. package/dist/esm/where.js +0 -36
  238. package/dist/esm/where.js.map +0 -6
  239. package/dist/esm/zeroRunner.js +0 -19
  240. package/dist/esm/zeroRunner.js.map +0 -6
  241. package/dist/esm/zql.js +0 -10
  242. package/dist/esm/zql.js.map +0 -6
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/generate.ts"],
4
- "mappings": "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",
5
- "names": ["inner", "props", "dir"]
6
- }
@@ -1,408 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
- import { tmpdir } from "node:os";
3
- import { join } from "node:path";
4
- import { afterEach, beforeEach, describe, expect, test } from "vitest";
5
- import { generate } from "./generate";
6
- const testDir = join(tmpdir(), "on-zero-test-" + Date.now());
7
- beforeEach(() => {
8
- mkdirSync(join(testDir, "models"), { recursive: !0 }), mkdirSync(join(testDir, "queries"), { recursive: !0 });
9
- });
10
- afterEach(() => {
11
- rmSync(testDir, { recursive: !0, force: !0 });
12
- });
13
- describe("generate", () => {
14
- test("generates models.ts, types.ts, tables.ts from model files", async () => {
15
- writeFileSync(
16
- join(testDir, "models/post.ts"),
17
- `
18
- import { table, string, boolean } from 'on-zero'
19
-
20
- export const schema = table('post', {
21
- id: string(),
22
- title: string(),
23
- published: boolean(),
24
- })
25
- `
26
- ), writeFileSync(
27
- join(testDir, "models/comment.ts"),
28
- `
29
- import { table, string } from 'on-zero'
30
-
31
- export const schema = table('comment', {
32
- id: string(),
33
- postId: string(),
34
- body: string(),
35
- })
36
- `
37
- );
38
- const result = await generate({ dir: testDir, silent: !0 });
39
- expect(result.modelCount).toBe(2), expect(result.schemaCount).toBe(2), expect(result.filesChanged).toBeGreaterThan(0), expect(existsSync(join(testDir, "generated/models.ts"))).toBe(!0), expect(existsSync(join(testDir, "generated/types.ts"))).toBe(!0), expect(existsSync(join(testDir, "generated/tables.ts"))).toBe(!0);
40
- const modelsContent = readFileSync(join(testDir, "generated/models.ts"), "utf-8");
41
- expect(modelsContent).toContain("import * as comment from '../models/comment'"), expect(modelsContent).toContain("import * as post from '../models/post'"), expect(modelsContent).toContain("export const models = {");
42
- const typesContent = readFileSync(join(testDir, "generated/types.ts"), "utf-8");
43
- expect(typesContent).toContain(
44
- "export type Post = TableInsertRow<typeof schema.post>"
45
- ), expect(typesContent).toContain(
46
- "export type Comment = TableInsertRow<typeof schema.comment>"
47
- );
48
- const tablesContent = readFileSync(join(testDir, "generated/tables.ts"), "utf-8");
49
- expect(tablesContent).toContain("export { schema as post } from '../models/post'"), expect(tablesContent).toContain(
50
- "export { schema as comment } from '../models/comment'"
51
- );
52
- }), test("generates query validators from query files", async () => {
53
- writeFileSync(
54
- join(testDir, "models/post.ts"),
55
- "export const schema = table('post', { id: string() })"
56
- ), writeFileSync(
57
- join(testDir, "queries/post.ts"),
58
- `
59
- import { zero } from '../zero'
60
-
61
- export const allPosts = () => zero.query.post
62
-
63
- export const postById = ({ id }: { id: string }) => zero.query.post.where('id', id)
64
-
65
- export const postsByAuthor = ({ authorId, limit }: { authorId: string; limit?: number }) =>
66
- zero.query.post.where('authorId', authorId).limit(limit ?? 10)
67
- `
68
- );
69
- const result = await generate({ dir: testDir, silent: !0 });
70
- expect(result.queryCount).toBe(3), expect(existsSync(join(testDir, "generated/groupedQueries.ts"))).toBe(!0), expect(existsSync(join(testDir, "generated/syncedQueries.ts"))).toBe(!0);
71
- const groupedContent = readFileSync(
72
- join(testDir, "generated/groupedQueries.ts"),
73
- "utf-8"
74
- );
75
- expect(groupedContent).toContain("export * as post from '../queries/post'");
76
- const syncedContent = readFileSync(
77
- join(testDir, "generated/syncedQueries.ts"),
78
- "utf-8"
79
- );
80
- expect(syncedContent).toContain("allPosts: defineQuery"), expect(syncedContent).toContain("postById: defineQuery"), expect(syncedContent).toContain("postsByAuthor: defineQuery"), expect(syncedContent).toContain("v.object");
81
- }), test("skips permission exports in queries", async () => {
82
- writeFileSync(
83
- join(testDir, "models/post.ts"),
84
- "export const schema = table('post', { id: string() })"
85
- ), writeFileSync(
86
- join(testDir, "queries/post.ts"),
87
- `
88
- export const permission = () => ({ canRead: true })
89
- export const allPosts = () => zero.query.post
90
- `
91
- );
92
- const result = await generate({ dir: testDir, silent: !0 });
93
- expect(result.queryCount).toBe(1);
94
- const syncedContent = readFileSync(
95
- join(testDir, "generated/syncedQueries.ts"),
96
- "utf-8"
97
- );
98
- expect(syncedContent).toContain("allPosts"), expect(syncedContent).not.toContain("permission:");
99
- }), test("handles user model special case (userPublic)", async () => {
100
- writeFileSync(
101
- join(testDir, "models/user.ts"),
102
- "export const schema = table('user', { id: string(), name: string() })"
103
- ), await generate({ dir: testDir, silent: !0 });
104
- const modelsContent = readFileSync(join(testDir, "generated/models.ts"), "utf-8");
105
- expect(modelsContent).toContain("import * as userPublic from '../models/user'"), expect(modelsContent).toContain("userPublic,");
106
- const typesContent = readFileSync(join(testDir, "generated/types.ts"), "utf-8");
107
- expect(typesContent).toContain("typeof schema.userPublic");
108
- }), test("runs after command when files change", async () => {
109
- writeFileSync(
110
- join(testDir, "models/post.ts"),
111
- "export const schema = table('post', { id: string() })"
112
- );
113
- const markerFile = join(testDir, "after-ran"), result = await generate({
114
- dir: testDir,
115
- silent: !0,
116
- after: `touch ${markerFile}`
117
- });
118
- expect(result.filesChanged).toBeGreaterThan(0), expect(existsSync(markerFile)).toBe(!0);
119
- }), test("does not regenerate when nothing changed", async () => {
120
- writeFileSync(
121
- join(testDir, "models/post.ts"),
122
- "export const schema = table('post', { id: string() })"
123
- );
124
- const first = await generate({ dir: testDir, silent: !0 });
125
- expect(first.filesChanged).toBeGreaterThan(0);
126
- const second = await generate({ dir: testDir, silent: !0 });
127
- expect(second.filesChanged).toBe(0);
128
- });
129
- });
130
- describe("mutations", () => {
131
- test("generates validators for inline mutation param types", async () => {
132
- writeFileSync(
133
- join(testDir, "models/post.ts"),
134
- `
135
- import { table, string } from 'on-zero'
136
- import { mutations, serverWhere } from 'on-zero'
137
-
138
- export const schema = table('post').columns({
139
- id: string(),
140
- title: string(),
141
- }).primaryKey('id')
142
-
143
- const perm = serverWhere('post', () => true)
144
-
145
- export const mutate = mutations(schema, perm, {
146
- archive: async ({ tx }, { id, reason }: { id: string; reason: string }) => {
147
- await tx.mutate.post.update({ id, archived: true })
148
- },
149
- })
150
- `
151
- );
152
- const result = await generate({ dir: testDir, silent: !0 });
153
- expect(result.mutationCount).toBeGreaterThan(0), expect(existsSync(join(testDir, "generated/syncedMutations.ts"))).toBe(!0);
154
- const content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
155
- expect(content).toContain("archive"), expect(content).toContain("v.object"), expect(content).toContain("v.string()");
156
- }), test("generates CRUD validators from schema columns", async () => {
157
- writeFileSync(
158
- join(testDir, "models/task.ts"),
159
- `
160
- import { table, string, number, boolean } from 'on-zero'
161
- import { mutations, serverWhere } from 'on-zero'
162
-
163
- export const schema = table('task').columns({
164
- id: string(),
165
- title: string(),
166
- priority: number(),
167
- done: boolean(),
168
- note: string().optional(),
169
- }).primaryKey('id')
170
-
171
- const perm = serverWhere('task', () => true)
172
-
173
- export const mutate = mutations(schema, perm)
174
- `
175
- );
176
- const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
177
- expect(content).toContain("insert:"), expect(content).toMatch(/insert:.*v\.object/), expect(content).toContain("update:"), expect(content).toContain("delete:");
178
- }), test("treats models without export const mutate as empty mutations", async () => {
179
- writeFileSync(
180
- join(testDir, "models/readonly.ts"),
181
- `
182
- import { table, string } from 'on-zero'
183
-
184
- export const schema = table('readonly').columns({
185
- id: string(),
186
- name: string(),
187
- }).primaryKey('id')
188
- `
189
- );
190
- const result = await generate({ dir: testDir, silent: !0 });
191
- expect(result.mutationCount).toBe(0);
192
- const content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
193
- expect(content).toContain("readonly: {");
194
- }), test("extracts custom mutations from bare mutations({})", async () => {
195
- writeFileSync(
196
- join(testDir, "models/admin.ts"),
197
- `
198
- import { mutations } from 'on-zero'
199
-
200
- export const mutate = mutations({
201
- reset: async ({ tx }, { targetId }: { targetId: string }) => {
202
- await tx.mutate.admin.delete({ id: targetId })
203
- },
204
- })
205
- `
206
- );
207
- const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
208
- expect(content).toContain("reset"), expect(content).toContain("v.string()");
209
- }), test("handles mutations with only context param (void)", async () => {
210
- writeFileSync(
211
- join(testDir, "models/user.ts"),
212
- `
213
- import { table, string } from 'on-zero'
214
- import { mutations, serverWhere } from 'on-zero'
215
-
216
- export const schema = table('user').columns({
217
- id: string(),
218
- name: string(),
219
- }).primaryKey('id')
220
-
221
- const perm = serverWhere('user', () => true)
222
-
223
- export const mutate = mutations(schema, perm, {
224
- finishOnboarding: async ({ tx }) => {
225
- // no second param
226
- },
227
- })
228
- `
229
- );
230
- const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
231
- expect(content).toContain("finishOnboarding");
232
- }), test("handles primitive param type", async () => {
233
- writeFileSync(
234
- join(testDir, "models/user.ts"),
235
- `
236
- import { table, string } from 'on-zero'
237
- import { mutations, serverWhere } from 'on-zero'
238
-
239
- export const schema = table('user').columns({
240
- id: string(),
241
- name: string(),
242
- }).primaryKey('id')
243
-
244
- const perm = serverWhere('user', () => true)
245
-
246
- export const mutate = mutations(schema, perm, {
247
- completeSignup: async ({ tx }, userId: string) => {
248
- await tx.mutate.user.update({ id: userId })
249
- },
250
- })
251
- `
252
- );
253
- const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
254
- expect(content).toContain("completeSignup"), expect(content).toContain("v.string()");
255
- }), test("handles array param type", async () => {
256
- writeFileSync(
257
- join(testDir, "models/batch.ts"),
258
- `
259
- import { mutations } from 'on-zero'
260
-
261
- export const mutate = mutations({
262
- bulkDelete: async ({ tx }, ids: Array<{ id: string }>) => {
263
- for (const { id } of ids) await tx.mutate.batch.delete({ id })
264
- },
265
- })
266
- `
267
- );
268
- const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
269
- expect(content).toContain("bulkDelete"), expect(content).toContain("v.array");
270
- }), test("populates mutationCount and caching works", async () => {
271
- writeFileSync(
272
- join(testDir, "models/item.ts"),
273
- `
274
- import { table, string } from 'on-zero'
275
- import { mutations, serverWhere } from 'on-zero'
276
-
277
- export const schema = table('item').columns({
278
- id: string(),
279
- name: string(),
280
- }).primaryKey('id')
281
-
282
- const perm = serverWhere('item', () => true)
283
-
284
- export const mutate = mutations(schema, perm, {
285
- rename: async ({ tx }, { id, name }: { id: string; name: string }) => {
286
- await tx.mutate.item.update({ id, name })
287
- },
288
- })
289
- `
290
- );
291
- const first = await generate({ dir: testDir, silent: !0 });
292
- expect(first.mutationCount).toBeGreaterThan(0);
293
- const second = await generate({ dir: testDir, silent: !0 });
294
- expect(second.filesChanged).toBe(0), expect(second.mutationCount).toBe(first.mutationCount);
295
- });
296
- });
297
- describe("type resolution", () => {
298
- test("resolves imported type references for mutations", async () => {
299
- writeFileSync(
300
- join(testDir, "models/types.ts"),
301
- `
302
- export type ArchiveParams = {
303
- id: string
304
- reason: string
305
- archived: boolean
306
- }
307
- `
308
- ), writeFileSync(
309
- join(testDir, "models/post.ts"),
310
- `
311
- import { table, string, boolean } from 'on-zero'
312
- import { mutations } from 'on-zero'
313
- import type { ArchiveParams } from './types'
314
-
315
- export const mutate = mutations({
316
- archive: async ({ tx }, params: ArchiveParams) => {
317
- await tx.mutate.post.update(params)
318
- },
319
- })
320
- `
321
- );
322
- const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
323
- expect(content).toContain("v.string()"), expect(content).toContain("v.boolean()"), expect(content).toContain("reason"), expect(content).toContain("archived");
324
- }), test("resolves utility types like Pick", async () => {
325
- writeFileSync(
326
- join(testDir, "models/types.ts"),
327
- `
328
- export type Item = {
329
- id: string
330
- name: string
331
- description: string
332
- count: number
333
- }
334
- `
335
- ), writeFileSync(
336
- join(testDir, "models/item.ts"),
337
- `
338
- import { table, string, number } from 'on-zero'
339
- import { mutations, serverWhere } from 'on-zero'
340
- import type { Item } from './types'
341
-
342
- export const schema = table('item').columns({
343
- id: string(),
344
- name: string(),
345
- description: string(),
346
- count: number(),
347
- }).primaryKey('id')
348
-
349
- const perm = serverWhere('item', () => true)
350
-
351
- export const mutate = mutations(schema, perm, {
352
- rename: async ({ tx }, updates: Pick<Item, 'id' | 'name'>) => {
353
- await tx.mutate.item.update(updates)
354
- },
355
- })
356
- `
357
- );
358
- const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
359
- expect(content).toContain("id"), expect(content).toContain("name"), expect(content).not.toMatch(/rename:[\s\S]*description/), expect(content).not.toMatch(/rename:[\s\S]*count/);
360
- }), test("skips symbol-keyed properties when resolving imported mutation param types", async () => {
361
- writeFileSync(
362
- join(testDir, "models/types.ts"),
363
- `
364
- export type WeirdParams = {
365
- id: string
366
- [Symbol.iterator]?: () => Iterator<string>
367
- }
368
- `
369
- ), writeFileSync(
370
- join(testDir, "models/item.ts"),
371
- `
372
- import { mutations } from 'on-zero'
373
- import type { WeirdParams } from './types'
374
-
375
- export const mutate = mutations({
376
- run: async ({ tx }, params: WeirdParams) => {
377
- await tx.mutate.item.delete({ id: params.id })
378
- },
379
- })
380
- `
381
- ), await generate({ dir: testDir, silent: !0 });
382
- const content = readFileSync(join(testDir, "generated/syncedMutations.ts"), "utf-8");
383
- expect(content).toContain("run"), expect(content).toContain("id: v.string()"), expect(content).not.toContain("__@iterator");
384
- }), test("resolves imported types in query params", async () => {
385
- writeFileSync(
386
- join(testDir, "models/post.ts"),
387
- "export const schema = table('post', { id: string() })"
388
- ), writeFileSync(
389
- join(testDir, "queries/types.ts"),
390
- `
391
- export type PostFilter = {
392
- authorId: string
393
- published: boolean
394
- }
395
- `
396
- ), writeFileSync(
397
- join(testDir, "queries/post.ts"),
398
- `
399
- import type { PostFilter } from './types'
400
-
401
- export const filteredPosts = (filter: PostFilter) => zero.query.post
402
- `
403
- );
404
- const result = await generate({ dir: testDir, silent: !0 }), content = readFileSync(join(testDir, "generated/syncedQueries.ts"), "utf-8");
405
- expect(content).toContain("filteredPosts"), expect(content).toContain("v.object"), expect(content).toContain("authorId"), expect(content).toContain("v.boolean()");
406
- });
407
- });
408
- //# sourceMappingURL=generate.test.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/generate.test.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,25 +0,0 @@
1
- import { sleep } from "@take-out/helpers";
2
- function createBatchQuery(server) {
3
- return async function(buildQuery, mapper, {
4
- chunk,
5
- pause = 0,
6
- stopAfter = 1e5
7
- } = { chunk: 20 }) {
8
- let hasMore = !0, last = null, iterations = 0;
9
- for (; hasMore; ) {
10
- const results = await server.query((q) => {
11
- let query = buildQuery(q).limit(chunk);
12
- return last && (query = query.start(last)), query;
13
- });
14
- if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
15
- console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
16
- break;
17
- }
18
- pause && await sleep(pause);
19
- }
20
- };
21
- }
22
- export {
23
- createBatchQuery
24
- };
25
- //# sourceMappingURL=batchQuery.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/batchQuery.ts"],
4
- "mappings": "AAAA,SAAS,aAAa;AAQf,SAAS,iBAAiB,QAAyB;AACxD,SAAO,eACL,YACA,QACA;AAAA,IACE;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,EACd,IAII,EAAE,OAAO,GAAG,GAChB;AACA,QAAI,UAAU,IACV,OAAoB,MACpB,aAAa;AAEjB,WAAO,WAAS;AACd,YAAM,UAAU,MAAM,OAAO,MAAM,CAAC,MAAW;AAC7C,YAAI,QAAQ,WAAW,CAAC,EAAE,MAAM,KAAK;AAErC,eAAI,SACF,QAAQ,MAAM,MAAM,IAAI,IAGnB;AAAA,MACT,CAAC;AAQD,UANA,MAAM,OAAO,OAAiB,GAE1B,QAAQ,SAAS,UACnB,UAAU,KAGR,aAAa,WAAW;AAC1B,gBAAQ,MAAM,iDAAuC,SAAS,SAAS;AACvE;AAAA,MACF;AAEA,MAAI,SACF,MAAM,MAAM,KAAK;AAAA,IAErB;AAAA,EACF;AACF;",
5
- "names": []
6
- }
@@ -1,96 +0,0 @@
1
- import { mapObject, time } from "@take-out/helpers";
2
- import { getAuthData } from "../state";
3
- import { runWithContext } from "./mutatorContext";
4
- function createMutators({
5
- environment,
6
- authData,
7
- createServerActions,
8
- asyncTasks = [],
9
- can,
10
- models,
11
- validateMutation,
12
- mutationValidators
13
- }) {
14
- const serverActions = createServerActions?.(), modelMutators = mapObject(models, (val) => val.mutate || {});
15
- function withContext(fn) {
16
- return async (tx, ...args) => {
17
- const mutationContext = {
18
- tx,
19
- // on client, read authData dynamically to avoid stale closure during auth transitions
20
- // (ZeroProvider recreates Zero instance in useEffect, but mutations can run before that)
21
- authData: environment === "client" ? getAuthData() : authData,
22
- environment,
23
- can,
24
- server: environment === "server" ? {
25
- actions: serverActions || {},
26
- asyncTasks: asyncTasks || {}
27
- } : void 0
28
- };
29
- return await runWithContext(mutationContext, () => fn(mutationContext, ...args));
30
- };
31
- }
32
- function withDevelopmentLogging(name, fn) {
33
- if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING)
34
- return fn;
35
- const debug = process.env.DEBUG;
36
- return async (...args) => {
37
- const startTime = performance.now();
38
- try {
39
- debug && environment === "server" && console.info(`[mutator] ${name} start`);
40
- const result = await fn(...args), duration = (performance.now() - startTime).toFixed(2);
41
- return debug && (environment === "client" ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`)), result;
42
- } catch (error) {
43
- if (debug) {
44
- const duration = (performance.now() - startTime).toFixed(2);
45
- error?.name === "PermissionError" ? console.info(`[mutator] ${name} denied (${duration}ms)`) : (console.groupCollapsed(`[mutator] ${name} failed after ${duration}ms`), console.error("error:", error), console.info("arguments:", JSON.stringify(args[1], null, 2)), console.groupEnd());
46
- }
47
- throw error;
48
- }
49
- };
50
- }
51
- function withTimeoutGuard(name, fn, timeoutMs = time.ms.minutes(1)) {
52
- return async (...args) => {
53
- const timeoutPromise = new Promise((_, reject) => {
54
- setTimeout(() => {
55
- reject(new Error(`[mutator] ${name} timeout after ${timeoutMs}ms`));
56
- }, timeoutMs);
57
- });
58
- return Promise.race([fn(...args), timeoutPromise]);
59
- };
60
- }
61
- function withValidation(tableName, mutatorName, fn) {
62
- const validator = mutationValidators?.[tableName]?.[mutatorName];
63
- return !validateMutation && !validator ? fn : async (...args) => (validator && args[1] != null && (await import("valibot")).parse(validator, args[1]), validateMutation && await validateMutation({
64
- authData: environment === "client" ? getAuthData() : authData,
65
- tableName,
66
- mutatorName,
67
- args: args[1]
68
- }), fn(...args));
69
- }
70
- function decorateMutators(modules) {
71
- const result = {};
72
- for (const [moduleName, moduleExports] of Object.entries(modules)) {
73
- result[moduleName] = {};
74
- for (const [name] of Object.entries(moduleExports)) {
75
- const fullName = `${moduleName}.${name}`, getDynamicFn = () => modules[moduleName][name];
76
- result[moduleName][name] = withDevelopmentLogging(
77
- fullName,
78
- withTimeoutGuard(
79
- fullName,
80
- withValidation(
81
- moduleName,
82
- name,
83
- withContext((...args) => getDynamicFn()(...args))
84
- )
85
- )
86
- );
87
- }
88
- }
89
- return result;
90
- }
91
- return decorateMutators(modelMutators);
92
- }
93
- export {
94
- createMutators
95
- };
96
- //# sourceMappingURL=createMutators.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/createMutators.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,10 +0,0 @@
1
- import { globalValue } from "@take-out/helpers";
2
- const PermissionCheckRan = globalValue(
3
- "on-zero:permissions-check",
4
- () => /* @__PURE__ */ new WeakMap()
5
- ), getDidRunPermissionCheck = (ctx) => PermissionCheckRan.get(ctx), setDidRunPermissionCheck = (ctx) => PermissionCheckRan.set(ctx, !0);
6
- export {
7
- getDidRunPermissionCheck,
8
- setDidRunPermissionCheck
9
- };
10
- //# sourceMappingURL=didRunPermissionCheck.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/didRunPermissionCheck.ts"],
4
- "mappings": "AAAA,SAAS,mBAAmB;AAI5B,MAAM,qBAAqB;AAAA,EACzB;AAAA,EACA,MAAM,oBAAI,QAAiC;AAC7C,GAEa,2BAA2B,CAAC,QAChC,mBAAmB,IAAI,GAAG,GAGtB,2BAA2B,CAAC,QAChC,mBAAmB,IAAI,KAAK,EAAI;",
5
- "names": []
6
- }
@@ -1,10 +0,0 @@
1
- import { ensure } from "@take-out/helpers";
2
- import { mutatorContext } from "./mutatorContext";
3
- const ensureLoggedIn = () => {
4
- const { authData } = mutatorContext();
5
- return ensure(authData, "logged in"), authData;
6
- };
7
- export {
8
- ensureLoggedIn
9
- };
10
- //# sourceMappingURL=ensureLoggedIn.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/ensureLoggedIn.ts"],
4
- "mappings": "AAAA,SAAS,cAAc;AAEvB,SAAS,sBAAsB;AAIxB,MAAM,iBAAiB,MAAgB;AAC5C,QAAM,EAAE,SAAS,IAAI,eAAe;AACpC,gBAAO,UAAU,WAAW,GACrB;AACT;",
5
- "names": []
6
- }