on-zero 0.4.3 → 0.4.4

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 (249) hide show
  1. package/dist/cjs/cli.cjs +46 -41
  2. package/dist/cjs/cli.native.js +48 -43
  3. package/dist/cjs/cli.native.js.map +1 -1
  4. package/dist/cjs/constants.cjs +14 -12
  5. package/dist/cjs/constants.native.js +14 -12
  6. package/dist/cjs/constants.native.js.map +1 -1
  7. package/dist/cjs/createPermissions.cjs +66 -34
  8. package/dist/cjs/createPermissions.native.js +143 -87
  9. package/dist/cjs/createPermissions.native.js.map +1 -1
  10. package/dist/cjs/createSchemaFromDrizzle.cjs +15 -13
  11. package/dist/cjs/createSchemaFromDrizzle.native.js +15 -13
  12. package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
  13. package/dist/cjs/createUseQuery.cjs +48 -35
  14. package/dist/cjs/createUseQuery.native.js +52 -38
  15. package/dist/cjs/createUseQuery.native.js.map +1 -1
  16. package/dist/cjs/createZeroClient.cjs +177 -135
  17. package/dist/cjs/createZeroClient.native.js +246 -195
  18. package/dist/cjs/createZeroClient.native.js.map +1 -1
  19. package/dist/cjs/createZeroServer.cjs +175 -129
  20. package/dist/cjs/createZeroServer.native.js +170 -138
  21. package/dist/cjs/createZeroServer.native.js.map +1 -1
  22. package/dist/cjs/generate-helpers.cjs +122 -88
  23. package/dist/cjs/generate-helpers.native.js +209 -174
  24. package/dist/cjs/generate-helpers.native.js.map +1 -1
  25. package/dist/cjs/generate-lite.cjs +90 -58
  26. package/dist/cjs/generate-lite.native.js +200 -140
  27. package/dist/cjs/generate-lite.native.js.map +1 -1
  28. package/dist/cjs/generate-lite.test.cjs +229 -192
  29. package/dist/cjs/generate-lite.test.native.js +229 -194
  30. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  31. package/dist/cjs/generate.cjs +455 -291
  32. package/dist/cjs/generate.native.js +747 -565
  33. package/dist/cjs/generate.native.js.map +1 -1
  34. package/dist/cjs/generate.test.cjs +170 -106
  35. package/dist/cjs/generate.test.native.js +171 -107
  36. package/dist/cjs/generate.test.native.js.map +1 -1
  37. package/dist/cjs/helpers/batchQuery.cjs +29 -18
  38. package/dist/cjs/helpers/batchQuery.native.js +36 -21
  39. package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
  40. package/dist/cjs/helpers/clearZeroClientData.cjs +30 -21
  41. package/dist/cjs/helpers/clearZeroClientData.native.js +42 -33
  42. package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
  43. package/dist/cjs/helpers/createMutators.cjs +80 -42
  44. package/dist/cjs/helpers/createMutators.native.js +139 -87
  45. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  46. package/dist/cjs/helpers/didRunPermissionCheck.cjs +19 -13
  47. package/dist/cjs/helpers/didRunPermissionCheck.native.js +22 -20
  48. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
  49. package/dist/cjs/helpers/ensureLoggedIn.cjs +16 -13
  50. package/dist/cjs/helpers/ensureLoggedIn.native.js +21 -18
  51. package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
  52. package/dist/cjs/helpers/getAuth.cjs +25 -15
  53. package/dist/cjs/helpers/getAuth.native.js +25 -15
  54. package/dist/cjs/helpers/getAuth.native.js.map +1 -1
  55. package/dist/cjs/helpers/mutatorContext.cjs +21 -14
  56. package/dist/cjs/helpers/mutatorContext.native.js +21 -15
  57. package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
  58. package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +126 -81
  59. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +135 -92
  60. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  61. package/dist/cjs/helpers/queryContext.cjs +12 -10
  62. package/dist/cjs/helpers/queryContext.native.js +16 -13
  63. package/dist/cjs/helpers/queryContext.native.js.map +1 -1
  64. package/dist/cjs/helpers/showZeroClientError.cjs +24 -19
  65. package/dist/cjs/helpers/showZeroClientError.native.js +38 -34
  66. package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
  67. package/dist/cjs/helpers/useZeroDebug.cjs +82 -49
  68. package/dist/cjs/helpers/useZeroDebug.native.js +83 -55
  69. package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
  70. package/dist/cjs/index.cjs +17 -15
  71. package/dist/cjs/index.native.js +17 -15
  72. package/dist/cjs/index.native.js.map +1 -1
  73. package/dist/cjs/modelRegistry.cjs +12 -10
  74. package/dist/cjs/modelRegistry.native.js +12 -10
  75. package/dist/cjs/modelRegistry.native.js.map +1 -1
  76. package/dist/cjs/mutations.cjs +66 -42
  77. package/dist/cjs/mutations.native.js +68 -46
  78. package/dist/cjs/mutations.native.js.map +1 -1
  79. package/dist/cjs/queryRegistry.cjs +13 -10
  80. package/dist/cjs/queryRegistry.native.js +14 -11
  81. package/dist/cjs/queryRegistry.native.js.map +1 -1
  82. package/dist/cjs/resolveQuery.cjs +22 -18
  83. package/dist/cjs/resolveQuery.native.js +32 -28
  84. package/dist/cjs/resolveQuery.native.js.map +1 -1
  85. package/dist/cjs/run.cjs +35 -28
  86. package/dist/cjs/run.native.js +35 -29
  87. package/dist/cjs/run.native.js.map +1 -1
  88. package/dist/cjs/server.cjs +7 -5
  89. package/dist/cjs/serverWhere.cjs +13 -11
  90. package/dist/cjs/serverWhere.native.js +13 -11
  91. package/dist/cjs/serverWhere.native.js.map +1 -1
  92. package/dist/cjs/serverWhere.test.cjs +83 -55
  93. package/dist/cjs/serverWhere.test.native.js +72 -50
  94. package/dist/cjs/serverWhere.test.native.js.map +1 -1
  95. package/dist/cjs/state.cjs +49 -44
  96. package/dist/cjs/state.native.js +56 -53
  97. package/dist/cjs/state.native.js.map +1 -1
  98. package/dist/cjs/types.cjs +7 -5
  99. package/dist/cjs/types.native.js +7 -5
  100. package/dist/cjs/types.native.js.map +1 -1
  101. package/dist/cjs/usePermission.test.cjs +58 -45
  102. package/dist/cjs/usePermission.test.native.js +59 -48
  103. package/dist/cjs/usePermission.test.native.js.map +1 -1
  104. package/dist/cjs/vite-plugin.cjs +41 -21
  105. package/dist/cjs/vite-plugin.native.js +61 -47
  106. package/dist/cjs/vite-plugin.native.js.map +1 -1
  107. package/dist/cjs/where.cjs +39 -24
  108. package/dist/cjs/where.native.js +44 -29
  109. package/dist/cjs/where.native.js.map +1 -1
  110. package/dist/cjs/zeroRunner.cjs +18 -12
  111. package/dist/cjs/zeroRunner.native.js +22 -16
  112. package/dist/cjs/zeroRunner.native.js.map +1 -1
  113. package/dist/cjs/zql.cjs +14 -11
  114. package/dist/cjs/zql.native.js +19 -17
  115. package/dist/cjs/zql.native.js.map +1 -1
  116. package/dist/esm/cli.mjs +43 -38
  117. package/dist/esm/cli.mjs.map +1 -1
  118. package/dist/esm/cli.native.js +44 -39
  119. package/dist/esm/cli.native.js.map +1 -1
  120. package/dist/esm/constants.mjs +2 -2
  121. package/dist/esm/constants.mjs.map +1 -1
  122. package/dist/esm/constants.native.js +2 -2
  123. package/dist/esm/constants.native.js.map +1 -1
  124. package/dist/esm/createPermissions.mjs +48 -18
  125. package/dist/esm/createPermissions.mjs.map +1 -1
  126. package/dist/esm/createPermissions.native.js +125 -71
  127. package/dist/esm/createPermissions.native.js.map +1 -1
  128. package/dist/esm/createUseQuery.mjs +32 -21
  129. package/dist/esm/createUseQuery.mjs.map +1 -1
  130. package/dist/esm/createUseQuery.native.js +36 -24
  131. package/dist/esm/createUseQuery.native.js.map +1 -1
  132. package/dist/esm/createZeroClient.mjs +148 -108
  133. package/dist/esm/createZeroClient.mjs.map +1 -1
  134. package/dist/esm/createZeroClient.native.js +217 -168
  135. package/dist/esm/createZeroClient.native.js.map +1 -1
  136. package/dist/esm/createZeroServer.mjs +148 -104
  137. package/dist/esm/createZeroServer.mjs.map +1 -1
  138. package/dist/esm/createZeroServer.native.js +143 -113
  139. package/dist/esm/createZeroServer.native.js.map +1 -1
  140. package/dist/esm/generate-helpers.mjs +110 -78
  141. package/dist/esm/generate-helpers.mjs.map +1 -1
  142. package/dist/esm/generate-helpers.native.js +197 -164
  143. package/dist/esm/generate-helpers.native.js.map +1 -1
  144. package/dist/esm/generate-lite.mjs +78 -48
  145. package/dist/esm/generate-lite.mjs.map +1 -1
  146. package/dist/esm/generate-lite.native.js +188 -130
  147. package/dist/esm/generate-lite.native.js.map +1 -1
  148. package/dist/esm/generate-lite.test.mjs +227 -190
  149. package/dist/esm/generate-lite.test.mjs.map +1 -1
  150. package/dist/esm/generate-lite.test.native.js +227 -192
  151. package/dist/esm/generate-lite.test.native.js.map +1 -1
  152. package/dist/esm/generate.mjs +427 -265
  153. package/dist/esm/generate.mjs.map +1 -1
  154. package/dist/esm/generate.native.js +718 -538
  155. package/dist/esm/generate.native.js.map +1 -1
  156. package/dist/esm/generate.test.mjs +165 -101
  157. package/dist/esm/generate.test.mjs.map +1 -1
  158. package/dist/esm/generate.test.native.js +165 -101
  159. package/dist/esm/generate.test.native.js.map +1 -1
  160. package/dist/esm/helpers/batchQuery.mjs +17 -8
  161. package/dist/esm/helpers/batchQuery.mjs.map +1 -1
  162. package/dist/esm/helpers/batchQuery.native.js +24 -11
  163. package/dist/esm/helpers/batchQuery.native.js.map +1 -1
  164. package/dist/esm/helpers/clearZeroClientData.mjs +18 -11
  165. package/dist/esm/helpers/clearZeroClientData.mjs.map +1 -1
  166. package/dist/esm/helpers/clearZeroClientData.native.js +30 -23
  167. package/dist/esm/helpers/clearZeroClientData.native.js.map +1 -1
  168. package/dist/esm/helpers/createMutators.mjs +53 -17
  169. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  170. package/dist/esm/helpers/createMutators.native.js +112 -62
  171. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  172. package/dist/esm/helpers/didRunPermissionCheck.mjs +7 -3
  173. package/dist/esm/helpers/didRunPermissionCheck.mjs.map +1 -1
  174. package/dist/esm/helpers/didRunPermissionCheck.native.js +9 -9
  175. package/dist/esm/helpers/didRunPermissionCheck.native.js.map +1 -1
  176. package/dist/esm/helpers/ensureLoggedIn.mjs +2 -1
  177. package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -1
  178. package/dist/esm/helpers/ensureLoggedIn.native.js +2 -1
  179. package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
  180. package/dist/esm/helpers/getAuth.mjs +10 -2
  181. package/dist/esm/helpers/getAuth.mjs.map +1 -1
  182. package/dist/esm/helpers/getAuth.native.js +10 -2
  183. package/dist/esm/helpers/getAuth.native.js.map +1 -1
  184. package/dist/esm/helpers/mutatorContext.mjs +9 -4
  185. package/dist/esm/helpers/mutatorContext.mjs.map +1 -1
  186. package/dist/esm/helpers/mutatorContext.native.js +8 -4
  187. package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
  188. package/dist/esm/helpers/prettyFormatZeroQuery.mjs +114 -71
  189. package/dist/esm/helpers/prettyFormatZeroQuery.mjs.map +1 -1
  190. package/dist/esm/helpers/prettyFormatZeroQuery.native.js +121 -80
  191. package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  192. package/dist/esm/helpers/queryContext.native.js +2 -1
  193. package/dist/esm/helpers/queryContext.native.js.map +1 -1
  194. package/dist/esm/helpers/showZeroClientError.mjs +12 -9
  195. package/dist/esm/helpers/showZeroClientError.mjs.map +1 -1
  196. package/dist/esm/helpers/showZeroClientError.native.js +25 -23
  197. package/dist/esm/helpers/showZeroClientError.native.js.map +1 -1
  198. package/dist/esm/helpers/useZeroDebug.mjs +67 -36
  199. package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
  200. package/dist/esm/helpers/useZeroDebug.native.js +68 -42
  201. package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
  202. package/dist/esm/mutations.mjs +51 -29
  203. package/dist/esm/mutations.mjs.map +1 -1
  204. package/dist/esm/mutations.native.js +53 -33
  205. package/dist/esm/mutations.native.js.map +1 -1
  206. package/dist/esm/queryRegistry.mjs +1 -0
  207. package/dist/esm/queryRegistry.mjs.map +1 -1
  208. package/dist/esm/queryRegistry.native.js +2 -1
  209. package/dist/esm/queryRegistry.native.js.map +1 -1
  210. package/dist/esm/resolveQuery.mjs +10 -8
  211. package/dist/esm/resolveQuery.mjs.map +1 -1
  212. package/dist/esm/resolveQuery.native.js +20 -18
  213. package/dist/esm/resolveQuery.native.js.map +1 -1
  214. package/dist/esm/run.mjs +21 -16
  215. package/dist/esm/run.mjs.map +1 -1
  216. package/dist/esm/run.native.js +20 -16
  217. package/dist/esm/run.native.js.map +1 -1
  218. package/dist/esm/serverWhere.mjs +1 -1
  219. package/dist/esm/serverWhere.mjs.map +1 -1
  220. package/dist/esm/serverWhere.native.js +1 -1
  221. package/dist/esm/serverWhere.native.js.map +1 -1
  222. package/dist/esm/serverWhere.test.mjs +79 -51
  223. package/dist/esm/serverWhere.test.mjs.map +1 -1
  224. package/dist/esm/serverWhere.test.native.js +68 -46
  225. package/dist/esm/serverWhere.test.native.js.map +1 -1
  226. package/dist/esm/state.mjs +35 -32
  227. package/dist/esm/state.mjs.map +1 -1
  228. package/dist/esm/state.native.js +41 -40
  229. package/dist/esm/state.native.js.map +1 -1
  230. package/dist/esm/usePermission.test.mjs +53 -40
  231. package/dist/esm/usePermission.test.mjs.map +1 -1
  232. package/dist/esm/usePermission.test.native.js +54 -43
  233. package/dist/esm/usePermission.test.native.js.map +1 -1
  234. package/dist/esm/vite-plugin.mjs +27 -9
  235. package/dist/esm/vite-plugin.mjs.map +1 -1
  236. package/dist/esm/vite-plugin.native.js +47 -35
  237. package/dist/esm/vite-plugin.native.js.map +1 -1
  238. package/dist/esm/where.mjs +24 -11
  239. package/dist/esm/where.mjs.map +1 -1
  240. package/dist/esm/where.native.js +29 -16
  241. package/dist/esm/where.native.js.map +1 -1
  242. package/dist/esm/zeroRunner.mjs +6 -2
  243. package/dist/esm/zeroRunner.mjs.map +1 -1
  244. package/dist/esm/zeroRunner.native.js +8 -4
  245. package/dist/esm/zeroRunner.native.js.map +1 -1
  246. package/dist/esm/zql.mjs +2 -1
  247. package/dist/esm/zql.mjs.map +1 -1
  248. package/dist/esm/zql.native.js.map +1 -1
  249. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","generate_lite_exports","__export","generateLite","module","exports","import_generate_helpers","require","stripTrailingSlash","s","endsWith","slice","baseName","path","ext","idx","lastIndexOf","base","length","listDirectTsFiles","files","dirPrefix","prefix","out","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","keys","Symbol","iterator","_step","next","done","startsWith","rest","includes","push","err","return","sort","opts","parse","baseDir","dir","modelsDirName","modelsDir","mutationsPrefix","hasMutationsDir","some","p","modelsDirPath","queriesDirPath","modelFilePaths","queryFilePaths","allModelMutations","modelNamesWithSchema","filePath","modelName","content","parsed","_parsed_mutations_","mutationExport","mutations","columns","primaryKeys","hasSchema","schema","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","pk","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","col","name","parseColumnType","builderText","hasCRUD","_mutationExport_handlers","custom","handlers","map","h","paramTypeText","paramType","valibotCode","paramType2","trim","valibotCode2","parseTypeString"],"sources":["../../src/generate-lite.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","generate_lite_exports","__export","generateLite","module","exports","import_generate_helpers","require","stripTrailingSlash","s","endsWith","slice","baseName","path","ext","idx","lastIndexOf","base","length","listDirectTsFiles","files","dirPrefix","prefix","out","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","keys","Symbol","iterator","_step","next","done","startsWith","rest","includes","push","err","return","sort","opts","parse","baseDir","dir","modelsDirName","modelsDir","mutationsPrefix","hasMutationsDir","some","p","modelsDirPath","queriesDirPath","modelFilePaths","queryFilePaths","allModelMutations","modelNamesWithSchema","filePath","modelName","content","parsed","_parsed_mutations_","mutationExport","mutations","columns","primaryKeys","hasSchema","schema","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","pk","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","col","name","parseColumnType","builderText","hasCRUD","_mutationExport_handlers","custom","handlers","map","h","paramTypeText","paramType","valibotCode","paramType2","trim","valibotCode2","parseTypeString","e"],"sources":["../../src/generate-lite.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,11 @@
1
- var import_vitest = require("vitest"),
2
- import_generate_lite = require("./generate-lite.cjs");
1
+ var import_vitest = require("vitest");
2
+ var import_generate_lite = require("./generate-lite.cjs");
3
3
  function makeParse(table) {
4
4
  return (_src, path) => {
5
5
  const entry = table[path];
6
- if (!entry) throw new Error(`no lite ast fixture for ${path}`);
6
+ if (!entry) {
7
+ throw new Error(`no lite ast fixture for ${path}`);
8
+ }
7
9
  return entry;
8
10
  };
9
11
  }
@@ -11,219 +13,254 @@ const DIR = "/proj/src/data";
11
13
  (0, import_vitest.describe)("generateLite", () => {
12
14
  (0, import_vitest.test)("emits models.ts, syncedMutations.ts, and README.md from inline types", () => {
13
15
  const files = {
14
- [`${DIR}/models/todo.ts`]: "// fake source, parser returns fixture",
15
- [`${DIR}/models/user.ts`]: "// fake source, parser returns fixture"
16
- },
17
- fixtures = {
18
- [`${DIR}/models/todo.ts`]: {
19
- mutations: [{
20
- modelName: "todo",
21
- handlers: [{
22
- name: "toggle",
23
- paramTypeText: "{ id: string; isActive: boolean }"
24
- }, {
25
- name: "rename",
26
- paramTypeText: "{ id: string; title: string }"
27
- }],
28
- schema: null
16
+ [`${DIR}/models/todo.ts`]: "// fake source, parser returns fixture",
17
+ [`${DIR}/models/user.ts`]: "// fake source, parser returns fixture"
18
+ };
19
+ const fixtures = {
20
+ [`${DIR}/models/todo.ts`]: {
21
+ mutations: [{
22
+ modelName: "todo",
23
+ handlers: [{
24
+ name: "toggle",
25
+ paramTypeText: "{ id: string; isActive: boolean }"
26
+ }, {
27
+ name: "rename",
28
+ paramTypeText: "{ id: string; title: string }"
29
29
  }],
30
- queries: []
31
- },
32
- [`${DIR}/models/user.ts`]: {
33
- mutations: [{
34
- modelName: "user",
35
- handlers: [{
36
- name: "finishOnboarding",
37
- // null = no second param / void
38
- paramTypeText: null
39
- }],
40
- schema: null
41
- }],
42
- queries: []
43
- }
30
+ schema: null
31
+ }],
32
+ queries: []
44
33
  },
45
- result = (0, import_generate_lite.generateLite)({
46
- files,
47
- dir: DIR,
48
- parse: makeParse(fixtures)
49
- });
34
+ [`${DIR}/models/user.ts`]: {
35
+ mutations: [{
36
+ modelName: "user",
37
+ handlers: [{
38
+ name: "finishOnboarding",
39
+ // null = no second param / void
40
+ paramTypeText: null
41
+ }],
42
+ schema: null
43
+ }],
44
+ queries: []
45
+ }
46
+ };
47
+ const result = (0, import_generate_lite.generateLite)({
48
+ files,
49
+ dir: DIR,
50
+ parse: makeParse(fixtures)
51
+ });
50
52
  (0, import_vitest.expect)(Object.keys(result.files).sort()).toEqual(["README.md", "models.ts", "syncedMutations.ts"]);
51
53
  const models = result.files["models.ts"];
52
- (0, import_vitest.expect)(models).toContain("import * as todo from '../models/todo'"), (0, import_vitest.expect)(models).toContain("import * as userPublic from '../models/user'"), (0, import_vitest.expect)(models).toContain("export const models = {");
54
+ (0, import_vitest.expect)(models).toContain("import * as todo from '../models/todo'");
55
+ (0, import_vitest.expect)(models).toContain("import * as userPublic from '../models/user'");
56
+ (0, import_vitest.expect)(models).toContain("export const models = {");
53
57
  const syncedMutations = result.files["syncedMutations.ts"];
54
- (0, import_vitest.expect)(syncedMutations).toContain("toggle:"), (0, import_vitest.expect)(syncedMutations).toContain("v.object({"), (0, import_vitest.expect)(syncedMutations).toContain("id: v.string()"), (0, import_vitest.expect)(syncedMutations).toContain("isActive: v.boolean()"), (0, import_vitest.expect)(syncedMutations).toContain("rename:"), (0, import_vitest.expect)(syncedMutations).toContain("title: v.string()"), (0, import_vitest.expect)(syncedMutations).toContain("finishOnboarding: v.void_()"), (0, import_vitest.expect)(result.modelCount).toBe(2), (0, import_vitest.expect)(result.schemaCount).toBe(0), (0, import_vitest.expect)(result.mutationCount).toBe(3);
55
- }), (0, import_vitest.test)("falls back to v.unknown() for type references", () => {
58
+ (0, import_vitest.expect)(syncedMutations).toContain("toggle:");
59
+ (0, import_vitest.expect)(syncedMutations).toContain("v.object({");
60
+ (0, import_vitest.expect)(syncedMutations).toContain("id: v.string()");
61
+ (0, import_vitest.expect)(syncedMutations).toContain("isActive: v.boolean()");
62
+ (0, import_vitest.expect)(syncedMutations).toContain("rename:");
63
+ (0, import_vitest.expect)(syncedMutations).toContain("title: v.string()");
64
+ (0, import_vitest.expect)(syncedMutations).toContain("finishOnboarding: v.void_()");
65
+ (0, import_vitest.expect)(result.modelCount).toBe(2);
66
+ (0, import_vitest.expect)(result.schemaCount).toBe(0);
67
+ (0, import_vitest.expect)(result.mutationCount).toBe(3);
68
+ });
69
+ (0, import_vitest.test)("falls back to v.unknown() for type references", () => {
56
70
  const files = {
57
- [`${DIR}/models/post.ts`]: "// fake"
58
- },
59
- fixtures = {
60
- [`${DIR}/models/post.ts`]: {
61
- mutations: [{
62
- modelName: "post",
63
- handlers: [{
64
- name: "archive",
65
- // bare type reference — parseTypeString returns null, so
66
- // generate-lite should fall back to v.unknown() rather than
67
- // attempting cross-file type resolution.
68
- paramTypeText: "ArchiveParams"
69
- }, {
70
- name: "publish",
71
- // primitive, should resolve
72
- paramTypeText: "string"
73
- }],
74
- schema: null
71
+ [`${DIR}/models/post.ts`]: "// fake"
72
+ };
73
+ const fixtures = {
74
+ [`${DIR}/models/post.ts`]: {
75
+ mutations: [{
76
+ modelName: "post",
77
+ handlers: [{
78
+ name: "archive",
79
+ // bare type reference — parseTypeString returns null, so
80
+ // generate-lite should fall back to v.unknown() rather than
81
+ // attempting cross-file type resolution.
82
+ paramTypeText: "ArchiveParams"
83
+ }, {
84
+ name: "publish",
85
+ // primitive, should resolve
86
+ paramTypeText: "string"
75
87
  }],
76
- queries: []
77
- }
78
- },
79
- synced = (0, import_generate_lite.generateLite)({
80
- files,
81
- dir: DIR,
82
- parse: makeParse(fixtures)
83
- }).files["syncedMutations.ts"];
84
- (0, import_vitest.expect)(synced).toContain("archive: v.unknown()"), (0, import_vitest.expect)(synced).toContain("publish: v.string()");
85
- }), (0, import_vitest.test)("emits query files with v.unknown() fallback for references", () => {
88
+ schema: null
89
+ }],
90
+ queries: []
91
+ }
92
+ };
93
+ const result = (0, import_generate_lite.generateLite)({
94
+ files,
95
+ dir: DIR,
96
+ parse: makeParse(fixtures)
97
+ });
98
+ const synced = result.files["syncedMutations.ts"];
99
+ (0, import_vitest.expect)(synced).toContain("archive: v.unknown()");
100
+ (0, import_vitest.expect)(synced).toContain("publish: v.string()");
101
+ });
102
+ (0, import_vitest.test)("emits query files with v.unknown() fallback for references", () => {
86
103
  const files = {
87
- [`${DIR}/models/post.ts`]: "// fake",
88
- [`${DIR}/queries/post.ts`]: "// fake"
104
+ [`${DIR}/models/post.ts`]: "// fake",
105
+ [`${DIR}/queries/post.ts`]: "// fake"
106
+ };
107
+ const fixtures = {
108
+ [`${DIR}/models/post.ts`]: {
109
+ mutations: [],
110
+ queries: []
89
111
  },
90
- fixtures = {
91
- [`${DIR}/models/post.ts`]: {
92
- mutations: [],
93
- queries: []
112
+ [`${DIR}/queries/post.ts`]: {
113
+ mutations: [],
114
+ queries: [
115
+ // no-arg query → void
116
+ {
117
+ name: "allPosts",
118
+ paramTypeText: null
94
119
  },
95
- [`${DIR}/queries/post.ts`]: {
96
- mutations: [],
97
- queries: [
98
- // no-arg query void
99
- {
100
- name: "allPosts",
101
- paramTypeText: null
102
- },
103
- // inline object → real validator
104
- {
105
- name: "postById",
106
- paramTypeText: "{ id: string }"
107
- },
108
- // primitive
109
- {
110
- name: "byAuthorId",
111
- paramTypeText: "string"
112
- },
113
- // type reference → fallback
114
- {
115
- name: "filtered",
116
- paramTypeText: "PostFilter"
117
- },
118
- // permission should be skipped
119
- {
120
- name: "permission",
121
- paramTypeText: null
122
- }]
123
- }
124
- },
125
- result = (0, import_generate_lite.generateLite)({
126
- files,
127
- dir: DIR,
128
- parse: makeParse(fixtures)
129
- });
130
- (0, import_vitest.expect)(result.files["groupedQueries.ts"]).toBeDefined(), (0, import_vitest.expect)(result.files["syncedQueries.ts"]).toBeDefined();
120
+ // inline object → real validator
121
+ {
122
+ name: "postById",
123
+ paramTypeText: "{ id: string }"
124
+ },
125
+ // primitive
126
+ {
127
+ name: "byAuthorId",
128
+ paramTypeText: "string"
129
+ },
130
+ // type reference → fallback
131
+ {
132
+ name: "filtered",
133
+ paramTypeText: "PostFilter"
134
+ },
135
+ // permission should be skipped
136
+ {
137
+ name: "permission",
138
+ paramTypeText: null
139
+ }]
140
+ }
141
+ };
142
+ const result = (0, import_generate_lite.generateLite)({
143
+ files,
144
+ dir: DIR,
145
+ parse: makeParse(fixtures)
146
+ });
147
+ (0, import_vitest.expect)(result.files["groupedQueries.ts"]).toBeDefined();
148
+ (0, import_vitest.expect)(result.files["syncedQueries.ts"]).toBeDefined();
131
149
  const grouped = result.files["groupedQueries.ts"];
132
150
  (0, import_vitest.expect)(grouped).toContain("export * as post from '../queries/post'");
133
151
  const synced = result.files["syncedQueries.ts"];
134
- (0, import_vitest.expect)(synced).toContain("allPosts: defineQuery(() => Queries.post.allPosts())"), (0, import_vitest.expect)(synced).toContain("postById: defineQuery("), (0, import_vitest.expect)(synced).toContain("id: v.string()"), (0, import_vitest.expect)(synced).toContain("byAuthorId: defineQuery("), (0, import_vitest.expect)(synced).toMatch(/byAuthorId: defineQuery\(\s*v\.string\(\)/), (0, import_vitest.expect)(synced).toContain("filtered: defineQuery("), (0, import_vitest.expect)(synced).toMatch(/filtered: defineQuery\(\s*v\.unknown\(\)/), (0, import_vitest.expect)(synced).not.toContain("permission: defineQuery"), (0, import_vitest.expect)(result.queryCount).toBe(4);
135
- }), (0, import_vitest.test)("emits types.ts and tables.ts when a model declares a schema inline", () => {
152
+ (0, import_vitest.expect)(synced).toContain("allPosts: defineQuery(() => Queries.post.allPosts())");
153
+ (0, import_vitest.expect)(synced).toContain("postById: defineQuery(");
154
+ (0, import_vitest.expect)(synced).toContain("id: v.string()");
155
+ (0, import_vitest.expect)(synced).toContain("byAuthorId: defineQuery(");
156
+ (0, import_vitest.expect)(synced).toMatch(/byAuthorId: defineQuery\(\s*v\.string\(\)/);
157
+ (0, import_vitest.expect)(synced).toContain("filtered: defineQuery(");
158
+ (0, import_vitest.expect)(synced).toMatch(/filtered: defineQuery\(\s*v\.unknown\(\)/);
159
+ (0, import_vitest.expect)(synced).not.toContain("permission: defineQuery");
160
+ (0, import_vitest.expect)(result.queryCount).toBe(4);
161
+ });
162
+ (0, import_vitest.test)("emits types.ts and tables.ts when a model declares a schema inline", () => {
136
163
  const files = {
137
- [`${DIR}/models/task.ts`]: "// fake"
138
- },
139
- fixtures = {
140
- [`${DIR}/models/task.ts`]: {
141
- mutations: [{
142
- modelName: "task",
143
- handlers: [],
144
- schema: {
145
- tableName: "task",
146
- primaryKeys: ["id"],
147
- columns: [{
148
- name: "id",
149
- builderText: "string()"
150
- }, {
151
- name: "title",
152
- builderText: "string()"
153
- }, {
154
- name: "priority",
155
- builderText: "number()"
156
- }, {
157
- name: "done",
158
- builderText: "boolean()"
159
- }, {
160
- name: "note",
161
- builderText: "string().optional()"
162
- }]
163
- }
164
- }],
165
- queries: []
166
- }
167
- },
168
- result = (0, import_generate_lite.generateLite)({
169
- files,
170
- dir: DIR,
171
- parse: makeParse(fixtures)
172
- });
173
- (0, import_vitest.expect)(result.schemaCount).toBe(1), (0, import_vitest.expect)(result.files["types.ts"]).toBeDefined(), (0, import_vitest.expect)(result.files["tables.ts"]).toBeDefined();
164
+ [`${DIR}/models/task.ts`]: "// fake"
165
+ };
166
+ const fixtures = {
167
+ [`${DIR}/models/task.ts`]: {
168
+ mutations: [{
169
+ modelName: "task",
170
+ handlers: [],
171
+ schema: {
172
+ tableName: "task",
173
+ primaryKeys: ["id"],
174
+ columns: [{
175
+ name: "id",
176
+ builderText: "string()"
177
+ }, {
178
+ name: "title",
179
+ builderText: "string()"
180
+ }, {
181
+ name: "priority",
182
+ builderText: "number()"
183
+ }, {
184
+ name: "done",
185
+ builderText: "boolean()"
186
+ }, {
187
+ name: "note",
188
+ builderText: "string().optional()"
189
+ }]
190
+ }
191
+ }],
192
+ queries: []
193
+ }
194
+ };
195
+ const result = (0, import_generate_lite.generateLite)({
196
+ files,
197
+ dir: DIR,
198
+ parse: makeParse(fixtures)
199
+ });
200
+ (0, import_vitest.expect)(result.schemaCount).toBe(1);
201
+ (0, import_vitest.expect)(result.files["types.ts"]).toBeDefined();
202
+ (0, import_vitest.expect)(result.files["tables.ts"]).toBeDefined();
174
203
  const types = result.files["types.ts"];
175
204
  (0, import_vitest.expect)(types).toContain("export type Task = TableInsertRow<typeof schema.task>");
176
205
  const tables = result.files["tables.ts"];
177
206
  (0, import_vitest.expect)(tables).toContain("export { schema as task } from '../models/task'");
178
207
  const synced = result.files["syncedMutations.ts"];
179
- (0, import_vitest.expect)(synced).toContain("insert:"), (0, import_vitest.expect)(synced).toContain("update:"), (0, import_vitest.expect)(synced).toContain("delete:"), (0, import_vitest.expect)(result.mutationCount).toBe(3);
180
- }), (0, import_vitest.test)("ignores nested files and non-ts files inside the models directory", () => {
208
+ (0, import_vitest.expect)(synced).toContain("insert:");
209
+ (0, import_vitest.expect)(synced).toContain("update:");
210
+ (0, import_vitest.expect)(synced).toContain("delete:");
211
+ (0, import_vitest.expect)(result.mutationCount).toBe(3);
212
+ });
213
+ (0, import_vitest.test)("ignores nested files and non-ts files inside the models directory", () => {
181
214
  const files = {
182
- [`${DIR}/models/post.ts`]: "// fake",
183
- [`${DIR}/models/README.md`]: "not a model",
184
- [`${DIR}/models/helpers/util.ts`]: "nested should be ignored",
185
- [`${DIR}/models/post.d.ts`]: "declaration file, ignored"
186
- },
187
- fixtures = {
188
- [`${DIR}/models/post.ts`]: {
189
- mutations: [{
190
- modelName: "post",
191
- handlers: [],
192
- schema: null
193
- }],
194
- queries: []
195
- }
196
- },
197
- result = (0, import_generate_lite.generateLite)({
198
- files,
199
- dir: DIR,
200
- parse: makeParse(fixtures)
201
- });
215
+ [`${DIR}/models/post.ts`]: "// fake",
216
+ [`${DIR}/models/README.md`]: "not a model",
217
+ [`${DIR}/models/helpers/util.ts`]: "nested should be ignored",
218
+ [`${DIR}/models/post.d.ts`]: "declaration file, ignored"
219
+ };
220
+ const fixtures = {
221
+ [`${DIR}/models/post.ts`]: {
222
+ mutations: [{
223
+ modelName: "post",
224
+ handlers: [],
225
+ schema: null
226
+ }],
227
+ queries: []
228
+ }
229
+ };
230
+ const result = (0, import_generate_lite.generateLite)({
231
+ files,
232
+ dir: DIR,
233
+ parse: makeParse(fixtures)
234
+ });
202
235
  (0, import_vitest.expect)(result.modelCount).toBe(1);
203
236
  const models = result.files["models.ts"];
204
- (0, import_vitest.expect)(models).toContain("import * as post from '../models/post'"), (0, import_vitest.expect)(models).not.toContain("util"), (0, import_vitest.expect)(models).not.toContain("README");
205
- }), (0, import_vitest.test)("infers mutations/ directory when present", () => {
237
+ (0, import_vitest.expect)(models).toContain("import * as post from '../models/post'");
238
+ (0, import_vitest.expect)(models).not.toContain("util");
239
+ (0, import_vitest.expect)(models).not.toContain("README");
240
+ });
241
+ (0, import_vitest.test)("infers mutations/ directory when present", () => {
206
242
  const files = {
207
- [`${DIR}/mutations/post.ts`]: "// fake"
208
- },
209
- fixtures = {
210
- [`${DIR}/mutations/post.ts`]: {
211
- mutations: [{
212
- modelName: "post",
213
- handlers: [{
214
- name: "publish",
215
- paramTypeText: "{ id: string }"
216
- }],
217
- schema: null
243
+ [`${DIR}/mutations/post.ts`]: "// fake"
244
+ };
245
+ const fixtures = {
246
+ [`${DIR}/mutations/post.ts`]: {
247
+ mutations: [{
248
+ modelName: "post",
249
+ handlers: [{
250
+ name: "publish",
251
+ paramTypeText: "{ id: string }"
218
252
  }],
219
- queries: []
220
- }
221
- },
222
- models = (0, import_generate_lite.generateLite)({
223
- files,
224
- dir: DIR,
225
- parse: makeParse(fixtures)
226
- }).files["models.ts"];
253
+ schema: null
254
+ }],
255
+ queries: []
256
+ }
257
+ };
258
+ const result = (0, import_generate_lite.generateLite)({
259
+ files,
260
+ dir: DIR,
261
+ parse: makeParse(fixtures)
262
+ });
263
+ const models = result.files["models.ts"];
227
264
  (0, import_vitest.expect)(models).toContain("from '../mutations/post'");
228
265
  });
229
266
  });