on-zero 0.0.1

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 (371) hide show
  1. package/LICENSE +21 -0
  2. package/cli.cjs +3 -0
  3. package/dist/cjs/cli.cjs +405 -0
  4. package/dist/cjs/cli.js +397 -0
  5. package/dist/cjs/cli.js.map +6 -0
  6. package/dist/cjs/cli.native.js +505 -0
  7. package/dist/cjs/cli.native.js.map +1 -0
  8. package/dist/cjs/constants.cjs +28 -0
  9. package/dist/cjs/constants.js +22 -0
  10. package/dist/cjs/constants.js.map +6 -0
  11. package/dist/cjs/constants.native.js +31 -0
  12. package/dist/cjs/constants.native.js.map +1 -0
  13. package/dist/cjs/createPermissions.cjs +82 -0
  14. package/dist/cjs/createPermissions.js +77 -0
  15. package/dist/cjs/createPermissions.js.map +6 -0
  16. package/dist/cjs/createPermissions.native.js +107 -0
  17. package/dist/cjs/createPermissions.native.js.map +1 -0
  18. package/dist/cjs/createUseQuery.cjs +59 -0
  19. package/dist/cjs/createUseQuery.js +34 -0
  20. package/dist/cjs/createUseQuery.js.map +6 -0
  21. package/dist/cjs/createUseQuery.native.js +70 -0
  22. package/dist/cjs/createUseQuery.native.js.map +1 -0
  23. package/dist/cjs/createZeroClient.cjs +162 -0
  24. package/dist/cjs/createZeroClient.js +126 -0
  25. package/dist/cjs/createZeroClient.js.map +6 -0
  26. package/dist/cjs/createZeroClient.native.js +214 -0
  27. package/dist/cjs/createZeroClient.native.js.map +1 -0
  28. package/dist/cjs/createZeroServer.cjs +148 -0
  29. package/dist/cjs/createZeroServer.js +126 -0
  30. package/dist/cjs/createZeroServer.js.map +6 -0
  31. package/dist/cjs/createZeroServer.native.js +170 -0
  32. package/dist/cjs/createZeroServer.native.js.map +1 -0
  33. package/dist/cjs/helpers/batchQuery.cjs +49 -0
  34. package/dist/cjs/helpers/batchQuery.js +38 -0
  35. package/dist/cjs/helpers/batchQuery.js.map +6 -0
  36. package/dist/cjs/helpers/batchQuery.native.js +49 -0
  37. package/dist/cjs/helpers/batchQuery.native.js.map +1 -0
  38. package/dist/cjs/helpers/createMutators.cjs +90 -0
  39. package/dist/cjs/helpers/createMutators.js +85 -0
  40. package/dist/cjs/helpers/createMutators.js.map +6 -0
  41. package/dist/cjs/helpers/createMutators.native.js +132 -0
  42. package/dist/cjs/helpers/createMutators.native.js.map +1 -0
  43. package/dist/cjs/helpers/didRunPermissionCheck.cjs +30 -0
  44. package/dist/cjs/helpers/didRunPermissionCheck.js +26 -0
  45. package/dist/cjs/helpers/didRunPermissionCheck.js.map +6 -0
  46. package/dist/cjs/helpers/didRunPermissionCheck.native.js +39 -0
  47. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -0
  48. package/dist/cjs/helpers/ensureLoggedIn.cjs +33 -0
  49. package/dist/cjs/helpers/ensureLoggedIn.js +25 -0
  50. package/dist/cjs/helpers/ensureLoggedIn.js.map +6 -0
  51. package/dist/cjs/helpers/ensureLoggedIn.native.js +36 -0
  52. package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -0
  53. package/dist/cjs/helpers/getQueryOrMutatorAuthData.cjs +30 -0
  54. package/dist/cjs/helpers/getQueryOrMutatorAuthData.js +24 -0
  55. package/dist/cjs/helpers/getQueryOrMutatorAuthData.js.map +6 -0
  56. package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js +33 -0
  57. package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js.map +1 -0
  58. package/dist/cjs/helpers/mutatorContext.cjs +40 -0
  59. package/dist/cjs/helpers/mutatorContext.js +36 -0
  60. package/dist/cjs/helpers/mutatorContext.js.map +6 -0
  61. package/dist/cjs/helpers/mutatorContext.native.js +43 -0
  62. package/dist/cjs/helpers/mutatorContext.native.js.map +1 -0
  63. package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +107 -0
  64. package/dist/cjs/helpers/prettyFormatZeroQuery.js +92 -0
  65. package/dist/cjs/helpers/prettyFormatZeroQuery.js.map +6 -0
  66. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +119 -0
  67. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -0
  68. package/dist/cjs/helpers/useZeroDebug.cjs +68 -0
  69. package/dist/cjs/helpers/useZeroDebug.js +49 -0
  70. package/dist/cjs/helpers/useZeroDebug.js.map +6 -0
  71. package/dist/cjs/helpers/useZeroDebug.native.js +81 -0
  72. package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -0
  73. package/dist/cjs/index.cjs +42 -0
  74. package/dist/cjs/index.js +35 -0
  75. package/dist/cjs/index.js.map +6 -0
  76. package/dist/cjs/index.native.js +45 -0
  77. package/dist/cjs/index.native.js.map +1 -0
  78. package/dist/cjs/mutations.cjs +51 -0
  79. package/dist/cjs/mutations.js +44 -0
  80. package/dist/cjs/mutations.js.map +6 -0
  81. package/dist/cjs/mutations.native.js +56 -0
  82. package/dist/cjs/mutations.native.js.map +1 -0
  83. package/dist/cjs/queryRegistry.cjs +33 -0
  84. package/dist/cjs/queryRegistry.js +28 -0
  85. package/dist/cjs/queryRegistry.js.map +6 -0
  86. package/dist/cjs/queryRegistry.native.js +36 -0
  87. package/dist/cjs/queryRegistry.native.js.map +1 -0
  88. package/dist/cjs/resolveQuery.cjs +41 -0
  89. package/dist/cjs/resolveQuery.js +40 -0
  90. package/dist/cjs/resolveQuery.js.map +6 -0
  91. package/dist/cjs/resolveQuery.native.js +46 -0
  92. package/dist/cjs/resolveQuery.native.js.map +1 -0
  93. package/dist/cjs/run.cjs +48 -0
  94. package/dist/cjs/run.js +37 -0
  95. package/dist/cjs/run.js.map +6 -0
  96. package/dist/cjs/run.native.js +52 -0
  97. package/dist/cjs/run.native.js.map +1 -0
  98. package/dist/cjs/server.cjs +18 -0
  99. package/dist/cjs/server.js +15 -0
  100. package/dist/cjs/server.js.map +6 -0
  101. package/dist/cjs/server.native.js +21 -0
  102. package/dist/cjs/server.native.js.map +1 -0
  103. package/dist/cjs/serverWhere.cjs +29 -0
  104. package/dist/cjs/serverWhere.js +24 -0
  105. package/dist/cjs/serverWhere.js.map +6 -0
  106. package/dist/cjs/serverWhere.native.js +32 -0
  107. package/dist/cjs/serverWhere.native.js.map +1 -0
  108. package/dist/cjs/state.cjs +49 -0
  109. package/dist/cjs/state.js +37 -0
  110. package/dist/cjs/state.js.map +6 -0
  111. package/dist/cjs/state.native.js +54 -0
  112. package/dist/cjs/state.native.js.map +1 -0
  113. package/dist/cjs/types.cjs +16 -0
  114. package/dist/cjs/types.js +14 -0
  115. package/dist/cjs/types.js.map +6 -0
  116. package/dist/cjs/types.native.js +19 -0
  117. package/dist/cjs/types.native.js.map +1 -0
  118. package/dist/cjs/where.cjs +41 -0
  119. package/dist/cjs/where.js +35 -0
  120. package/dist/cjs/where.js.map +6 -0
  121. package/dist/cjs/where.native.js +46 -0
  122. package/dist/cjs/where.native.js.map +1 -0
  123. package/dist/cjs/zeroRunner.cjs +34 -0
  124. package/dist/cjs/zeroRunner.js +32 -0
  125. package/dist/cjs/zeroRunner.js.map +6 -0
  126. package/dist/cjs/zeroRunner.native.js +37 -0
  127. package/dist/cjs/zeroRunner.native.js.map +1 -0
  128. package/dist/cjs/zql.cjs +31 -0
  129. package/dist/cjs/zql.js +26 -0
  130. package/dist/cjs/zql.js.map +6 -0
  131. package/dist/cjs/zql.native.js +35 -0
  132. package/dist/cjs/zql.native.js.map +1 -0
  133. package/dist/esm/cli.js +383 -0
  134. package/dist/esm/cli.js.map +6 -0
  135. package/dist/esm/cli.mjs +384 -0
  136. package/dist/esm/cli.mjs.map +1 -0
  137. package/dist/esm/cli.native.js +481 -0
  138. package/dist/esm/cli.native.js.map +1 -0
  139. package/dist/esm/constants.js +6 -0
  140. package/dist/esm/constants.js.map +6 -0
  141. package/dist/esm/constants.mjs +4 -0
  142. package/dist/esm/constants.mjs.map +1 -0
  143. package/dist/esm/constants.native.js +4 -0
  144. package/dist/esm/constants.native.js.map +1 -0
  145. package/dist/esm/createPermissions.js +66 -0
  146. package/dist/esm/createPermissions.js.map +6 -0
  147. package/dist/esm/createPermissions.mjs +59 -0
  148. package/dist/esm/createPermissions.mjs.map +1 -0
  149. package/dist/esm/createPermissions.native.js +81 -0
  150. package/dist/esm/createPermissions.native.js.map +1 -0
  151. package/dist/esm/createUseQuery.js +21 -0
  152. package/dist/esm/createUseQuery.js.map +6 -0
  153. package/dist/esm/createUseQuery.mjs +36 -0
  154. package/dist/esm/createUseQuery.mjs.map +1 -0
  155. package/dist/esm/createUseQuery.native.js +44 -0
  156. package/dist/esm/createUseQuery.native.js.map +1 -0
  157. package/dist/esm/createZeroClient.js +135 -0
  158. package/dist/esm/createZeroClient.js.map +6 -0
  159. package/dist/esm/createZeroClient.mjs +139 -0
  160. package/dist/esm/createZeroClient.mjs.map +1 -0
  161. package/dist/esm/createZeroClient.native.js +188 -0
  162. package/dist/esm/createZeroClient.native.js.map +1 -0
  163. package/dist/esm/createZeroServer.js +121 -0
  164. package/dist/esm/createZeroServer.js.map +6 -0
  165. package/dist/esm/createZeroServer.mjs +125 -0
  166. package/dist/esm/createZeroServer.mjs.map +1 -0
  167. package/dist/esm/createZeroServer.native.js +144 -0
  168. package/dist/esm/createZeroServer.native.js.map +1 -0
  169. package/dist/esm/helpers/batchQuery.js +22 -0
  170. package/dist/esm/helpers/batchQuery.js.map +6 -0
  171. package/dist/esm/helpers/batchQuery.mjs +26 -0
  172. package/dist/esm/helpers/batchQuery.mjs.map +1 -0
  173. package/dist/esm/helpers/batchQuery.native.js +23 -0
  174. package/dist/esm/helpers/batchQuery.native.js.map +1 -0
  175. package/dist/esm/helpers/createMutators.js +71 -0
  176. package/dist/esm/helpers/createMutators.js.map +6 -0
  177. package/dist/esm/helpers/createMutators.mjs +67 -0
  178. package/dist/esm/helpers/createMutators.mjs.map +1 -0
  179. package/dist/esm/helpers/createMutators.native.js +106 -0
  180. package/dist/esm/helpers/createMutators.native.js.map +1 -0
  181. package/dist/esm/helpers/didRunPermissionCheck.js +10 -0
  182. package/dist/esm/helpers/didRunPermissionCheck.js.map +6 -0
  183. package/dist/esm/helpers/didRunPermissionCheck.mjs +6 -0
  184. package/dist/esm/helpers/didRunPermissionCheck.mjs.map +1 -0
  185. package/dist/esm/helpers/didRunPermissionCheck.native.js +12 -0
  186. package/dist/esm/helpers/didRunPermissionCheck.native.js.map +1 -0
  187. package/dist/esm/helpers/ensureLoggedIn.js +10 -0
  188. package/dist/esm/helpers/ensureLoggedIn.js.map +6 -0
  189. package/dist/esm/helpers/ensureLoggedIn.mjs +10 -0
  190. package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -0
  191. package/dist/esm/helpers/ensureLoggedIn.native.js +10 -0
  192. package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -0
  193. package/dist/esm/helpers/getQueryOrMutatorAuthData.js +9 -0
  194. package/dist/esm/helpers/getQueryOrMutatorAuthData.js.map +6 -0
  195. package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs +7 -0
  196. package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs.map +1 -0
  197. package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js +7 -0
  198. package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js.map +1 -0
  199. package/dist/esm/helpers/mutatorContext.js +20 -0
  200. package/dist/esm/helpers/mutatorContext.js.map +6 -0
  201. package/dist/esm/helpers/mutatorContext.mjs +15 -0
  202. package/dist/esm/helpers/mutatorContext.mjs.map +1 -0
  203. package/dist/esm/helpers/mutatorContext.native.js +15 -0
  204. package/dist/esm/helpers/mutatorContext.native.js.map +1 -0
  205. package/dist/esm/helpers/prettyFormatZeroQuery.js +76 -0
  206. package/dist/esm/helpers/prettyFormatZeroQuery.js.map +6 -0
  207. package/dist/esm/helpers/prettyFormatZeroQuery.mjs +84 -0
  208. package/dist/esm/helpers/prettyFormatZeroQuery.mjs.map +1 -0
  209. package/dist/esm/helpers/prettyFormatZeroQuery.native.js +93 -0
  210. package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -0
  211. package/dist/esm/helpers/useZeroDebug.js +35 -0
  212. package/dist/esm/helpers/useZeroDebug.js.map +6 -0
  213. package/dist/esm/helpers/useZeroDebug.mjs +45 -0
  214. package/dist/esm/helpers/useZeroDebug.mjs.map +1 -0
  215. package/dist/esm/helpers/useZeroDebug.native.js +55 -0
  216. package/dist/esm/helpers/useZeroDebug.native.js.map +1 -0
  217. package/dist/esm/index.js +20 -0
  218. package/dist/esm/index.js.map +6 -0
  219. package/dist/esm/index.mjs +17 -0
  220. package/dist/esm/index.mjs.map +1 -0
  221. package/dist/esm/index.native.js +17 -0
  222. package/dist/esm/index.native.js.map +1 -0
  223. package/dist/esm/mutations.js +28 -0
  224. package/dist/esm/mutations.js.map +6 -0
  225. package/dist/esm/mutations.mjs +28 -0
  226. package/dist/esm/mutations.mjs.map +1 -0
  227. package/dist/esm/mutations.native.js +30 -0
  228. package/dist/esm/mutations.native.js.map +1 -0
  229. package/dist/esm/queryRegistry.js +12 -0
  230. package/dist/esm/queryRegistry.js.map +6 -0
  231. package/dist/esm/queryRegistry.mjs +9 -0
  232. package/dist/esm/queryRegistry.mjs.map +1 -0
  233. package/dist/esm/queryRegistry.native.js +9 -0
  234. package/dist/esm/queryRegistry.native.js.map +1 -0
  235. package/dist/esm/resolveQuery.js +24 -0
  236. package/dist/esm/resolveQuery.js.map +6 -0
  237. package/dist/esm/resolveQuery.mjs +18 -0
  238. package/dist/esm/resolveQuery.mjs.map +1 -0
  239. package/dist/esm/resolveQuery.native.js +20 -0
  240. package/dist/esm/resolveQuery.native.js.map +1 -0
  241. package/dist/esm/run.js +22 -0
  242. package/dist/esm/run.js.map +6 -0
  243. package/dist/esm/run.mjs +24 -0
  244. package/dist/esm/run.mjs.map +1 -0
  245. package/dist/esm/run.native.js +25 -0
  246. package/dist/esm/run.native.js.map +1 -0
  247. package/dist/esm/server.js +2 -0
  248. package/dist/esm/server.js.map +6 -0
  249. package/dist/esm/server.mjs +2 -0
  250. package/dist/esm/server.mjs.map +1 -0
  251. package/dist/esm/server.native.js +2 -0
  252. package/dist/esm/server.native.js.map +1 -0
  253. package/dist/esm/serverWhere.js +8 -0
  254. package/dist/esm/serverWhere.js.map +6 -0
  255. package/dist/esm/serverWhere.mjs +6 -0
  256. package/dist/esm/serverWhere.mjs.map +1 -0
  257. package/dist/esm/serverWhere.native.js +6 -0
  258. package/dist/esm/serverWhere.native.js.map +1 -0
  259. package/dist/esm/state.js +21 -0
  260. package/dist/esm/state.js.map +6 -0
  261. package/dist/esm/state.mjs +22 -0
  262. package/dist/esm/state.mjs.map +1 -0
  263. package/dist/esm/state.native.js +24 -0
  264. package/dist/esm/state.native.js.map +1 -0
  265. package/dist/esm/types.js +1 -0
  266. package/dist/esm/types.js.map +6 -0
  267. package/dist/esm/types.mjs +2 -0
  268. package/dist/esm/types.mjs.map +1 -0
  269. package/dist/esm/types.native.js +2 -0
  270. package/dist/esm/types.native.js.map +1 -0
  271. package/dist/esm/where.js +20 -0
  272. package/dist/esm/where.js.map +6 -0
  273. package/dist/esm/where.mjs +17 -0
  274. package/dist/esm/where.mjs.map +1 -0
  275. package/dist/esm/where.native.js +19 -0
  276. package/dist/esm/where.native.js.map +1 -0
  277. package/dist/esm/zeroRunner.js +16 -0
  278. package/dist/esm/zeroRunner.js.map +6 -0
  279. package/dist/esm/zeroRunner.mjs +10 -0
  280. package/dist/esm/zeroRunner.mjs.map +1 -0
  281. package/dist/esm/zeroRunner.native.js +10 -0
  282. package/dist/esm/zeroRunner.native.js.map +1 -0
  283. package/dist/esm/zql.js +10 -0
  284. package/dist/esm/zql.js.map +6 -0
  285. package/dist/esm/zql.mjs +8 -0
  286. package/dist/esm/zql.mjs.map +1 -0
  287. package/dist/esm/zql.native.js +9 -0
  288. package/dist/esm/zql.native.js.map +1 -0
  289. package/package.json +98 -0
  290. package/readme.md +594 -0
  291. package/src/cli.ts +626 -0
  292. package/src/constants.native.ts +3 -0
  293. package/src/constants.ts +3 -0
  294. package/src/createPermissions.ts +131 -0
  295. package/src/createUseQuery.tsx +82 -0
  296. package/src/createZeroClient.tsx +301 -0
  297. package/src/createZeroServer.ts +226 -0
  298. package/src/helpers/batchQuery.ts +46 -0
  299. package/src/helpers/createMutators.ts +138 -0
  300. package/src/helpers/didRunPermissionCheck.ts +16 -0
  301. package/src/helpers/ensureLoggedIn.ts +11 -0
  302. package/src/helpers/getQueryOrMutatorAuthData.ts +12 -0
  303. package/src/helpers/mutatorContext.ts +25 -0
  304. package/src/helpers/prettyFormatZeroQuery.ts +167 -0
  305. package/src/helpers/useZeroDebug.ts +102 -0
  306. package/src/index.ts +18 -0
  307. package/src/mutations.ts +133 -0
  308. package/src/queryRegistry.ts +12 -0
  309. package/src/resolveQuery.ts +44 -0
  310. package/src/run.ts +62 -0
  311. package/src/server.ts +1 -0
  312. package/src/serverWhere.ts +21 -0
  313. package/src/state.ts +32 -0
  314. package/src/types.ts +136 -0
  315. package/src/where.ts +58 -0
  316. package/src/zeroRunner.ts +28 -0
  317. package/src/zql.ts +10 -0
  318. package/types/cli.d.ts +3 -0
  319. package/types/cli.d.ts.map +1 -0
  320. package/types/constants.d.ts +3 -0
  321. package/types/constants.d.ts.map +1 -0
  322. package/types/constants.native.d.ts +3 -0
  323. package/types/constants.native.d.ts.map +1 -0
  324. package/types/createPermissions.d.ts +10 -0
  325. package/types/createPermissions.d.ts.map +1 -0
  326. package/types/createUseQuery.d.ts +20 -0
  327. package/types/createUseQuery.d.ts.map +1 -0
  328. package/types/createZeroClient.d.ts +35 -0
  329. package/types/createZeroClient.d.ts.map +1 -0
  330. package/types/createZeroServer.d.ts +146 -0
  331. package/types/createZeroServer.d.ts.map +1 -0
  332. package/types/helpers/batchQuery.d.ts +7 -0
  333. package/types/helpers/batchQuery.d.ts.map +1 -0
  334. package/types/helpers/createMutators.d.ts +10 -0
  335. package/types/helpers/createMutators.d.ts.map +1 -0
  336. package/types/helpers/didRunPermissionCheck.d.ts +4 -0
  337. package/types/helpers/didRunPermissionCheck.d.ts.map +1 -0
  338. package/types/helpers/ensureLoggedIn.d.ts +3 -0
  339. package/types/helpers/ensureLoggedIn.d.ts.map +1 -0
  340. package/types/helpers/getQueryOrMutatorAuthData.d.ts +3 -0
  341. package/types/helpers/getQueryOrMutatorAuthData.d.ts.map +1 -0
  342. package/types/helpers/mutatorContext.d.ts +5 -0
  343. package/types/helpers/mutatorContext.d.ts.map +1 -0
  344. package/types/helpers/prettyFormatZeroQuery.d.ts +3 -0
  345. package/types/helpers/prettyFormatZeroQuery.d.ts.map +1 -0
  346. package/types/helpers/useZeroDebug.d.ts +3 -0
  347. package/types/helpers/useZeroDebug.d.ts.map +1 -0
  348. package/types/index.d.ts +17 -0
  349. package/types/index.d.ts.map +1 -0
  350. package/types/mutations.d.ts +20 -0
  351. package/types/mutations.d.ts.map +1 -0
  352. package/types/queryRegistry.d.ts +3 -0
  353. package/types/queryRegistry.d.ts.map +1 -0
  354. package/types/resolveQuery.d.ts +11 -0
  355. package/types/resolveQuery.d.ts.map +1 -0
  356. package/types/run.d.ts +7 -0
  357. package/types/run.d.ts.map +1 -0
  358. package/types/server.d.ts +2 -0
  359. package/types/server.d.ts.map +1 -0
  360. package/types/serverWhere.d.ts +5 -0
  361. package/types/serverWhere.d.ts.map +1 -0
  362. package/types/state.d.ts +8 -0
  363. package/types/state.d.ts.map +1 -0
  364. package/types/types.d.ts +78 -0
  365. package/types/types.d.ts.map +1 -0
  366. package/types/where.d.ts +6 -0
  367. package/types/where.d.ts.map +1 -0
  368. package/types/zeroRunner.d.ts +6 -0
  369. package/types/zeroRunner.d.ts.map +1 -0
  370. package/types/zql.d.ts +3 -0
  371. package/types/zql.d.ts.map +1 -0
@@ -0,0 +1,102 @@
1
+ import { getCurrentComponentStack } from '@take-out/helpers'
2
+ import { useEffect, useId } from 'react'
3
+
4
+ import { prettyFormatZeroQuery } from './prettyFormatZeroQuery'
5
+
6
+ import type { Query } from '@rocicorp/zero'
7
+
8
+ const activeQueries = new Map<string, number>()
9
+
10
+ // AST change tracking
11
+ interface AstHistory {
12
+ asts: string[]
13
+ changeCount: number
14
+ }
15
+
16
+ const astHistoryByComponent = new Map<string, AstHistory>()
17
+
18
+ // control what is logged here:
19
+ const filterLogs = (table: string): boolean => false
20
+
21
+ const COLLAPSED = true
22
+ const AST_CHANGE_THRESHOLD = 4
23
+ const MAX_AST_HISTORY = 10
24
+
25
+ // short name because otherwise it often forces multiple lines in chrome devtools
26
+ // due to showing the filename next to log lines
27
+ export const useZeroDebug = (query: Query<any, any, any>, options: any, results: any) => {
28
+ const astObject = query['_completeAst']?.() ?? query['ast']
29
+ const table = astObject?.table ?? 'unknown'
30
+ const ast = JSON.stringify(astObject, null, 2)
31
+ const queryDisabled = !options || options?.enabled === false
32
+ const enabled = !queryDisabled && filterLogs(table)
33
+ const stack = new Error().stack
34
+ const isPermissionQuery = stack?.includes(`usePermission.ts`)
35
+ const id = useId()
36
+
37
+ // log here not in effect so we can breakpoint and find the query
38
+ const num = activeQueries.get(ast) || 0
39
+ const shouldLog = enabled && num === 0
40
+ if (enabled) {
41
+ activeQueries.set(ast, num + 1)
42
+ if (shouldLog) {
43
+ if (COLLAPSED) {
44
+ console.groupCollapsed(
45
+ `${isPermissionQuery ? `👮‍♂️` : `✨`}${prettyFormatZeroQuery(query, 'minimal')}`
46
+ )
47
+ console.info(id, prettyFormatZeroQuery(query, 'full'))
48
+ console.info('cached result', results)
49
+ console.trace()
50
+ console.groupEnd()
51
+ } else {
52
+ console.info(`✨`, prettyFormatZeroQuery(query, 'full'))
53
+ }
54
+ }
55
+ }
56
+
57
+ // track AST changes per component
58
+ useEffect(() => {
59
+ if (!enabled) return
60
+ const history = astHistoryByComponent.get(id) || { asts: [], changeCount: 0 }
61
+ const currentAst = ast
62
+ const lastAst = history.asts[history.asts.length - 1]
63
+
64
+ if (currentAst !== lastAst) {
65
+ history.asts.push(currentAst)
66
+ if (history.asts.length > MAX_AST_HISTORY) {
67
+ history.asts.shift()
68
+ }
69
+ history.changeCount++
70
+ astHistoryByComponent.set(id, history)
71
+
72
+ if (history.changeCount > AST_CHANGE_THRESHOLD) {
73
+ console.warn(
74
+ `⚠️ AST changed ${history.changeCount} times for component.
75
+ - id: ${id}
76
+ - stack: ${getCurrentComponentStack('short')}
77
+ - table: ${table}`,
78
+ {
79
+ componentId: id,
80
+ table,
81
+ changeCount: history.changeCount,
82
+ recentAsts: history.asts,
83
+ }
84
+ )
85
+ }
86
+ }
87
+ }, [id, ast, table, enabled])
88
+
89
+ useEffect(() => {
90
+ if (!enabled) return
91
+ return () => {
92
+ activeQueries.set(ast, activeQueries.get(ast)! - 1)
93
+ }
94
+ }, [ast, enabled])
95
+
96
+ // cleanup AST history on unmount
97
+ useEffect(() => {
98
+ return () => {
99
+ astHistoryByComponent.delete(id)
100
+ }
101
+ }, [id])
102
+ }
package/src/index.ts ADDED
@@ -0,0 +1,18 @@
1
+ export * from './createPermissions'
2
+ export * from './queryRegistry'
3
+ export * from './helpers/batchQuery'
4
+ export * from './helpers/createMutators'
5
+ export * from './helpers/ensureLoggedIn'
6
+ export * from './helpers/mutatorContext'
7
+
8
+ export * from './createZeroClient'
9
+ export * from './createUseQuery'
10
+ export * from './resolveQuery'
11
+ export { run } from './run'
12
+ export { setRunner, type ZeroRunner } from './zeroRunner'
13
+ export * from './mutations'
14
+ export * from './where'
15
+ export * from './serverWhere'
16
+ export * from './zql'
17
+
18
+ export type * from './types'
@@ -0,0 +1,133 @@
1
+ import { getDidRunPermissionCheck } from './helpers/didRunPermissionCheck'
2
+
3
+ import type {
4
+ MutatorContext,
5
+ TableInsertRow,
6
+ TableName,
7
+ TableUpdateRow,
8
+ Where,
9
+ } from './types'
10
+ import type { TableBuilderWithColumns } from '@rocicorp/zero'
11
+
12
+ // two ways to use it:
13
+ // - mutations({}) which doesn't add the "allowed" helper or add CRUD
14
+ // - mutation('tableName', permissions) adds CRUD with permissions, adds allowed
15
+
16
+ type MutationBuilder<Obj = any> = (ctx: MutatorContext, obj?: Obj) => Promise<void>
17
+ type MutationBuilders = Record<string, MutationBuilder>
18
+
19
+ // start of adding custom can.write(message) style
20
+
21
+ // type PermissionedMutationBuilder<Permissions extends PermissionsWhere, Obj = any> = (
22
+ // ctx: MutatorContext & {
23
+ // can: any
24
+ // },
25
+ // obj?: Obj
26
+ // ) => Promise<void>
27
+ // type PermissionedMutationBuilders<Permissions extends PermissionsWhere> = Record<
28
+ // string,
29
+ // PermissionedMutationBuilder<Permissions>
30
+ // >
31
+
32
+ type GenericTable = TableBuilderWithColumns<any>
33
+
34
+ type CRUDMutations<Table extends GenericTable> = {
35
+ insert: MutationBuilder<TableInsertRow<Table>>
36
+ upsert: MutationBuilder<TableInsertRow<Table>>
37
+ update: MutationBuilder<TableUpdateRow<Table>>
38
+ delete: MutationBuilder<TableUpdateRow<Table>>
39
+ }
40
+
41
+ type CRUDNames = 'insert' | 'upsert' | 'update' | 'delete'
42
+
43
+ type MutationsWithCRUD<Table extends GenericTable, Mutations extends MutationBuilders> = {
44
+ [Key in CRUDNames | keyof Mutations]: Key extends keyof Mutations
45
+ ? Mutations[Key]
46
+ : Key extends keyof CRUDMutations<any>
47
+ ? CRUDMutations<Table>[Key]
48
+ : never
49
+ }
50
+
51
+ export function mutations<Mutations extends MutationBuilders>(
52
+ mutations: Mutations
53
+ ): Mutations
54
+ export function mutations<Table extends GenericTable, Permissions extends Where>(
55
+ table: Table,
56
+ permissions: Permissions
57
+ ): MutationsWithCRUD<Table, {}>
58
+ export function mutations<
59
+ Table extends GenericTable,
60
+ Permissions extends Where,
61
+ Mutations extends MutationBuilders,
62
+ >(
63
+ table: Table,
64
+ permissions: Permissions,
65
+ mutations: Mutations
66
+ ): MutationsWithCRUD<Table, Mutations>
67
+ // TODO we should enforece the CRUD mutations obj to the callier so they get it auto-typed
68
+ export function mutations<
69
+ Table extends GenericTable,
70
+ Mutations extends Record<string, MutationBuilder>,
71
+ >(table: Table | Mutations, permissions?: Where, mutations?: Mutations): Mutations {
72
+ if (permissions) {
73
+ const tableName = (table as Table).schema.name as TableName
74
+
75
+ const createCRUDMutation = (action: CRUDNames) => {
76
+ return async (ctx: MutatorContext, obj: any) => {
77
+ /**
78
+ * CRUD mutations have permissions handled automatically using `can`:
79
+ * - `can` throws an error if it fails
80
+ * - zero catches error and rolls back transaction
81
+ * - zero returns error to client when you await zero.mutate.x.z().server
82
+ * - for INSERT: check runs after insert completes
83
+ * - for the rest: check runs before mutation
84
+ */
85
+ const runServerPermissionCheck = async () => {
86
+ if (getDidRunPermissionCheck(ctx)) {
87
+ // if the user-defined CRUD mutation runs their own "can", we avoid running ours
88
+ return
89
+ }
90
+
91
+ // only validate on the server
92
+ if (process.env.VITE_ENVIRONMENT === 'ssr') {
93
+ await ctx.can(permissions, obj)
94
+ }
95
+ }
96
+
97
+ if (action !== 'insert') {
98
+ await runServerPermissionCheck()
99
+ }
100
+
101
+ // if user defines insert run theirs, if not run plain zero:
102
+ const existing = mutations?.[action]
103
+
104
+ if (existing) {
105
+ await existing(ctx, obj)
106
+ } else {
107
+ type TableName = keyof typeof ctx.tx.mutate // weird type foo because we declare this module and then type check
108
+ await ctx.tx.mutate[tableName as TableName]![action](obj)
109
+ }
110
+
111
+ if (action === 'insert') {
112
+ await runServerPermissionCheck()
113
+ }
114
+ }
115
+ }
116
+
117
+ const crudMutations: CRUDMutations<any> = {
118
+ insert: createCRUDMutation('insert'),
119
+ update: createCRUDMutation('update'),
120
+ delete: createCRUDMutation('delete'),
121
+ upsert: createCRUDMutation('upsert'),
122
+ }
123
+
124
+ return {
125
+ ...mutations,
126
+ // overwrite regular mutations but call them if they are defined by user
127
+ ...crudMutations,
128
+ } as any as Mutations
129
+ }
130
+
131
+ // no schema/permissions don't add CRUD
132
+ return table as any
133
+ }
@@ -0,0 +1,12 @@
1
+ // registry for query functions to their stable names
2
+ // this allows minification while preserving query identity
3
+
4
+ const queryNameRegistry = new WeakMap<Function, string>()
5
+
6
+ export function registerQuery(fn: Function, name: string) {
7
+ queryNameRegistry.set(fn, name)
8
+ }
9
+
10
+ export function getQueryName(fn: Function): string | undefined {
11
+ return queryNameRegistry.get(fn)
12
+ }
@@ -0,0 +1,44 @@
1
+ import { getQueryName } from './queryRegistry'
2
+
3
+ import type { AnyQueryRegistry, Query, Schema as ZeroSchema } from '@rocicorp/zero'
4
+
5
+ export type PlainQueryFn<
6
+ TArg = any,
7
+ TReturn extends Query<any, any, any> = Query<any, any, any>,
8
+ > = (args: TArg) => TReturn
9
+
10
+ /**
11
+ * resolves a plain query function to a QueryRequest using the customQueries registry
12
+ */
13
+ export function resolveQuery<Schema extends ZeroSchema>({
14
+ customQueries,
15
+ fn,
16
+ params,
17
+ }: {
18
+ customQueries: AnyQueryRegistry
19
+ fn: PlainQueryFn<any, Query<any, Schema, any>>
20
+ params?: any
21
+ }) {
22
+ const queryName = getQueryName(fn)
23
+ if (!queryName) {
24
+ const fnName = fn?.name || 'anonymous'
25
+ throw new Error(
26
+ `Query function '${fnName}' not registered. ` +
27
+ `Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`
28
+ )
29
+ }
30
+
31
+ // look up the CustomQuery from the shared registry
32
+ // queryName is "namespace.name" format, e.g., "user.userById"
33
+ const [namespace, name] = queryName.split('.', 2)
34
+ const customQuery = (customQueries as any)[namespace]?.[name]
35
+
36
+ if (!customQuery) {
37
+ throw new Error(
38
+ `CustomQuery '${queryName}' not found. ` +
39
+ `Check that the query is exported and the namespace/name matches.`
40
+ )
41
+ }
42
+
43
+ return params !== undefined ? customQuery(params) : customQuery()
44
+ }
package/src/run.ts ADDED
@@ -0,0 +1,62 @@
1
+ import { resolveQuery, type PlainQueryFn } from './resolveQuery'
2
+ import { getRunner, type RunOptions } from './zeroRunner'
3
+
4
+ import type {
5
+ AnyQueryRegistry,
6
+ HumanReadable,
7
+ Query,
8
+ Schema as ZeroSchema,
9
+ } from '@rocicorp/zero'
10
+
11
+ let customQueriesRef: AnyQueryRegistry | null = null
12
+
13
+ export function setCustomQueries(queries: AnyQueryRegistry) {
14
+ customQueriesRef = queries
15
+ }
16
+
17
+ function getCustomQueries(): AnyQueryRegistry {
18
+ if (!customQueriesRef) {
19
+ throw new Error(
20
+ 'Custom queries not initialized. Ensure createZeroClient or createZeroServer has been called.'
21
+ )
22
+ }
23
+ return customQueriesRef
24
+ }
25
+
26
+ // run a query once and return results (non-reactive)
27
+ export function run<
28
+ Schema extends ZeroSchema,
29
+ TArg,
30
+ TTable extends keyof Schema['tables'] & string,
31
+ TReturn,
32
+ >(
33
+ fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>,
34
+ params: TArg,
35
+ options?: RunOptions
36
+ ): Promise<HumanReadable<TReturn>>
37
+
38
+ export function run<
39
+ Schema extends ZeroSchema,
40
+ TTable extends keyof Schema['tables'] & string,
41
+ TReturn,
42
+ >(
43
+ fn: PlainQueryFn<void, Query<TTable, Schema, TReturn>>,
44
+ options?: RunOptions
45
+ ): Promise<HumanReadable<TReturn>>
46
+
47
+ export function run(
48
+ fnArg: any,
49
+ paramsOrOptions?: any,
50
+ optionsArg?: RunOptions
51
+ ): Promise<any> {
52
+ const hasParams =
53
+ optionsArg !== undefined || (paramsOrOptions && !('type' in paramsOrOptions))
54
+ const params = hasParams ? paramsOrOptions : undefined
55
+ const options = hasParams ? optionsArg : paramsOrOptions
56
+
57
+ const customQueries = getCustomQueries()
58
+ const queryRequest = resolveQuery({ customQueries, fn: fnArg, params })
59
+ const runner = getRunner()
60
+
61
+ return runner(queryRequest as any, options)
62
+ }
package/src/server.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './createZeroServer'
@@ -0,0 +1,21 @@
1
+ import { where } from './where'
2
+
3
+ import type { TableName, Where } from './types'
4
+ import type { Condition } from '@rocicorp/zero'
5
+
6
+ export function serverWhere<Table extends TableName, Builder extends Where<Table>>(
7
+ tableName: Table,
8
+ builder: Builder
9
+ ): Where<Table, Condition>
10
+
11
+ export function serverWhere<
12
+ Table extends TableName,
13
+ Builder extends Where = Where<Table>,
14
+ >(builder: Builder): Where<Table, Condition>
15
+
16
+ export function serverWhere<Table extends TableName, Builder extends Where<Table>>(
17
+ a: Table | Builder,
18
+ b?: Builder
19
+ ): Where<Table, any> | Builder {
20
+ return where(a as any, b as any, true)
21
+ }
package/src/state.ts ADDED
@@ -0,0 +1,32 @@
1
+ import { createBuilder, type Schema } from '@rocicorp/zero'
2
+
3
+ import type { AuthData, QueryBuilder } from './types'
4
+
5
+ let schema: Schema | null = null
6
+ let zql: QueryBuilder | null = null
7
+ let authData: AuthData | null | undefined
8
+
9
+ const errMessage = `Haven't called createZeroClient or createZeroServer yet!`
10
+
11
+ export const getZQL = () => {
12
+ if (!zql) throw new Error(errMessage)
13
+ return zql
14
+ }
15
+
16
+ export const getSchema = () => {
17
+ if (!schema) throw new Error(errMessage)
18
+ return schema
19
+ }
20
+
21
+ export const setSchema = (_: Schema) => {
22
+ schema = _
23
+ zql = createBuilder(_) as QueryBuilder
24
+ }
25
+
26
+ export const getAuthData = () => {
27
+ return authData || null
28
+ }
29
+
30
+ export const setAuthData = (_: AuthData) => {
31
+ authData = _
32
+ }
package/src/types.ts ADDED
@@ -0,0 +1,136 @@
1
+ import type {
2
+ Condition,
3
+ ExpressionBuilder,
4
+ Row,
5
+ SchemaQuery,
6
+ TableBuilderWithColumns,
7
+ Schema as ZeroSchema,
8
+ Transaction as ZeroTransaction,
9
+ } from '@rocicorp/zero'
10
+ import type { NullToOptional, TupleToUnion } from '@take-out/helpers'
11
+
12
+ /**
13
+ * ➗0️⃣ START OVERRIDDEN TYPES
14
+ *
15
+ * To get types, put the following in a .ts file that's included by your tsconfig:
16
+ *
17
+ * export type Schema = typeof schema
18
+ *
19
+ * declare module 'on-zero' {
20
+ * interface Config {
21
+ * schema: Schema
22
+ * authData: AuthData
23
+ * }
24
+ * }
25
+ *
26
+ * on-zero is overridden by consumers of this library to get types which is
27
+ * needed to allow co-locating certain typed helpers like where() and
28
+ * mutations() alongside table() because table is later used to create the Zero
29
+ * schema, which is then needed for where/mutations
30
+ */
31
+
32
+ export interface Config {}
33
+
34
+ interface DefaultConfig {
35
+ schema: ZeroSchema
36
+ authData: {}
37
+ serverActions: null
38
+ }
39
+
40
+ interface FinalConfig extends Omit<DefaultConfig, keyof Config>, Config {}
41
+
42
+ export type Schema = FinalConfig['schema']
43
+
44
+ export type TableName = keyof Schema['tables'] extends string
45
+ ? keyof Schema['tables']
46
+ : string
47
+
48
+ export type Transaction = ZeroTransaction<Schema>
49
+
50
+ export type AuthData =
51
+ FinalConfig['authData'] extends Record<string, unknown>
52
+ ? FinalConfig['authData']
53
+ : Record<string, unknown>
54
+
55
+ export type ServerActions =
56
+ FinalConfig['serverActions'] extends Record<string, unknown>
57
+ ? FinalConfig['serverActions']
58
+ : Record<string, unknown>
59
+
60
+ export type QueryBuilder = SchemaQuery<Schema>
61
+
62
+ /**
63
+ * ➗0️⃣ END OVERRIDDEN TYPES
64
+ */
65
+
66
+ // the first argument passed to every mutation:
67
+ export type MutatorContext = {
68
+ tx: Transaction
69
+ authData: AuthData | null
70
+ environment: 'server' | 'client'
71
+ server?: {
72
+ actions: ServerActions
73
+ asyncTasks: Array<() => Promise<void>>
74
+ }
75
+ can: Can
76
+ }
77
+
78
+ // turns our mutators with custom context into zero mutators
79
+ export type GetZeroMutators<Models extends GenericModels> = {
80
+ [Key in keyof Models]: TransformMutators<GetModelMutators<Models>[Key]>
81
+ }
82
+
83
+ type GetModelMutators<Models extends GenericModels> = {
84
+ [Key in keyof Models]: Models[Key]['mutate']
85
+ }
86
+
87
+ export type GenericModels = {
88
+ [key: string]: {
89
+ mutate: Record<string, (ctx: MutatorContext, obj?: any) => Promise<any>>
90
+ permissions?: Where<any, Condition | boolean>
91
+ }
92
+ }
93
+
94
+ export type TransformMutators<T> = {
95
+ [K in keyof T]: T[K] extends (ctx: MutatorContext, ...args: infer Args) => infer Return
96
+ ? (tx: Transaction, ...args: Args) => Return extends unknown ? Promise<any> : Return
97
+ : never
98
+ }
99
+
100
+ export type Where<
101
+ Table extends TableName = TableName,
102
+ ReturnType extends Condition | boolean = Condition | boolean,
103
+ > = (
104
+ expressionBuilder: ExpressionBuilder<Table, Schema>,
105
+ auth?: AuthData | null
106
+ ) => ReturnType
107
+
108
+ export type Can = <PWhere extends Where>(
109
+ where: PWhere,
110
+ obj: string | Record<string, unknown>
111
+ ) => Promise<void>
112
+
113
+ export type AsyncAction = () => Promise<void>
114
+
115
+ type GenericTable = TableBuilderWithColumns<any>
116
+
117
+ type GetTableSchema<TS extends GenericTable> =
118
+ TS extends TableBuilderWithColumns<infer S> ? S : never
119
+
120
+ // all non-optional keys required (but optional can be undefined)
121
+ export type TableInsertRow<TS extends GenericTable> = NullToOptional<
122
+ Row<GetTableSchema<TS>>
123
+ >
124
+
125
+ // only primary keys required
126
+ export type TableUpdateRow<TS extends GenericTable> = Pick<
127
+ Row<GetTableSchema<TS>>,
128
+ TablePrimaryKeys<TS>
129
+ > &
130
+ Partial<TableInsertRow<TS>>
131
+
132
+ export type TablePrimaryKeys<TS extends GenericTable> = TupleToUnion<
133
+ GetTableSchema<TS>['primaryKey']
134
+ >
135
+
136
+ export type ZeroEvent = { type: 'error'; message: string }
package/src/where.ts ADDED
@@ -0,0 +1,58 @@
1
+
2
+ import { getQueryOrMutatorAuthData } from './helpers/getQueryOrMutatorAuthData'
3
+
4
+ import type { Condition, ExpressionBuilder } from '@rocicorp/zero'
5
+ import { isServer } from './constants'
6
+ import type { TableName, Where } from './types'
7
+
8
+ export function where<Table extends TableName, Builder extends Where<Table>>(
9
+ tableName: Table,
10
+ builder: Builder,
11
+ isServerOnly?: boolean
12
+ ): Where<Table, Condition>
13
+
14
+ export function where<Table extends TableName, Builder extends Where = Where<Table>>(
15
+ builder: Builder
16
+ ): Where<Table, Condition>
17
+
18
+ export function where<Table extends TableName, Builder extends Where<Table>>(
19
+ a: Table | Builder,
20
+ b?: Builder,
21
+ isServerOnly = false
22
+ ): Where<Table, any> | Builder {
23
+ const whereFn = (b || a) as any
24
+
25
+ const wrappedWhereFn = ((
26
+ a: ExpressionBuilder<any, any>,
27
+ b = getQueryOrMutatorAuthData()
28
+ ) => {
29
+ if (!isServer && isServerOnly) {
30
+ // on client (web or native) where conditions always pass
31
+ return a.and()
32
+ }
33
+
34
+ const result = whereFn(a, b)
35
+ if (typeof result === 'boolean') {
36
+ if (result) {
37
+ return a.cmpLit(0, '=', 0)
38
+ } else {
39
+ return a.cmpLit(1, '=', 0)
40
+ }
41
+ }
42
+ return result
43
+ }) as Builder
44
+
45
+ if (b) {
46
+ WhereTableNameMap.set(wrappedWhereFn, a as Table)
47
+ }
48
+
49
+ return wrappedWhereFn
50
+ }
51
+
52
+ // permissions where:
53
+
54
+ const WhereTableNameMap = new WeakMap<Where, TableName>()
55
+
56
+ export function getWhereTableName(where: Where) {
57
+ return WhereTableNameMap.get(where)
58
+ }
@@ -0,0 +1,28 @@
1
+ import type {
2
+ HumanReadable,
3
+ Query,
4
+ RunOptions,
5
+ Schema as ZeroSchema,
6
+ } from '@rocicorp/zero'
7
+
8
+ export type { RunOptions }
9
+
10
+ export type ZeroRunner = <TReturn>(
11
+ query: Query<any, ZeroSchema, TReturn>,
12
+ options?: RunOptions
13
+ ) => Promise<HumanReadable<TReturn>>
14
+
15
+ let runner: ZeroRunner | null = null
16
+
17
+ export function setRunner(r: ZeroRunner) {
18
+ runner = r
19
+ }
20
+
21
+ export function getRunner(): ZeroRunner {
22
+ if (!runner) {
23
+ throw new Error(
24
+ 'Zero runner not initialized. Ensure ProvideZero is mounted (client) or createZeroServer is called (server).'
25
+ )
26
+ }
27
+ return runner
28
+ }
package/src/zql.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { getZQL } from './state'
2
+
3
+ import type { QueryBuilder } from './types'
4
+
5
+ export const zql = new Proxy({} as QueryBuilder, {
6
+ get(_target, prop) {
7
+ const b = getZQL()
8
+ return (b as any)[prop]
9
+ },
10
+ })
package/types/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare const isServer: boolean;
2
+ export declare const isBrowser: boolean;
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,SAAgC,CAAA;AACrD,eAAO,MAAM,SAAS,SAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const isServer = false;
2
+ export declare const isBrowser = false;
3
+ //# sourceMappingURL=constants.native.d.ts.map