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
@@ -3,18 +3,22 @@ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from
3
3
  import { basename, dirname, resolve } from "path";
4
4
  import { formatObjectKey, generateGroupedQueriesFile, generateModelsFile, generateReadmeFile, generateSyncedMutationsFile, generateSyncedQueriesFile, generateTablesFile, generateTypesFile, parseColumnType, parseTypeString, shouldSkipObjectKey } from "./generate-helpers.native.js";
5
5
  var hash = function (s) {
6
- return createHash("sha256").update(s).digest("hex");
7
- },
8
- generateCache = {},
9
- generateCachePath = "";
6
+ return createHash("sha256").update(s).digest("hex");
7
+ };
8
+ var generateCache = {};
9
+ var generateCachePath = "";
10
10
  function getCacheDir() {
11
- for (var dir = process.cwd(); dir !== "/";) {
11
+ var dir = process.cwd();
12
+ while (dir !== "/") {
12
13
  var nm = resolve(dir, "node_modules");
13
14
  if (existsSync(nm)) {
14
15
  var cacheDir = resolve(nm, ".on-zero");
15
- return existsSync(cacheDir) || mkdirSync(cacheDir, {
16
- recursive: !0
17
- }), cacheDir;
16
+ if (!existsSync(cacheDir)) {
17
+ mkdirSync(cacheDir, {
18
+ recursive: true
19
+ });
20
+ }
21
+ return cacheDir;
18
22
  }
19
23
  dir = resolve(dir, "..");
20
24
  }
@@ -22,34 +26,39 @@ function getCacheDir() {
22
26
  }
23
27
  function loadCache() {
24
28
  var cacheDir = getCacheDir();
25
- if (cacheDir) {
26
- generateCachePath = resolve(cacheDir, "generate-cache.json");
27
- try {
28
- generateCache = JSON.parse(readFileSync(generateCachePath, "utf-8"));
29
- } catch {
30
- generateCache = {};
31
- }
29
+ if (!cacheDir) return;
30
+ generateCachePath = resolve(cacheDir, "generate-cache.json");
31
+ try {
32
+ generateCache = JSON.parse(readFileSync(generateCachePath, "utf-8"));
33
+ } catch (e) {
34
+ generateCache = {};
32
35
  }
33
36
  }
34
37
  function saveCache() {
35
- generateCachePath && writeFileSync(generateCachePath, JSON.stringify(generateCache) + `
36
- `, "utf-8");
38
+ if (generateCachePath) {
39
+ writeFileSync(generateCachePath, JSON.stringify(generateCache) + "\n", "utf-8");
40
+ }
37
41
  }
38
42
  function writeFileIfChanged(filePath, content) {
39
- var contentHash = hash(content),
40
- cachedHash = generateCache[filePath];
41
- return cachedHash === contentHash && existsSync(filePath) ? !1 : (writeFileSync(filePath, content, "utf-8"), generateCache[filePath] = contentHash, !0);
43
+ var contentHash = hash(content);
44
+ var cachedHash = generateCache[filePath];
45
+ if (cachedHash === contentHash && existsSync(filePath)) {
46
+ return false;
47
+ }
48
+ writeFileSync(filePath, content, "utf-8");
49
+ generateCache[filePath] = contentHash;
50
+ return true;
42
51
  }
43
52
  function createTypeResolver(ts, files, dir) {
44
- var configPath = ts.findConfigFile(dir, ts.sys.fileExists, "tsconfig.json"),
45
- compilerOptions = {
46
- target: ts.ScriptTarget.Latest,
47
- module: ts.ModuleKind.ESNext,
48
- moduleResolution: ts.ModuleResolutionKind.Bundler,
49
- strict: !1,
50
- skipLibCheck: !0,
51
- noEmit: !0
52
- };
53
+ var configPath = ts.findConfigFile(dir, ts.sys.fileExists, "tsconfig.json");
54
+ var compilerOptions = {
55
+ target: ts.ScriptTarget.Latest,
56
+ module: ts.ModuleKind.ESNext,
57
+ moduleResolution: ts.ModuleResolutionKind.Bundler,
58
+ strict: false,
59
+ skipLibCheck: true,
60
+ noEmit: true
61
+ };
53
62
  if (configPath) {
54
63
  var configFile = ts.readConfigFile(configPath, ts.sys.readFile);
55
64
  if (configFile.config) {
@@ -60,39 +69,49 @@ function createTypeResolver(ts, files, dir) {
60
69
  };
61
70
  }
62
71
  }
63
- var fileMap = /* @__PURE__ */new Map(),
64
- _iteratorNormalCompletion = !0,
65
- _didIteratorError = !1,
72
+ var fileMap = /* @__PURE__ */new Map();
73
+ var _iteratorNormalCompletion = true,
74
+ _didIteratorError = false,
66
75
  _iteratorError = void 0;
67
76
  try {
68
- for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
77
+ for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
69
78
  var f = _step.value;
70
79
  fileMap.set(f.path, f.content);
71
80
  }
72
81
  } catch (err) {
73
- _didIteratorError = !0, _iteratorError = err;
82
+ _didIteratorError = true;
83
+ _iteratorError = err;
74
84
  } finally {
75
85
  try {
76
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
86
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
87
+ _iterator.return();
88
+ }
77
89
  } finally {
78
- if (_didIteratorError) throw _iteratorError;
90
+ if (_didIteratorError) {
91
+ throw _iteratorError;
92
+ }
79
93
  }
80
94
  }
81
- var host = ts.createCompilerHost(compilerOptions),
82
- originalGetSourceFile = host.getSourceFile.bind(host);
95
+ var host = ts.createCompilerHost(compilerOptions);
96
+ var originalGetSourceFile = host.getSourceFile.bind(host);
83
97
  host.getSourceFile = function (fileName, languageVersion, onError) {
84
98
  var content = fileMap.get(fileName);
85
- return content !== void 0 ? ts.createSourceFile(fileName, content, languageVersion, !0) : originalGetSourceFile(fileName, languageVersion, onError);
86
- }, host.fileExists = function (fileName) {
99
+ if (content !== void 0) {
100
+ return ts.createSourceFile(fileName, content, languageVersion, true);
101
+ }
102
+ return originalGetSourceFile(fileName, languageVersion, onError);
103
+ };
104
+ host.fileExists = function (fileName) {
87
105
  return fileMap.has(fileName) || ts.sys.fileExists(fileName);
88
- }, host.readFile = function (fileName) {
106
+ };
107
+ host.readFile = function (fileName) {
89
108
  var _fileMap_get;
90
109
  return (_fileMap_get = fileMap.get(fileName)) !== null && _fileMap_get !== void 0 ? _fileMap_get : ts.sys.readFile(fileName);
91
110
  };
92
111
  var program = ts.createProgram(files.map(function (f2) {
93
- return f2.path;
94
- }), compilerOptions, host),
95
- checker = program.getTypeChecker();
112
+ return f2.path;
113
+ }), compilerOptions, host);
114
+ var checker = program.getTypeChecker();
96
115
  return {
97
116
  program,
98
117
  checker,
@@ -100,7 +119,7 @@ function createTypeResolver(ts, files, dir) {
100
119
  resolveType(node) {
101
120
  try {
102
121
  return checker.getTypeFromTypeNode(node);
103
- } catch {
122
+ } catch (e) {
104
123
  return null;
105
124
  }
106
125
  },
@@ -112,155 +131,193 @@ function createTypeResolver(ts, files, dir) {
112
131
  }
113
132
  function resolveParamType(ts, resolver, sourceFile, exportName, paramIndex) {
114
133
  var result = null;
115
- return ts.forEachChild(sourceFile, function (node) {
134
+ ts.forEachChild(sourceFile, function (node) {
116
135
  var _node_modifiers;
117
- if (!result && ts.isVariableStatement(node) && !((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0) && _node_modifiers.some(function (m) {
136
+ if (result) return;
137
+ if (!ts.isVariableStatement(node)) return;
138
+ if (!((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.some(function (m) {
118
139
  return m.kind === ts.SyntaxKind.ExportKeyword;
119
- })) {
120
- var decl = node.declarationList.declarations[0];
121
- if (!(!decl || !ts.isVariableDeclaration(decl)) && decl.name.getText(sourceFile) === exportName && decl.initializer && ts.isArrowFunction(decl.initializer)) {
122
- var param = decl.initializer.parameters[paramIndex];
123
- param?.type && (result = resolver.resolveType(param.type));
140
+ }))) return;
141
+ var decl = node.declarationList.declarations[0];
142
+ if (!decl || !ts.isVariableDeclaration(decl)) return;
143
+ if (decl.name.getText(sourceFile) !== exportName) return;
144
+ if (decl.initializer && ts.isArrowFunction(decl.initializer)) {
145
+ var param = decl.initializer.parameters[paramIndex];
146
+ if (param === null || param === void 0 ? void 0 : param.type) {
147
+ result = resolver.resolveType(param.type);
124
148
  }
125
149
  }
126
- }), result;
150
+ });
151
+ return result;
127
152
  }
128
153
  function resolveMutationParamTypes(ts, resolver, sourceFile) {
129
154
  var resolved = /* @__PURE__ */new Map();
130
- return ts.forEachChild(sourceFile, function (node) {
155
+ ts.forEachChild(sourceFile, function (node) {
131
156
  var _node_modifiers;
132
- if (ts.isVariableStatement(node) && !((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0) && _node_modifiers.some(function (m) {
157
+ if (!ts.isVariableStatement(node)) return;
158
+ if (!((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.some(function (m) {
133
159
  return m.kind === ts.SyntaxKind.ExportKeyword;
134
- })) {
135
- var decl = node.declarationList.declarations[0];
136
- if (!(!decl || !ts.isVariableDeclaration(decl)) && decl.name.getText(sourceFile) === "mutate" && !(!decl.initializer || !ts.isCallExpression(decl.initializer))) {
137
- for (var args = decl.initializer.arguments, handlersArg = null, i = args.length - 1; i >= 0; i--) if (ts.isObjectLiteralExpression(args[i])) {
138
- handlersArg = args[i];
139
- break;
140
- }
141
- if (handlersArg) {
142
- var _iteratorNormalCompletion = !0,
143
- _didIteratorError = !1,
144
- _iteratorError = void 0;
145
- try {
146
- for (var _iterator = handlersArg.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
147
- var prop = _step.value,
148
- _prop_name;
149
- if (!(!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop))) {
150
- var name = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);
151
- if (name) {
152
- var params = null;
153
- if (ts.isPropertyAssignment(prop)) {
154
- var init = prop.initializer;
155
- (ts.isArrowFunction(init) || ts.isFunctionExpression(init)) && (params = init.parameters);
156
- } else ts.isMethodDeclaration(prop) && (params = prop.parameters);
157
- if (!(!params || params.length < 2)) {
158
- var typeNode = params[1].type;
159
- if (typeNode) {
160
- var expanded = resolver.resolveType(typeNode);
161
- expanded && resolved.set(name, expanded);
162
- }
163
- }
164
- }
165
- }
166
- }
167
- } catch (err) {
168
- _didIteratorError = !0, _iteratorError = err;
169
- } finally {
170
- try {
171
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
172
- } finally {
173
- if (_didIteratorError) throw _iteratorError;
174
- }
160
+ }))) return;
161
+ var decl = node.declarationList.declarations[0];
162
+ if (!decl || !ts.isVariableDeclaration(decl)) return;
163
+ if (decl.name.getText(sourceFile) !== "mutate") return;
164
+ if (!decl.initializer || !ts.isCallExpression(decl.initializer)) return;
165
+ var args = decl.initializer.arguments;
166
+ var handlersArg = null;
167
+ for (var i = args.length - 1; i >= 0; i--) {
168
+ if (ts.isObjectLiteralExpression(args[i])) {
169
+ handlersArg = args[i];
170
+ break;
171
+ }
172
+ }
173
+ if (!handlersArg) return;
174
+ var _iteratorNormalCompletion = true,
175
+ _didIteratorError = false,
176
+ _iteratorError = void 0;
177
+ try {
178
+ for (var _iterator = handlersArg.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
179
+ var prop = _step.value;
180
+ var _prop_name;
181
+ if (!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop)) continue;
182
+ var name = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);
183
+ if (!name) continue;
184
+ var params = null;
185
+ if (ts.isPropertyAssignment(prop)) {
186
+ var init = prop.initializer;
187
+ if (ts.isArrowFunction(init) || ts.isFunctionExpression(init)) {
188
+ params = init.parameters;
175
189
  }
190
+ } else if (ts.isMethodDeclaration(prop)) {
191
+ params = prop.parameters;
192
+ }
193
+ if (!params || params.length < 2) continue;
194
+ var typeNode = params[1].type;
195
+ if (!typeNode) continue;
196
+ var expanded = resolver.resolveType(typeNode);
197
+ if (expanded) {
198
+ resolved.set(name, expanded);
199
+ }
200
+ }
201
+ } catch (err) {
202
+ _didIteratorError = true;
203
+ _iteratorError = err;
204
+ } finally {
205
+ try {
206
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
207
+ _iterator.return();
208
+ }
209
+ } finally {
210
+ if (_didIteratorError) {
211
+ throw _iteratorError;
176
212
  }
177
213
  }
178
214
  }
179
- }), resolved;
215
+ });
216
+ return resolved;
180
217
  }
181
218
  function extractMutationsFromModel(ts, sourceFile, content, fileName, silent, typeToValibot, resolvedTypes, resolvedTypeToValibot) {
182
219
  var mutateNode = null;
183
- if (ts.forEachChild(sourceFile, function (node) {
220
+ ts.forEachChild(sourceFile, function (node) {
184
221
  var _node_modifiers;
185
- if (ts.isVariableStatement(node) && !((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0) && _node_modifiers.some(function (m) {
222
+ if (!ts.isVariableStatement(node)) return;
223
+ if (!((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.some(function (m) {
186
224
  return m.kind === ts.SyntaxKind.ExportKeyword;
187
- })) {
188
- var decl = node.declarationList.declarations[0];
189
- !decl || !ts.isVariableDeclaration(decl) || decl.name.getText(sourceFile) === "mutate" && decl.initializer && ts.isCallExpression(decl.initializer) && (mutateNode = decl.initializer);
225
+ }))) return;
226
+ var decl = node.declarationList.declarations[0];
227
+ if (!decl || !ts.isVariableDeclaration(decl)) return;
228
+ if (decl.name.getText(sourceFile) !== "mutate") return;
229
+ if (decl.initializer && ts.isCallExpression(decl.initializer)) {
230
+ mutateNode = decl.initializer;
190
231
  }
191
- }), !mutateNode) return {
192
- modelName: basename(fileName, ".ts"),
193
- hasCRUD: !1,
194
- columns: {},
195
- primaryKeys: [],
196
- custom: []
197
- };
198
- var call = mutateNode,
199
- args = call.arguments,
200
- hasCRUD = args.length >= 2,
201
- handlersArg = null;
202
- args.length === 1 && ts.isObjectLiteralExpression(args[0]) ? handlersArg = args[0] : args.length === 3 && ts.isObjectLiteralExpression(args[2]) && (handlersArg = args[2]);
203
- var columns = {},
204
- primaryKeys = [];
205
- hasCRUD && extractSchemaColumns(ts, sourceFile, columns, primaryKeys);
232
+ });
233
+ if (!mutateNode) {
234
+ return {
235
+ modelName: basename(fileName, ".ts"),
236
+ hasCRUD: false,
237
+ columns: {},
238
+ primaryKeys: [],
239
+ custom: []
240
+ };
241
+ }
242
+ var call = mutateNode;
243
+ var args = call.arguments;
244
+ var hasCRUD = args.length >= 2;
245
+ var handlersArg = null;
246
+ if (args.length === 1 && ts.isObjectLiteralExpression(args[0])) {
247
+ handlersArg = args[0];
248
+ } else if (args.length === 3 && ts.isObjectLiteralExpression(args[2])) {
249
+ handlersArg = args[2];
250
+ }
251
+ var columns = {};
252
+ var primaryKeys = [];
253
+ if (hasCRUD) {
254
+ extractSchemaColumns(ts, sourceFile, columns, primaryKeys);
255
+ }
206
256
  var custom = [];
207
257
  if (handlersArg) {
208
- var _iteratorNormalCompletion = !0,
209
- _didIteratorError = !1,
258
+ var _iteratorNormalCompletion = true,
259
+ _didIteratorError = false,
210
260
  _iteratorError = void 0;
211
261
  try {
212
- for (var _iterator = handlersArg.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
213
- var prop = _step.value,
214
- _prop_name,
215
- _secondParam_type;
216
- if (!(!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop))) {
217
- var name = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);
218
- if (name) {
219
- var params = null;
220
- if (ts.isPropertyAssignment(prop)) {
221
- var init = prop.initializer;
222
- (ts.isArrowFunction(init) || ts.isFunctionExpression(init)) && (params = init.parameters);
223
- } else ts.isMethodDeclaration(prop) && (params = prop.parameters);
224
- if (params) {
225
- if (params.length < 2) {
226
- custom.push({
227
- name,
228
- paramType: "void",
229
- valibotCode: ""
230
- });
231
- continue;
232
- }
233
- var secondParam = params[1],
234
- paramType = ((_secondParam_type = secondParam.type) === null || _secondParam_type === void 0 ? void 0 : _secondParam_type.getText(sourceFile)) || "unknown";
235
- if (paramType === "unknown") {
236
- custom.push({
237
- name,
238
- paramType: "unknown",
239
- valibotCode: ""
240
- });
241
- continue;
242
- }
243
- var valibotCode = typeToValibot(paramType);
244
- if (!valibotCode && resolvedTypes && resolvedTypeToValibot) {
245
- var resolvedType = resolvedTypes.get(name);
246
- resolvedType && (valibotCode = resolvedTypeToValibot(resolvedType));
247
- }
248
- custom.push({
249
- name,
250
- paramType,
251
- valibotCode: valibotCode || ""
252
- });
253
- }
262
+ for (var _iterator = handlersArg.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
263
+ var prop = _step.value;
264
+ var _prop_name, _secondParam_type;
265
+ if (!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop)) continue;
266
+ var name = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);
267
+ if (!name) continue;
268
+ var params = null;
269
+ if (ts.isPropertyAssignment(prop)) {
270
+ var init = prop.initializer;
271
+ if (ts.isArrowFunction(init) || ts.isFunctionExpression(init)) {
272
+ params = init.parameters;
254
273
  }
274
+ } else if (ts.isMethodDeclaration(prop)) {
275
+ params = prop.parameters;
255
276
  }
277
+ if (!params) continue;
278
+ if (params.length < 2) {
279
+ custom.push({
280
+ name,
281
+ paramType: "void",
282
+ valibotCode: ""
283
+ });
284
+ continue;
285
+ }
286
+ var secondParam = params[1];
287
+ var paramType = ((_secondParam_type = secondParam.type) === null || _secondParam_type === void 0 ? void 0 : _secondParam_type.getText(sourceFile)) || "unknown";
288
+ if (paramType === "unknown") {
289
+ custom.push({
290
+ name,
291
+ paramType: "unknown",
292
+ valibotCode: ""
293
+ });
294
+ continue;
295
+ }
296
+ var valibotCode = typeToValibot(paramType);
297
+ if (!valibotCode && resolvedTypes && resolvedTypeToValibot) {
298
+ var resolvedType = resolvedTypes.get(name);
299
+ if (resolvedType) {
300
+ valibotCode = resolvedTypeToValibot(resolvedType);
301
+ }
302
+ }
303
+ custom.push({
304
+ name,
305
+ paramType,
306
+ valibotCode: valibotCode || ""
307
+ });
256
308
  }
257
309
  } catch (err) {
258
- _didIteratorError = !0, _iteratorError = err;
310
+ _didIteratorError = true;
311
+ _iteratorError = err;
259
312
  } finally {
260
313
  try {
261
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
314
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
315
+ _iterator.return();
316
+ }
262
317
  } finally {
263
- if (_didIteratorError) throw _iteratorError;
318
+ if (_didIteratorError) {
319
+ throw _iteratorError;
320
+ }
264
321
  }
265
322
  }
266
323
  }
@@ -277,50 +334,60 @@ function extractSchemaColumns(ts, sourceFile, columns, primaryKeys) {
277
334
  if (ts.isCallExpression(node)) {
278
335
  var text = node.expression.getText(sourceFile);
279
336
  if (text.endsWith(".primaryKey")) {
280
- var _iteratorNormalCompletion = !0,
281
- _didIteratorError = !1,
337
+ var _iteratorNormalCompletion = true,
338
+ _didIteratorError = false,
282
339
  _iteratorError = void 0;
283
340
  try {
284
- for (var _iterator = node.arguments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
341
+ for (var _iterator = node.arguments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
285
342
  var arg = _step.value;
286
- ts.isStringLiteral(arg) && primaryKeys.push(arg.text);
343
+ if (ts.isStringLiteral(arg)) {
344
+ primaryKeys.push(arg.text);
345
+ }
287
346
  }
288
347
  } catch (err) {
289
- _didIteratorError = !0, _iteratorError = err;
348
+ _didIteratorError = true;
349
+ _iteratorError = err;
290
350
  } finally {
291
351
  try {
292
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
352
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
353
+ _iterator.return();
354
+ }
293
355
  } finally {
294
- if (_didIteratorError) throw _iteratorError;
356
+ if (_didIteratorError) {
357
+ throw _iteratorError;
358
+ }
295
359
  }
296
360
  }
297
361
  }
298
362
  if (text.endsWith(".columns") && node.arguments.length === 1) {
299
363
  var obj = node.arguments[0];
300
364
  if (ts.isObjectLiteralExpression(obj)) {
301
- var _iteratorNormalCompletion1 = !0,
302
- _didIteratorError1 = !1,
365
+ var _iteratorNormalCompletion1 = true,
366
+ _didIteratorError1 = false,
303
367
  _iteratorError1 = void 0;
304
368
  try {
305
- for (var _iterator1 = obj.properties[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
306
- var prop = _step1.value,
307
- _prop_name;
308
- if (ts.isPropertyAssignment(prop)) {
309
- var colName = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);
310
- if (colName) {
311
- var initText = prop.initializer.getText(sourceFile),
312
- colType = parseColumnType(initText);
313
- columns[colName] = colType;
314
- }
315
- }
369
+ for (var _iterator1 = obj.properties[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
370
+ var prop = _step1.value;
371
+ var _prop_name;
372
+ if (!ts.isPropertyAssignment(prop)) continue;
373
+ var colName = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);
374
+ if (!colName) continue;
375
+ var initText = prop.initializer.getText(sourceFile);
376
+ var colType = parseColumnType(initText);
377
+ columns[colName] = colType;
316
378
  }
317
379
  } catch (err) {
318
- _didIteratorError1 = !0, _iteratorError1 = err;
380
+ _didIteratorError1 = true;
381
+ _iteratorError1 = err;
319
382
  } finally {
320
383
  try {
321
- !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
384
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
385
+ _iterator1.return();
386
+ }
322
387
  } finally {
323
- if (_didIteratorError1) throw _iteratorError1;
388
+ if (_didIteratorError1) {
389
+ throw _iteratorError1;
390
+ }
324
391
  }
325
392
  }
326
393
  }
@@ -331,7 +398,7 @@ function extractSchemaColumns(ts, sourceFile, columns, primaryKeys) {
331
398
  visit(sourceFile);
332
399
  }
333
400
  function tsTypeToValibot(ts, checker, type, seen) {
334
- seen || (seen = /* @__PURE__ */new Set());
401
+ if (!seen) seen = /* @__PURE__ */new Set();
335
402
  var flags = type.getFlags();
336
403
  if (flags & (ts.TypeFlags.Object | ts.TypeFlags.Intersection)) {
337
404
  if (seen.has(type)) return "v.unknown()";
@@ -347,363 +414,437 @@ function tsTypeToValibot(ts, checker, type, seen) {
347
414
  if (flags & ts.TypeFlags.Null) return "v.null_()";
348
415
  if (flags & ts.TypeFlags.Any || flags & ts.TypeFlags.Unknown) return "v.unknown()";
349
416
  if (flags & ts.TypeFlags.Never) return "v.never()";
350
- if (flags & ts.TypeFlags.StringLiteral) return `v.literal(${JSON.stringify(type.value)})`;
351
- if (flags & ts.TypeFlags.NumberLiteral) return `v.literal(${type.value})`;
417
+ if (flags & ts.TypeFlags.StringLiteral) {
418
+ return `v.literal(${JSON.stringify(type.value)})`;
419
+ }
420
+ if (flags & ts.TypeFlags.NumberLiteral) {
421
+ return `v.literal(${type.value})`;
422
+ }
352
423
  if (flags & ts.TypeFlags.BooleanLiteral) {
353
424
  var name = type.intrinsicName;
354
425
  return `v.literal(${name === "true"})`;
355
426
  }
356
427
  if (type.isUnion()) {
357
- var members = type.types,
358
- hasNull = members.some(function (t) {
359
- return t.getFlags() & ts.TypeFlags.Null;
360
- }),
361
- hasUndefined = members.some(function (t) {
362
- return t.getFlags() & (ts.TypeFlags.Undefined | ts.TypeFlags.Void);
363
- }),
364
- rest = members.filter(function (t) {
365
- return !(t.getFlags() & (ts.TypeFlags.Null | ts.TypeFlags.Undefined | ts.TypeFlags.Void));
366
- });
428
+ var members = type.types;
429
+ var hasNull = members.some(function (t) {
430
+ return t.getFlags() & ts.TypeFlags.Null;
431
+ });
432
+ var hasUndefined = members.some(function (t) {
433
+ return t.getFlags() & (ts.TypeFlags.Undefined | ts.TypeFlags.Void);
434
+ });
435
+ var rest = members.filter(function (t) {
436
+ return !(t.getFlags() & (ts.TypeFlags.Null | ts.TypeFlags.Undefined | ts.TypeFlags.Void));
437
+ });
367
438
  if (rest.length === 2 && rest.every(function (t) {
368
439
  return t.getFlags() & ts.TypeFlags.BooleanLiteral;
369
440
  })) {
370
441
  var inner = "v.boolean()";
371
- return hasNull && (inner = `v.nullable(${inner})`), hasUndefined && (inner = `v.optional(${inner})`), inner;
442
+ if (hasNull) inner = `v.nullable(${inner})`;
443
+ if (hasUndefined) inner = `v.optional(${inner})`;
444
+ return inner;
372
445
  }
373
446
  if (rest.length === 0) return "v.unknown()";
374
447
  var inner1 = rest.length === 1 ? recurse(rest[0]) : `v.union([${rest.map(function (t) {
375
448
  return recurse(t);
376
449
  }).join(", ")}])`;
377
- return hasNull && (inner1 = `v.nullable(${inner1})`), hasUndefined && (inner1 = `v.optional(${inner1})`), inner1;
450
+ if (hasNull) inner1 = `v.nullable(${inner1})`;
451
+ if (hasUndefined) inner1 = `v.optional(${inner1})`;
452
+ return inner1;
378
453
  }
379
454
  var resolveSymbolType = function (prop2) {
380
455
  var _prop_declarations;
381
- return prop2.valueDeclaration ? checker.getTypeOfSymbolAtLocation(prop2, prop2.valueDeclaration) : !((_prop_declarations = prop2.declarations) === null || _prop_declarations === void 0) && _prop_declarations[0] ? checker.getTypeOfSymbolAtLocation(prop2, prop2.declarations[0]) : checker.getDeclaredTypeOfSymbol(prop2);
456
+ if (prop2.valueDeclaration) return checker.getTypeOfSymbolAtLocation(prop2, prop2.valueDeclaration);
457
+ if ((_prop_declarations = prop2.declarations) === null || _prop_declarations === void 0 ? void 0 : _prop_declarations[0]) return checker.getTypeOfSymbolAtLocation(prop2, prop2.declarations[0]);
458
+ return checker.getDeclaredTypeOfSymbol(prop2);
382
459
  };
383
460
  if (type.isIntersection()) {
384
461
  var props = type.getProperties();
385
462
  if (props.length === 0) return "v.object({})";
386
- var entries = [],
387
- _iteratorNormalCompletion = !0,
388
- _didIteratorError = !1,
463
+ var entries = [];
464
+ var _iteratorNormalCompletion = true,
465
+ _didIteratorError = false,
389
466
  _iteratorError = void 0;
390
467
  try {
391
- for (var _iterator = props[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
392
- var prop = _step.value,
393
- name1 = prop.getName();
394
- if (!shouldSkipObjectKey(name1)) {
395
- var propType = resolveSymbolType(prop),
396
- isOptional = !!(prop.getFlags() & ts.SymbolFlags.Optional),
397
- val = recurse(propType);
398
- isOptional && !val.startsWith("v.optional(") && (val = `v.optional(${val})`), entries.push(`${formatObjectKey(name1)}: ${val}`);
468
+ for (var _iterator = props[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
469
+ var prop = _step.value;
470
+ var name1 = prop.getName();
471
+ if (shouldSkipObjectKey(name1)) continue;
472
+ var propType = resolveSymbolType(prop);
473
+ var isOptional = !!(prop.getFlags() & ts.SymbolFlags.Optional);
474
+ var val = recurse(propType);
475
+ if (isOptional && !val.startsWith("v.optional(")) {
476
+ val = `v.optional(${val})`;
399
477
  }
478
+ entries.push(`${formatObjectKey(name1)}: ${val}`);
400
479
  }
401
480
  } catch (err) {
402
- _didIteratorError = !0, _iteratorError = err;
481
+ _didIteratorError = true;
482
+ _iteratorError = err;
403
483
  } finally {
404
484
  try {
405
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
485
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
486
+ _iterator.return();
487
+ }
406
488
  } finally {
407
- if (_didIteratorError) throw _iteratorError;
489
+ if (_didIteratorError) {
490
+ throw _iteratorError;
491
+ }
408
492
  }
409
493
  }
410
- return entries.length === 0 ? "v.object({})" : `v.object({
411
- ${entries.join(`,
412
- `)},
494
+ if (entries.length === 0) return "v.object({})";
495
+ return `v.object({
496
+ ${entries.join(",\n ")},
413
497
  })`;
414
498
  }
415
499
  var props1 = type.getProperties();
416
500
  if (props1.length > 0 && (type.getFlags() & ts.TypeFlags.Object || type.objectFlags)) {
417
- var _type_objectFlags,
418
- objectFlags = (_type_objectFlags = type.objectFlags) !== null && _type_objectFlags !== void 0 ? _type_objectFlags : 0;
501
+ var _type_objectFlags;
502
+ var objectFlags = (_type_objectFlags = type.objectFlags) !== null && _type_objectFlags !== void 0 ? _type_objectFlags : 0;
419
503
  if (objectFlags & ts.ObjectFlags.Reference) {
420
- var _typeRef_typeArguments,
421
- typeRef = type,
422
- symbol = type.getSymbol(),
423
- name2 = symbol?.getName();
424
- if ((name2 === "Array" || name2 === "ReadonlyArray") && ((_typeRef_typeArguments = typeRef.typeArguments) === null || _typeRef_typeArguments === void 0 ? void 0 : _typeRef_typeArguments.length) === 1) return `v.array(${recurse(typeRef.typeArguments[0])})`;
504
+ var _typeRef_typeArguments;
505
+ var typeRef = type;
506
+ var symbol = type.getSymbol();
507
+ var name2 = symbol === null || symbol === void 0 ? void 0 : symbol.getName();
508
+ if ((name2 === "Array" || name2 === "ReadonlyArray") && ((_typeRef_typeArguments = typeRef.typeArguments) === null || _typeRef_typeArguments === void 0 ? void 0 : _typeRef_typeArguments.length) === 1) {
509
+ return `v.array(${recurse(typeRef.typeArguments[0])})`;
510
+ }
425
511
  }
426
512
  if (objectFlags & ts.ObjectFlags.Tuple) {
427
- var typeRef1 = type,
428
- typeArgs = typeRef1.typeArguments || [];
513
+ var typeRef1 = type;
514
+ var typeArgs = typeRef1.typeArguments || [];
429
515
  return `v.tuple([${typeArgs.map(function (t) {
430
516
  return recurse(t);
431
517
  }).join(", ")}])`;
432
518
  }
433
- var entries1 = [],
434
- _iteratorNormalCompletion1 = !0,
435
- _didIteratorError1 = !1,
519
+ var entries1 = [];
520
+ var _iteratorNormalCompletion1 = true,
521
+ _didIteratorError1 = false,
436
522
  _iteratorError1 = void 0;
437
523
  try {
438
- for (var _iterator1 = props1[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
439
- var prop1 = _step1.value,
440
- name3 = prop1.getName();
441
- if (!shouldSkipObjectKey(name3)) {
442
- var propType1 = resolveSymbolType(prop1),
443
- isOptional1 = !!(prop1.getFlags() & ts.SymbolFlags.Optional),
444
- val1 = recurse(propType1);
445
- isOptional1 && !val1.startsWith("v.optional(") && (val1 = `v.optional(${val1})`), entries1.push(`${formatObjectKey(name3)}: ${val1}`);
524
+ for (var _iterator1 = props1[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
525
+ var prop1 = _step1.value;
526
+ var name3 = prop1.getName();
527
+ if (shouldSkipObjectKey(name3)) continue;
528
+ var propType1 = resolveSymbolType(prop1);
529
+ var isOptional1 = !!(prop1.getFlags() & ts.SymbolFlags.Optional);
530
+ var val1 = recurse(propType1);
531
+ if (isOptional1 && !val1.startsWith("v.optional(")) {
532
+ val1 = `v.optional(${val1})`;
446
533
  }
534
+ entries1.push(`${formatObjectKey(name3)}: ${val1}`);
447
535
  }
448
536
  } catch (err) {
449
- _didIteratorError1 = !0, _iteratorError1 = err;
537
+ _didIteratorError1 = true;
538
+ _iteratorError1 = err;
450
539
  } finally {
451
540
  try {
452
- !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
541
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
542
+ _iterator1.return();
543
+ }
453
544
  } finally {
454
- if (_didIteratorError1) throw _iteratorError1;
545
+ if (_didIteratorError1) {
546
+ throw _iteratorError1;
547
+ }
455
548
  }
456
549
  }
457
- return entries1.length === 0 ? "v.object({})" : `v.object({
458
- ${entries1.join(`,
459
- `)},
550
+ if (entries1.length === 0) return "v.object({})";
551
+ return `v.object({
552
+ ${entries1.join(",\n ")},
460
553
  })`;
461
554
  }
462
555
  var stringIndex = type.getStringIndexType();
463
- if (stringIndex) return `v.record(v.string(), ${recurse(stringIndex)})`;
556
+ if (stringIndex) {
557
+ return `v.record(v.string(), ${recurse(stringIndex)})`;
558
+ }
464
559
  var numberIndex = type.getNumberIndexType();
465
- return numberIndex ? `v.record(v.number(), ${recurse(numberIndex)})` : "v.unknown()";
560
+ if (numberIndex) {
561
+ return `v.record(v.number(), ${recurse(numberIndex)})`;
562
+ }
563
+ return "v.unknown()";
466
564
  }
467
565
  function serializeColumnBuilder(col) {
468
- var zeroType = col.type === "string" ? "string" : col.type === "number" ? "number" : col.type === "boolean" ? "boolean" : "json",
469
- expr = `${zeroType}()`;
470
- return col.serverName && (expr += `.from('${col.serverName}')`), col.optional && (expr += ".optional()"), expr;
566
+ var zeroType = col.type === "string" ? "string" : col.type === "number" ? "number" : col.type === "boolean" ? "boolean" : "json";
567
+ var expr = `${zeroType}()`;
568
+ if (col.serverName) {
569
+ expr += `.from('${col.serverName}')`;
570
+ }
571
+ if (col.optional) {
572
+ expr += ".optional()";
573
+ }
574
+ return expr;
471
575
  }
472
576
  function generateDrizzleSchemaFile(schema) {
473
- var lines = ["// auto-generated by: on-zero generate (from drizzle schema)", "import { boolean, createSchema, json, number, relationships, string, table } from '@rocicorp/zero'", ""],
474
- tableNames = Object.keys(schema.tables).sort(),
475
- _iteratorNormalCompletion = !0,
476
- _didIteratorError = !1,
577
+ var lines = [`// auto-generated by: on-zero generate (from drizzle schema)`, `import { boolean, createSchema, json, number, relationships, string, table } from '@rocicorp/zero'`, ``];
578
+ var tableNames = Object.keys(schema.tables).sort();
579
+ var _iteratorNormalCompletion = true,
580
+ _didIteratorError = false,
477
581
  _iteratorError = void 0;
478
582
  try {
479
- for (var _iterator = tableNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
480
- var tableName = _step.value,
481
- t = schema.tables[tableName],
482
- colEntries = Object.entries(t.columns).map(function (param) {
483
- var [colName, col] = param;
484
- return ` ${colName}: ${serializeColumnBuilder(col)},`;
485
- }).join(`
486
- `),
487
- pkArgs = t.primaryKey.map(function (k) {
488
- return `'${k}'`;
489
- }).join(", ");
490
- lines.push(`const ${tableName}Table = table('${t.name}')`), lines.push(" .columns({"), lines.push(colEntries), lines.push(" })"), lines.push(` .primaryKey(${pkArgs})`), lines.push("");
583
+ for (var _iterator = tableNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
584
+ var tableName = _step.value;
585
+ var t = schema.tables[tableName];
586
+ var colEntries = Object.entries(t.columns).map(function (param) {
587
+ var [colName, col] = param;
588
+ return ` ${colName}: ${serializeColumnBuilder(col)},`;
589
+ }).join("\n");
590
+ var pkArgs = t.primaryKey.map(function (k) {
591
+ return `'${k}'`;
592
+ }).join(", ");
593
+ lines.push(`const ${tableName}Table = table('${t.name}')`);
594
+ lines.push(` .columns({`);
595
+ lines.push(colEntries);
596
+ lines.push(` })`);
597
+ lines.push(` .primaryKey(${pkArgs})`);
598
+ lines.push(``);
491
599
  }
492
600
  } catch (err) {
493
- _didIteratorError = !0, _iteratorError = err;
601
+ _didIteratorError = true;
602
+ _iteratorError = err;
494
603
  } finally {
495
604
  try {
496
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
605
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
606
+ _iterator.return();
607
+ }
497
608
  } finally {
498
- if (_didIteratorError) throw _iteratorError;
609
+ if (_didIteratorError) {
610
+ throw _iteratorError;
611
+ }
499
612
  }
500
613
  }
501
- var relTableNames = Object.keys(schema.relationships).sort(),
502
- _iteratorNormalCompletion1 = !0,
503
- _didIteratorError1 = !1,
614
+ var relTableNames = Object.keys(schema.relationships).sort();
615
+ var _iteratorNormalCompletion1 = true,
616
+ _didIteratorError1 = false,
504
617
  _iteratorError1 = void 0;
505
618
  try {
506
- for (var _iterator1 = relTableNames[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
507
- var tableName1 = _step1.value,
508
- rels = schema.relationships[tableName1],
509
- relEntries = Object.entries(rels);
510
- if (relEntries.length !== 0) {
511
- var relBody = relEntries.map(function (param) {
512
- var [relName, hops] = param;
513
- if (hops.length === 1) {
514
- var hop = hops[0],
515
- fn = hop.cardinality === "one" ? "one" : "many",
516
- sf = hop.sourceField.map(function (f) {
517
- return `'${f}'`;
518
- }).join(", "),
519
- df = hop.destField.map(function (f) {
520
- return `'${f}'`;
521
- }).join(", ");
522
- return ` ${relName}: ${fn}({
619
+ for (var _iterator1 = relTableNames[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
620
+ var tableName1 = _step1.value;
621
+ var rels = schema.relationships[tableName1];
622
+ var relEntries = Object.entries(rels);
623
+ if (relEntries.length === 0) continue;
624
+ var relBody = relEntries.map(function (param) {
625
+ var [relName, hops] = param;
626
+ if (hops.length === 1) {
627
+ var hop = hops[0];
628
+ var fn = hop.cardinality === "one" ? "one" : "many";
629
+ var sf = hop.sourceField.map(function (f) {
630
+ return `'${f}'`;
631
+ }).join(", ");
632
+ var df = hop.destField.map(function (f) {
633
+ return `'${f}'`;
634
+ }).join(", ");
635
+ return ` ${relName}: ${fn}({
523
636
  sourceField: [${sf}],
524
637
  destSchema: ${hop.destSchema}Table,
525
638
  destField: [${df}],
526
639
  })`;
527
- }
528
- var hopCode = hops.map(function (hop2) {
529
- var fn2 = hop2.cardinality === "one" ? "one" : "many",
530
- sf2 = hop2.sourceField.map(function (f) {
531
- return `'${f}'`;
532
- }).join(", "),
533
- df2 = hop2.destField.map(function (f) {
534
- return `'${f}'`;
535
- }).join(", ");
536
- return `${fn2}({ sourceField: [${sf2}], destSchema: ${hop2.destSchema}Table, destField: [${df2}] })`;
640
+ }
641
+ var hopCode = hops.map(function (hop2) {
642
+ var fn2 = hop2.cardinality === "one" ? "one" : "many";
643
+ var sf2 = hop2.sourceField.map(function (f) {
644
+ return `'${f}'`;
537
645
  }).join(", ");
538
- return ` ${relName}: [${hopCode}]`;
539
- }).join(`,
540
- `);
541
- lines.push(`const ${tableName1}Relationships = relationships(${tableName1}Table, ({ one, many }) => ({`), lines.push(relBody), lines.push("}))"), lines.push("");
542
- }
646
+ var df2 = hop2.destField.map(function (f) {
647
+ return `'${f}'`;
648
+ }).join(", ");
649
+ return `${fn2}({ sourceField: [${sf2}], destSchema: ${hop2.destSchema}Table, destField: [${df2}] })`;
650
+ }).join(", ");
651
+ return ` ${relName}: [${hopCode}]`;
652
+ }).join(",\n");
653
+ lines.push(`const ${tableName1}Relationships = relationships(${tableName1}Table, ({ one, many }) => ({`);
654
+ lines.push(relBody);
655
+ lines.push(`}))`);
656
+ lines.push(``);
543
657
  }
544
658
  } catch (err) {
545
- _didIteratorError1 = !0, _iteratorError1 = err;
659
+ _didIteratorError1 = true;
660
+ _iteratorError1 = err;
546
661
  } finally {
547
662
  try {
548
- !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
663
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
664
+ _iterator1.return();
665
+ }
549
666
  } finally {
550
- if (_didIteratorError1) throw _iteratorError1;
667
+ if (_didIteratorError1) {
668
+ throw _iteratorError1;
669
+ }
551
670
  }
552
671
  }
553
672
  var tableList = tableNames.map(function (n) {
554
- return ` ${n}Table,`;
555
- }).join(`
556
- `),
557
- relList = relTableNames.filter(function (n) {
558
- return Object.keys(schema.relationships[n]).length > 0;
559
- }).map(function (n) {
560
- return ` ${n}Relationships,`;
561
- }).join(`
562
- `);
563
- return lines.push("export const schema = createSchema({"), lines.push(" tables: ["), lines.push(tableList), lines.push(" ],"), lines.push(" relationships: ["), lines.push(relList), lines.push(" ],"), lines.push("})"), lines.push(""), lines.join(`
564
- `);
673
+ return ` ${n}Table,`;
674
+ }).join("\n");
675
+ var relList = relTableNames.filter(function (n) {
676
+ return Object.keys(schema.relationships[n]).length > 0;
677
+ }).map(function (n) {
678
+ return ` ${n}Relationships,`;
679
+ }).join("\n");
680
+ lines.push(`export const schema = createSchema({`);
681
+ lines.push(` tables: [`);
682
+ lines.push(tableList);
683
+ lines.push(` ],`);
684
+ lines.push(` relationships: [`);
685
+ lines.push(relList);
686
+ lines.push(` ],`);
687
+ lines.push(`})`);
688
+ lines.push(``);
689
+ return lines.join("\n");
565
690
  }
566
691
  async function generate(options) {
567
692
  var {
568
- dir,
569
- after,
570
- silent
571
- } = options,
572
- baseDir = resolve(dir),
573
- mutationsDir = resolve(baseDir, "mutations"),
574
- usesMutationsDir = existsSync(mutationsDir),
575
- modelsDir = usesMutationsDir ? mutationsDir : resolve(baseDir, "models"),
576
- modelsDirName = usesMutationsDir ? "mutations" : "models",
577
- generatedDir = resolve(baseDir, "generated"),
578
- queriesDir = resolve(baseDir, "queries");
579
- existsSync(generatedDir) || mkdirSync(generatedDir, {
580
- recursive: !0
581
- }), loadCache();
693
+ dir,
694
+ after,
695
+ silent
696
+ } = options;
697
+ var baseDir = resolve(dir);
698
+ var mutationsDir = resolve(baseDir, "mutations");
699
+ var usesMutationsDir = existsSync(mutationsDir);
700
+ var modelsDir = usesMutationsDir ? mutationsDir : resolve(baseDir, "models");
701
+ var modelsDirName = usesMutationsDir ? "mutations" : "models";
702
+ var generatedDir = resolve(baseDir, "generated");
703
+ var queriesDir = resolve(baseDir, "queries");
704
+ if (!existsSync(generatedDir)) {
705
+ mkdirSync(generatedDir, {
706
+ recursive: true
707
+ });
708
+ }
709
+ loadCache();
582
710
  var allModelFiles = readdirSync(modelsDir).filter(function (f) {
711
+ return f.endsWith(".ts");
712
+ }).sort();
713
+ var filesWithSchema = allModelFiles.filter(function (f) {
714
+ return readFileSync(resolve(modelsDir, f), "utf-8").includes("export const schema = table(");
715
+ });
716
+ var allModelNames = allModelFiles.map(function (f) {
717
+ return basename(f, ".ts");
718
+ });
719
+ var schemaModelNames = filesWithSchema.map(function (f) {
720
+ return basename(f, ".ts");
721
+ });
722
+ var writeResults = [writeFileIfChanged(resolve(generatedDir, "models.ts"), generateModelsFile(allModelNames, modelsDirName)),
723
+ // only generate types.ts and tables.ts when model files define schemas.
724
+ // when using drizzle-zero CLI for schema generation, these files are
725
+ // managed externally and should not be overwritten.
726
+ ...(filesWithSchema.length > 0 ? [writeFileIfChanged(resolve(generatedDir, "types.ts"), generateTypesFile(schemaModelNames)), writeFileIfChanged(resolve(generatedDir, "tables.ts"), generateTablesFile(schemaModelNames, modelsDirName))] : []), writeFileIfChanged(resolve(generatedDir, "README.md"), generateReadmeFile())];
727
+ var filesChanged = writeResults.filter(Boolean).length;
728
+ var queryCount = 0;
729
+ var mutationCount = 0;
730
+ var ts = await import("typescript");
731
+ var typeToValibot = function (paramType) {
732
+ try {
733
+ return parseTypeString(paramType.trim());
734
+ } catch (e) {
735
+ return null;
736
+ }
737
+ };
738
+ if (existsSync(queriesDir)) {
739
+ var queryFiles = readdirSync(queriesDir).filter(function (f) {
583
740
  return f.endsWith(".ts");
584
- }).sort(),
585
- filesWithSchema = allModelFiles.filter(function (f) {
586
- return readFileSync(resolve(modelsDir, f), "utf-8").includes("export const schema = table(");
587
- }),
588
- allModelNames = allModelFiles.map(function (f) {
589
- return basename(f, ".ts");
590
- }),
591
- schemaModelNames = filesWithSchema.map(function (f) {
592
- return basename(f, ".ts");
593
- }),
594
- writeResults = [writeFileIfChanged(resolve(generatedDir, "models.ts"), generateModelsFile(allModelNames, modelsDirName)),
595
- // only generate types.ts and tables.ts when model files define schemas.
596
- // when using drizzle-zero CLI for schema generation, these files are
597
- // managed externally and should not be overwritten.
598
- ...(filesWithSchema.length > 0 ? [writeFileIfChanged(resolve(generatedDir, "types.ts"), generateTypesFile(schemaModelNames)), writeFileIfChanged(resolve(generatedDir, "tables.ts"), generateTablesFile(schemaModelNames, modelsDirName))] : []), writeFileIfChanged(resolve(generatedDir, "README.md"), generateReadmeFile())],
599
- filesChanged = writeResults.filter(Boolean).length,
600
- queryCount = 0,
601
- mutationCount = 0,
602
- ts = await import("typescript"),
603
- typeToValibot = function (paramType) {
604
- try {
605
- return parseTypeString(paramType.trim());
606
- } catch {
607
- return null;
741
+ });
742
+ var allQueries = [];
743
+ var queryResolver = null;
744
+ var getQueryResolver = function () {
745
+ if (!queryResolver) {
746
+ var allFiles2 = readdirSync(queriesDir).filter(function (f) {
747
+ return f.endsWith(".ts");
748
+ }).map(function (f) {
749
+ return {
750
+ path: resolve(queriesDir, f),
751
+ content: readFileSync(resolve(queriesDir, f), "utf-8")
752
+ };
753
+ });
754
+ queryResolver = createTypeResolver(ts, allFiles2, queriesDir);
608
755
  }
756
+ return queryResolver;
609
757
  };
610
- if (existsSync(queriesDir)) {
611
- var queryFiles = readdirSync(queriesDir).filter(function (f) {
612
- return f.endsWith(".ts");
613
- }),
614
- allQueries = [],
615
- queryResolver = null,
616
- getQueryResolver = function () {
617
- if (!queryResolver) {
618
- var allFiles2 = readdirSync(queriesDir).filter(function (f) {
619
- return f.endsWith(".ts");
620
- }).map(function (f) {
621
- return {
622
- path: resolve(queriesDir, f),
623
- content: readFileSync(resolve(queriesDir, f), "utf-8")
624
- };
625
- });
626
- queryResolver = createTypeResolver(ts, allFiles2, queriesDir);
627
- }
628
- return queryResolver;
629
- },
630
- _iteratorNormalCompletion = !0,
631
- _didIteratorError = !1,
758
+ var _iteratorNormalCompletion = true,
759
+ _didIteratorError = false,
632
760
  _iteratorError = void 0;
633
761
  try {
634
- for (var _loop = function () {
635
- var file2 = _step.value,
636
- filePath2 = resolve(queriesDir, file2),
637
- fileBaseName2 = basename(file2, ".ts");
638
- try {
639
- var content2 = readFileSync(filePath2, "utf-8"),
640
- sourceFile2 = ts.createSourceFile(filePath2, content2, ts.ScriptTarget.Latest, !0);
641
- ts.forEachChild(sourceFile2, function (node) {
642
- if (ts.isVariableStatement(node)) {
643
- var _node_modifiers,
644
- exportModifier = (_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.find(function (m) {
645
- return m.kind === ts.SyntaxKind.ExportKeyword;
646
- });
647
- if (!exportModifier) return;
648
- var declaration = node.declarationList.declarations[0];
649
- if (!declaration || !ts.isVariableDeclaration(declaration)) return;
650
- var name = declaration.name.getText(sourceFile2);
651
- if (name === "permission") return;
652
- if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {
653
- var params = declaration.initializer.parameters,
654
- paramType = "void";
655
- if (params.length > 0) {
656
- var _param_type,
657
- param = params[0];
658
- paramType = ((_param_type = param.type) === null || _param_type === void 0 ? void 0 : _param_type.getText(sourceFile2)) || "unknown";
659
- }
660
- var valibotCode = typeToValibot(paramType);
661
- if (!valibotCode && params.length > 0 && params[0].type) {
662
- var resolver = getQueryResolver(),
663
- resolverSourceFile = resolver.program.getSourceFile(filePath2);
664
- if (resolverSourceFile) {
665
- var resolvedType = resolveParamType(ts, resolver, resolverSourceFile, name, 0);
666
- resolvedType && (valibotCode = resolver.typeToValibot(resolvedType));
762
+ var _loop = function () {
763
+ var file2 = _step.value;
764
+ var filePath2 = resolve(queriesDir, file2);
765
+ var fileBaseName2 = basename(file2, ".ts");
766
+ try {
767
+ var content2 = readFileSync(filePath2, "utf-8");
768
+ var sourceFile2 = ts.createSourceFile(filePath2, content2, ts.ScriptTarget.Latest, true);
769
+ ts.forEachChild(sourceFile2, function (node) {
770
+ if (ts.isVariableStatement(node)) {
771
+ var _node_modifiers;
772
+ var exportModifier = (_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.find(function (m) {
773
+ return m.kind === ts.SyntaxKind.ExportKeyword;
774
+ });
775
+ if (!exportModifier) return;
776
+ var declaration = node.declarationList.declarations[0];
777
+ if (!declaration || !ts.isVariableDeclaration(declaration)) return;
778
+ var name = declaration.name.getText(sourceFile2);
779
+ if (name === "permission") return;
780
+ if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {
781
+ var params = declaration.initializer.parameters;
782
+ var paramType = "void";
783
+ if (params.length > 0) {
784
+ var _param_type;
785
+ var param = params[0];
786
+ paramType = ((_param_type = param.type) === null || _param_type === void 0 ? void 0 : _param_type.getText(sourceFile2)) || "unknown";
787
+ }
788
+ var valibotCode = typeToValibot(paramType);
789
+ if (!valibotCode && params.length > 0 && params[0].type) {
790
+ var resolver = getQueryResolver();
791
+ var resolverSourceFile = resolver.program.getSourceFile(filePath2);
792
+ if (resolverSourceFile) {
793
+ var resolvedType = resolveParamType(ts, resolver, resolverSourceFile, name, 0);
794
+ if (resolvedType) {
795
+ valibotCode = resolver.typeToValibot(resolvedType);
667
796
  }
668
797
  }
669
- valibotCode ? allQueries.push({
798
+ }
799
+ if (valibotCode) {
800
+ allQueries.push({
670
801
  name,
671
802
  params: paramType,
672
803
  valibotCode,
673
804
  sourceFile: fileBaseName2
674
- }) : !silent && paramType !== "void" && console.error(`\u2717 ${name}: could not resolve type "${paramType}"`);
805
+ });
806
+ } else if (!silent && paramType !== "void") {
807
+ console.error(`\u2717 ${name}: could not resolve type "${paramType}"`);
675
808
  }
676
809
  }
677
- });
678
- } catch (err) {
679
- silent || console.error(`Error processing ${file2}:`, err);
680
- }
681
- }, _iterator = queryFiles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) _loop();
810
+ }
811
+ });
812
+ } catch (err) {
813
+ if (!silent) console.error(`Error processing ${file2}:`, err);
814
+ }
815
+ };
816
+ for (var _iterator = queryFiles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
682
817
  } catch (err) {
683
- _didIteratorError = !0, _iteratorError = err;
818
+ _didIteratorError = true;
819
+ _iteratorError = err;
684
820
  } finally {
685
821
  try {
686
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
822
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
823
+ _iterator.return();
824
+ }
687
825
  } finally {
688
- if (_didIteratorError) throw _iteratorError;
826
+ if (_didIteratorError) {
827
+ throw _iteratorError;
828
+ }
689
829
  }
690
830
  }
691
831
  queryCount = allQueries.length;
692
- var groupedChanged = writeFileIfChanged(resolve(generatedDir, "groupedQueries.ts"), generateGroupedQueriesFile(allQueries)),
693
- syncedChanged = writeFileIfChanged(resolve(generatedDir, "syncedQueries.ts"), generateSyncedQueriesFile(allQueries));
694
- groupedChanged && filesChanged++, syncedChanged && filesChanged++;
695
- }
696
- var allModelMutations = [],
697
- mutationFiles = [],
698
- unresolvedModels = [],
699
- _iteratorNormalCompletion1 = !0,
700
- _didIteratorError1 = !1,
832
+ var groupedChanged = writeFileIfChanged(resolve(generatedDir, "groupedQueries.ts"), generateGroupedQueriesFile(allQueries));
833
+ var syncedChanged = writeFileIfChanged(resolve(generatedDir, "syncedQueries.ts"), generateSyncedQueriesFile(allQueries));
834
+ if (groupedChanged) filesChanged++;
835
+ if (syncedChanged) filesChanged++;
836
+ }
837
+ var allModelMutations = [];
838
+ var mutationFiles = [];
839
+ var unresolvedModels = [];
840
+ var _iteratorNormalCompletion1 = true,
841
+ _didIteratorError1 = false,
701
842
  _iteratorError1 = void 0;
702
843
  try {
703
- for (var _iterator1 = allModelFiles[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
704
- var file = _step1.value,
705
- filePath = resolve(modelsDir, file),
706
- fileBaseName = basename(file, ".ts");
844
+ for (var _iterator1 = allModelFiles[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
845
+ var file = _step1.value;
846
+ var filePath = resolve(modelsDir, file);
847
+ var fileBaseName = basename(file, ".ts");
707
848
  try {
708
849
  var content = readFileSync(filePath, "utf-8");
709
850
  mutationFiles.push({
@@ -711,119 +852,152 @@ async function generate(options) {
711
852
  content,
712
853
  baseName: fileBaseName
713
854
  });
714
- var sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, !0),
715
- result = extractMutationsFromModel(ts, sourceFile, content, filePath, !!silent, typeToValibot);
855
+ var sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
856
+ var result = extractMutationsFromModel(ts, sourceFile, content, filePath, !!silent, typeToValibot);
716
857
  if (result) {
717
- result.modelName = fileBaseName, allModelMutations.push(result);
858
+ result.modelName = fileBaseName;
859
+ allModelMutations.push(result);
718
860
  var hasUnresolved = result.custom.some(function (m) {
719
861
  return m.paramType !== "void" && m.paramType !== "unknown" && !m.valibotCode;
720
862
  });
721
- hasUnresolved && unresolvedModels.push({
722
- baseName: fileBaseName,
723
- filePath
724
- });
863
+ if (hasUnresolved) {
864
+ unresolvedModels.push({
865
+ baseName: fileBaseName,
866
+ filePath
867
+ });
868
+ }
725
869
  }
726
870
  } catch (err) {
727
- silent || console.error(`Error extracting mutations from ${file}:`, err);
871
+ if (!silent) console.error(`Error extracting mutations from ${file}:`, err);
728
872
  }
729
873
  }
730
874
  } catch (err) {
731
- _didIteratorError1 = !0, _iteratorError1 = err;
875
+ _didIteratorError1 = true;
876
+ _iteratorError1 = err;
732
877
  } finally {
733
878
  try {
734
- !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
879
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
880
+ _iterator1.return();
881
+ }
735
882
  } finally {
736
- if (_didIteratorError1) throw _iteratorError1;
883
+ if (_didIteratorError1) {
884
+ throw _iteratorError1;
885
+ }
737
886
  }
738
887
  }
739
888
  if (unresolvedModels.length > 0) {
740
889
  var collectTsFiles = function (dir2) {
741
- var results = [],
742
- _iteratorNormalCompletion4 = !0,
743
- _didIteratorError4 = !1,
744
- _iteratorError4 = void 0;
745
- try {
746
- for (var _iterator4 = readdirSync(dir2, {
747
- withFileTypes: !0
748
- })[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = !0) {
749
- var entry = _step4.value,
750
- fullPath = resolve(dir2, entry.name);
751
- entry.isDirectory() && entry.name !== "node_modules" ? results.push(...collectTsFiles(fullPath)) : entry.isFile() && entry.name.endsWith(".ts") && !entry.name.endsWith(".d.ts") && results.push({
890
+ var results = [];
891
+ var _iteratorNormalCompletion4 = true,
892
+ _didIteratorError4 = false,
893
+ _iteratorError4 = void 0;
894
+ try {
895
+ for (var _iterator4 = readdirSync(dir2, {
896
+ withFileTypes: true
897
+ })[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
898
+ var entry = _step4.value;
899
+ var fullPath = resolve(dir2, entry.name);
900
+ if (entry.isDirectory() && entry.name !== "node_modules") {
901
+ results.push(...collectTsFiles(fullPath));
902
+ } else if (entry.isFile() && entry.name.endsWith(".ts") && !entry.name.endsWith(".d.ts")) {
903
+ results.push({
752
904
  path: fullPath,
753
905
  content: readFileSync(fullPath, "utf-8")
754
906
  });
755
907
  }
756
- } catch (err) {
757
- _didIteratorError4 = !0, _iteratorError4 = err;
908
+ }
909
+ } catch (err) {
910
+ _didIteratorError4 = true;
911
+ _iteratorError4 = err;
912
+ } finally {
913
+ try {
914
+ if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
915
+ _iterator4.return();
916
+ }
758
917
  } finally {
759
- try {
760
- !_iteratorNormalCompletion4 && _iterator4.return != null && _iterator4.return();
761
- } finally {
762
- if (_didIteratorError4) throw _iteratorError4;
918
+ if (_didIteratorError4) {
919
+ throw _iteratorError4;
763
920
  }
764
921
  }
765
- return results;
766
- },
767
- allFiles = collectTsFiles(baseDir),
768
- modelResolver = createTypeResolver(ts, allFiles, baseDir),
769
- _iteratorNormalCompletion2 = !0,
770
- _didIteratorError2 = !1,
922
+ }
923
+ return results;
924
+ };
925
+ var allFiles = collectTsFiles(baseDir);
926
+ var modelResolver = createTypeResolver(ts, allFiles, baseDir);
927
+ var _iteratorNormalCompletion2 = true,
928
+ _didIteratorError2 = false,
771
929
  _iteratorError2 = void 0;
772
930
  try {
773
- for (var _loop1 = function () {
774
- var {
775
- baseName,
776
- filePath: filePath2
777
- } = _step2.value,
778
- resolverSourceFile = modelResolver.program.getSourceFile(filePath2);
779
- if (!resolverSourceFile) return "continue";
780
- var resolvedTypes = resolveMutationParamTypes(ts, modelResolver, resolverSourceFile);
781
- if (resolvedTypes.size === 0) return "continue";
782
- var content2 = readFileSync(filePath2, "utf-8"),
783
- sourceFile2 = ts.createSourceFile(filePath2, content2, ts.ScriptTarget.Latest, !0),
784
- result2 = extractMutationsFromModel(ts, sourceFile2, content2, filePath2, !!silent, typeToValibot, resolvedTypes, modelResolver.typeToValibot);
785
- if (result2) {
786
- result2.modelName = baseName;
787
- var idx = allModelMutations.findIndex(function (m) {
788
- return m.modelName === baseName;
789
- });
790
- idx >= 0 && (allModelMutations[idx] = result2);
791
- }
792
- }, _iterator2 = unresolvedModels[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = !0) _loop1();
931
+ var _loop1 = function () {
932
+ var {
933
+ baseName,
934
+ filePath: filePath2
935
+ } = _step2.value;
936
+ var resolverSourceFile = modelResolver.program.getSourceFile(filePath2);
937
+ if (!resolverSourceFile) return "continue";
938
+ var resolvedTypes = resolveMutationParamTypes(ts, modelResolver, resolverSourceFile);
939
+ if (resolvedTypes.size === 0) return "continue";
940
+ var content2 = readFileSync(filePath2, "utf-8");
941
+ var sourceFile2 = ts.createSourceFile(filePath2, content2, ts.ScriptTarget.Latest, true);
942
+ var result2 = extractMutationsFromModel(ts, sourceFile2, content2, filePath2, !!silent, typeToValibot, resolvedTypes, modelResolver.typeToValibot);
943
+ if (result2) {
944
+ result2.modelName = baseName;
945
+ var idx = allModelMutations.findIndex(function (m) {
946
+ return m.modelName === baseName;
947
+ });
948
+ if (idx >= 0) allModelMutations[idx] = result2;
949
+ }
950
+ };
951
+ for (var _iterator2 = unresolvedModels[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) _loop1();
793
952
  } catch (err) {
794
- _didIteratorError2 = !0, _iteratorError2 = err;
953
+ _didIteratorError2 = true;
954
+ _iteratorError2 = err;
795
955
  } finally {
796
956
  try {
797
- !_iteratorNormalCompletion2 && _iterator2.return != null && _iterator2.return();
957
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
958
+ _iterator2.return();
959
+ }
798
960
  } finally {
799
- if (_didIteratorError2) throw _iteratorError2;
961
+ if (_didIteratorError2) {
962
+ throw _iteratorError2;
963
+ }
800
964
  }
801
965
  }
802
966
  }
803
- var _iteratorNormalCompletion3 = !0,
804
- _didIteratorError3 = !1,
967
+ var _iteratorNormalCompletion3 = true,
968
+ _didIteratorError3 = false,
805
969
  _iteratorError3 = void 0;
806
970
  try {
807
- for (var _loop2 = function () {
808
- var model = _step3.value;
809
- model.hasCRUD && (mutationCount += 3), mutationCount += model.custom.filter(function (m) {
810
- return !model.hasCRUD || !["insert", "update", "delete", "upsert"].includes(m.name);
811
- }).length;
812
- }, _iterator3 = allModelMutations[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = !0) _loop2();
971
+ var _loop2 = function () {
972
+ var model = _step3.value;
973
+ if (model.hasCRUD) mutationCount += 3;
974
+ mutationCount += model.custom.filter(function (m) {
975
+ return !model.hasCRUD || !["insert", "update", "delete", "upsert"].includes(m.name);
976
+ }).length;
977
+ };
978
+ for (var _iterator3 = allModelMutations[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) _loop2();
813
979
  } catch (err) {
814
- _didIteratorError3 = !0, _iteratorError3 = err;
980
+ _didIteratorError3 = true;
981
+ _iteratorError3 = err;
815
982
  } finally {
816
983
  try {
817
- !_iteratorNormalCompletion3 && _iterator3.return != null && _iterator3.return();
984
+ if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
985
+ _iterator3.return();
986
+ }
818
987
  } finally {
819
- if (_didIteratorError3) throw _iteratorError3;
988
+ if (_didIteratorError3) {
989
+ throw _iteratorError3;
990
+ }
820
991
  }
821
992
  }
822
993
  if (allModelMutations.length > 0) {
823
994
  var mutationsChanged = writeFileIfChanged(resolve(generatedDir, "syncedMutations.ts"), generateSyncedMutationsFile(allModelMutations));
824
- mutationsChanged && filesChanged++;
995
+ if (mutationsChanged) filesChanged++;
825
996
  }
826
- if (filesChanged > 0 && !silent && console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)${queryCount ? `, ${queryCount} queries` : ""}${mutationCount ? `, ${mutationCount} mutations` : ""}`), filesChanged > 0 && after) {
997
+ if (filesChanged > 0 && !silent) {
998
+ console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)${queryCount ? `, ${queryCount} queries` : ""}${mutationCount ? `, ${mutationCount} mutations` : ""}`);
999
+ }
1000
+ if (filesChanged > 0 && after) {
827
1001
  var {
828
1002
  execSync
829
1003
  } = await import("child_process");
@@ -836,10 +1010,11 @@ async function generate(options) {
836
1010
  }
837
1011
  });
838
1012
  } catch (err) {
839
- silent || console.error(`Error running after command: ${err}`);
1013
+ if (!silent) console.error(`Error running after command: ${err}`);
840
1014
  }
841
1015
  }
842
- return saveCache(), {
1016
+ saveCache();
1017
+ return {
843
1018
  filesChanged,
844
1019
  modelCount: allModelFiles.length,
845
1020
  schemaCount: filesWithSchema.length,
@@ -849,42 +1024,47 @@ async function generate(options) {
849
1024
  }
850
1025
  async function watch(options) {
851
1026
  var {
852
- dir,
853
- debounce = 1e3
854
- } = options,
855
- baseDir = resolve(dir),
856
- mutationsDir = resolve(baseDir, "mutations"),
857
- modelsDir = existsSync(mutationsDir) ? mutationsDir : resolve(baseDir, "models"),
858
- queriesDir = resolve(baseDir, "queries"),
859
- generatedDir = resolve(baseDir, "generated");
1027
+ dir,
1028
+ debounce = 1e3
1029
+ } = options;
1030
+ var baseDir = resolve(dir);
1031
+ var mutationsDir = resolve(baseDir, "mutations");
1032
+ var modelsDir = existsSync(mutationsDir) ? mutationsDir : resolve(baseDir, "models");
1033
+ var queriesDir = resolve(baseDir, "queries");
1034
+ var generatedDir = resolve(baseDir, "generated");
860
1035
  await generate({
861
1036
  ...options,
862
- silent: !0
863
- }), console.info(`\u{1F440} watching...
864
- `);
865
- var chokidar = await import("chokidar"),
866
- debounceTimer = null,
867
- debouncedRegenerate = function (path, event) {
868
- debounceTimer && clearTimeout(debounceTimer), console.info(`
869
- ${event} ${path}`), debounceTimer = setTimeout(function () {
870
- generate({
871
- ...options,
872
- silent: !1
873
- });
874
- }, debounce);
875
- },
876
- watcher = chokidar.watch([modelsDir, queriesDir], {
877
- persistent: !0,
878
- ignoreInitial: !0,
879
- ignored: [generatedDir]
880
- });
881
- return watcher.on("change", function (path) {
1037
+ silent: true
1038
+ });
1039
+ console.info("\u{1F440} watching...\n");
1040
+ var chokidar = await import("chokidar");
1041
+ var debounceTimer = null;
1042
+ var debouncedRegenerate = function (path, event) {
1043
+ if (debounceTimer) clearTimeout(debounceTimer);
1044
+ console.info(`
1045
+ ${event} ${path}`);
1046
+ debounceTimer = setTimeout(function () {
1047
+ generate({
1048
+ ...options,
1049
+ silent: false
1050
+ });
1051
+ }, debounce);
1052
+ };
1053
+ var watcher = chokidar.watch([modelsDir, queriesDir], {
1054
+ persistent: true,
1055
+ ignoreInitial: true,
1056
+ ignored: [generatedDir]
1057
+ });
1058
+ watcher.on("change", function (path) {
882
1059
  return debouncedRegenerate(path, "\u{1F4DD}");
883
- }), watcher.on("add", function (path) {
1060
+ });
1061
+ watcher.on("add", function (path) {
884
1062
  return debouncedRegenerate(path, "\u2795");
885
- }), watcher.on("unlink", function (path) {
1063
+ });
1064
+ watcher.on("unlink", function (path) {
886
1065
  return debouncedRegenerate(path, "\u{1F5D1}\uFE0F ");
887
- }), watcher;
1066
+ });
1067
+ return watcher;
888
1068
  }
889
1069
  export { generate, generateDrizzleSchemaFile, watch };
890
1070
  //# sourceMappingURL=generate.native.js.map