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,404 +0,0 @@
1
- var import_node_fs = require("node:fs"), import_node_os = require("node:os"), import_node_path = require("node:path"), import_vitest = require("vitest"), import_generate = require("./generate");
2
- const testDir = (0, import_node_path.join)((0, import_node_os.tmpdir)(), "on-zero-test-" + Date.now());
3
- (0, import_vitest.beforeEach)(() => {
4
- (0, import_node_fs.mkdirSync)((0, import_node_path.join)(testDir, "models"), { recursive: !0 }), (0, import_node_fs.mkdirSync)((0, import_node_path.join)(testDir, "queries"), { recursive: !0 });
5
- });
6
- (0, import_vitest.afterEach)(() => {
7
- (0, import_node_fs.rmSync)(testDir, { recursive: !0, force: !0 });
8
- });
9
- (0, import_vitest.describe)("generate", () => {
10
- (0, import_vitest.test)("generates models.ts, types.ts, tables.ts from model files", async () => {
11
- (0, import_node_fs.writeFileSync)(
12
- (0, import_node_path.join)(testDir, "models/post.ts"),
13
- `
14
- import { table, string, boolean } from 'on-zero'
15
-
16
- export const schema = table('post', {
17
- id: string(),
18
- title: string(),
19
- published: boolean(),
20
- })
21
- `
22
- ), (0, import_node_fs.writeFileSync)(
23
- (0, import_node_path.join)(testDir, "models/comment.ts"),
24
- `
25
- import { table, string } from 'on-zero'
26
-
27
- export const schema = table('comment', {
28
- id: string(),
29
- postId: string(),
30
- body: string(),
31
- })
32
- `
33
- );
34
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 });
35
- (0, import_vitest.expect)(result.modelCount).toBe(2), (0, import_vitest.expect)(result.schemaCount).toBe(2), (0, import_vitest.expect)(result.filesChanged).toBeGreaterThan(0), (0, import_vitest.expect)((0, import_node_fs.existsSync)((0, import_node_path.join)(testDir, "generated/models.ts"))).toBe(!0), (0, import_vitest.expect)((0, import_node_fs.existsSync)((0, import_node_path.join)(testDir, "generated/types.ts"))).toBe(!0), (0, import_vitest.expect)((0, import_node_fs.existsSync)((0, import_node_path.join)(testDir, "generated/tables.ts"))).toBe(!0);
36
- const modelsContent = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/models.ts"), "utf-8");
37
- (0, import_vitest.expect)(modelsContent).toContain("import * as comment from '../models/comment'"), (0, import_vitest.expect)(modelsContent).toContain("import * as post from '../models/post'"), (0, import_vitest.expect)(modelsContent).toContain("export const models = {");
38
- const typesContent = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/types.ts"), "utf-8");
39
- (0, import_vitest.expect)(typesContent).toContain(
40
- "export type Post = TableInsertRow<typeof schema.post>"
41
- ), (0, import_vitest.expect)(typesContent).toContain(
42
- "export type Comment = TableInsertRow<typeof schema.comment>"
43
- );
44
- const tablesContent = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/tables.ts"), "utf-8");
45
- (0, import_vitest.expect)(tablesContent).toContain("export { schema as post } from '../models/post'"), (0, import_vitest.expect)(tablesContent).toContain(
46
- "export { schema as comment } from '../models/comment'"
47
- );
48
- }), (0, import_vitest.test)("generates query validators from query files", async () => {
49
- (0, import_node_fs.writeFileSync)(
50
- (0, import_node_path.join)(testDir, "models/post.ts"),
51
- "export const schema = table('post', { id: string() })"
52
- ), (0, import_node_fs.writeFileSync)(
53
- (0, import_node_path.join)(testDir, "queries/post.ts"),
54
- `
55
- import { zero } from '../zero'
56
-
57
- export const allPosts = () => zero.query.post
58
-
59
- export const postById = ({ id }: { id: string }) => zero.query.post.where('id', id)
60
-
61
- export const postsByAuthor = ({ authorId, limit }: { authorId: string; limit?: number }) =>
62
- zero.query.post.where('authorId', authorId).limit(limit ?? 10)
63
- `
64
- );
65
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 });
66
- (0, import_vitest.expect)(result.queryCount).toBe(3), (0, import_vitest.expect)((0, import_node_fs.existsSync)((0, import_node_path.join)(testDir, "generated/groupedQueries.ts"))).toBe(!0), (0, import_vitest.expect)((0, import_node_fs.existsSync)((0, import_node_path.join)(testDir, "generated/syncedQueries.ts"))).toBe(!0);
67
- const groupedContent = (0, import_node_fs.readFileSync)(
68
- (0, import_node_path.join)(testDir, "generated/groupedQueries.ts"),
69
- "utf-8"
70
- );
71
- (0, import_vitest.expect)(groupedContent).toContain("export * as post from '../queries/post'");
72
- const syncedContent = (0, import_node_fs.readFileSync)(
73
- (0, import_node_path.join)(testDir, "generated/syncedQueries.ts"),
74
- "utf-8"
75
- );
76
- (0, import_vitest.expect)(syncedContent).toContain("allPosts: defineQuery"), (0, import_vitest.expect)(syncedContent).toContain("postById: defineQuery"), (0, import_vitest.expect)(syncedContent).toContain("postsByAuthor: defineQuery"), (0, import_vitest.expect)(syncedContent).toContain("v.object");
77
- }), (0, import_vitest.test)("skips permission exports in queries", async () => {
78
- (0, import_node_fs.writeFileSync)(
79
- (0, import_node_path.join)(testDir, "models/post.ts"),
80
- "export const schema = table('post', { id: string() })"
81
- ), (0, import_node_fs.writeFileSync)(
82
- (0, import_node_path.join)(testDir, "queries/post.ts"),
83
- `
84
- export const permission = () => ({ canRead: true })
85
- export const allPosts = () => zero.query.post
86
- `
87
- );
88
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 });
89
- (0, import_vitest.expect)(result.queryCount).toBe(1);
90
- const syncedContent = (0, import_node_fs.readFileSync)(
91
- (0, import_node_path.join)(testDir, "generated/syncedQueries.ts"),
92
- "utf-8"
93
- );
94
- (0, import_vitest.expect)(syncedContent).toContain("allPosts"), (0, import_vitest.expect)(syncedContent).not.toContain("permission:");
95
- }), (0, import_vitest.test)("handles user model special case (userPublic)", async () => {
96
- (0, import_node_fs.writeFileSync)(
97
- (0, import_node_path.join)(testDir, "models/user.ts"),
98
- "export const schema = table('user', { id: string(), name: string() })"
99
- ), await (0, import_generate.generate)({ dir: testDir, silent: !0 });
100
- const modelsContent = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/models.ts"), "utf-8");
101
- (0, import_vitest.expect)(modelsContent).toContain("import * as userPublic from '../models/user'"), (0, import_vitest.expect)(modelsContent).toContain("userPublic,");
102
- const typesContent = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/types.ts"), "utf-8");
103
- (0, import_vitest.expect)(typesContent).toContain("typeof schema.userPublic");
104
- }), (0, import_vitest.test)("runs after command when files change", async () => {
105
- (0, import_node_fs.writeFileSync)(
106
- (0, import_node_path.join)(testDir, "models/post.ts"),
107
- "export const schema = table('post', { id: string() })"
108
- );
109
- const markerFile = (0, import_node_path.join)(testDir, "after-ran"), result = await (0, import_generate.generate)({
110
- dir: testDir,
111
- silent: !0,
112
- after: `touch ${markerFile}`
113
- });
114
- (0, import_vitest.expect)(result.filesChanged).toBeGreaterThan(0), (0, import_vitest.expect)((0, import_node_fs.existsSync)(markerFile)).toBe(!0);
115
- }), (0, import_vitest.test)("does not regenerate when nothing changed", async () => {
116
- (0, import_node_fs.writeFileSync)(
117
- (0, import_node_path.join)(testDir, "models/post.ts"),
118
- "export const schema = table('post', { id: string() })"
119
- );
120
- const first = await (0, import_generate.generate)({ dir: testDir, silent: !0 });
121
- (0, import_vitest.expect)(first.filesChanged).toBeGreaterThan(0);
122
- const second = await (0, import_generate.generate)({ dir: testDir, silent: !0 });
123
- (0, import_vitest.expect)(second.filesChanged).toBe(0);
124
- });
125
- });
126
- (0, import_vitest.describe)("mutations", () => {
127
- (0, import_vitest.test)("generates validators for inline mutation param types", async () => {
128
- (0, import_node_fs.writeFileSync)(
129
- (0, import_node_path.join)(testDir, "models/post.ts"),
130
- `
131
- import { table, string } from 'on-zero'
132
- import { mutations, serverWhere } from 'on-zero'
133
-
134
- export const schema = table('post').columns({
135
- id: string(),
136
- title: string(),
137
- }).primaryKey('id')
138
-
139
- const perm = serverWhere('post', () => true)
140
-
141
- export const mutate = mutations(schema, perm, {
142
- archive: async ({ tx }, { id, reason }: { id: string; reason: string }) => {
143
- await tx.mutate.post.update({ id, archived: true })
144
- },
145
- })
146
- `
147
- );
148
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 });
149
- (0, import_vitest.expect)(result.mutationCount).toBeGreaterThan(0), (0, import_vitest.expect)((0, import_node_fs.existsSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"))).toBe(!0);
150
- const content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
151
- (0, import_vitest.expect)(content).toContain("archive"), (0, import_vitest.expect)(content).toContain("v.object"), (0, import_vitest.expect)(content).toContain("v.string()");
152
- }), (0, import_vitest.test)("generates CRUD validators from schema columns", async () => {
153
- (0, import_node_fs.writeFileSync)(
154
- (0, import_node_path.join)(testDir, "models/task.ts"),
155
- `
156
- import { table, string, number, boolean } from 'on-zero'
157
- import { mutations, serverWhere } from 'on-zero'
158
-
159
- export const schema = table('task').columns({
160
- id: string(),
161
- title: string(),
162
- priority: number(),
163
- done: boolean(),
164
- note: string().optional(),
165
- }).primaryKey('id')
166
-
167
- const perm = serverWhere('task', () => true)
168
-
169
- export const mutate = mutations(schema, perm)
170
- `
171
- );
172
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 }), content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
173
- (0, import_vitest.expect)(content).toContain("insert:"), (0, import_vitest.expect)(content).toMatch(/insert:.*v\.object/), (0, import_vitest.expect)(content).toContain("update:"), (0, import_vitest.expect)(content).toContain("delete:");
174
- }), (0, import_vitest.test)("treats models without export const mutate as empty mutations", async () => {
175
- (0, import_node_fs.writeFileSync)(
176
- (0, import_node_path.join)(testDir, "models/readonly.ts"),
177
- `
178
- import { table, string } from 'on-zero'
179
-
180
- export const schema = table('readonly').columns({
181
- id: string(),
182
- name: string(),
183
- }).primaryKey('id')
184
- `
185
- );
186
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 });
187
- (0, import_vitest.expect)(result.mutationCount).toBe(0);
188
- const content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
189
- (0, import_vitest.expect)(content).toContain("readonly: {");
190
- }), (0, import_vitest.test)("extracts custom mutations from bare mutations({})", async () => {
191
- (0, import_node_fs.writeFileSync)(
192
- (0, import_node_path.join)(testDir, "models/admin.ts"),
193
- `
194
- import { mutations } from 'on-zero'
195
-
196
- export const mutate = mutations({
197
- reset: async ({ tx }, { targetId }: { targetId: string }) => {
198
- await tx.mutate.admin.delete({ id: targetId })
199
- },
200
- })
201
- `
202
- );
203
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 }), content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
204
- (0, import_vitest.expect)(content).toContain("reset"), (0, import_vitest.expect)(content).toContain("v.string()");
205
- }), (0, import_vitest.test)("handles mutations with only context param (void)", async () => {
206
- (0, import_node_fs.writeFileSync)(
207
- (0, import_node_path.join)(testDir, "models/user.ts"),
208
- `
209
- import { table, string } from 'on-zero'
210
- import { mutations, serverWhere } from 'on-zero'
211
-
212
- export const schema = table('user').columns({
213
- id: string(),
214
- name: string(),
215
- }).primaryKey('id')
216
-
217
- const perm = serverWhere('user', () => true)
218
-
219
- export const mutate = mutations(schema, perm, {
220
- finishOnboarding: async ({ tx }) => {
221
- // no second param
222
- },
223
- })
224
- `
225
- );
226
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 }), content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
227
- (0, import_vitest.expect)(content).toContain("finishOnboarding");
228
- }), (0, import_vitest.test)("handles primitive param type", async () => {
229
- (0, import_node_fs.writeFileSync)(
230
- (0, import_node_path.join)(testDir, "models/user.ts"),
231
- `
232
- import { table, string } from 'on-zero'
233
- import { mutations, serverWhere } from 'on-zero'
234
-
235
- export const schema = table('user').columns({
236
- id: string(),
237
- name: string(),
238
- }).primaryKey('id')
239
-
240
- const perm = serverWhere('user', () => true)
241
-
242
- export const mutate = mutations(schema, perm, {
243
- completeSignup: async ({ tx }, userId: string) => {
244
- await tx.mutate.user.update({ id: userId })
245
- },
246
- })
247
- `
248
- );
249
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 }), content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
250
- (0, import_vitest.expect)(content).toContain("completeSignup"), (0, import_vitest.expect)(content).toContain("v.string()");
251
- }), (0, import_vitest.test)("handles array param type", async () => {
252
- (0, import_node_fs.writeFileSync)(
253
- (0, import_node_path.join)(testDir, "models/batch.ts"),
254
- `
255
- import { mutations } from 'on-zero'
256
-
257
- export const mutate = mutations({
258
- bulkDelete: async ({ tx }, ids: Array<{ id: string }>) => {
259
- for (const { id } of ids) await tx.mutate.batch.delete({ id })
260
- },
261
- })
262
- `
263
- );
264
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 }), content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
265
- (0, import_vitest.expect)(content).toContain("bulkDelete"), (0, import_vitest.expect)(content).toContain("v.array");
266
- }), (0, import_vitest.test)("populates mutationCount and caching works", async () => {
267
- (0, import_node_fs.writeFileSync)(
268
- (0, import_node_path.join)(testDir, "models/item.ts"),
269
- `
270
- import { table, string } from 'on-zero'
271
- import { mutations, serverWhere } from 'on-zero'
272
-
273
- export const schema = table('item').columns({
274
- id: string(),
275
- name: string(),
276
- }).primaryKey('id')
277
-
278
- const perm = serverWhere('item', () => true)
279
-
280
- export const mutate = mutations(schema, perm, {
281
- rename: async ({ tx }, { id, name }: { id: string; name: string }) => {
282
- await tx.mutate.item.update({ id, name })
283
- },
284
- })
285
- `
286
- );
287
- const first = await (0, import_generate.generate)({ dir: testDir, silent: !0 });
288
- (0, import_vitest.expect)(first.mutationCount).toBeGreaterThan(0);
289
- const second = await (0, import_generate.generate)({ dir: testDir, silent: !0 });
290
- (0, import_vitest.expect)(second.filesChanged).toBe(0), (0, import_vitest.expect)(second.mutationCount).toBe(first.mutationCount);
291
- });
292
- });
293
- (0, import_vitest.describe)("type resolution", () => {
294
- (0, import_vitest.test)("resolves imported type references for mutations", async () => {
295
- (0, import_node_fs.writeFileSync)(
296
- (0, import_node_path.join)(testDir, "models/types.ts"),
297
- `
298
- export type ArchiveParams = {
299
- id: string
300
- reason: string
301
- archived: boolean
302
- }
303
- `
304
- ), (0, import_node_fs.writeFileSync)(
305
- (0, import_node_path.join)(testDir, "models/post.ts"),
306
- `
307
- import { table, string, boolean } from 'on-zero'
308
- import { mutations } from 'on-zero'
309
- import type { ArchiveParams } from './types'
310
-
311
- export const mutate = mutations({
312
- archive: async ({ tx }, params: ArchiveParams) => {
313
- await tx.mutate.post.update(params)
314
- },
315
- })
316
- `
317
- );
318
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 }), content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
319
- (0, import_vitest.expect)(content).toContain("v.string()"), (0, import_vitest.expect)(content).toContain("v.boolean()"), (0, import_vitest.expect)(content).toContain("reason"), (0, import_vitest.expect)(content).toContain("archived");
320
- }), (0, import_vitest.test)("resolves utility types like Pick", async () => {
321
- (0, import_node_fs.writeFileSync)(
322
- (0, import_node_path.join)(testDir, "models/types.ts"),
323
- `
324
- export type Item = {
325
- id: string
326
- name: string
327
- description: string
328
- count: number
329
- }
330
- `
331
- ), (0, import_node_fs.writeFileSync)(
332
- (0, import_node_path.join)(testDir, "models/item.ts"),
333
- `
334
- import { table, string, number } from 'on-zero'
335
- import { mutations, serverWhere } from 'on-zero'
336
- import type { Item } from './types'
337
-
338
- export const schema = table('item').columns({
339
- id: string(),
340
- name: string(),
341
- description: string(),
342
- count: number(),
343
- }).primaryKey('id')
344
-
345
- const perm = serverWhere('item', () => true)
346
-
347
- export const mutate = mutations(schema, perm, {
348
- rename: async ({ tx }, updates: Pick<Item, 'id' | 'name'>) => {
349
- await tx.mutate.item.update(updates)
350
- },
351
- })
352
- `
353
- );
354
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 }), content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
355
- (0, import_vitest.expect)(content).toContain("id"), (0, import_vitest.expect)(content).toContain("name"), (0, import_vitest.expect)(content).not.toMatch(/rename:[\s\S]*description/), (0, import_vitest.expect)(content).not.toMatch(/rename:[\s\S]*count/);
356
- }), (0, import_vitest.test)("skips symbol-keyed properties when resolving imported mutation param types", async () => {
357
- (0, import_node_fs.writeFileSync)(
358
- (0, import_node_path.join)(testDir, "models/types.ts"),
359
- `
360
- export type WeirdParams = {
361
- id: string
362
- [Symbol.iterator]?: () => Iterator<string>
363
- }
364
- `
365
- ), (0, import_node_fs.writeFileSync)(
366
- (0, import_node_path.join)(testDir, "models/item.ts"),
367
- `
368
- import { mutations } from 'on-zero'
369
- import type { WeirdParams } from './types'
370
-
371
- export const mutate = mutations({
372
- run: async ({ tx }, params: WeirdParams) => {
373
- await tx.mutate.item.delete({ id: params.id })
374
- },
375
- })
376
- `
377
- ), await (0, import_generate.generate)({ dir: testDir, silent: !0 });
378
- const content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedMutations.ts"), "utf-8");
379
- (0, import_vitest.expect)(content).toContain("run"), (0, import_vitest.expect)(content).toContain("id: v.string()"), (0, import_vitest.expect)(content).not.toContain("__@iterator");
380
- }), (0, import_vitest.test)("resolves imported types in query params", async () => {
381
- (0, import_node_fs.writeFileSync)(
382
- (0, import_node_path.join)(testDir, "models/post.ts"),
383
- "export const schema = table('post', { id: string() })"
384
- ), (0, import_node_fs.writeFileSync)(
385
- (0, import_node_path.join)(testDir, "queries/types.ts"),
386
- `
387
- export type PostFilter = {
388
- authorId: string
389
- published: boolean
390
- }
391
- `
392
- ), (0, import_node_fs.writeFileSync)(
393
- (0, import_node_path.join)(testDir, "queries/post.ts"),
394
- `
395
- import type { PostFilter } from './types'
396
-
397
- export const filteredPosts = (filter: PostFilter) => zero.query.post
398
- `
399
- );
400
- const result = await (0, import_generate.generate)({ dir: testDir, silent: !0 }), content = (0, import_node_fs.readFileSync)((0, import_node_path.join)(testDir, "generated/syncedQueries.ts"), "utf-8");
401
- (0, import_vitest.expect)(content).toContain("filteredPosts"), (0, import_vitest.expect)(content).toContain("v.object"), (0, import_vitest.expect)(content).toContain("authorId"), (0, import_vitest.expect)(content).toContain("v.boolean()");
402
- });
403
- });
404
- //# 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,41 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: !0 });
8
- }, __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from == "object" || typeof from == "function")
10
- for (let key of __getOwnPropNames(from))
11
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
- var batchQuery_exports = {};
16
- __export(batchQuery_exports, {
17
- createBatchQuery: () => createBatchQuery
18
- });
19
- module.exports = __toCommonJS(batchQuery_exports);
20
- var import_helpers = require("@take-out/helpers");
21
- function createBatchQuery(server) {
22
- return async function(buildQuery, mapper, {
23
- chunk,
24
- pause = 0,
25
- stopAfter = 1e5
26
- } = { chunk: 20 }) {
27
- let hasMore = !0, last = null, iterations = 0;
28
- for (; hasMore; ) {
29
- const results = await server.query((q) => {
30
- let query = buildQuery(q).limit(chunk);
31
- return last && (query = query.start(last)), query;
32
- });
33
- if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
34
- console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
35
- break;
36
- }
37
- pause && await (0, import_helpers.sleep)(pause);
38
- }
39
- };
40
- }
41
- //# sourceMappingURL=batchQuery.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/helpers/batchQuery.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsB;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,UAAM,sBAAM,KAAK;AAAA,IAErB;AAAA,EACF;AACF;",
5
- "names": []
6
- }
@@ -1,118 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: !0 });
9
- }, __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from == "object" || typeof from == "function")
11
- for (let key of __getOwnPropNames(from))
12
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- return to;
14
- };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
- mod
22
- )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
- var createMutators_exports = {};
24
- __export(createMutators_exports, {
25
- createMutators: () => createMutators
26
- });
27
- module.exports = __toCommonJS(createMutators_exports);
28
- var import_helpers = require("@take-out/helpers"), import_state = require("../state"), import_mutatorContext = require("./mutatorContext");
29
- function createMutators({
30
- environment,
31
- authData,
32
- createServerActions,
33
- asyncTasks = [],
34
- can,
35
- models,
36
- validateMutation,
37
- mutationValidators
38
- }) {
39
- const serverActions = createServerActions?.(), modelMutators = (0, import_helpers.mapObject)(models, (val) => val.mutate || {});
40
- function withContext(fn) {
41
- return async (tx, ...args) => {
42
- const mutationContext = {
43
- tx,
44
- // on client, read authData dynamically to avoid stale closure during auth transitions
45
- // (ZeroProvider recreates Zero instance in useEffect, but mutations can run before that)
46
- authData: environment === "client" ? (0, import_state.getAuthData)() : authData,
47
- environment,
48
- can,
49
- server: environment === "server" ? {
50
- actions: serverActions || {},
51
- asyncTasks: asyncTasks || {}
52
- } : void 0
53
- };
54
- return await (0, import_mutatorContext.runWithContext)(mutationContext, () => fn(mutationContext, ...args));
55
- };
56
- }
57
- function withDevelopmentLogging(name, fn) {
58
- if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING)
59
- return fn;
60
- const debug = process.env.DEBUG;
61
- return async (...args) => {
62
- const startTime = performance.now();
63
- try {
64
- debug && environment === "server" && console.info(`[mutator] ${name} start`);
65
- const result = await fn(...args), duration = (performance.now() - startTime).toFixed(2);
66
- 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;
67
- } catch (error) {
68
- if (debug) {
69
- const duration = (performance.now() - startTime).toFixed(2);
70
- 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());
71
- }
72
- throw error;
73
- }
74
- };
75
- }
76
- function withTimeoutGuard(name, fn, timeoutMs = import_helpers.time.ms.minutes(1)) {
77
- return async (...args) => {
78
- const timeoutPromise = new Promise((_, reject) => {
79
- setTimeout(() => {
80
- reject(new Error(`[mutator] ${name} timeout after ${timeoutMs}ms`));
81
- }, timeoutMs);
82
- });
83
- return Promise.race([fn(...args), timeoutPromise]);
84
- };
85
- }
86
- function withValidation(tableName, mutatorName, fn) {
87
- const validator = mutationValidators?.[tableName]?.[mutatorName];
88
- return !validateMutation && !validator ? fn : async (...args) => (validator && args[1] != null && (await import("valibot")).parse(validator, args[1]), validateMutation && await validateMutation({
89
- authData: environment === "client" ? (0, import_state.getAuthData)() : authData,
90
- tableName,
91
- mutatorName,
92
- args: args[1]
93
- }), fn(...args));
94
- }
95
- function decorateMutators(modules) {
96
- const result = {};
97
- for (const [moduleName, moduleExports] of Object.entries(modules)) {
98
- result[moduleName] = {};
99
- for (const [name] of Object.entries(moduleExports)) {
100
- const fullName = `${moduleName}.${name}`, getDynamicFn = () => modules[moduleName][name];
101
- result[moduleName][name] = withDevelopmentLogging(
102
- fullName,
103
- withTimeoutGuard(
104
- fullName,
105
- withValidation(
106
- moduleName,
107
- name,
108
- withContext((...args) => getDynamicFn()(...args))
109
- )
110
- )
111
- );
112
- }
113
- }
114
- return result;
115
- }
116
- return decorateMutators(modelMutators);
117
- }
118
- //# sourceMappingURL=createMutators.js.map