@mszr/idb-dux 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/LICENSE +194 -0
  2. package/README.md +84 -0
  3. package/dist/commonjs/admin/index.d.ts +18 -0
  4. package/dist/commonjs/admin/index.d.ts.map +1 -0
  5. package/dist/commonjs/admin/index.js +31 -0
  6. package/dist/commonjs/admin/index.js.map +1 -0
  7. package/dist/commonjs/admin/init.d.ts +67 -0
  8. package/dist/commonjs/admin/init.d.ts.map +1 -0
  9. package/dist/commonjs/admin/init.js +86 -0
  10. package/dist/commonjs/admin/init.js.map +1 -0
  11. package/dist/commonjs/admin/query.d.ts +21 -0
  12. package/dist/commonjs/admin/query.d.ts.map +1 -0
  13. package/dist/commonjs/admin/query.js +46 -0
  14. package/dist/commonjs/admin/query.js.map +1 -0
  15. package/dist/commonjs/admin/types.d.ts +124 -0
  16. package/dist/commonjs/admin/types.d.ts.map +1 -0
  17. package/dist/commonjs/admin/types.js +3 -0
  18. package/dist/commonjs/admin/types.js.map +1 -0
  19. package/dist/commonjs/admin/webhooks.d.ts +11 -0
  20. package/dist/commonjs/admin/webhooks.d.ts.map +1 -0
  21. package/dist/commonjs/admin/webhooks.js +8 -0
  22. package/dist/commonjs/admin/webhooks.js.map +1 -0
  23. package/dist/commonjs/errors.d.ts +13 -0
  24. package/dist/commonjs/errors.d.ts.map +1 -0
  25. package/dist/commonjs/errors.js +19 -0
  26. package/dist/commonjs/errors.js.map +1 -0
  27. package/dist/commonjs/index.d.ts +13 -0
  28. package/dist/commonjs/index.d.ts.map +1 -0
  29. package/dist/commonjs/index.js +29 -0
  30. package/dist/commonjs/index.js.map +1 -0
  31. package/dist/commonjs/nuxt/defineAuthSyncHandler.d.ts +15 -0
  32. package/dist/commonjs/nuxt/defineAuthSyncHandler.d.ts.map +1 -0
  33. package/dist/commonjs/nuxt/defineAuthSyncHandler.js +44 -0
  34. package/dist/commonjs/nuxt/defineAuthSyncHandler.js.map +1 -0
  35. package/dist/commonjs/nuxt/defineServerKit.d.ts +5 -0
  36. package/dist/commonjs/nuxt/defineServerKit.d.ts.map +1 -0
  37. package/dist/commonjs/nuxt/defineServerKit.js +49 -0
  38. package/dist/commonjs/nuxt/defineServerKit.js.map +1 -0
  39. package/dist/commonjs/nuxt/defineWebhookHandler.d.ts +17 -0
  40. package/dist/commonjs/nuxt/defineWebhookHandler.d.ts.map +1 -0
  41. package/dist/commonjs/nuxt/defineWebhookHandler.js +24 -0
  42. package/dist/commonjs/nuxt/defineWebhookHandler.js.map +1 -0
  43. package/dist/commonjs/nuxt/index.d.ts +15 -0
  44. package/dist/commonjs/nuxt/index.d.ts.map +1 -0
  45. package/dist/commonjs/nuxt/index.js +24 -0
  46. package/dist/commonjs/nuxt/index.js.map +1 -0
  47. package/dist/commonjs/nuxt/types.d.ts +54 -0
  48. package/dist/commonjs/nuxt/types.d.ts.map +1 -0
  49. package/dist/commonjs/nuxt/types.js +3 -0
  50. package/dist/commonjs/nuxt/types.js.map +1 -0
  51. package/dist/commonjs/package.json +3 -0
  52. package/dist/commonjs/perms/ast.d.ts +98 -0
  53. package/dist/commonjs/perms/ast.d.ts.map +1 -0
  54. package/dist/commonjs/perms/ast.js +148 -0
  55. package/dist/commonjs/perms/ast.js.map +1 -0
  56. package/dist/commonjs/perms/builder.d.ts +18 -0
  57. package/dist/commonjs/perms/builder.d.ts.map +1 -0
  58. package/dist/commonjs/perms/builder.js +260 -0
  59. package/dist/commonjs/perms/builder.js.map +1 -0
  60. package/dist/commonjs/perms/context.d.ts +27 -0
  61. package/dist/commonjs/perms/context.d.ts.map +1 -0
  62. package/dist/commonjs/perms/context.js +96 -0
  63. package/dist/commonjs/perms/context.js.map +1 -0
  64. package/dist/commonjs/perms/index.d.ts +13 -0
  65. package/dist/commonjs/perms/index.d.ts.map +1 -0
  66. package/dist/commonjs/perms/index.js +6 -0
  67. package/dist/commonjs/perms/index.js.map +1 -0
  68. package/dist/commonjs/perms/types.d.ts +353 -0
  69. package/dist/commonjs/perms/types.d.ts.map +1 -0
  70. package/dist/commonjs/perms/types.js +3 -0
  71. package/dist/commonjs/perms/types.js.map +1 -0
  72. package/dist/commonjs/perms/validate.d.ts +31 -0
  73. package/dist/commonjs/perms/validate.d.ts.map +1 -0
  74. package/dist/commonjs/perms/validate.js +66 -0
  75. package/dist/commonjs/perms/validate.js.map +1 -0
  76. package/dist/commonjs/query/constants.d.ts +13 -0
  77. package/dist/commonjs/query/constants.d.ts.map +1 -0
  78. package/dist/commonjs/query/constants.js +16 -0
  79. package/dist/commonjs/query/constants.js.map +1 -0
  80. package/dist/commonjs/query/defineQuery.d.ts +33 -0
  81. package/dist/commonjs/query/defineQuery.d.ts.map +1 -0
  82. package/dist/commonjs/query/defineQuery.js +28 -0
  83. package/dist/commonjs/query/defineQuery.js.map +1 -0
  84. package/dist/commonjs/query/index.d.ts +9 -0
  85. package/dist/commonjs/query/index.d.ts.map +1 -0
  86. package/dist/commonjs/query/index.js +16 -0
  87. package/dist/commonjs/query/index.js.map +1 -0
  88. package/dist/commonjs/query/keys.d.ts +33 -0
  89. package/dist/commonjs/query/keys.d.ts.map +1 -0
  90. package/dist/commonjs/query/keys.js +3 -0
  91. package/dist/commonjs/query/keys.js.map +1 -0
  92. package/dist/commonjs/query/shapeResult.d.ts +36 -0
  93. package/dist/commonjs/query/shapeResult.d.ts.map +1 -0
  94. package/dist/commonjs/query/shapeResult.js +173 -0
  95. package/dist/commonjs/query/shapeResult.js.map +1 -0
  96. package/dist/commonjs/query/types.d.ts +187 -0
  97. package/dist/commonjs/query/types.d.ts.map +1 -0
  98. package/dist/commonjs/query/types.js +3 -0
  99. package/dist/commonjs/query/types.js.map +1 -0
  100. package/dist/commonjs/query/validation.d.ts +61 -0
  101. package/dist/commonjs/query/validation.d.ts.map +1 -0
  102. package/dist/commonjs/query/validation.js +3 -0
  103. package/dist/commonjs/query/validation.js.map +1 -0
  104. package/dist/commonjs/query/wire.d.ts +13 -0
  105. package/dist/commonjs/query/wire.d.ts.map +1 -0
  106. package/dist/commonjs/query/wire.js +77 -0
  107. package/dist/commonjs/query/wire.js.map +1 -0
  108. package/dist/commonjs/schema/defineSchema.d.ts +110 -0
  109. package/dist/commonjs/schema/defineSchema.d.ts.map +1 -0
  110. package/dist/commonjs/schema/defineSchema.js +72 -0
  111. package/dist/commonjs/schema/defineSchema.js.map +1 -0
  112. package/dist/commonjs/schema/fields.d.ts +33 -0
  113. package/dist/commonjs/schema/fields.d.ts.map +1 -0
  114. package/dist/commonjs/schema/fields.js +3 -0
  115. package/dist/commonjs/schema/fields.js.map +1 -0
  116. package/dist/commonjs/schema/index.d.ts +9 -0
  117. package/dist/commonjs/schema/index.d.ts.map +1 -0
  118. package/dist/commonjs/schema/index.js +10 -0
  119. package/dist/commonjs/schema/index.js.map +1 -0
  120. package/dist/commonjs/schema/namespace.d.ts +82 -0
  121. package/dist/commonjs/schema/namespace.d.ts.map +1 -0
  122. package/dist/commonjs/schema/namespace.js +37 -0
  123. package/dist/commonjs/schema/namespace.js.map +1 -0
  124. package/dist/commonjs/schema/register.d.ts +37 -0
  125. package/dist/commonjs/schema/register.d.ts.map +1 -0
  126. package/dist/commonjs/schema/register.js +3 -0
  127. package/dist/commonjs/schema/register.js.map +1 -0
  128. package/dist/commonjs/schema/singularize.d.ts +45 -0
  129. package/dist/commonjs/schema/singularize.d.ts.map +1 -0
  130. package/dist/commonjs/schema/singularize.js +47 -0
  131. package/dist/commonjs/schema/singularize.js.map +1 -0
  132. package/dist/commonjs/schema/types.d.ts +39 -0
  133. package/dist/commonjs/schema/types.d.ts.map +1 -0
  134. package/dist/commonjs/schema/types.js +3 -0
  135. package/dist/commonjs/schema/types.js.map +1 -0
  136. package/dist/commonjs/schema/util.d.ts +11 -0
  137. package/dist/commonjs/schema/util.d.ts.map +1 -0
  138. package/dist/commonjs/schema/util.js +3 -0
  139. package/dist/commonjs/schema/util.js.map +1 -0
  140. package/dist/commonjs/tx/index.d.ts +4 -0
  141. package/dist/commonjs/tx/index.d.ts.map +1 -0
  142. package/dist/commonjs/tx/index.js +11 -0
  143. package/dist/commonjs/tx/index.js.map +1 -0
  144. package/dist/commonjs/tx/typedTx.d.ts +15 -0
  145. package/dist/commonjs/tx/typedTx.d.ts.map +1 -0
  146. package/dist/commonjs/tx/typedTx.js +54 -0
  147. package/dist/commonjs/tx/typedTx.js.map +1 -0
  148. package/dist/commonjs/tx/types.d.ts +104 -0
  149. package/dist/commonjs/tx/types.d.ts.map +1 -0
  150. package/dist/commonjs/tx/types.js +3 -0
  151. package/dist/commonjs/tx/types.js.map +1 -0
  152. package/dist/commonjs/vue/baseline/InstantDuxDatabase.d.ts +52 -0
  153. package/dist/commonjs/vue/baseline/InstantDuxDatabase.d.ts.map +1 -0
  154. package/dist/commonjs/vue/baseline/InstantDuxDatabase.js +157 -0
  155. package/dist/commonjs/vue/baseline/InstantDuxDatabase.js.map +1 -0
  156. package/dist/commonjs/vue/baseline/InstantDuxRoom.d.ts +72 -0
  157. package/dist/commonjs/vue/baseline/InstantDuxRoom.d.ts.map +1 -0
  158. package/dist/commonjs/vue/baseline/InstantDuxRoom.js +211 -0
  159. package/dist/commonjs/vue/baseline/InstantDuxRoom.js.map +1 -0
  160. package/dist/commonjs/vue/baseline/components/Cursor.d.ts +15 -0
  161. package/dist/commonjs/vue/baseline/components/Cursor.d.ts.map +1 -0
  162. package/dist/commonjs/vue/baseline/components/Cursor.js +39 -0
  163. package/dist/commonjs/vue/baseline/components/Cursor.js.map +1 -0
  164. package/dist/commonjs/vue/baseline/components/Cursors.d.ts +65 -0
  165. package/dist/commonjs/vue/baseline/components/Cursors.d.ts.map +1 -0
  166. package/dist/commonjs/vue/baseline/components/Cursors.js +113 -0
  167. package/dist/commonjs/vue/baseline/components/Cursors.js.map +1 -0
  168. package/dist/commonjs/vue/baseline/components/auth.d.ts +37 -0
  169. package/dist/commonjs/vue/baseline/components/auth.d.ts.map +1 -0
  170. package/dist/commonjs/vue/baseline/components/auth.js +27 -0
  171. package/dist/commonjs/vue/baseline/components/auth.js.map +1 -0
  172. package/dist/commonjs/vue/baseline/index.d.ts +11 -0
  173. package/dist/commonjs/vue/baseline/index.d.ts.map +1 -0
  174. package/dist/commonjs/vue/baseline/index.js +29 -0
  175. package/dist/commonjs/vue/baseline/index.js.map +1 -0
  176. package/dist/commonjs/vue/baseline/useInfiniteQuery.d.ts +19 -0
  177. package/dist/commonjs/vue/baseline/useInfiniteQuery.d.ts.map +1 -0
  178. package/dist/commonjs/vue/baseline/useInfiniteQuery.js +65 -0
  179. package/dist/commonjs/vue/baseline/useInfiniteQuery.js.map +1 -0
  180. package/dist/commonjs/vue/baseline/utils.d.ts +9 -0
  181. package/dist/commonjs/vue/baseline/utils.d.ts.map +1 -0
  182. package/dist/commonjs/vue/baseline/utils.js +29 -0
  183. package/dist/commonjs/vue/baseline/utils.js.map +1 -0
  184. package/dist/commonjs/vue/baseline/version.d.ts +3 -0
  185. package/dist/commonjs/vue/baseline/version.d.ts.map +1 -0
  186. package/dist/commonjs/vue/baseline/version.js +6 -0
  187. package/dist/commonjs/vue/baseline/version.js.map +1 -0
  188. package/dist/commonjs/vue/index.d.ts +21 -0
  189. package/dist/commonjs/vue/index.d.ts.map +1 -0
  190. package/dist/commonjs/vue/index.js +31 -0
  191. package/dist/commonjs/vue/index.js.map +1 -0
  192. package/dist/commonjs/vue/overlay/db.d.ts +106 -0
  193. package/dist/commonjs/vue/overlay/db.d.ts.map +1 -0
  194. package/dist/commonjs/vue/overlay/db.js +105 -0
  195. package/dist/commonjs/vue/overlay/db.js.map +1 -0
  196. package/dist/commonjs/vue/overlay/defineDb.d.ts +34 -0
  197. package/dist/commonjs/vue/overlay/defineDb.d.ts.map +1 -0
  198. package/dist/commonjs/vue/overlay/defineDb.js +48 -0
  199. package/dist/commonjs/vue/overlay/defineDb.js.map +1 -0
  200. package/dist/commonjs/vue/overlay/result.d.ts +29 -0
  201. package/dist/commonjs/vue/overlay/result.d.ts.map +1 -0
  202. package/dist/commonjs/vue/overlay/result.js +75 -0
  203. package/dist/commonjs/vue/overlay/result.js.map +1 -0
  204. package/dist/commonjs/vue/overlay/rooms/index.d.ts +79 -0
  205. package/dist/commonjs/vue/overlay/rooms/index.d.ts.map +1 -0
  206. package/dist/commonjs/vue/overlay/rooms/index.js +28 -0
  207. package/dist/commonjs/vue/overlay/rooms/index.js.map +1 -0
  208. package/dist/commonjs/vue/overlay/types.d.ts +73 -0
  209. package/dist/commonjs/vue/overlay/types.d.ts.map +1 -0
  210. package/dist/commonjs/vue/overlay/types.js +3 -0
  211. package/dist/commonjs/vue/overlay/types.js.map +1 -0
  212. package/dist/commonjs/webhooks/defineWebhookHandlers.d.ts +27 -0
  213. package/dist/commonjs/webhooks/defineWebhookHandlers.d.ts.map +1 -0
  214. package/dist/commonjs/webhooks/defineWebhookHandlers.js +33 -0
  215. package/dist/commonjs/webhooks/defineWebhookHandlers.js.map +1 -0
  216. package/dist/commonjs/webhooks/index.d.ts +15 -0
  217. package/dist/commonjs/webhooks/index.d.ts.map +1 -0
  218. package/dist/commonjs/webhooks/index.js +21 -0
  219. package/dist/commonjs/webhooks/index.js.map +1 -0
  220. package/dist/commonjs/webhooks/init.d.ts +13 -0
  221. package/dist/commonjs/webhooks/init.d.ts.map +1 -0
  222. package/dist/commonjs/webhooks/init.js +39 -0
  223. package/dist/commonjs/webhooks/init.js.map +1 -0
  224. package/dist/commonjs/webhooks/types.d.ts +136 -0
  225. package/dist/commonjs/webhooks/types.d.ts.map +1 -0
  226. package/dist/commonjs/webhooks/types.js +3 -0
  227. package/dist/commonjs/webhooks/types.js.map +1 -0
  228. package/dist/esm/admin/index.d.ts +18 -0
  229. package/dist/esm/admin/index.d.ts.map +1 -0
  230. package/dist/esm/admin/index.js +21 -0
  231. package/dist/esm/admin/index.js.map +1 -0
  232. package/dist/esm/admin/init.d.ts +67 -0
  233. package/dist/esm/admin/init.d.ts.map +1 -0
  234. package/dist/esm/admin/init.js +81 -0
  235. package/dist/esm/admin/init.js.map +1 -0
  236. package/dist/esm/admin/query.d.ts +21 -0
  237. package/dist/esm/admin/query.d.ts.map +1 -0
  238. package/dist/esm/admin/query.js +42 -0
  239. package/dist/esm/admin/query.js.map +1 -0
  240. package/dist/esm/admin/types.d.ts +124 -0
  241. package/dist/esm/admin/types.d.ts.map +1 -0
  242. package/dist/esm/admin/types.js +2 -0
  243. package/dist/esm/admin/types.js.map +1 -0
  244. package/dist/esm/admin/webhooks.d.ts +11 -0
  245. package/dist/esm/admin/webhooks.d.ts.map +1 -0
  246. package/dist/esm/admin/webhooks.js +5 -0
  247. package/dist/esm/admin/webhooks.js.map +1 -0
  248. package/dist/esm/errors.d.ts +13 -0
  249. package/dist/esm/errors.d.ts.map +1 -0
  250. package/dist/esm/errors.js +16 -0
  251. package/dist/esm/errors.js.map +1 -0
  252. package/dist/esm/index.d.ts +13 -0
  253. package/dist/esm/index.d.ts.map +1 -0
  254. package/dist/esm/index.js +13 -0
  255. package/dist/esm/index.js.map +1 -0
  256. package/dist/esm/nuxt/defineAuthSyncHandler.d.ts +15 -0
  257. package/dist/esm/nuxt/defineAuthSyncHandler.d.ts.map +1 -0
  258. package/dist/esm/nuxt/defineAuthSyncHandler.js +41 -0
  259. package/dist/esm/nuxt/defineAuthSyncHandler.js.map +1 -0
  260. package/dist/esm/nuxt/defineServerKit.d.ts +5 -0
  261. package/dist/esm/nuxt/defineServerKit.d.ts.map +1 -0
  262. package/dist/esm/nuxt/defineServerKit.js +46 -0
  263. package/dist/esm/nuxt/defineServerKit.js.map +1 -0
  264. package/dist/esm/nuxt/defineWebhookHandler.d.ts +17 -0
  265. package/dist/esm/nuxt/defineWebhookHandler.d.ts.map +1 -0
  266. package/dist/esm/nuxt/defineWebhookHandler.js +21 -0
  267. package/dist/esm/nuxt/defineWebhookHandler.js.map +1 -0
  268. package/dist/esm/nuxt/index.d.ts +15 -0
  269. package/dist/esm/nuxt/index.d.ts.map +1 -0
  270. package/dist/esm/nuxt/index.js +17 -0
  271. package/dist/esm/nuxt/index.js.map +1 -0
  272. package/dist/esm/nuxt/types.d.ts +54 -0
  273. package/dist/esm/nuxt/types.d.ts.map +1 -0
  274. package/dist/esm/nuxt/types.js +2 -0
  275. package/dist/esm/nuxt/types.js.map +1 -0
  276. package/dist/esm/package.json +3 -0
  277. package/dist/esm/perms/ast.d.ts +98 -0
  278. package/dist/esm/perms/ast.d.ts.map +1 -0
  279. package/dist/esm/perms/ast.js +140 -0
  280. package/dist/esm/perms/ast.js.map +1 -0
  281. package/dist/esm/perms/builder.d.ts +18 -0
  282. package/dist/esm/perms/builder.d.ts.map +1 -0
  283. package/dist/esm/perms/builder.js +257 -0
  284. package/dist/esm/perms/builder.js.map +1 -0
  285. package/dist/esm/perms/context.d.ts +27 -0
  286. package/dist/esm/perms/context.d.ts.map +1 -0
  287. package/dist/esm/perms/context.js +93 -0
  288. package/dist/esm/perms/context.js.map +1 -0
  289. package/dist/esm/perms/index.d.ts +13 -0
  290. package/dist/esm/perms/index.d.ts.map +1 -0
  291. package/dist/esm/perms/index.js +2 -0
  292. package/dist/esm/perms/index.js.map +1 -0
  293. package/dist/esm/perms/types.d.ts +353 -0
  294. package/dist/esm/perms/types.d.ts.map +1 -0
  295. package/dist/esm/perms/types.js +2 -0
  296. package/dist/esm/perms/types.js.map +1 -0
  297. package/dist/esm/perms/validate.d.ts +31 -0
  298. package/dist/esm/perms/validate.d.ts.map +1 -0
  299. package/dist/esm/perms/validate.js +61 -0
  300. package/dist/esm/perms/validate.js.map +1 -0
  301. package/dist/esm/query/constants.d.ts +13 -0
  302. package/dist/esm/query/constants.d.ts.map +1 -0
  303. package/dist/esm/query/constants.js +13 -0
  304. package/dist/esm/query/constants.js.map +1 -0
  305. package/dist/esm/query/defineQuery.d.ts +33 -0
  306. package/dist/esm/query/defineQuery.d.ts.map +1 -0
  307. package/dist/esm/query/defineQuery.js +24 -0
  308. package/dist/esm/query/defineQuery.js.map +1 -0
  309. package/dist/esm/query/index.d.ts +9 -0
  310. package/dist/esm/query/index.d.ts.map +1 -0
  311. package/dist/esm/query/index.js +5 -0
  312. package/dist/esm/query/index.js.map +1 -0
  313. package/dist/esm/query/keys.d.ts +33 -0
  314. package/dist/esm/query/keys.d.ts.map +1 -0
  315. package/dist/esm/query/keys.js +2 -0
  316. package/dist/esm/query/keys.js.map +1 -0
  317. package/dist/esm/query/shapeResult.d.ts +36 -0
  318. package/dist/esm/query/shapeResult.d.ts.map +1 -0
  319. package/dist/esm/query/shapeResult.js +168 -0
  320. package/dist/esm/query/shapeResult.js.map +1 -0
  321. package/dist/esm/query/types.d.ts +187 -0
  322. package/dist/esm/query/types.d.ts.map +1 -0
  323. package/dist/esm/query/types.js +2 -0
  324. package/dist/esm/query/types.js.map +1 -0
  325. package/dist/esm/query/validation.d.ts +61 -0
  326. package/dist/esm/query/validation.d.ts.map +1 -0
  327. package/dist/esm/query/validation.js +2 -0
  328. package/dist/esm/query/validation.js.map +1 -0
  329. package/dist/esm/query/wire.d.ts +13 -0
  330. package/dist/esm/query/wire.d.ts.map +1 -0
  331. package/dist/esm/query/wire.js +74 -0
  332. package/dist/esm/query/wire.js.map +1 -0
  333. package/dist/esm/schema/defineSchema.d.ts +110 -0
  334. package/dist/esm/schema/defineSchema.d.ts.map +1 -0
  335. package/dist/esm/schema/defineSchema.js +69 -0
  336. package/dist/esm/schema/defineSchema.js.map +1 -0
  337. package/dist/esm/schema/fields.d.ts +33 -0
  338. package/dist/esm/schema/fields.d.ts.map +1 -0
  339. package/dist/esm/schema/fields.js +2 -0
  340. package/dist/esm/schema/fields.js.map +1 -0
  341. package/dist/esm/schema/index.d.ts +9 -0
  342. package/dist/esm/schema/index.d.ts.map +1 -0
  343. package/dist/esm/schema/index.js +4 -0
  344. package/dist/esm/schema/index.js.map +1 -0
  345. package/dist/esm/schema/namespace.d.ts +82 -0
  346. package/dist/esm/schema/namespace.d.ts.map +1 -0
  347. package/dist/esm/schema/namespace.js +34 -0
  348. package/dist/esm/schema/namespace.js.map +1 -0
  349. package/dist/esm/schema/register.d.ts +37 -0
  350. package/dist/esm/schema/register.d.ts.map +1 -0
  351. package/dist/esm/schema/register.js +2 -0
  352. package/dist/esm/schema/register.js.map +1 -0
  353. package/dist/esm/schema/singularize.d.ts +45 -0
  354. package/dist/esm/schema/singularize.d.ts.map +1 -0
  355. package/dist/esm/schema/singularize.js +44 -0
  356. package/dist/esm/schema/singularize.js.map +1 -0
  357. package/dist/esm/schema/types.d.ts +39 -0
  358. package/dist/esm/schema/types.d.ts.map +1 -0
  359. package/dist/esm/schema/types.js +2 -0
  360. package/dist/esm/schema/types.js.map +1 -0
  361. package/dist/esm/schema/util.d.ts +11 -0
  362. package/dist/esm/schema/util.d.ts.map +1 -0
  363. package/dist/esm/schema/util.js +2 -0
  364. package/dist/esm/schema/util.js.map +1 -0
  365. package/dist/esm/tx/index.d.ts +4 -0
  366. package/dist/esm/tx/index.d.ts.map +1 -0
  367. package/dist/esm/tx/index.js +5 -0
  368. package/dist/esm/tx/index.js.map +1 -0
  369. package/dist/esm/tx/typedTx.d.ts +15 -0
  370. package/dist/esm/tx/typedTx.d.ts.map +1 -0
  371. package/dist/esm/tx/typedTx.js +51 -0
  372. package/dist/esm/tx/typedTx.js.map +1 -0
  373. package/dist/esm/tx/types.d.ts +104 -0
  374. package/dist/esm/tx/types.d.ts.map +1 -0
  375. package/dist/esm/tx/types.js +2 -0
  376. package/dist/esm/tx/types.js.map +1 -0
  377. package/dist/esm/vue/baseline/InstantDuxDatabase.d.ts +52 -0
  378. package/dist/esm/vue/baseline/InstantDuxDatabase.d.ts.map +1 -0
  379. package/dist/esm/vue/baseline/InstantDuxDatabase.js +149 -0
  380. package/dist/esm/vue/baseline/InstantDuxDatabase.js.map +1 -0
  381. package/dist/esm/vue/baseline/InstantDuxRoom.d.ts +72 -0
  382. package/dist/esm/vue/baseline/InstantDuxRoom.d.ts.map +1 -0
  383. package/dist/esm/vue/baseline/InstantDuxRoom.js +202 -0
  384. package/dist/esm/vue/baseline/InstantDuxRoom.js.map +1 -0
  385. package/dist/esm/vue/baseline/components/Cursor.d.ts +15 -0
  386. package/dist/esm/vue/baseline/components/Cursor.d.ts.map +1 -0
  387. package/dist/esm/vue/baseline/components/Cursor.js +36 -0
  388. package/dist/esm/vue/baseline/components/Cursor.js.map +1 -0
  389. package/dist/esm/vue/baseline/components/Cursors.d.ts +65 -0
  390. package/dist/esm/vue/baseline/components/Cursors.d.ts.map +1 -0
  391. package/dist/esm/vue/baseline/components/Cursors.js +107 -0
  392. package/dist/esm/vue/baseline/components/Cursors.js.map +1 -0
  393. package/dist/esm/vue/baseline/components/auth.d.ts +37 -0
  394. package/dist/esm/vue/baseline/components/auth.d.ts.map +1 -0
  395. package/dist/esm/vue/baseline/components/auth.js +24 -0
  396. package/dist/esm/vue/baseline/components/auth.js.map +1 -0
  397. package/dist/esm/vue/baseline/index.d.ts +11 -0
  398. package/dist/esm/vue/baseline/index.d.ts.map +1 -0
  399. package/dist/esm/vue/baseline/index.js +10 -0
  400. package/dist/esm/vue/baseline/index.js.map +1 -0
  401. package/dist/esm/vue/baseline/useInfiniteQuery.d.ts +19 -0
  402. package/dist/esm/vue/baseline/useInfiniteQuery.d.ts.map +1 -0
  403. package/dist/esm/vue/baseline/useInfiniteQuery.js +62 -0
  404. package/dist/esm/vue/baseline/useInfiniteQuery.js.map +1 -0
  405. package/dist/esm/vue/baseline/utils.d.ts +9 -0
  406. package/dist/esm/vue/baseline/utils.d.ts.map +1 -0
  407. package/dist/esm/vue/baseline/utils.js +25 -0
  408. package/dist/esm/vue/baseline/utils.js.map +1 -0
  409. package/dist/esm/vue/baseline/version.d.ts +3 -0
  410. package/dist/esm/vue/baseline/version.d.ts.map +1 -0
  411. package/dist/esm/vue/baseline/version.js +4 -0
  412. package/dist/esm/vue/baseline/version.js.map +1 -0
  413. package/dist/esm/vue/index.d.ts +21 -0
  414. package/dist/esm/vue/index.d.ts.map +1 -0
  415. package/dist/esm/vue/index.js +18 -0
  416. package/dist/esm/vue/index.js.map +1 -0
  417. package/dist/esm/vue/overlay/db.d.ts +106 -0
  418. package/dist/esm/vue/overlay/db.d.ts.map +1 -0
  419. package/dist/esm/vue/overlay/db.js +101 -0
  420. package/dist/esm/vue/overlay/db.js.map +1 -0
  421. package/dist/esm/vue/overlay/defineDb.d.ts +34 -0
  422. package/dist/esm/vue/overlay/defineDb.d.ts.map +1 -0
  423. package/dist/esm/vue/overlay/defineDb.js +44 -0
  424. package/dist/esm/vue/overlay/defineDb.js.map +1 -0
  425. package/dist/esm/vue/overlay/result.d.ts +29 -0
  426. package/dist/esm/vue/overlay/result.d.ts.map +1 -0
  427. package/dist/esm/vue/overlay/result.js +71 -0
  428. package/dist/esm/vue/overlay/result.js.map +1 -0
  429. package/dist/esm/vue/overlay/rooms/index.d.ts +79 -0
  430. package/dist/esm/vue/overlay/rooms/index.d.ts.map +1 -0
  431. package/dist/esm/vue/overlay/rooms/index.js +25 -0
  432. package/dist/esm/vue/overlay/rooms/index.js.map +1 -0
  433. package/dist/esm/vue/overlay/types.d.ts +73 -0
  434. package/dist/esm/vue/overlay/types.d.ts.map +1 -0
  435. package/dist/esm/vue/overlay/types.js +2 -0
  436. package/dist/esm/vue/overlay/types.js.map +1 -0
  437. package/dist/esm/webhooks/defineWebhookHandlers.d.ts +27 -0
  438. package/dist/esm/webhooks/defineWebhookHandlers.d.ts.map +1 -0
  439. package/dist/esm/webhooks/defineWebhookHandlers.js +30 -0
  440. package/dist/esm/webhooks/defineWebhookHandlers.js.map +1 -0
  441. package/dist/esm/webhooks/index.d.ts +15 -0
  442. package/dist/esm/webhooks/index.d.ts.map +1 -0
  443. package/dist/esm/webhooks/index.js +14 -0
  444. package/dist/esm/webhooks/index.js.map +1 -0
  445. package/dist/esm/webhooks/init.d.ts +13 -0
  446. package/dist/esm/webhooks/init.d.ts.map +1 -0
  447. package/dist/esm/webhooks/init.js +36 -0
  448. package/dist/esm/webhooks/init.js.map +1 -0
  449. package/dist/esm/webhooks/types.d.ts +136 -0
  450. package/dist/esm/webhooks/types.d.ts.map +1 -0
  451. package/dist/esm/webhooks/types.js +2 -0
  452. package/dist/esm/webhooks/types.js.map +1 -0
  453. package/package.json +149 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/vue/baseline/index.ts"],"names":[],"mappings":";;;AAAA,8EAA8E;AAC9E,2DAA2D;AAC3D,gDAA0D;AAAjD,mGAAA,QAAQ,OAAA;AAAE,oGAAA,SAAS,OAAA;AAC5B,oDAA+C;AAAtC,mGAAA,MAAM,OAAA;AACf,sDAAiD;AAAxC,qGAAA,OAAO,OAAA;AAChB,iEAAkE;AAAzD,6GAAA,IAAI,OAAA;AAAE,2HAAA,kBAAkB,OAAA;AAEjC,yDAQ4B;AAP1B,mHAAA,cAAc,OAAA;AACd,0GAAA,KAAK,OAAA;AACL,gHAAA,WAAW,OAAA;AACX,oHAAA,eAAe,OAAA;AACf,oHAAA,eAAe,OAAA;AACf,mHAAA,cAAc,OAAA;AACd,uHAAA,kBAAkB,OAAA;AAOpB,6DAAwD;AAA/C,uHAAA,gBAAgB,OAAA;AAEzB,uCAAwD;AAA/C,oGAAA,QAAQ,OAAA;AAAE,6GAAA,iBAAiB,OAAA","sourcesContent":["// The internal baseline surface — consumed only by the overlay and the parity\n// harness, never re-exported from `/vue`. See UPSTREAM.md.\nexport { SignedIn, SignedOut } from './components/auth.js'\nexport { Cursor } from './components/Cursor.js'\nexport { Cursors } from './components/Cursors.js'\nexport { init, InstantDuxDatabase } from './InstantDuxDatabase.js'\nexport type { UseAuthReturn, UseQueryReturn } from './InstantDuxDatabase.js'\nexport {\n InstantDuxRoom,\n rooms,\n usePresence,\n usePublishTopic,\n useSyncPresence,\n useTopicEffect,\n useTypingIndicator,\n} from './InstantDuxRoom.js'\nexport type {\n PresenceHandle,\n TypingIndicatorHandle,\n TypingIndicatorOpts,\n} from './InstantDuxRoom.js'\nexport { useInfiniteQuery } from './useInfiniteQuery.js'\nexport type { InfiniteQueryResult } from './useInfiniteQuery.js'\nexport { isClient, tryOnScopeDispose } from './utils.js'\n"]}
@@ -0,0 +1,19 @@
1
+ import type { InstantCoreDatabase, InstantSchemaDef, InstaQLOptions, InstaQLResponse, ValidQuery } from '@instantdb/core';
2
+ import type { MaybeRefOrGetter, Ref, ShallowRef } from 'vue';
3
+ export interface InfiniteQueryResult<Schema extends InstantSchemaDef<any, any, any>, Q extends ValidQuery<Q, Schema>, UseDates extends boolean> {
4
+ isLoading: Ref<boolean>;
5
+ data: ShallowRef<InstaQLResponse<Schema, Q, UseDates> | undefined>;
6
+ error: ShallowRef<{
7
+ message: string;
8
+ } | undefined>;
9
+ canLoadNextPage: Ref<boolean>;
10
+ loadNextPage: () => void;
11
+ }
12
+ /**
13
+ * Subscribe to a query and incrementally load more items.
14
+ *
15
+ * Only one top-level namespace in the query is allowed. Changing the query or
16
+ * options while the subscription is active resets and starts over.
17
+ */
18
+ export declare function useInfiniteQuery<Schema extends InstantSchemaDef<any, any, any>, Q extends ValidQuery<Q, Schema>, UseDates extends boolean>(core: InstantCoreDatabase<Schema, UseDates>, query: MaybeRefOrGetter<Q | null>, opts?: MaybeRefOrGetter<InstaQLOptions | undefined>): InfiniteQueryResult<Schema, Q, UseDates>;
19
+ //# sourceMappingURL=useInfiniteQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInfiniteQuery.d.ts","sourceRoot":"","sources":["../../../../src/vue/baseline/useInfiniteQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACpJ,OAAO,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAY5D,MAAM,WAAW,mBAAmB,CAClC,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9C,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAC/B,QAAQ,SAAS,OAAO;IAExB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAA;IAClE,KAAK,EAAE,UAAU,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAA;IAClD,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC7B,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9C,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAC/B,QAAQ,SAAS,OAAO,EAExB,IAAI,EAAE,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC3C,KAAK,EAAE,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,EACjC,IAAI,CAAC,EAAE,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,GAClD,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAsE1C"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useInfiniteQuery = useInfiniteQuery;
4
+ // Vendored from @instantdb/vue/src/useInfiniteQuery.ts — see UPSTREAM.md.
5
+ // Delta: the SSR floor guard around the subscription.
6
+ const core_1 = require("@instantdb/core");
7
+ const vue_1 = require("vue");
8
+ const utils_js_1 = require("./utils.js");
9
+ /**
10
+ * Subscribe to a query and incrementally load more items.
11
+ *
12
+ * Only one top-level namespace in the query is allowed. Changing the query or
13
+ * options while the subscription is active resets and starts over.
14
+ */
15
+ function useInfiniteQuery(core, query, opts) {
16
+ const initialQuery = (0, vue_1.toValue)(query);
17
+ // DUX-DELTA(ssr): no initial snapshot read on the server.
18
+ const snapshot = initialQuery && (0, utils_js_1.isClient)()
19
+ ? (0, core_1.getInfiniteQueryInitialSnapshot)(core, initialQuery, (0, vue_1.toValue)(opts))
20
+ : { data: undefined, error: undefined, canLoadNextPage: false };
21
+ // END DUX-DELTA
22
+ const isLoading = (0, vue_1.ref)(!snapshot.data && !snapshot.error);
23
+ const data = (0, vue_1.shallowRef)(snapshot.data);
24
+ const error = (0, vue_1.shallowRef)(snapshot.error);
25
+ const canLoadNextPage = (0, vue_1.ref)(snapshot.canLoadNextPage);
26
+ let subRef = null;
27
+ const stop = (0, vue_1.watch)([() => (0, core_1.weakHash)((0, vue_1.toValue)(query)), () => (0, core_1.weakHash)((0, vue_1.toValue)(opts))], (_, __, onCleanup) => {
28
+ subRef = null;
29
+ error.value = undefined;
30
+ data.value = undefined;
31
+ isLoading.value = true;
32
+ canLoadNextPage.value = false;
33
+ const q = (0, vue_1.toValue)(query);
34
+ if (!q)
35
+ return;
36
+ // DUX-DELTA(ssr): no subscription on the server.
37
+ if (!(0, utils_js_1.isClient)())
38
+ return;
39
+ // END DUX-DELTA
40
+ const sub = core.subscribeInfiniteQuery(q, (resp) => {
41
+ error.value = resp.error;
42
+ data.value = resp.data;
43
+ isLoading.value = false;
44
+ canLoadNextPage.value = resp.canLoadNextPage;
45
+ }, (0, vue_1.toValue)(opts));
46
+ subRef = sub;
47
+ onCleanup(() => {
48
+ sub.unsubscribe();
49
+ if (subRef === sub)
50
+ subRef = null;
51
+ });
52
+ }, { immediate: true });
53
+ const loadNextPage = () => {
54
+ subRef?.loadNextPage();
55
+ };
56
+ (0, utils_js_1.tryOnScopeDispose)(stop);
57
+ return {
58
+ isLoading,
59
+ data,
60
+ error,
61
+ canLoadNextPage,
62
+ loadNextPage,
63
+ };
64
+ }
65
+ //# sourceMappingURL=useInfiniteQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInfiniteQuery.js","sourceRoot":"","sources":["../../../../src/vue/baseline/useInfiniteQuery.ts"],"names":[],"mappings":";;AA+BA,4CA8EC;AA3GD,0EAA0E;AAC1E,sDAAsD;AACtD,0CAIwB;AACxB,6BAAqD;AAErD,yCAAwD;AAcxD;;;;;GAKG;AACH,SAAgB,gBAAgB,CAK9B,IAA2C,EAC3C,KAAiC,EACjC,IAAmD;IAEnD,MAAM,YAAY,GAAG,IAAA,aAAO,EAAC,KAAK,CAAC,CAAA;IACnC,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,YAAY,IAAI,IAAA,mBAAQ,GAAE;QACzC,CAAC,CAAC,IAAA,sCAA+B,EAAC,IAAI,EAAE,YAAY,EAAE,IAAA,aAAO,EAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;IACjE,gBAAgB;IAEhB,MAAM,SAAS,GAAG,IAAA,SAAG,EAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxD,MAAM,IAAI,GAAG,IAAA,gBAAU,EACrB,QAAQ,CAAC,IAAW,CACrB,CAAA;IACD,MAAM,KAAK,GAAG,IAAA,gBAAU,EAAkC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzE,MAAM,eAAe,GAAG,IAAA,SAAG,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;IAErD,IAAI,MAAM,GAAqC,IAAI,CAAA;IAEnD,MAAM,IAAI,GAAG,IAAA,WAAK,EAChB,CAAC,GAAG,EAAE,CAAC,IAAA,eAAQ,EAAC,IAAA,aAAO,EAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAA,eAAQ,EAAC,IAAA,aAAO,EAAC,IAAI,CAAC,CAAC,CAAC,EAC/D,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;QACnB,MAAM,GAAG,IAAI,CAAA;QACb,KAAK,CAAC,KAAK,GAAG,SAAS,CAAA;QACvB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;QACtB,SAAS,CAAC,KAAK,GAAG,IAAI,CAAA;QACtB,eAAe,CAAC,KAAK,GAAG,KAAK,CAAA;QAE7B,MAAM,CAAC,GAAG,IAAA,aAAO,EAAC,KAAK,CAAC,CAAA;QACxB,IAAI,CAAC,CAAC;YACJ,OAAM;QAER,iDAAiD;QACjD,IAAI,CAAC,IAAA,mBAAQ,GAAE;YACb,OAAM;QACR,gBAAgB;QAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CACrC,CAAC,EACD,CAAC,IAAS,EAAE,EAAE;YACZ,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAA;YACtB,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;YACvB,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAA;QAC9C,CAAC,EACD,IAAA,aAAO,EAAC,IAAI,CAAC,CACd,CAAA;QAED,MAAM,GAAG,GAAG,CAAA;QAEZ,SAAS,CAAC,GAAG,EAAE;YACb,GAAG,CAAC,WAAW,EAAE,CAAA;YACjB,IAAI,MAAM,KAAK,GAAG;gBAChB,MAAM,GAAG,IAAI,CAAA;QACjB,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAA;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,EAAE,YAAY,EAAE,CAAA;IACxB,CAAC,CAAA;IAED,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAEvB,OAAO;QACL,SAAS;QACT,IAAI;QACJ,KAAK;QACL,eAAe;QACf,YAAY;KAC+B,CAAA;AAC/C,CAAC","sourcesContent":["import type { InfiniteQuerySubscription, InstantCoreDatabase, InstantSchemaDef, InstaQLOptions, InstaQLResponse, ValidQuery } from '@instantdb/core'\nimport type { MaybeRefOrGetter, Ref, ShallowRef } from 'vue'\n// Vendored from @instantdb/vue/src/useInfiniteQuery.ts — see UPSTREAM.md.\n// Delta: the SSR floor guard around the subscription.\nimport {\n getInfiniteQueryInitialSnapshot,\n\n weakHash,\n} from '@instantdb/core'\nimport { ref, shallowRef, toValue, watch } from 'vue'\n\nimport { isClient, tryOnScopeDispose } from './utils.js'\n\nexport interface InfiniteQueryResult<\n Schema extends InstantSchemaDef<any, any, any>,\n Q extends ValidQuery<Q, Schema>,\n UseDates extends boolean,\n> {\n isLoading: Ref<boolean>\n data: ShallowRef<InstaQLResponse<Schema, Q, UseDates> | undefined>\n error: ShallowRef<{ message: string } | undefined>\n canLoadNextPage: Ref<boolean>\n loadNextPage: () => void\n}\n\n/**\n * Subscribe to a query and incrementally load more items.\n *\n * Only one top-level namespace in the query is allowed. Changing the query or\n * options while the subscription is active resets and starts over.\n */\nexport function useInfiniteQuery<\n Schema extends InstantSchemaDef<any, any, any>,\n Q extends ValidQuery<Q, Schema>,\n UseDates extends boolean,\n>(\n core: InstantCoreDatabase<Schema, UseDates>,\n query: MaybeRefOrGetter<Q | null>,\n opts?: MaybeRefOrGetter<InstaQLOptions | undefined>,\n): InfiniteQueryResult<Schema, Q, UseDates> {\n const initialQuery = toValue(query)\n // DUX-DELTA(ssr): no initial snapshot read on the server.\n const snapshot = initialQuery && isClient()\n ? getInfiniteQueryInitialSnapshot(core, initialQuery, toValue(opts))\n : { data: undefined, error: undefined, canLoadNextPage: false }\n // END DUX-DELTA\n\n const isLoading = ref(!snapshot.data && !snapshot.error)\n const data = shallowRef<InstaQLResponse<Schema, Q, UseDates> | undefined>(\n snapshot.data as any,\n )\n const error = shallowRef<{ message: string } | undefined>(snapshot.error)\n const canLoadNextPage = ref(snapshot.canLoadNextPage)\n\n let subRef: InfiniteQuerySubscription | null = null\n\n const stop = watch(\n [() => weakHash(toValue(query)), () => weakHash(toValue(opts))],\n (_, __, onCleanup) => {\n subRef = null\n error.value = undefined\n data.value = undefined\n isLoading.value = true\n canLoadNextPage.value = false\n\n const q = toValue(query)\n if (!q)\n return\n\n // DUX-DELTA(ssr): no subscription on the server.\n if (!isClient())\n return\n // END DUX-DELTA\n\n const sub = core.subscribeInfiniteQuery(\n q,\n (resp: any) => {\n error.value = resp.error\n data.value = resp.data\n isLoading.value = false\n canLoadNextPage.value = resp.canLoadNextPage\n },\n toValue(opts),\n )\n\n subRef = sub\n\n onCleanup(() => {\n sub.unsubscribe()\n if (subRef === sub)\n subRef = null\n })\n },\n { immediate: true },\n )\n\n const loadNextPage = () => {\n subRef?.loadNextPage()\n }\n\n tryOnScopeDispose(stop)\n\n return {\n isLoading,\n data,\n error,\n canLoadNextPage,\n loadNextPage,\n } as InfiniteQueryResult<Schema, Q, UseDates>\n}\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Run `fn` when the current effect scope is disposed. Returns true if a scope
3
+ * was active (and the callback was registered), false otherwise. Lets hooks
4
+ * work both inside component setup and inside a manual `effectScope()` without
5
+ * blowing up when called outside any scope.
6
+ */
7
+ export declare function tryOnScopeDispose(fn: () => void): boolean;
8
+ export declare function isClient(): boolean;
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/vue/baseline/utils.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAMzD;AAOD,wBAAgB,QAAQ,IAAI,OAAO,CAElC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tryOnScopeDispose = tryOnScopeDispose;
4
+ exports.isClient = isClient;
5
+ // Vendored from @instantdb/vue/src/utils.ts — see UPSTREAM.md.
6
+ const vue_1 = require("vue");
7
+ /**
8
+ * Run `fn` when the current effect scope is disposed. Returns true if a scope
9
+ * was active (and the callback was registered), false otherwise. Lets hooks
10
+ * work both inside component setup and inside a manual `effectScope()` without
11
+ * blowing up when called outside any scope.
12
+ */
13
+ function tryOnScopeDispose(fn) {
14
+ if ((0, vue_1.getCurrentScope)()) {
15
+ (0, vue_1.onScopeDispose)(fn);
16
+ return true;
17
+ }
18
+ return false;
19
+ }
20
+ // DUX-DELTA(ssr): the SSR-resilience floor (vision principle 6). Hooks must
21
+ // not crash on the server and must not open subscriptions there; this is the
22
+ // one predicate every reactive baseline hook guards on. No official
23
+ // counterpart — it is dux's addition, isolated here so the drift check never
24
+ // flags it as upstream divergence.
25
+ function isClient() {
26
+ return typeof window !== 'undefined';
27
+ }
28
+ // END DUX-DELTA
29
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/vue/baseline/utils.ts"],"names":[],"mappings":";;AASA,8CAMC;AAOD,4BAEC;AAxBD,+DAA+D;AAC/D,6BAAqD;AAErD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,EAAc;IAC9C,IAAI,IAAA,qBAAe,GAAE,EAAE,CAAC;QACtB,IAAA,oBAAc,EAAC,EAAE,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,4EAA4E;AAC5E,6EAA6E;AAC7E,oEAAoE;AACpE,6EAA6E;AAC7E,mCAAmC;AACnC,SAAgB,QAAQ;IACtB,OAAO,OAAO,MAAM,KAAK,WAAW,CAAA;AACtC,CAAC;AACD,gBAAgB","sourcesContent":["// Vendored from @instantdb/vue/src/utils.ts — see UPSTREAM.md.\nimport { getCurrentScope, onScopeDispose } from 'vue'\n\n/**\n * Run `fn` when the current effect scope is disposed. Returns true if a scope\n * was active (and the callback was registered), false otherwise. Lets hooks\n * work both inside component setup and inside a manual `effectScope()` without\n * blowing up when called outside any scope.\n */\nexport function tryOnScopeDispose(fn: () => void): boolean {\n if (getCurrentScope()) {\n onScopeDispose(fn)\n return true\n }\n return false\n}\n\n// DUX-DELTA(ssr): the SSR-resilience floor (vision principle 6). Hooks must\n// not crash on the server and must not open subscriptions there; this is the\n// one predicate every reactive baseline hook guards on. No official\n// counterpart — it is dux's addition, isolated here so the drift check never\n// flags it as upstream divergence.\nexport function isClient(): boolean {\n return typeof window !== 'undefined'\n}\n// END DUX-DELTA\n"]}
@@ -0,0 +1,3 @@
1
+ import { version } from '@instantdb/version';
2
+ export default version;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/vue/baseline/version.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,eAAe,OAAO,CAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Vendored from @instantdb/vue/src/version.ts — see UPSTREAM.md.
4
+ const version_1 = require("@instantdb/version");
5
+ exports.default = version_1.version;
6
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/vue/baseline/version.ts"],"names":[],"mappings":";;AAAA,iEAAiE;AACjE,gDAA4C;AAE5C,kBAAe,iBAAO,CAAA","sourcesContent":["// Vendored from @instantdb/vue/src/version.ts — see UPSTREAM.md.\nimport { version } from '@instantdb/version'\n\nexport default version\n"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * `@mszr/idb-dux/vue` — the Vue client.
3
+ *
4
+ * `init`, `defineDb`, the enhanced db (hooks, rooms, typed tx, pass-throughs),
5
+ * and the `SignedIn`/`SignedOut`/`Cursors` components. SSR-resilient by
6
+ * default; a thin overlay over the internal baseline.
7
+ *
8
+ * Spec: `../../../docs/dux-spec-vue.md`.
9
+ */
10
+ export { IdbApiError, IdbError } from '../errors.js';
11
+ export type { IdbIssue } from '../errors.js';
12
+ export type { IdbRoomName, IdbRoomPresence, IdbRooms, IdbRoomTopics, } from '../schema/index.js';
13
+ export { id, lookup } from '../tx/index.js';
14
+ export { Cursors, SignedIn, SignedOut } from './baseline/index.js';
15
+ export type { IdbClient } from './overlay/db.js';
16
+ export { defineDb, init } from './overlay/defineDb.js';
17
+ export type { IdbDefineDbOptions } from './overlay/defineDb.js';
18
+ export { makeResult } from './overlay/result.js';
19
+ export type { IdbResult } from './overlay/result.js';
20
+ export type { IdbAuthResult, IdbAuthResultRefs, IdbAuthResultState, IdbAuthUser, IdbClientConfig, IdbConnectionResult, IdbConnectionStatus, IdbInfiniteQueryResult, IdbLocalIdResult, IdbQueryResult, IdbQueryResultData, IdbQueryResultRefs, IdbQueryResultState, IdbUserOptions, } from './overlay/types.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vue/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACpD,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,YAAY,EACV,WAAW,EACX,eAAe,EACf,QAAQ,EACR,aAAa,GACd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAElE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACtD,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACf,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * `@mszr/idb-dux/vue` — the Vue client.
4
+ *
5
+ * `init`, `defineDb`, the enhanced db (hooks, rooms, typed tx, pass-throughs),
6
+ * and the `SignedIn`/`SignedOut`/`Cursors` components. SSR-resilient by
7
+ * default; a thin overlay over the internal baseline.
8
+ *
9
+ * Spec: `../../../docs/dux-spec-vue.md`.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.makeResult = exports.init = exports.defineDb = exports.SignedOut = exports.SignedIn = exports.Cursors = exports.lookup = exports.id = exports.IdbError = exports.IdbApiError = void 0;
13
+ // The branded error family ([§7.4]) — `e instanceof IdbError`.
14
+ var errors_js_1 = require("../errors.js");
15
+ Object.defineProperty(exports, "IdbApiError", { enumerable: true, get: function () { return errors_js_1.IdbApiError; } });
16
+ Object.defineProperty(exports, "IdbError", { enumerable: true, get: function () { return errors_js_1.IdbError; } });
17
+ // Re-exports — official names kept at the boundary.
18
+ var index_js_1 = require("../tx/index.js");
19
+ Object.defineProperty(exports, "id", { enumerable: true, get: function () { return index_js_1.id; } });
20
+ Object.defineProperty(exports, "lookup", { enumerable: true, get: function () { return index_js_1.lookup; } });
21
+ // Components — official names kept ([§7.3]). Shipped as `.ts` render functions.
22
+ var index_js_2 = require("./baseline/index.js");
23
+ Object.defineProperty(exports, "Cursors", { enumerable: true, get: function () { return index_js_2.Cursors; } });
24
+ Object.defineProperty(exports, "SignedIn", { enumerable: true, get: function () { return index_js_2.SignedIn; } });
25
+ Object.defineProperty(exports, "SignedOut", { enumerable: true, get: function () { return index_js_2.SignedOut; } });
26
+ var defineDb_js_1 = require("./overlay/defineDb.js");
27
+ Object.defineProperty(exports, "defineDb", { enumerable: true, get: function () { return defineDb_js_1.defineDb; } });
28
+ Object.defineProperty(exports, "init", { enumerable: true, get: function () { return defineDb_js_1.init; } });
29
+ var result_js_1 = require("./overlay/result.js");
30
+ Object.defineProperty(exports, "makeResult", { enumerable: true, get: function () { return result_js_1.makeResult; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/vue/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,+DAA+D;AAC/D,0CAAoD;AAA3C,wGAAA,WAAW,OAAA;AAAE,qGAAA,QAAQ,OAAA;AAS9B,oDAAoD;AACpD,2CAA2C;AAAlC,8FAAA,EAAE,OAAA;AAAE,kGAAA,MAAM,OAAA;AACnB,gFAAgF;AAChF,gDAAkE;AAAzD,mGAAA,OAAO,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,qGAAA,SAAS,OAAA;AAGrC,qDAAsD;AAA7C,uGAAA,QAAQ,OAAA;AAAE,mGAAA,IAAI,OAAA;AAEvB,iDAAgD;AAAvC,uGAAA,UAAU,OAAA","sourcesContent":["/**\n * `@mszr/idb-dux/vue` — the Vue client.\n *\n * `init`, `defineDb`, the enhanced db (hooks, rooms, typed tx, pass-throughs),\n * and the `SignedIn`/`SignedOut`/`Cursors` components. SSR-resilient by\n * default; a thin overlay over the internal baseline.\n *\n * Spec: `../../../docs/dux-spec-vue.md`.\n */\n\n// The branded error family ([§7.4]) — `e instanceof IdbError`.\nexport { IdbApiError, IdbError } from '../errors.js'\nexport type { IdbIssue } from '../errors.js'\n// Schema-rooted room type extractors ([§6]) — room shapes read off your schema.\nexport type {\n IdbRoomName,\n IdbRoomPresence,\n IdbRooms,\n IdbRoomTopics,\n} from '../schema/index.js'\n// Re-exports — official names kept at the boundary.\nexport { id, lookup } from '../tx/index.js'\n// Components — official names kept ([§7.3]). Shipped as `.ts` render functions.\nexport { Cursors, SignedIn, SignedOut } from './baseline/index.js'\n// The enhanced db type; the value comes from init/defineDb.\nexport type { IdbClient } from './overlay/db.js'\nexport { defineDb, init } from './overlay/defineDb.js'\nexport type { IdbDefineDbOptions } from './overlay/defineDb.js'\nexport { makeResult } from './overlay/result.js'\nexport type { IdbResult } from './overlay/result.js'\nexport type {\n IdbAuthResult,\n IdbAuthResultRefs,\n IdbAuthResultState,\n IdbAuthUser,\n IdbClientConfig,\n IdbConnectionResult,\n IdbConnectionStatus,\n IdbInfiniteQueryResult,\n IdbLocalIdResult,\n IdbQueryResult,\n IdbQueryResultData,\n IdbQueryResultRefs,\n IdbQueryResultState,\n IdbUserOptions,\n} from './overlay/types.js'\n"]}
@@ -0,0 +1,106 @@
1
+ import type { ComputedRef, MaybeRefOrGetter } from 'vue';
2
+ import type { IdbQueryData, IdbQueryOptions, IdbValidQuery } from '../../query/index.js';
3
+ import type { IdbSchema } from '../../schema/defineSchema.js';
4
+ import type { IdbRegisteredSchema } from '../../schema/register.js';
5
+ import type { IdbTx, IdbTxChunkInput } from '../../tx/index.js';
6
+ import type { InstantDuxDatabase } from '../baseline/index.js';
7
+ import type { IdbAuthResult, IdbAuthUser, IdbConnectionResult, IdbInfiniteQueryResult, IdbLocalIdResult, IdbQueryResult, IdbUserOptions } from './types.js';
8
+ /** A query input: a query, a ref/getter of one, or a factory returning null to pause. */
9
+ type QueryInput<Q> = MaybeRefOrGetter<Q | null>;
10
+ export declare class IdbClient<S extends IdbSchema = IdbRegisteredSchema> {
11
+ #private;
12
+ /** The schema-typed tx chain — shared machinery with `/admin` ([root §5]). */
13
+ readonly tx: IdbTx<S>;
14
+ /** Rooms hooks — stateful ones return the result pattern ([§6]). */
15
+ readonly rooms: {
16
+ useTopicEffect: typeof import("../baseline/InstantDuxRoom.js").useTopicEffect;
17
+ usePublishTopic: typeof import("../baseline/InstantDuxRoom.js").usePublishTopic;
18
+ usePresence: <RoomSchema extends import("@instantdb/core").RoomSchemaShape, RoomType extends keyof RoomSchema, Keys extends keyof RoomSchema[RoomType]["presence"]>(room: import("../baseline/InstantDuxRoom.js").InstantDuxRoom<any, RoomSchema, RoomType>, opts?: import("@instantdb/core").PresenceOpts<RoomSchema[RoomType]["presence"], Keys>) => {
19
+ peers: import("vue").ShallowRef<{
20
+ [peerId: string]: Pick<RoomSchema[RoomType]["presence"], Keys> & {
21
+ peerId: string;
22
+ };
23
+ }>;
24
+ isLoading: import("vue").ShallowRef<boolean>;
25
+ user: import("vue").ShallowRef<(Pick<RoomSchema[RoomType]["presence"], Keys> & {
26
+ peerId: string;
27
+ }) | undefined>;
28
+ error: import("vue").ShallowRef<string | undefined>;
29
+ } & {
30
+ refs: {
31
+ peers: import("vue").ShallowRef<{
32
+ [peerId: string]: Pick<RoomSchema[RoomType]["presence"], Keys> & {
33
+ peerId: string;
34
+ };
35
+ }>;
36
+ isLoading: import("vue").ShallowRef<boolean>;
37
+ user: import("vue").ShallowRef<(Pick<RoomSchema[RoomType]["presence"], Keys> & {
38
+ peerId: string;
39
+ }) | undefined>;
40
+ error: import("vue").ShallowRef<string | undefined>;
41
+ };
42
+ state: import("./result.js").StateOf<{
43
+ peers: import("vue").ShallowRef<{
44
+ [peerId: string]: Pick<RoomSchema[RoomType]["presence"], Keys> & {
45
+ peerId: string;
46
+ };
47
+ }>;
48
+ isLoading: import("vue").ShallowRef<boolean>;
49
+ user: import("vue").ShallowRef<(Pick<RoomSchema[RoomType]["presence"], Keys> & {
50
+ peerId: string;
51
+ }) | undefined>;
52
+ error: import("vue").ShallowRef<string | undefined>;
53
+ }>;
54
+ } & {
55
+ publishPresence: (data: Partial<RoomSchema[RoomType]["presence"]>) => void;
56
+ };
57
+ useSyncPresence: typeof import("../baseline/InstantDuxRoom.js").useSyncPresence;
58
+ useTypingIndicator: <RoomSchema extends import("@instantdb/core").RoomSchemaShape, RoomType extends keyof RoomSchema>(room: import("../baseline/InstantDuxRoom.js").InstantDuxRoom<any, RoomSchema, RoomType>, inputName: string, opts?: import("../baseline/InstantDuxRoom.js").TypingIndicatorOpts) => {
59
+ active: import("vue").Ref<RoomSchema[RoomType]["presence"][], RoomSchema[RoomType]["presence"][]>;
60
+ } & {
61
+ refs: {
62
+ active: import("vue").Ref<RoomSchema[RoomType]["presence"][], RoomSchema[RoomType]["presence"][]>;
63
+ };
64
+ state: import("./result.js").StateOf<{
65
+ active: import("vue").Ref<RoomSchema[RoomType]["presence"][], RoomSchema[RoomType]["presence"][]>;
66
+ }>;
67
+ } & {
68
+ setActive: (active: boolean) => void;
69
+ inputProps: {
70
+ onKeydown: (e: KeyboardEvent) => void;
71
+ onBlur: () => void;
72
+ };
73
+ };
74
+ };
75
+ constructor(baseline: InstantDuxDatabase<S>, schema: IdbSchema | undefined);
76
+ get auth(): import("@instantdb/core").Auth;
77
+ get storage(): import("@instantdb/core").Storage;
78
+ get streams(): import("@instantdb/core").Streams;
79
+ transact: (chunks: IdbTxChunkInput<S> | IdbTxChunkInput<S>[]) => Promise<import("@instantdb/core").TransactionResult>;
80
+ getAuth: () => Promise<IdbAuthUser | null>;
81
+ getLocalId: (name: string) => Promise<string>;
82
+ room: InstantDuxDatabase<S>["room"];
83
+ /**
84
+ * Subscribe to a query. Destructure top-level scopes directly — full
85
+ * shaping ($only/$at/$as/$m, array normalization, singularization) per the
86
+ * root spec, plus the result pattern. A factory returning `null` pauses.
87
+ */
88
+ useQuery: <const Q extends IdbValidQuery<Q, S>>(query: QueryInput<Q>, opts?: MaybeRefOrGetter<IdbQueryOptions<S> | null | undefined>) => IdbQueryResult<Q, S>;
89
+ /** Imperative one-shot with identical shaping — plain shaped data, no refs. */
90
+ queryOnce: <const Q extends IdbValidQuery<Q, S>>(query: Q, opts?: IdbQueryOptions<S>) => Promise<IdbQueryData<Q, S>>;
91
+ /** The data plane, paginated — same shaping, plus `loadNextPage`. */
92
+ useInfiniteQuery: <const Q extends IdbValidQuery<Q, S>>(query: QueryInput<Q>, opts?: MaybeRefOrGetter<IdbQueryOptions<S> | undefined>) => IdbInfiniteQueryResult<Q, S>;
93
+ useAuth: () => IdbAuthResult;
94
+ /**
95
+ * The user-centric projection. `requireUser: true` types `user` present and
96
+ * throws at access when there's none; the default leaves it optional.
97
+ */
98
+ useUser(opts: {
99
+ requireUser: true;
100
+ }): ComputedRef<IdbAuthUser>;
101
+ useUser(opts?: IdbUserOptions): ComputedRef<IdbAuthUser | undefined>;
102
+ useConnectionStatus: () => IdbConnectionResult;
103
+ useLocalId: (name: MaybeRefOrGetter<string>) => IdbLocalIdResult;
104
+ }
105
+ export {};
106
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../src/vue/overlay/db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IdbClient = void 0;
4
+ const core_1 = require("@instantdb/core");
5
+ /**
6
+ * The enhanced db — the only public client surface. A thin overlay over the
7
+ * vendored baseline ([dux-spec-vue.md §1]): hooks compose baseline hooks and
8
+ * reshape through the pure `shapeResult`, never forking the baseline. SSR
9
+ * resilience comes from the baseline guards; shaping and the result pattern
10
+ * are added here.
11
+ */
12
+ const vue_1 = require("vue");
13
+ const index_js_1 = require("../../query/index.js");
14
+ const index_js_2 = require("../../tx/index.js");
15
+ const result_js_1 = require("./result.js");
16
+ const index_js_3 = require("./rooms/index.js");
17
+ class IdbClient {
18
+ /** The schema-typed tx chain — shared machinery with `/admin` ([root §5]). */
19
+ tx = (0, index_js_2.typedTx)();
20
+ /** Rooms hooks — stateful ones return the result pattern ([§6]). */
21
+ rooms = index_js_3.rooms;
22
+ #baseline;
23
+ #schema;
24
+ constructor(baseline, schema) {
25
+ this.#baseline = baseline;
26
+ this.#schema = (0, index_js_1.shapingSchema)(schema);
27
+ }
28
+ // ----- pass-throughs to the baseline -----
29
+ get auth() {
30
+ return this.#baseline.auth;
31
+ }
32
+ get storage() {
33
+ return this.#baseline.storage;
34
+ }
35
+ get streams() {
36
+ return this.#baseline.streams;
37
+ }
38
+ transact = (chunks) => this.#baseline.transact(chunks);
39
+ getAuth = () => this.#baseline.getAuth();
40
+ getLocalId = (name) => this.#baseline.getLocalId(name);
41
+ room = ((type, id) => this.#baseline.room(type, id));
42
+ // ----- the data plane -----
43
+ /**
44
+ * Subscribe to a query. Destructure top-level scopes directly — full
45
+ * shaping ($only/$at/$as/$m, array normalization, singularization) per the
46
+ * root spec, plus the result pattern. A factory returning `null` pauses.
47
+ */
48
+ useQuery = (query, opts) => {
49
+ const duxQuery = (0, vue_1.computed)(() => (0, vue_1.toValue)(query));
50
+ const base = this.#baseline.useQuery((() => {
51
+ const q = duxQuery.value;
52
+ return q ? (0, index_js_1.toWireQuery)(q) : null;
53
+ }), opts);
54
+ const shaped = (0, vue_1.computed)(() => {
55
+ const q = duxQuery.value;
56
+ return q ? (0, index_js_1.shapeResult)(base.data.value, q, this.#schema) : {};
57
+ });
58
+ return (0, result_js_1.makeDynamicResult)({ isLoading: base.isLoading, error: base.error, pageInfo: base.pageInfo }, key => (0, vue_1.computed)(() => shaped.value[key]));
59
+ };
60
+ /** Imperative one-shot with identical shaping — plain shaped data, no refs. */
61
+ queryOnce = async (query, opts) => {
62
+ const { data } = await this.#baseline.queryOnce((0, index_js_1.toWireQuery)(query), opts);
63
+ return (0, index_js_1.shapeResult)(data, query, this.#schema);
64
+ };
65
+ /** The data plane, paginated — same shaping, plus `loadNextPage`. */
66
+ useInfiniteQuery = (query, opts) => {
67
+ const duxQuery = (0, vue_1.computed)(() => (0, vue_1.toValue)(query));
68
+ const base = this.#baseline.useInfiniteQuery((() => {
69
+ const q = duxQuery.value;
70
+ return q ? (0, index_js_1.toWireQuery)(q) : null;
71
+ }), opts);
72
+ const shaped = (0, vue_1.computed)(() => {
73
+ const q = duxQuery.value;
74
+ return q ? (0, index_js_1.shapeResult)(base.data.value, q, this.#schema) : {};
75
+ });
76
+ return (0, result_js_1.makeDynamicResult)({ isLoading: base.isLoading, error: base.error, canLoadNextPage: base.canLoadNextPage }, key => (0, vue_1.computed)(() => shaped.value[key]), { loadNextPage: base.loadNextPage });
77
+ };
78
+ // ----- auth, connection, identity -----
79
+ useAuth = () => {
80
+ const { isLoading, user, error } = this.#baseline.useAuth();
81
+ // dux types `user` as IdbAuthUser | undefined — fold the official null.
82
+ const userRef = (0, vue_1.computed)(() => user.value ?? undefined);
83
+ return (0, result_js_1.makeResult)({ isLoading, user: userRef, error });
84
+ };
85
+ useUser(opts) {
86
+ const { user } = this.useAuth();
87
+ return (0, vue_1.computed)(() => {
88
+ if (!user.value && opts?.requireUser) {
89
+ throw new core_1.InstantError('useUser({ requireUser: true }) must be used behind an auth gate');
90
+ }
91
+ return user.value;
92
+ });
93
+ }
94
+ useConnectionStatus = () => {
95
+ const status = this.#baseline.useConnectionStatus();
96
+ return (0, result_js_1.makeResult)({ status });
97
+ };
98
+ useLocalId = (name) => {
99
+ const localId = this.#baseline.useLocalId(name);
100
+ return (0, result_js_1.makeResult)({ localId });
101
+ };
102
+ }
103
+ exports.IdbClient = IdbClient;
104
+ void index_js_1.resultKeys; // exported utility; kept available for tooling
105
+ //# sourceMappingURL=db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../../src/vue/overlay/db.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ComputedRef, MaybeRefOrGetter } from 'vue'\nimport type { IdbQueryData, IdbQueryOptions, IdbValidQuery } from '../../query/index.js'\nimport type { IdbSchema } from '../../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../../schema/register.js'\nimport type { IdbTx, IdbTxChunkInput } from '../../tx/index.js'\nimport type { InstantDuxDatabase } from '../baseline/index.js'\nimport type {\n IdbAuthResult,\n IdbAuthUser,\n IdbConnectionResult,\n IdbInfiniteQueryResult,\n IdbLocalIdResult,\n IdbQueryResult,\n IdbUserOptions,\n} from './types.js'\nimport { InstantError } from '@instantdb/core'\n/**\n * The enhanced db — the only public client surface. A thin overlay over the\n * vendored baseline ([dux-spec-vue.md §1]): hooks compose baseline hooks and\n * reshape through the pure `shapeResult`, never forking the baseline. SSR\n * resilience comes from the baseline guards; shaping and the result pattern\n * are added here.\n */\nimport { computed, toValue } from 'vue'\nimport { resultKeys, shapeResult, shapingSchema, toWireQuery } from '../../query/index.js'\nimport { typedTx } from '../../tx/index.js'\nimport { makeDynamicResult, makeResult } from './result.js'\nimport { rooms as overlayRooms } from './rooms/index.js'\n\n/** A query input: a query, a ref/getter of one, or a factory returning null to pause. */\ntype QueryInput<Q> = MaybeRefOrGetter<Q | null>\n\nexport class IdbClient<S extends IdbSchema = IdbRegisteredSchema> {\n /** The schema-typed tx chain — shared machinery with `/admin` ([root §5]). */\n public readonly tx: IdbTx<S> = typedTx<S>()\n /** Rooms hooks — stateful ones return the result pattern ([§6]). */\n public readonly rooms = overlayRooms\n\n readonly #baseline: InstantDuxDatabase<S>\n readonly #schema: IdbSchema\n\n constructor(baseline: InstantDuxDatabase<S>, schema: IdbSchema | undefined) {\n this.#baseline = baseline\n this.#schema = shapingSchema(schema)\n }\n\n // ----- pass-throughs to the baseline -----\n\n get auth() {\n return this.#baseline.auth\n }\n\n get storage() {\n return this.#baseline.storage\n }\n\n get streams() {\n return this.#baseline.streams\n }\n\n transact = (chunks: IdbTxChunkInput<S> | IdbTxChunkInput<S>[]) =>\n this.#baseline.transact(chunks as any)\n\n getAuth = (): Promise<IdbAuthUser | null> => this.#baseline.getAuth()\n getLocalId = (name: string): Promise<string> => this.#baseline.getLocalId(name)\n\n room = ((type?: any, id?: any) => this.#baseline.room(type, id)) as\n InstantDuxDatabase<S>['room']\n\n // ----- the data plane -----\n\n /**\n * Subscribe to a query. Destructure top-level scopes directly — full\n * shaping ($only/$at/$as/$m, array normalization, singularization) per the\n * root spec, plus the result pattern. A factory returning `null` pauses.\n */\n useQuery = <const Q extends IdbValidQuery<Q, S>>(\n query: QueryInput<Q>,\n opts?: MaybeRefOrGetter<IdbQueryOptions<S> | null | undefined>,\n ): IdbQueryResult<Q, S> => {\n const duxQuery = computed(() => toValue(query) as Record<string, any> | null)\n const base = this.#baseline.useQuery(\n (() => {\n const q = duxQuery.value\n return q ? toWireQuery(q) : null\n }) as any,\n opts as any,\n )\n const shaped = computed(() => {\n const q = duxQuery.value\n return q ? shapeResult(base.data.value, q, this.#schema) : {}\n })\n return makeDynamicResult(\n { isLoading: base.isLoading, error: base.error, pageInfo: base.pageInfo },\n key => computed(() => shaped.value[key]),\n )\n }\n\n /** Imperative one-shot with identical shaping — plain shaped data, no refs. */\n queryOnce = async <const Q extends IdbValidQuery<Q, S>>(\n query: Q,\n opts?: IdbQueryOptions<S>,\n ): Promise<IdbQueryData<Q, S>> => {\n const { data } = await this.#baseline.queryOnce(\n toWireQuery(query as Record<string, any>) as any,\n opts as any,\n )\n return shapeResult(data, query as Record<string, any>, this.#schema) as IdbQueryData<Q, S>\n }\n\n /** The data plane, paginated — same shaping, plus `loadNextPage`. */\n useInfiniteQuery = <const Q extends IdbValidQuery<Q, S>>(\n query: QueryInput<Q>,\n opts?: MaybeRefOrGetter<IdbQueryOptions<S> | undefined>,\n ): IdbInfiniteQueryResult<Q, S> => {\n const duxQuery = computed(() => toValue(query) as Record<string, any> | null)\n const base = this.#baseline.useInfiniteQuery(\n (() => {\n const q = duxQuery.value\n return q ? toWireQuery(q) : null\n }) as any,\n opts as any,\n )\n const shaped = computed(() => {\n const q = duxQuery.value\n return q ? shapeResult(base.data.value, q, this.#schema) : {}\n })\n return makeDynamicResult(\n { isLoading: base.isLoading, error: base.error, canLoadNextPage: base.canLoadNextPage },\n key => computed(() => shaped.value[key]),\n { loadNextPage: base.loadNextPage },\n )\n }\n\n // ----- auth, connection, identity -----\n\n useAuth = (): IdbAuthResult => {\n const { isLoading, user, error } = this.#baseline.useAuth()\n // dux types `user` as IdbAuthUser | undefined — fold the official null.\n const userRef = computed(() => user.value ?? undefined)\n return makeResult({ isLoading, user: userRef, error })\n }\n\n /**\n * The user-centric projection. `requireUser: true` types `user` present and\n * throws at access when there's none; the default leaves it optional.\n */\n useUser(opts: { requireUser: true }): ComputedRef<IdbAuthUser>\n useUser(opts?: IdbUserOptions): ComputedRef<IdbAuthUser | undefined>\n useUser(opts?: IdbUserOptions): ComputedRef<IdbAuthUser | undefined> {\n const { user } = this.useAuth()\n return computed(() => {\n if (!user.value && opts?.requireUser) {\n throw new InstantError(\n 'useUser({ requireUser: true }) must be used behind an auth gate',\n )\n }\n return user.value\n })\n }\n\n useConnectionStatus = (): IdbConnectionResult => {\n const status = this.#baseline.useConnectionStatus()\n return makeResult({ status })\n }\n\n useLocalId = (name: MaybeRefOrGetter<string>): IdbLocalIdResult => {\n const localId = this.#baseline.useLocalId(name)\n return makeResult({ localId })\n }\n}\n\nvoid resultKeys // exported utility; kept available for tooling\n"]}
@@ -0,0 +1,34 @@
1
+ import type { IdbSchema } from '../../schema/defineSchema.js';
2
+ import type { IdbRegisteredSchema } from '../../schema/register.js';
3
+ import type { IdbClientConfig } from './types.js';
4
+ import { IdbClient } from './db.js';
5
+ /**
6
+ * Build the db eagerly — for apps whose config is available at module load.
7
+ *
8
+ * The client is `markRaw`'d: it is a stable handle, not reactive state (its
9
+ * reactivity lives in the refs its hooks return), so it must never be wrapped
10
+ * in a reactive proxy. Storing it in a Pinia store or `reactive()` is the
11
+ * normal case, and a proxy would break the pass-through getters (`auth`,
12
+ * `storage`, `streams`) — reading a private field through a proxy throws. This
13
+ * makes the client proxy-safe with zero userland ceremony.
14
+ */
15
+ export declare function init<S extends IdbSchema = IdbRegisteredSchema>(config: IdbClientConfig<S>): IdbClient<S>;
16
+ /** `defineDb` options: the schema, a lazy `getAppId`, and the rest of config. */
17
+ export type IdbDefineDbOptions<S extends IdbSchema> = Omit<IdbClientConfig<S>, 'appId'> & {
18
+ /** Resolved on first use (framework runtime config, env indirection, …). */
19
+ getAppId: () => string;
20
+ };
21
+ /**
22
+ * Returns a factory: the first call resolves config and creates the db;
23
+ * subsequent calls return the same instance. No framework-wide singleton —
24
+ * global state stays the app's responsibility.
25
+ *
26
+ * @example
27
+ * export const useDb = defineDb({
28
+ * schema,
29
+ * getAppId: () => useRuntimeConfig().public.instantAppId,
30
+ * firstPartyPath: '/api/idb',
31
+ * })
32
+ */
33
+ export declare function defineDb<S extends IdbSchema = IdbRegisteredSchema>(options: IdbDefineDbOptions<S>): () => IdbClient<S>;
34
+ //# sourceMappingURL=defineDb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineDb.d.ts","sourceRoot":"","sources":["../../../../src/vue/overlay/defineDb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,EAC5D,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GACzB,SAAS,CAAC,CAAC,CAAC,CAGd;AAED,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG;IACxF,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,MAAM,CAAA;CACvB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,EAChE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,MAAM,SAAS,CAAC,CAAC,CAAC,CAQpB"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ exports.defineDb = defineDb;
5
+ /**
6
+ * Setup — `init` (eager) and `defineDb` (memoized lazy factory). `defineDb`
7
+ * gives first-class support to the app-id-resolves-at-runtime pattern instead
8
+ * of a hand-rolled lazy-init-and-memoize dance ([dux-spec-vue.md §2]).
9
+ */
10
+ const vue_1 = require("vue");
11
+ const index_js_1 = require("../baseline/index.js");
12
+ const db_js_1 = require("./db.js");
13
+ /**
14
+ * Build the db eagerly — for apps whose config is available at module load.
15
+ *
16
+ * The client is `markRaw`'d: it is a stable handle, not reactive state (its
17
+ * reactivity lives in the refs its hooks return), so it must never be wrapped
18
+ * in a reactive proxy. Storing it in a Pinia store or `reactive()` is the
19
+ * normal case, and a proxy would break the pass-through getters (`auth`,
20
+ * `storage`, `streams`) — reading a private field through a proxy throws. This
21
+ * makes the client proxy-safe with zero userland ceremony.
22
+ */
23
+ function init(config) {
24
+ const baseline = (0, index_js_1.init)(config);
25
+ return (0, vue_1.markRaw)(new db_js_1.IdbClient(baseline, config.schema));
26
+ }
27
+ /**
28
+ * Returns a factory: the first call resolves config and creates the db;
29
+ * subsequent calls return the same instance. No framework-wide singleton —
30
+ * global state stays the app's responsibility.
31
+ *
32
+ * @example
33
+ * export const useDb = defineDb({
34
+ * schema,
35
+ * getAppId: () => useRuntimeConfig().public.instantAppId,
36
+ * firstPartyPath: '/api/idb',
37
+ * })
38
+ */
39
+ function defineDb(options) {
40
+ let instance;
41
+ const { getAppId, ...config } = options;
42
+ return () => {
43
+ if (!instance)
44
+ instance = init({ ...config, appId: getAppId() });
45
+ return instance;
46
+ };
47
+ }
48
+ //# sourceMappingURL=defineDb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineDb.js","sourceRoot":"","sources":["../../../../src/vue/overlay/defineDb.ts"],"names":[],"mappings":";;AAsBA,oBAKC;AAoBD,4BAUC;AAtDD;;;;GAIG;AACH,6BAA6B;AAC7B,mDAA2D;AAC3D,mCAAmC;AAEnC;;;;;;;;;GASG;AACH,SAAgB,IAAI,CAClB,MAA0B;IAE1B,MAAM,QAAQ,GAAG,IAAA,eAAY,EAAC,MAAa,CAAC,CAAA;IAC5C,OAAO,IAAA,aAAO,EAAC,IAAI,iBAAS,CAAI,QAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AAClE,CAAC;AAQD;;;;;;;;;;;GAWG;AACH,SAAgB,QAAQ,CACtB,OAA8B;IAE9B,IAAI,QAAkC,CAAA;IACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;IACvC,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,QAAQ;YACX,QAAQ,GAAG,IAAI,CAAI,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAwB,CAAC,CAAA;QAC5E,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;AACH,CAAC","sourcesContent":["import type { IdbSchema } from '../../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../../schema/register.js'\nimport type { IdbClientConfig } from './types.js'\n/**\n * Setup — `init` (eager) and `defineDb` (memoized lazy factory). `defineDb`\n * gives first-class support to the app-id-resolves-at-runtime pattern instead\n * of a hand-rolled lazy-init-and-memoize dance ([dux-spec-vue.md §2]).\n */\nimport { markRaw } from 'vue'\nimport { init as baselineInit } from '../baseline/index.js'\nimport { IdbClient } from './db.js'\n\n/**\n * Build the db eagerly — for apps whose config is available at module load.\n *\n * The client is `markRaw`'d: it is a stable handle, not reactive state (its\n * reactivity lives in the refs its hooks return), so it must never be wrapped\n * in a reactive proxy. Storing it in a Pinia store or `reactive()` is the\n * normal case, and a proxy would break the pass-through getters (`auth`,\n * `storage`, `streams`) — reading a private field through a proxy throws. This\n * makes the client proxy-safe with zero userland ceremony.\n */\nexport function init<S extends IdbSchema = IdbRegisteredSchema>(\n config: IdbClientConfig<S>,\n): IdbClient<S> {\n const baseline = baselineInit(config as any)\n return markRaw(new IdbClient<S>(baseline as any, config.schema))\n}\n\n/** `defineDb` options: the schema, a lazy `getAppId`, and the rest of config. */\nexport type IdbDefineDbOptions<S extends IdbSchema> = Omit<IdbClientConfig<S>, 'appId'> & {\n /** Resolved on first use (framework runtime config, env indirection, …). */\n getAppId: () => string\n}\n\n/**\n * Returns a factory: the first call resolves config and creates the db;\n * subsequent calls return the same instance. No framework-wide singleton —\n * global state stays the app's responsibility.\n *\n * @example\n * export const useDb = defineDb({\n * schema,\n * getAppId: () => useRuntimeConfig().public.instantAppId,\n * firstPartyPath: '/api/idb',\n * })\n */\nexport function defineDb<S extends IdbSchema = IdbRegisteredSchema>(\n options: IdbDefineDbOptions<S>,\n): () => IdbClient<S> {\n let instance: IdbClient<S> | undefined\n const { getAppId, ...config } = options\n return () => {\n if (!instance)\n instance = init<S>({ ...config, appId: getAppId() } as IdbClientConfig<S>)\n return instance\n }\n}\n"]}
@@ -0,0 +1,29 @@
1
+ import type { Ref } from 'vue';
2
+ /** The flat ref bag a hook produces (`{ isLoading, error, todos, … }`). */
3
+ export type RefsBag = Record<string, Ref<any>>;
4
+ type Unref<R> = R extends Ref<infer V> ? V : never;
5
+ /** `.state` — getter projection over the refs, `.value`-free and read-only. */
6
+ export type StateOf<Refs> = {
7
+ readonly [K in keyof Refs]: Unref<Refs[K]>;
8
+ };
9
+ /** The full result: top-level refs (spread in), plus `.refs` and `.state`. */
10
+ export type IdbResult<Refs> = Refs & {
11
+ refs: Refs;
12
+ state: StateOf<Refs>;
13
+ };
14
+ /**
15
+ * Wrap a hook's flat ref bag into the result pattern. The refs are spread to
16
+ * the top level, exposed again under `.refs`, and projected read-only under a
17
+ * raw `.state`.
18
+ */
19
+ export declare function makeResult<Refs extends RefsBag>(refs: Refs): IdbResult<Refs>;
20
+ /**
21
+ * The result pattern for hooks whose key set is *dynamic* (query scopes
22
+ * depend on the query, which can change at runtime). `staticRefs` are always
23
+ * present (`isLoading`, `error`, …); any other accessed key is resolved
24
+ * through `scopeRef`, which the builder memoizes. Destructuring, `.refs`
25
+ * passthrough, and the raw `.state` projection all work over arbitrary keys.
26
+ */
27
+ export declare function makeDynamicResult<Static extends RefsBag>(staticRefs: Static, scopeRef: (key: string) => Ref<any>, extras?: Record<string, unknown>): any;
28
+ export {};
29
+ //# sourceMappingURL=result.d.ts.map