on-zero 0.7.2 → 0.7.3-1784533014336

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 (355) hide show
  1. package/dist/cjs/helpers/createMutators.cjs +4 -3
  2. package/dist/cjs/helpers/createMutators.native.js +6 -3
  3. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  4. package/dist/cjs/index.cjs +0 -1
  5. package/dist/cjs/index.native.js +0 -1
  6. package/dist/cjs/index.native.js.map +1 -1
  7. package/dist/cjs/orez.cjs +231 -0
  8. package/dist/cjs/orez.native.js +324 -0
  9. package/dist/cjs/orez.native.js.map +1 -0
  10. package/dist/cjs/orez.test.cjs +268 -0
  11. package/dist/cjs/orez.test.native.js +288 -0
  12. package/dist/cjs/orez.test.native.js.map +1 -0
  13. package/dist/cjs/run.cjs +1 -1
  14. package/dist/cjs/run.native.js +1 -1
  15. package/dist/cjs/state.cjs +1 -1
  16. package/dist/cjs/state.native.js +1 -1
  17. package/dist/cjs/zeroRunner.cjs +1 -1
  18. package/dist/cjs/zeroRunner.native.js +1 -1
  19. package/dist/esm/cli.native.js +1 -1
  20. package/dist/esm/cli.native.js.map +1 -1
  21. package/dist/esm/combineZeroClients.native.js +2 -2
  22. package/dist/esm/combineZeroClients.native.js.map +1 -1
  23. package/dist/esm/createPermissions.native.js +4 -4
  24. package/dist/esm/createPermissions.native.js.map +1 -1
  25. package/dist/esm/createSchemaFromDrizzle.native.js +1 -1
  26. package/dist/esm/createSchemaFromDrizzle.native.js.map +1 -1
  27. package/dist/esm/createUseQuery.native.js +2 -2
  28. package/dist/esm/createUseQuery.native.js.map +1 -1
  29. package/dist/esm/createUseQueryDirect.native.js +2 -2
  30. package/dist/esm/createUseQueryDirect.native.js.map +1 -1
  31. package/dist/esm/createZeroClient.authData.test.native.js +2 -2
  32. package/dist/esm/createZeroClient.authData.test.native.js.map +1 -1
  33. package/dist/esm/createZeroClient.connection.test.native.js +1 -1
  34. package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
  35. package/dist/esm/createZeroClient.native.js +15 -15
  36. package/dist/esm/createZeroClient.native.js.map +1 -1
  37. package/dist/esm/createZeroClient.recovery.test.native.js +1 -1
  38. package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
  39. package/dist/esm/generate-helpers.native.js.map +1 -1
  40. package/dist/esm/generate-lite.native.js +1 -1
  41. package/dist/esm/generate-lite.native.js.map +1 -1
  42. package/dist/esm/generate-lite.test.native.js +1 -1
  43. package/dist/esm/generate-lite.test.native.js.map +1 -1
  44. package/dist/esm/generate.native.js +1 -1
  45. package/dist/esm/generate.native.js.map +1 -1
  46. package/dist/esm/generate.test.native.js +1 -1
  47. package/dist/esm/generate.test.native.js.map +1 -1
  48. package/dist/esm/helpers/batchQuery.native.js.map +1 -1
  49. package/dist/esm/helpers/clearZeroClientData.native.js.map +1 -1
  50. package/dist/esm/helpers/createMutators.mjs +4 -3
  51. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  52. package/dist/esm/helpers/createMutators.native.js +8 -5
  53. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  54. package/dist/esm/helpers/createMutators.test.native.js +1 -1
  55. package/dist/esm/helpers/createMutators.test.native.js.map +1 -1
  56. package/dist/esm/helpers/ensureLoggedIn.native.js +1 -1
  57. package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
  58. package/dist/esm/helpers/getAuth.native.js +3 -3
  59. package/dist/esm/helpers/getAuth.native.js.map +1 -1
  60. package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
  61. package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  62. package/dist/esm/helpers/queryContext.native.js.map +1 -1
  63. package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
  64. package/dist/esm/helpers/recoverZeroClient.test.native.js +1 -1
  65. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  66. package/dist/esm/helpers/showZeroClientError.native.js +1 -1
  67. package/dist/esm/helpers/showZeroClientError.native.js.map +1 -1
  68. package/dist/esm/helpers/useMutation.native.js.map +1 -1
  69. package/dist/esm/helpers/useMutation.test.native.js +1 -1
  70. package/dist/esm/helpers/useMutation.test.native.js.map +1 -1
  71. package/dist/esm/helpers/useZeroDebug.native.js +1 -1
  72. package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
  73. package/dist/esm/httpPull/fixtureSchema.native.js.map +1 -1
  74. package/dist/esm/httpPull/transport.test.native.js +3 -3
  75. package/dist/esm/httpPull/transport.test.native.js.map +1 -1
  76. package/dist/esm/httpPullTransport.native.js.map +1 -1
  77. package/dist/esm/index.js +0 -1
  78. package/dist/esm/index.js.map +1 -1
  79. package/dist/esm/index.mjs +0 -1
  80. package/dist/esm/index.mjs.map +1 -1
  81. package/dist/esm/index.native.js +22 -23
  82. package/dist/esm/index.native.js.map +1 -1
  83. package/dist/esm/instanceRegistry.native.js +1 -1
  84. package/dist/esm/instanceRegistry.native.js.map +1 -1
  85. package/dist/esm/modelRegistry.native.js.map +1 -1
  86. package/dist/esm/multi.native.js +3 -3
  87. package/dist/esm/multi.native.js.map +1 -1
  88. package/dist/esm/multiInstance.test.native.js +8 -8
  89. package/dist/esm/multiInstance.test.native.js.map +1 -1
  90. package/dist/esm/multiInstanceNested.test.native.js +3 -3
  91. package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
  92. package/dist/esm/multiPartition.test.native.js +1 -1
  93. package/dist/esm/multiPartition.test.native.js.map +1 -1
  94. package/dist/esm/mutations.native.js +1 -1
  95. package/dist/esm/mutations.native.js.map +1 -1
  96. package/dist/esm/mutations.test.native.js +2 -2
  97. package/dist/esm/mutations.test.native.js.map +1 -1
  98. package/dist/esm/orez.mjs +205 -0
  99. package/dist/esm/orez.mjs.map +1 -0
  100. package/dist/esm/orez.native.js +295 -0
  101. package/dist/esm/orez.native.js.map +1 -0
  102. package/dist/esm/orez.test.mjs +245 -0
  103. package/dist/esm/orez.test.mjs.map +1 -0
  104. package/dist/esm/orez.test.native.js +262 -0
  105. package/dist/esm/orez.test.native.js.map +1 -0
  106. package/dist/esm/provideZero.hydration.test.native.js +1 -1
  107. package/dist/esm/provideZero.hydration.test.native.js.map +1 -1
  108. package/dist/esm/queryRegistry.native.js.map +1 -1
  109. package/dist/esm/resolveQuery.native.js +1 -1
  110. package/dist/esm/resolveQuery.native.js.map +1 -1
  111. package/dist/esm/run.mjs +1 -1
  112. package/dist/esm/run.mjs.map +1 -1
  113. package/dist/esm/run.native.js +5 -5
  114. package/dist/esm/run.native.js.map +1 -1
  115. package/dist/esm/serverWhere.native.js +1 -1
  116. package/dist/esm/serverWhere.native.js.map +1 -1
  117. package/dist/esm/serverWhere.test.native.js +3 -3
  118. package/dist/esm/serverWhere.test.native.js.map +1 -1
  119. package/dist/esm/state.mjs +1 -1
  120. package/dist/esm/state.native.js +1 -1
  121. package/dist/esm/state.native.js.map +1 -1
  122. package/dist/esm/testSetup.native.js.map +1 -1
  123. package/dist/esm/types.native.js.map +1 -1
  124. package/dist/esm/usePermission.test.native.js +3 -3
  125. package/dist/esm/usePermission.test.native.js.map +1 -1
  126. package/dist/esm/useQuery.empty.test.native.js +2 -2
  127. package/dist/esm/useQuery.empty.test.native.js.map +1 -1
  128. package/dist/esm/useQuery.ssr.test.native.js +2 -2
  129. package/dist/esm/useQuery.ssr.test.native.js.map +1 -1
  130. package/dist/esm/vite-plugin.native.js +1 -1
  131. package/dist/esm/vite-plugin.native.js.map +1 -1
  132. package/dist/esm/where.native.js +2 -2
  133. package/dist/esm/where.native.js.map +1 -1
  134. package/dist/esm/zeroRunner.mjs +1 -1
  135. package/dist/esm/zeroRunner.mjs.map +1 -1
  136. package/dist/esm/zeroRunner.native.js +2 -2
  137. package/dist/esm/zeroRunner.native.js.map +1 -1
  138. package/dist/esm/zql.native.js +1 -1
  139. package/dist/esm/zql.native.js.map +1 -1
  140. package/package.json +7 -23
  141. package/readme.md +40 -65
  142. package/src/createZeroClient.tsx +1 -1
  143. package/src/helpers/createMutators.ts +6 -2
  144. package/src/index.ts +0 -1
  145. package/src/orez.test.ts +266 -0
  146. package/src/orez.ts +344 -0
  147. package/src/run.ts +1 -1
  148. package/src/state.ts +1 -1
  149. package/src/types.ts +0 -5
  150. package/src/zeroRunner.ts +1 -1
  151. package/test-fixtures/server-return-types.ts +21 -58
  152. package/types/helpers/createMutators.d.ts +2 -1
  153. package/types/helpers/createMutators.d.ts.map +1 -1
  154. package/types/httpPull/fixtureSchema.d.ts +1 -1
  155. package/types/index.d.ts +0 -1
  156. package/types/index.d.ts.map +1 -1
  157. package/types/orez.d.ts +54 -0
  158. package/types/orez.d.ts.map +1 -0
  159. package/types/orez.test.d.ts +2 -0
  160. package/types/orez.test.d.ts.map +1 -0
  161. package/types/types.d.ts +0 -4
  162. package/types/types.d.ts.map +1 -1
  163. package/dist/cjs/asyncTasks.cjs +0 -51
  164. package/dist/cjs/asyncTasks.native.js +0 -84
  165. package/dist/cjs/asyncTasks.native.js.map +0 -1
  166. package/dist/cjs/createZeroDirectServer.cjs +0 -269
  167. package/dist/cjs/createZeroDirectServer.native.js +0 -287
  168. package/dist/cjs/createZeroDirectServer.native.js.map +0 -1
  169. package/dist/cjs/createZeroSQLiteServer.cjs +0 -50
  170. package/dist/cjs/createZeroSQLiteServer.native.js +0 -58
  171. package/dist/cjs/createZeroSQLiteServer.native.js.map +0 -1
  172. package/dist/cjs/createZeroSQLiteServer.test.cjs +0 -595
  173. package/dist/cjs/createZeroSQLiteServer.test.native.js +0 -647
  174. package/dist/cjs/createZeroSQLiteServer.test.native.js.map +0 -1
  175. package/dist/cjs/createZeroServer.cjs +0 -82
  176. package/dist/cjs/createZeroServer.native.js +0 -93
  177. package/dist/cjs/createZeroServer.native.js.map +0 -1
  178. package/dist/cjs/createZeroServer.test.cjs +0 -378
  179. package/dist/cjs/createZeroServer.test.native.js +0 -448
  180. package/dist/cjs/createZeroServer.test.native.js.map +0 -1
  181. package/dist/cjs/createZeroServerCore.cjs +0 -211
  182. package/dist/cjs/createZeroServerCore.native.js +0 -355
  183. package/dist/cjs/createZeroServerCore.native.js.map +0 -1
  184. package/dist/cjs/httpPull/auth.test.cjs +0 -197
  185. package/dist/cjs/httpPull/auth.test.native.js +0 -279
  186. package/dist/cjs/httpPull/auth.test.native.js.map +0 -1
  187. package/dist/cjs/httpPull/churn.test.cjs +0 -132
  188. package/dist/cjs/httpPull/churn.test.native.js +0 -155
  189. package/dist/cjs/httpPull/churn.test.native.js.map +0 -1
  190. package/dist/cjs/httpPull/completeAck.test.cjs +0 -69
  191. package/dist/cjs/httpPull/completeAck.test.native.js +0 -76
  192. package/dist/cjs/httpPull/completeAck.test.native.js.map +0 -1
  193. package/dist/cjs/httpPull/fixtureServer.cjs +0 -340
  194. package/dist/cjs/httpPull/fixtureServer.native.js +0 -534
  195. package/dist/cjs/httpPull/fixtureServer.native.js.map +0 -1
  196. package/dist/cjs/httpPull/integration.test.cjs +0 -53
  197. package/dist/cjs/httpPull/integration.test.native.js +0 -60
  198. package/dist/cjs/httpPull/integration.test.native.js.map +0 -1
  199. package/dist/cjs/httpPull/rebase.test.cjs +0 -360
  200. package/dist/cjs/httpPull/rebase.test.native.js +0 -420
  201. package/dist/cjs/httpPull/rebase.test.native.js.map +0 -1
  202. package/dist/cjs/httpPull/relations.test.cjs +0 -107
  203. package/dist/cjs/httpPull/relations.test.native.js +0 -119
  204. package/dist/cjs/httpPull/relations.test.native.js.map +0 -1
  205. package/dist/cjs/httpPull/testHarness.cjs +0 -100
  206. package/dist/cjs/httpPull/testHarness.native.js +0 -112
  207. package/dist/cjs/httpPull/testHarness.native.js.map +0 -1
  208. package/dist/cjs/server.cjs +0 -22
  209. package/dist/cjs/server.native.js +0 -4
  210. package/dist/cjs/server.native.js.map +0 -1
  211. package/dist/cjs/sqliteRuntime.cjs +0 -318
  212. package/dist/cjs/sqliteRuntime.native.js +0 -438
  213. package/dist/cjs/sqliteRuntime.native.js.map +0 -1
  214. package/dist/cjs/syncHost.cjs +0 -179
  215. package/dist/cjs/syncHost.native.js +0 -388
  216. package/dist/cjs/syncHost.native.js.map +0 -1
  217. package/dist/cjs/syncHost.test.cjs +0 -240
  218. package/dist/cjs/syncHost.test.native.js +0 -290
  219. package/dist/cjs/syncHost.test.native.js.map +0 -1
  220. package/dist/esm/asyncTasks.mjs +0 -26
  221. package/dist/esm/asyncTasks.mjs.map +0 -1
  222. package/dist/esm/asyncTasks.native.js +0 -56
  223. package/dist/esm/asyncTasks.native.js.map +0 -1
  224. package/dist/esm/createZeroDirectServer.mjs +0 -241
  225. package/dist/esm/createZeroDirectServer.mjs.map +0 -1
  226. package/dist/esm/createZeroDirectServer.native.js +0 -256
  227. package/dist/esm/createZeroDirectServer.native.js.map +0 -1
  228. package/dist/esm/createZeroSQLiteServer.mjs +0 -24
  229. package/dist/esm/createZeroSQLiteServer.mjs.map +0 -1
  230. package/dist/esm/createZeroSQLiteServer.native.js +0 -29
  231. package/dist/esm/createZeroSQLiteServer.native.js.map +0 -1
  232. package/dist/esm/createZeroSQLiteServer.test.mjs +0 -596
  233. package/dist/esm/createZeroSQLiteServer.test.mjs.map +0 -1
  234. package/dist/esm/createZeroSQLiteServer.test.native.js +0 -645
  235. package/dist/esm/createZeroSQLiteServer.test.native.js.map +0 -1
  236. package/dist/esm/createZeroServer.mjs +0 -57
  237. package/dist/esm/createZeroServer.mjs.map +0 -1
  238. package/dist/esm/createZeroServer.native.js +0 -65
  239. package/dist/esm/createZeroServer.native.js.map +0 -1
  240. package/dist/esm/createZeroServer.test.mjs +0 -379
  241. package/dist/esm/createZeroServer.test.mjs.map +0 -1
  242. package/dist/esm/createZeroServer.test.native.js +0 -446
  243. package/dist/esm/createZeroServer.test.native.js.map +0 -1
  244. package/dist/esm/createZeroServerCore.mjs +0 -186
  245. package/dist/esm/createZeroServerCore.mjs.map +0 -1
  246. package/dist/esm/createZeroServerCore.native.js +0 -327
  247. package/dist/esm/createZeroServerCore.native.js.map +0 -1
  248. package/dist/esm/httpPull/auth.test.mjs +0 -198
  249. package/dist/esm/httpPull/auth.test.mjs.map +0 -1
  250. package/dist/esm/httpPull/auth.test.native.js +0 -277
  251. package/dist/esm/httpPull/auth.test.native.js.map +0 -1
  252. package/dist/esm/httpPull/churn.test.mjs +0 -133
  253. package/dist/esm/httpPull/churn.test.mjs.map +0 -1
  254. package/dist/esm/httpPull/churn.test.native.js +0 -153
  255. package/dist/esm/httpPull/churn.test.native.js.map +0 -1
  256. package/dist/esm/httpPull/completeAck.test.mjs +0 -70
  257. package/dist/esm/httpPull/completeAck.test.mjs.map +0 -1
  258. package/dist/esm/httpPull/completeAck.test.native.js +0 -74
  259. package/dist/esm/httpPull/completeAck.test.native.js.map +0 -1
  260. package/dist/esm/httpPull/fixtureServer.mjs +0 -315
  261. package/dist/esm/httpPull/fixtureServer.mjs.map +0 -1
  262. package/dist/esm/httpPull/fixtureServer.native.js +0 -506
  263. package/dist/esm/httpPull/fixtureServer.native.js.map +0 -1
  264. package/dist/esm/httpPull/integration.test.mjs +0 -54
  265. package/dist/esm/httpPull/integration.test.mjs.map +0 -1
  266. package/dist/esm/httpPull/integration.test.native.js +0 -58
  267. package/dist/esm/httpPull/integration.test.native.js.map +0 -1
  268. package/dist/esm/httpPull/rebase.test.mjs +0 -361
  269. package/dist/esm/httpPull/rebase.test.mjs.map +0 -1
  270. package/dist/esm/httpPull/rebase.test.native.js +0 -418
  271. package/dist/esm/httpPull/rebase.test.native.js.map +0 -1
  272. package/dist/esm/httpPull/relations.test.mjs +0 -108
  273. package/dist/esm/httpPull/relations.test.mjs.map +0 -1
  274. package/dist/esm/httpPull/relations.test.native.js +0 -117
  275. package/dist/esm/httpPull/relations.test.native.js.map +0 -1
  276. package/dist/esm/httpPull/testHarness.mjs +0 -72
  277. package/dist/esm/httpPull/testHarness.mjs.map +0 -1
  278. package/dist/esm/httpPull/testHarness.native.js +0 -81
  279. package/dist/esm/httpPull/testHarness.native.js.map +0 -1
  280. package/dist/esm/server.mjs +0 -4
  281. package/dist/esm/server.mjs.map +0 -1
  282. package/dist/esm/server.native.js +0 -2
  283. package/dist/esm/server.native.js.map +0 -1
  284. package/dist/esm/sqliteRuntime.mjs +0 -289
  285. package/dist/esm/sqliteRuntime.mjs.map +0 -1
  286. package/dist/esm/sqliteRuntime.native.js +0 -406
  287. package/dist/esm/sqliteRuntime.native.js.map +0 -1
  288. package/dist/esm/syncHost.mjs +0 -153
  289. package/dist/esm/syncHost.mjs.map +0 -1
  290. package/dist/esm/syncHost.native.js +0 -359
  291. package/dist/esm/syncHost.native.js.map +0 -1
  292. package/dist/esm/syncHost.test.mjs +0 -217
  293. package/dist/esm/syncHost.test.mjs.map +0 -1
  294. package/dist/esm/syncHost.test.native.js +0 -264
  295. package/dist/esm/syncHost.test.native.js.map +0 -1
  296. package/src/asyncTasks.ts +0 -36
  297. package/src/createZeroDirectServer.ts +0 -411
  298. package/src/createZeroSQLiteServer.test.ts +0 -614
  299. package/src/createZeroSQLiteServer.ts +0 -56
  300. package/src/createZeroServer.test.ts +0 -421
  301. package/src/createZeroServer.ts +0 -105
  302. package/src/createZeroServerCore.ts +0 -296
  303. package/src/httpPull/auth.test.ts +0 -208
  304. package/src/httpPull/churn.test.ts +0 -147
  305. package/src/httpPull/completeAck.test.ts +0 -80
  306. package/src/httpPull/fixtureServer.ts +0 -391
  307. package/src/httpPull/integration.test.ts +0 -57
  308. package/src/httpPull/rebase.test.ts +0 -368
  309. package/src/httpPull/relations.test.ts +0 -135
  310. package/src/httpPull/testHarness.ts +0 -95
  311. package/src/server.native.ts +0 -3
  312. package/src/server.ts +0 -4
  313. package/src/sqliteRuntime.ts +0 -512
  314. package/src/syncHost.test.ts +0 -223
  315. package/src/syncHost.ts +0 -294
  316. package/types/asyncTasks.d.ts +0 -11
  317. package/types/asyncTasks.d.ts.map +0 -1
  318. package/types/createZeroDirectServer.d.ts +0 -80
  319. package/types/createZeroDirectServer.d.ts.map +0 -1
  320. package/types/createZeroSQLiteServer.d.ts +0 -12
  321. package/types/createZeroSQLiteServer.d.ts.map +0 -1
  322. package/types/createZeroSQLiteServer.test.d.ts +0 -2
  323. package/types/createZeroSQLiteServer.test.d.ts.map +0 -1
  324. package/types/createZeroServer.d.ts +0 -18
  325. package/types/createZeroServer.d.ts.map +0 -1
  326. package/types/createZeroServer.test.d.ts +0 -2
  327. package/types/createZeroServer.test.d.ts.map +0 -1
  328. package/types/createZeroServerCore.d.ts +0 -256
  329. package/types/createZeroServerCore.d.ts.map +0 -1
  330. package/types/httpPull/auth.test.d.ts +0 -2
  331. package/types/httpPull/auth.test.d.ts.map +0 -1
  332. package/types/httpPull/churn.test.d.ts +0 -2
  333. package/types/httpPull/churn.test.d.ts.map +0 -1
  334. package/types/httpPull/completeAck.test.d.ts +0 -2
  335. package/types/httpPull/completeAck.test.d.ts.map +0 -1
  336. package/types/httpPull/fixtureServer.d.ts +0 -14
  337. package/types/httpPull/fixtureServer.d.ts.map +0 -1
  338. package/types/httpPull/integration.test.d.ts +0 -2
  339. package/types/httpPull/integration.test.d.ts.map +0 -1
  340. package/types/httpPull/rebase.test.d.ts +0 -2
  341. package/types/httpPull/rebase.test.d.ts.map +0 -1
  342. package/types/httpPull/relations.test.d.ts +0 -2
  343. package/types/httpPull/relations.test.d.ts.map +0 -1
  344. package/types/httpPull/testHarness.d.ts +0 -32
  345. package/types/httpPull/testHarness.d.ts.map +0 -1
  346. package/types/server.d.ts +0 -5
  347. package/types/server.d.ts.map +0 -1
  348. package/types/server.native.d.ts +0 -1
  349. package/types/server.native.d.ts.map +0 -1
  350. package/types/sqliteRuntime.d.ts +0 -71
  351. package/types/sqliteRuntime.d.ts.map +0 -1
  352. package/types/syncHost.d.ts +0 -42
  353. package/types/syncHost.d.ts.map +0 -1
  354. package/types/syncHost.test.d.ts +0 -2
  355. package/types/syncHost.test.d.ts.map +0 -1
@@ -0,0 +1,324 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var orez_exports = {};
26
+ __export(orez_exports, {
27
+ authDataToClaims: () => authDataToClaims,
28
+ createOrezBindings: () => createOrezBindings
29
+ });
30
+ module.exports = __toCommonJS(orez_exports);
31
+ var import_zero = require("@rocicorp/zero");
32
+ var import_bindings = require("@rocicorp/zero/bindings");
33
+ var import_server = require("@rocicorp/zero/server");
34
+ var import_helpers = require("@take-out/helpers");
35
+ var import_sync_executor = require("orez/sync-executor");
36
+ var import_createPermissions = require("./createPermissions.native.js");
37
+ var import_createMutators = require("./helpers/createMutators.native.js");
38
+ var import_mutatorContext = require("./helpers/mutatorContext.native.js");
39
+ var import_queryContext = require("./helpers/queryContext.native.js");
40
+ var import_modelRegistry = require("./modelRegistry.native.js");
41
+ var import_run = require("./run.native.js");
42
+ var import_state = require("./state.native.js");
43
+ var import_where = require("./where.native.js");
44
+ var import_zeroRunner = require("./zeroRunner.native.js");
45
+ function _instanceof(left, right) {
46
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
47
+ return !!right[Symbol.hasInstance](left);
48
+ } else {
49
+ return left instanceof right;
50
+ }
51
+ }
52
+ function _type_of(obj) {
53
+ "@swc/helpers - typeof";
54
+
55
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
56
+ }
57
+ function createOrezBindings(options) {
58
+ (0, import_state.setSchema)(options.schema, (0, import_zero.createBuilder)(options.schema));
59
+ (0, import_state.setEnvironment)("server");
60
+ if (options.queries) (0, import_run.setCustomQueries)(options.queries);
61
+ var _options_mapClaims;
62
+ var mapClaims = (_options_mapClaims = options.mapClaims) !== null && _options_mapClaims !== void 0 ? _options_mapClaims : defaultMapClaims;
63
+ var _options_defaultAllowAdminRole;
64
+ var permissions = (0, import_createPermissions.createPermissions)({
65
+ environment: "server",
66
+ schema: options.schema,
67
+ adminRoleMode: (_options_defaultAllowAdminRole = options.defaultAllowAdminRole) !== null && _options_defaultAllowAdminRole !== void 0 ? _options_defaultAllowAdminRole : "all"
68
+ });
69
+ var registry = {};
70
+ var invocation = (0, import_helpers.createAsyncContext)();
71
+ var decoratedMutators = (0, import_createMutators.createMutators)({
72
+ authData: null,
73
+ can: permissions.can,
74
+ createServerActions: options.createServerActions,
75
+ environment: "server",
76
+ models: options.models,
77
+ mutationValidators: options.mutations,
78
+ validateMutation: options.validateMutation ? async function (input) {
79
+ try {
80
+ await options.validateMutation(input);
81
+ } catch (error) {
82
+ throw mutationApplicationError(error);
83
+ }
84
+ } : void 0,
85
+ resolveAuthData: function () {
86
+ var _invocation_get;
87
+ var _invocation_get_authData;
88
+ return (_invocation_get_authData = (_invocation_get = invocation.get()) === null || _invocation_get === void 0 ? void 0 : _invocation_get.authData) !== null && _invocation_get_authData !== void 0 ? _invocation_get_authData : null;
89
+ },
90
+ enqueueTask(task, taskOptions) {
91
+ var current = invocation.get();
92
+ if (!current) throw new Error("on-zero task scheduled outside an Orez mutation");
93
+ current.ctx.defer(function () {
94
+ return (0, import_mutatorContext.runWithAuthScope)(current.authData, task);
95
+ }, taskOptions);
96
+ }
97
+ });
98
+ var _iteratorNormalCompletion = true,
99
+ _didIteratorError = false,
100
+ _iteratorError = void 0;
101
+ try {
102
+ var _loop = function () {
103
+ var [modelName, model] = _step.value;
104
+ var _model_mutate;
105
+ var _iteratorNormalCompletion2 = true,
106
+ _didIteratorError2 = false,
107
+ _iteratorError2 = void 0;
108
+ try {
109
+ var _loop2 = function () {
110
+ var mutatorName = _step1.value;
111
+ registry[`${modelName}|${mutatorName}`] = async function (param) {
112
+ var {
113
+ tx,
114
+ args,
115
+ ctx
116
+ } = param;
117
+ var _decoratedMutators_modelName;
118
+ var authData = mapClaims(ctx.claims);
119
+ var mutation = (_decoratedMutators_modelName = decoratedMutators[modelName]) === null || _decoratedMutators_modelName === void 0 ? void 0 : _decoratedMutators_modelName[mutatorName];
120
+ if (!mutation) throw new Error(`unknown on-zero mutator: ${modelName}|${mutatorName}`);
121
+ try {
122
+ await invocation.run({
123
+ authData,
124
+ ctx
125
+ }, function () {
126
+ return mutation(tx, args);
127
+ });
128
+ } catch (error) {
129
+ var name = error === null || error === void 0 ? void 0 : error.name;
130
+ if (name === "MutationApplicationError") throw error;
131
+ if (name !== "PermissionError" && name !== "ValiError") throw error;
132
+ throw mutationApplicationError(error);
133
+ }
134
+ };
135
+ };
136
+ for (var _iterator2 = Object.keys((_model_mutate = model.mutate) !== null && _model_mutate !== void 0 ? _model_mutate : {})[Symbol.iterator](), _step1; !(_iteratorNormalCompletion2 = (_step1 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) _loop2();
137
+ } catch (err) {
138
+ _didIteratorError2 = true;
139
+ _iteratorError2 = err;
140
+ } finally {
141
+ try {
142
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
143
+ _iterator2.return();
144
+ }
145
+ } finally {
146
+ if (_didIteratorError2) {
147
+ throw _iteratorError2;
148
+ }
149
+ }
150
+ }
151
+ };
152
+ for (var _iterator = Object.entries(options.models)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
153
+ } catch (err) {
154
+ _didIteratorError = true;
155
+ _iteratorError = err;
156
+ } finally {
157
+ try {
158
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
159
+ _iterator.return();
160
+ }
161
+ } finally {
162
+ if (_didIteratorError) {
163
+ throw _iteratorError;
164
+ }
165
+ }
166
+ }
167
+ var bindings = {
168
+ mutators: (0, import_sync_executor.registerMutators)(registry),
169
+ async resolveQuery(name, args, claims) {
170
+ if (!options.queries) {
171
+ throw new Error("No queries registered with createOrezBindings.");
172
+ }
173
+ var authData = mapClaims(claims);
174
+ var query = await (0, import_queryContext.runWithQueryContext)({
175
+ authData
176
+ }, function () {
177
+ return resolveServerQuery({
178
+ authData,
179
+ name,
180
+ args: args[0],
181
+ queries: options.queries,
182
+ permissions,
183
+ validateQuery: options.validateQuery
184
+ });
185
+ });
186
+ return (0, import_bindings.asQueryInternals)(query).ast;
187
+ },
188
+ async transformQueryRequest(param) {
189
+ var {
190
+ authData,
191
+ request
192
+ } = param;
193
+ if (!options.queries) {
194
+ throw new Error("No queries registered with createOrezBindings.");
195
+ }
196
+ var handler = function (name, args) {
197
+ return resolveServerQuery({
198
+ authData,
199
+ name,
200
+ args,
201
+ queries: options.queries,
202
+ permissions,
203
+ validateQuery: options.validateQuery
204
+ });
205
+ };
206
+ var userID = typeof (authData === null || authData === void 0 ? void 0 : authData.id) === "string" ? authData.id : void 0;
207
+ return (0, import_queryContext.runWithQueryContext)({
208
+ authData: authData || {}
209
+ }, function () {
210
+ return userID === void 0 ? (0, import_server.handleQueryRequest)(handler, options.schema, request) : (0, import_server.handleQueryRequest)({
211
+ handler,
212
+ schema: options.schema,
213
+ request,
214
+ userID
215
+ });
216
+ });
217
+ },
218
+ server(executor) {
219
+ var transaction = function (claims, work) {
220
+ return executor.transaction(claims, function (tx) {
221
+ return work(tx);
222
+ });
223
+ };
224
+ (0, import_zeroRunner.setRunner)(function (query) {
225
+ return transaction({
226
+ userID: "server"
227
+ }, function (tx) {
228
+ return tx.run(query);
229
+ });
230
+ });
231
+ var mutate = new Proxy({}, {
232
+ get(_target, modelName) {
233
+ return new Proxy({}, {
234
+ get(_inner, mutatorName) {
235
+ var _options_models_modelName_mutate, _options_models_modelName;
236
+ var handler = (_options_models_modelName = options.models[modelName]) === null || _options_models_modelName === void 0 ? void 0 : (_options_models_modelName_mutate = _options_models_modelName.mutate) === null || _options_models_modelName_mutate === void 0 ? void 0 : _options_models_modelName_mutate[mutatorName];
237
+ var acceptsArgument = typeof handler === "function" && handler.length > 1;
238
+ return function (argsOrOptions, optionsForArgument) {
239
+ var args = acceptsArgument ? argsOrOptions : null;
240
+ var mutateOptions = acceptsArgument ? optionsForArgument : argsOrOptions;
241
+ var _mutateOptions_authData;
242
+ var scoped = (_mutateOptions_authData = mutateOptions === null || mutateOptions === void 0 ? void 0 : mutateOptions.authData) !== null && _mutateOptions_authData !== void 0 ? _mutateOptions_authData : (0, import_mutatorContext.getScopedAuthData)();
243
+ var claims = authToClaims(scoped);
244
+ return executor.execute(`${modelName}|${mutatorName}`, args, claims);
245
+ };
246
+ }
247
+ });
248
+ }
249
+ });
250
+ return {
251
+ mutate,
252
+ transaction,
253
+ query(claims, work) {
254
+ return (0, import_queryContext.runWithQueryContext)({
255
+ authData: mapClaims(claims)
256
+ }, function () {
257
+ return executor.query(claims, function (tx) {
258
+ return tx.run(work((0, import_state.getZQL)()));
259
+ });
260
+ });
261
+ }
262
+ };
263
+ }
264
+ };
265
+ return bindings;
266
+ }
267
+ function resolveServerQuery(param) {
268
+ var {
269
+ authData,
270
+ name,
271
+ args,
272
+ queries,
273
+ permissions,
274
+ validateQuery
275
+ } = param;
276
+ if (name.startsWith("permission.")) {
277
+ var table = name.slice("permission.".length);
278
+ var {
279
+ objOrId
280
+ } = args;
281
+ var permission = (0, import_modelRegistry.getMutationsPermissions)(table);
282
+ if (!permission) throw new Error(`[permission] no permission defined for table: ${table}`);
283
+ (0, import_where.setEvaluatingPermission)(true);
284
+ try {
285
+ return (0, import_state.getZQL)()[table].where(function (eb) {
286
+ return permissions.buildPermissionQuery(authData, eb, permission, objOrId, table);
287
+ }).one();
288
+ } finally {
289
+ (0, import_where.setEvaluatingPermission)(false);
290
+ }
291
+ }
292
+ validateQuery === null || validateQuery === void 0 ? void 0 : validateQuery({
293
+ authData,
294
+ queryName: name,
295
+ params: args
296
+ });
297
+ return (0, import_zero.mustGetQuery)(queries, name).fn({
298
+ args,
299
+ ctx: authData
300
+ });
301
+ }
302
+ var AUTH_CLAIM = "authData";
303
+ function authDataToClaims(authData) {
304
+ var anonymousUserID = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "anon";
305
+ var userID = typeof (authData === null || authData === void 0 ? void 0 : authData.id) === "string" ? authData.id : anonymousUserID;
306
+ var claims = {
307
+ userID
308
+ };
309
+ if (authData) claims[AUTH_CLAIM] = authData;
310
+ return claims;
311
+ }
312
+ function defaultMapClaims(claims) {
313
+ var authData = claims[AUTH_CLAIM];
314
+ if (!authData || (typeof authData === "undefined" ? "undefined" : _type_of(authData)) !== "object") return null;
315
+ return authData;
316
+ }
317
+ function authToClaims(authData) {
318
+ return authDataToClaims(authData, "server");
319
+ }
320
+ function mutationApplicationError(error) {
321
+ var message = _instanceof(error, Error) ? error.message : String(error);
322
+ return new import_sync_executor.MutationApplicationError(message, message);
323
+ }
324
+ //# sourceMappingURL=orez.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","orez_exports","__export","authDataToClaims","createOrezBindings","module","exports","import_zero","require","import_bindings","import_server","import_helpers","import_sync_executor","import_createPermissions","import_createMutators","import_mutatorContext","import_queryContext","import_modelRegistry","import_run","import_state","import_where","import_zeroRunner","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","options","setSchema","schema","createBuilder","setEnvironment","queries","setCustomQueries","_options_mapClaims","mapClaims","defaultMapClaims","_options_defaultAllowAdminRole","permissions","createPermissions","environment","adminRoleMode","defaultAllowAdminRole","registry","invocation","createAsyncContext","decoratedMutators","createMutators","authData","can","createServerActions","models","mutationValidators","mutations","validateMutation","input","error","mutationApplicationError","resolveAuthData","_invocation_get","_invocation_get_authData","get","enqueueTask","task","taskOptions","current","Error","ctx","defer","runWithAuthScope","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","modelName","model","_step","_model_mutate","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop2","mutatorName","_step1","param","tx","args","_decoratedMutators_modelName","claims","mutation","run","name","_iterator2","Object","keys","mutate","iterator","next","done","err","return","_iterator","entries","bindings","mutators","registerMutators","resolveQuery","query","runWithQueryContext","resolveServerQuery","validateQuery","asQueryInternals","ast","transformQueryRequest","request","handler","userID","id","handleQueryRequest","server","executor","transaction","work","setRunner","Proxy","_target","_inner","_options_models_modelName_mutate","_options_models_modelName"],"sources":["../../src/orez.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,268 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
10
+ get: () => from[key],
11
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
12
+ });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
22
+ value: mod,
23
+ enumerable: true
24
+ }) : target, mod));
25
+ var import_node_sqlite = require("node:sqlite");
26
+ var import_zero = require("@rocicorp/zero");
27
+ var import_sync_executor = require("orez/sync-executor");
28
+ var v = __toESM(require("valibot"), 1);
29
+ var import_vitest = require("vitest");
30
+ var import_orez = require("./orez.cjs");
31
+ var import_mutatorContext = require("./helpers/mutatorContext.cjs");
32
+ var import_zql = require("./zql.cjs");
33
+ const project = (0, import_zero.table)("project").columns({
34
+ id: (0, import_zero.string)(),
35
+ ownerId: (0, import_zero.string)(),
36
+ name: (0, import_zero.string)()
37
+ }).primaryKey("id");
38
+ const schema = (0, import_zero.createSchema)({
39
+ tables: [project],
40
+ relationships: [],
41
+ enableLegacyQueries: true
42
+ });
43
+ const queries = (0, import_zero.defineQueries)({
44
+ project: {
45
+ byOwner: (0, import_zero.defineQuery)(v.object({
46
+ ownerId: v.string()
47
+ }), ({
48
+ args
49
+ }) => import_zql.zql.project.where("ownerId", args.ownerId))
50
+ }
51
+ });
52
+ (0, import_vitest.describe)("createOrezBindings", () => {
53
+ const databases = [];
54
+ (0, import_vitest.afterEach)(() => {
55
+ while (databases.length) databases.pop().close();
56
+ });
57
+ (0, import_vitest.test)("an anonymous push keeps authData null so auth-required mutators reject", async () => {
58
+ const sqlite = new import_node_sqlite.DatabaseSync(":memory:");
59
+ databases.push(sqlite);
60
+ sqlite.exec("CREATE TABLE project (id TEXT PRIMARY KEY, ownerId TEXT NOT NULL, name TEXT NOT NULL)");
61
+ let seenAuthData;
62
+ const bindings = (0, import_orez.createOrezBindings)({
63
+ schema,
64
+ models: {
65
+ project: {
66
+ mutate: {
67
+ create: async ({
68
+ authData,
69
+ tx
70
+ }, value) => {
71
+ seenAuthData = authData;
72
+ if (!authData) throw new Error("not authenticated");
73
+ await tx.mutate.project.insert(value);
74
+ }
75
+ }
76
+ }
77
+ },
78
+ createServerActions: () => ({}),
79
+ queries
80
+ });
81
+ const executor = (0, import_sync_executor.createSyncExecutor)({
82
+ database: sqliteApplicationDatabase(sqlite),
83
+ schema,
84
+ mutators: bindings.mutators,
85
+ effects: {
86
+ runBackground(promise) {
87
+ void promise;
88
+ },
89
+ report(error) {
90
+ throw error;
91
+ }
92
+ }
93
+ });
94
+ await executor.push({
95
+ clientGroupID: "group-anon",
96
+ mutations: [{
97
+ type: "custom",
98
+ id: 1,
99
+ clientID: "client-anon",
100
+ name: "project|create",
101
+ args: [{
102
+ id: "project-1",
103
+ ownerId: "anon",
104
+ name: "sneaky"
105
+ }],
106
+ timestamp: 1
107
+ }],
108
+ pushVersion: 1,
109
+ requestID: "request-anon"
110
+ }, (0, import_orez.authDataToClaims)(null)).catch(() => void 0);
111
+ (0, import_vitest.expect)(seenAuthData).toBe(null);
112
+ (0, import_vitest.expect)(sqlite.prepare("SELECT * FROM project").all()).toEqual([]);
113
+ });
114
+ (0, import_vitest.test)("binds auth, queries, pipe keys, effects, and replay to one Orez executor", async () => {
115
+ const sqlite = new import_node_sqlite.DatabaseSync(":memory:");
116
+ databases.push(sqlite);
117
+ sqlite.exec("CREATE TABLE project (id TEXT PRIMARY KEY, ownerId TEXT NOT NULL, name TEXT NOT NULL)");
118
+ let mutationRuns = 0;
119
+ let validatedMutationAuth;
120
+ let validatedQueryAuth;
121
+ let barrierRuns = 0;
122
+ let backgroundRuns = 0;
123
+ let backgroundAuth;
124
+ const scheduledBackground = [];
125
+ const bindings = (0, import_orez.createOrezBindings)({
126
+ schema,
127
+ models: {
128
+ project: {
129
+ mutate: {
130
+ create: async ({
131
+ authData,
132
+ server,
133
+ tx
134
+ }, value) => {
135
+ mutationRuns++;
136
+ (0, import_vitest.expect)(authData?.id).toBe("user-1");
137
+ await tx.mutate.project.insert(value);
138
+ server?.enqueueTask(async () => {
139
+ barrierRuns++;
140
+ }, {
141
+ barrier: true
142
+ });
143
+ server?.enqueueTask(async () => {
144
+ backgroundRuns++;
145
+ backgroundAuth = (0, import_mutatorContext.getScopedAuthData)()?.id;
146
+ });
147
+ }
148
+ }
149
+ }
150
+ },
151
+ createServerActions: () => ({}),
152
+ queries,
153
+ validateMutation({
154
+ authData
155
+ }) {
156
+ validatedMutationAuth = authData?.id;
157
+ },
158
+ validateQuery({
159
+ authData
160
+ }) {
161
+ validatedQueryAuth = authData?.id;
162
+ }
163
+ });
164
+ (0, import_vitest.expect)(Object.keys(bindings.mutators)).toEqual(["project|create"]);
165
+ const executor = (0, import_sync_executor.createSyncExecutor)({
166
+ database: sqliteApplicationDatabase(sqlite),
167
+ schema,
168
+ mutators: bindings.mutators,
169
+ effects: {
170
+ runBackground(promise) {
171
+ scheduledBackground.push(promise);
172
+ },
173
+ report(error) {
174
+ throw error;
175
+ }
176
+ }
177
+ });
178
+ const claims = (0, import_orez.authDataToClaims)({
179
+ id: "user-1",
180
+ role: "member"
181
+ });
182
+ const body = {
183
+ clientGroupID: "group-1",
184
+ mutations: [{
185
+ type: "custom",
186
+ id: 1,
187
+ clientID: "client-1",
188
+ name: "project|create",
189
+ args: [{
190
+ id: "project-1",
191
+ ownerId: "user-1",
192
+ name: "first"
193
+ }],
194
+ timestamp: 1
195
+ }],
196
+ pushVersion: 1,
197
+ requestID: "request-1"
198
+ };
199
+ const first = await executor.push(body, claims);
200
+ (0, import_vitest.expect)(first.pushResponse).toMatchObject({
201
+ mutations: [{
202
+ result: {}
203
+ }]
204
+ });
205
+ (0, import_vitest.expect)(sqlite.prepare("SELECT * FROM project").all()).toEqual([{
206
+ id: "project-1",
207
+ ownerId: "user-1",
208
+ name: "first"
209
+ }]);
210
+ (0, import_vitest.expect)(mutationRuns).toBe(1);
211
+ (0, import_vitest.expect)(validatedMutationAuth).toBe("user-1");
212
+ (0, import_vitest.expect)(barrierRuns).toBe(1);
213
+ await Promise.all(scheduledBackground);
214
+ (0, import_vitest.expect)(backgroundRuns).toBe(1);
215
+ (0, import_vitest.expect)(backgroundAuth).toBe("user-1");
216
+ const replay = await executor.push(body, claims);
217
+ (0, import_vitest.expect)(replay.pushResponse).toMatchObject({
218
+ mutations: [{
219
+ result: {
220
+ error: "alreadyProcessed"
221
+ }
222
+ }]
223
+ });
224
+ (0, import_vitest.expect)(scheduledBackground).toHaveLength(1);
225
+ (0, import_vitest.expect)(mutationRuns).toBe(1);
226
+ (0, import_vitest.expect)(barrierRuns).toBe(1);
227
+ (0, import_vitest.expect)(backgroundRuns).toBe(1);
228
+ const ast = await bindings.resolveQuery("project|byOwner", [{
229
+ ownerId: "user-1"
230
+ }], claims);
231
+ (0, import_vitest.expect)(JSON.stringify(ast)).toContain("ownerId");
232
+ (0, import_vitest.expect)(JSON.stringify(ast)).toContain("user-1");
233
+ (0, import_vitest.expect)(validatedQueryAuth).toBe("user-1");
234
+ });
235
+ });
236
+ function sqliteApplicationDatabase(sqlite) {
237
+ const applicationTransaction = {
238
+ async exec(sql, params = []) {
239
+ const result = sqlite.prepare(sql).run(...params);
240
+ return {
241
+ changes: Number(result.changes)
242
+ };
243
+ },
244
+ async query(sql, params = []) {
245
+ return sqlite.prepare(sql).all(...params);
246
+ },
247
+ async queryAst() {
248
+ return [];
249
+ }
250
+ };
251
+ return {
252
+ dialect: "sqlite",
253
+ async transaction(work) {
254
+ sqlite.exec("BEGIN");
255
+ try {
256
+ const value = await work(applicationTransaction);
257
+ sqlite.exec("COMMIT");
258
+ return value;
259
+ } catch (error) {
260
+ sqlite.exec("ROLLBACK");
261
+ throw error;
262
+ }
263
+ },
264
+ async query(sql, params = []) {
265
+ return sqlite.prepare(sql).all(...params);
266
+ }
267
+ };
268
+ }