@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.
- package/LICENSE +194 -0
- package/README.md +84 -0
- package/dist/commonjs/admin/index.d.ts +18 -0
- package/dist/commonjs/admin/index.d.ts.map +1 -0
- package/dist/commonjs/admin/index.js +31 -0
- package/dist/commonjs/admin/index.js.map +1 -0
- package/dist/commonjs/admin/init.d.ts +67 -0
- package/dist/commonjs/admin/init.d.ts.map +1 -0
- package/dist/commonjs/admin/init.js +86 -0
- package/dist/commonjs/admin/init.js.map +1 -0
- package/dist/commonjs/admin/query.d.ts +21 -0
- package/dist/commonjs/admin/query.d.ts.map +1 -0
- package/dist/commonjs/admin/query.js +46 -0
- package/dist/commonjs/admin/query.js.map +1 -0
- package/dist/commonjs/admin/types.d.ts +124 -0
- package/dist/commonjs/admin/types.d.ts.map +1 -0
- package/dist/commonjs/admin/types.js +3 -0
- package/dist/commonjs/admin/types.js.map +1 -0
- package/dist/commonjs/admin/webhooks.d.ts +11 -0
- package/dist/commonjs/admin/webhooks.d.ts.map +1 -0
- package/dist/commonjs/admin/webhooks.js +8 -0
- package/dist/commonjs/admin/webhooks.js.map +1 -0
- package/dist/commonjs/errors.d.ts +13 -0
- package/dist/commonjs/errors.d.ts.map +1 -0
- package/dist/commonjs/errors.js +19 -0
- package/dist/commonjs/errors.js.map +1 -0
- package/dist/commonjs/index.d.ts +13 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +29 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/nuxt/defineAuthSyncHandler.d.ts +15 -0
- package/dist/commonjs/nuxt/defineAuthSyncHandler.d.ts.map +1 -0
- package/dist/commonjs/nuxt/defineAuthSyncHandler.js +44 -0
- package/dist/commonjs/nuxt/defineAuthSyncHandler.js.map +1 -0
- package/dist/commonjs/nuxt/defineServerKit.d.ts +5 -0
- package/dist/commonjs/nuxt/defineServerKit.d.ts.map +1 -0
- package/dist/commonjs/nuxt/defineServerKit.js +49 -0
- package/dist/commonjs/nuxt/defineServerKit.js.map +1 -0
- package/dist/commonjs/nuxt/defineWebhookHandler.d.ts +17 -0
- package/dist/commonjs/nuxt/defineWebhookHandler.d.ts.map +1 -0
- package/dist/commonjs/nuxt/defineWebhookHandler.js +24 -0
- package/dist/commonjs/nuxt/defineWebhookHandler.js.map +1 -0
- package/dist/commonjs/nuxt/index.d.ts +15 -0
- package/dist/commonjs/nuxt/index.d.ts.map +1 -0
- package/dist/commonjs/nuxt/index.js +24 -0
- package/dist/commonjs/nuxt/index.js.map +1 -0
- package/dist/commonjs/nuxt/types.d.ts +54 -0
- package/dist/commonjs/nuxt/types.d.ts.map +1 -0
- package/dist/commonjs/nuxt/types.js +3 -0
- package/dist/commonjs/nuxt/types.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/perms/ast.d.ts +98 -0
- package/dist/commonjs/perms/ast.d.ts.map +1 -0
- package/dist/commonjs/perms/ast.js +148 -0
- package/dist/commonjs/perms/ast.js.map +1 -0
- package/dist/commonjs/perms/builder.d.ts +18 -0
- package/dist/commonjs/perms/builder.d.ts.map +1 -0
- package/dist/commonjs/perms/builder.js +260 -0
- package/dist/commonjs/perms/builder.js.map +1 -0
- package/dist/commonjs/perms/context.d.ts +27 -0
- package/dist/commonjs/perms/context.d.ts.map +1 -0
- package/dist/commonjs/perms/context.js +96 -0
- package/dist/commonjs/perms/context.js.map +1 -0
- package/dist/commonjs/perms/index.d.ts +13 -0
- package/dist/commonjs/perms/index.d.ts.map +1 -0
- package/dist/commonjs/perms/index.js +6 -0
- package/dist/commonjs/perms/index.js.map +1 -0
- package/dist/commonjs/perms/types.d.ts +353 -0
- package/dist/commonjs/perms/types.d.ts.map +1 -0
- package/dist/commonjs/perms/types.js +3 -0
- package/dist/commonjs/perms/types.js.map +1 -0
- package/dist/commonjs/perms/validate.d.ts +31 -0
- package/dist/commonjs/perms/validate.d.ts.map +1 -0
- package/dist/commonjs/perms/validate.js +66 -0
- package/dist/commonjs/perms/validate.js.map +1 -0
- package/dist/commonjs/query/constants.d.ts +13 -0
- package/dist/commonjs/query/constants.d.ts.map +1 -0
- package/dist/commonjs/query/constants.js +16 -0
- package/dist/commonjs/query/constants.js.map +1 -0
- package/dist/commonjs/query/defineQuery.d.ts +33 -0
- package/dist/commonjs/query/defineQuery.d.ts.map +1 -0
- package/dist/commonjs/query/defineQuery.js +28 -0
- package/dist/commonjs/query/defineQuery.js.map +1 -0
- package/dist/commonjs/query/index.d.ts +9 -0
- package/dist/commonjs/query/index.d.ts.map +1 -0
- package/dist/commonjs/query/index.js +16 -0
- package/dist/commonjs/query/index.js.map +1 -0
- package/dist/commonjs/query/keys.d.ts +33 -0
- package/dist/commonjs/query/keys.d.ts.map +1 -0
- package/dist/commonjs/query/keys.js +3 -0
- package/dist/commonjs/query/keys.js.map +1 -0
- package/dist/commonjs/query/shapeResult.d.ts +36 -0
- package/dist/commonjs/query/shapeResult.d.ts.map +1 -0
- package/dist/commonjs/query/shapeResult.js +173 -0
- package/dist/commonjs/query/shapeResult.js.map +1 -0
- package/dist/commonjs/query/types.d.ts +187 -0
- package/dist/commonjs/query/types.d.ts.map +1 -0
- package/dist/commonjs/query/types.js +3 -0
- package/dist/commonjs/query/types.js.map +1 -0
- package/dist/commonjs/query/validation.d.ts +61 -0
- package/dist/commonjs/query/validation.d.ts.map +1 -0
- package/dist/commonjs/query/validation.js +3 -0
- package/dist/commonjs/query/validation.js.map +1 -0
- package/dist/commonjs/query/wire.d.ts +13 -0
- package/dist/commonjs/query/wire.d.ts.map +1 -0
- package/dist/commonjs/query/wire.js +77 -0
- package/dist/commonjs/query/wire.js.map +1 -0
- package/dist/commonjs/schema/defineSchema.d.ts +110 -0
- package/dist/commonjs/schema/defineSchema.d.ts.map +1 -0
- package/dist/commonjs/schema/defineSchema.js +72 -0
- package/dist/commonjs/schema/defineSchema.js.map +1 -0
- package/dist/commonjs/schema/fields.d.ts +33 -0
- package/dist/commonjs/schema/fields.d.ts.map +1 -0
- package/dist/commonjs/schema/fields.js +3 -0
- package/dist/commonjs/schema/fields.js.map +1 -0
- package/dist/commonjs/schema/index.d.ts +9 -0
- package/dist/commonjs/schema/index.d.ts.map +1 -0
- package/dist/commonjs/schema/index.js +10 -0
- package/dist/commonjs/schema/index.js.map +1 -0
- package/dist/commonjs/schema/namespace.d.ts +82 -0
- package/dist/commonjs/schema/namespace.d.ts.map +1 -0
- package/dist/commonjs/schema/namespace.js +37 -0
- package/dist/commonjs/schema/namespace.js.map +1 -0
- package/dist/commonjs/schema/register.d.ts +37 -0
- package/dist/commonjs/schema/register.d.ts.map +1 -0
- package/dist/commonjs/schema/register.js +3 -0
- package/dist/commonjs/schema/register.js.map +1 -0
- package/dist/commonjs/schema/singularize.d.ts +45 -0
- package/dist/commonjs/schema/singularize.d.ts.map +1 -0
- package/dist/commonjs/schema/singularize.js +47 -0
- package/dist/commonjs/schema/singularize.js.map +1 -0
- package/dist/commonjs/schema/types.d.ts +39 -0
- package/dist/commonjs/schema/types.d.ts.map +1 -0
- package/dist/commonjs/schema/types.js +3 -0
- package/dist/commonjs/schema/types.js.map +1 -0
- package/dist/commonjs/schema/util.d.ts +11 -0
- package/dist/commonjs/schema/util.d.ts.map +1 -0
- package/dist/commonjs/schema/util.js +3 -0
- package/dist/commonjs/schema/util.js.map +1 -0
- package/dist/commonjs/tx/index.d.ts +4 -0
- package/dist/commonjs/tx/index.d.ts.map +1 -0
- package/dist/commonjs/tx/index.js +11 -0
- package/dist/commonjs/tx/index.js.map +1 -0
- package/dist/commonjs/tx/typedTx.d.ts +15 -0
- package/dist/commonjs/tx/typedTx.d.ts.map +1 -0
- package/dist/commonjs/tx/typedTx.js +54 -0
- package/dist/commonjs/tx/typedTx.js.map +1 -0
- package/dist/commonjs/tx/types.d.ts +104 -0
- package/dist/commonjs/tx/types.d.ts.map +1 -0
- package/dist/commonjs/tx/types.js +3 -0
- package/dist/commonjs/tx/types.js.map +1 -0
- package/dist/commonjs/vue/baseline/InstantDuxDatabase.d.ts +52 -0
- package/dist/commonjs/vue/baseline/InstantDuxDatabase.d.ts.map +1 -0
- package/dist/commonjs/vue/baseline/InstantDuxDatabase.js +157 -0
- package/dist/commonjs/vue/baseline/InstantDuxDatabase.js.map +1 -0
- package/dist/commonjs/vue/baseline/InstantDuxRoom.d.ts +72 -0
- package/dist/commonjs/vue/baseline/InstantDuxRoom.d.ts.map +1 -0
- package/dist/commonjs/vue/baseline/InstantDuxRoom.js +211 -0
- package/dist/commonjs/vue/baseline/InstantDuxRoom.js.map +1 -0
- package/dist/commonjs/vue/baseline/components/Cursor.d.ts +15 -0
- package/dist/commonjs/vue/baseline/components/Cursor.d.ts.map +1 -0
- package/dist/commonjs/vue/baseline/components/Cursor.js +39 -0
- package/dist/commonjs/vue/baseline/components/Cursor.js.map +1 -0
- package/dist/commonjs/vue/baseline/components/Cursors.d.ts +65 -0
- package/dist/commonjs/vue/baseline/components/Cursors.d.ts.map +1 -0
- package/dist/commonjs/vue/baseline/components/Cursors.js +113 -0
- package/dist/commonjs/vue/baseline/components/Cursors.js.map +1 -0
- package/dist/commonjs/vue/baseline/components/auth.d.ts +37 -0
- package/dist/commonjs/vue/baseline/components/auth.d.ts.map +1 -0
- package/dist/commonjs/vue/baseline/components/auth.js +27 -0
- package/dist/commonjs/vue/baseline/components/auth.js.map +1 -0
- package/dist/commonjs/vue/baseline/index.d.ts +11 -0
- package/dist/commonjs/vue/baseline/index.d.ts.map +1 -0
- package/dist/commonjs/vue/baseline/index.js +29 -0
- package/dist/commonjs/vue/baseline/index.js.map +1 -0
- package/dist/commonjs/vue/baseline/useInfiniteQuery.d.ts +19 -0
- package/dist/commonjs/vue/baseline/useInfiniteQuery.d.ts.map +1 -0
- package/dist/commonjs/vue/baseline/useInfiniteQuery.js +65 -0
- package/dist/commonjs/vue/baseline/useInfiniteQuery.js.map +1 -0
- package/dist/commonjs/vue/baseline/utils.d.ts +9 -0
- package/dist/commonjs/vue/baseline/utils.d.ts.map +1 -0
- package/dist/commonjs/vue/baseline/utils.js +29 -0
- package/dist/commonjs/vue/baseline/utils.js.map +1 -0
- package/dist/commonjs/vue/baseline/version.d.ts +3 -0
- package/dist/commonjs/vue/baseline/version.d.ts.map +1 -0
- package/dist/commonjs/vue/baseline/version.js +6 -0
- package/dist/commonjs/vue/baseline/version.js.map +1 -0
- package/dist/commonjs/vue/index.d.ts +21 -0
- package/dist/commonjs/vue/index.d.ts.map +1 -0
- package/dist/commonjs/vue/index.js +31 -0
- package/dist/commonjs/vue/index.js.map +1 -0
- package/dist/commonjs/vue/overlay/db.d.ts +106 -0
- package/dist/commonjs/vue/overlay/db.d.ts.map +1 -0
- package/dist/commonjs/vue/overlay/db.js +105 -0
- package/dist/commonjs/vue/overlay/db.js.map +1 -0
- package/dist/commonjs/vue/overlay/defineDb.d.ts +34 -0
- package/dist/commonjs/vue/overlay/defineDb.d.ts.map +1 -0
- package/dist/commonjs/vue/overlay/defineDb.js +48 -0
- package/dist/commonjs/vue/overlay/defineDb.js.map +1 -0
- package/dist/commonjs/vue/overlay/result.d.ts +29 -0
- package/dist/commonjs/vue/overlay/result.d.ts.map +1 -0
- package/dist/commonjs/vue/overlay/result.js +75 -0
- package/dist/commonjs/vue/overlay/result.js.map +1 -0
- package/dist/commonjs/vue/overlay/rooms/index.d.ts +79 -0
- package/dist/commonjs/vue/overlay/rooms/index.d.ts.map +1 -0
- package/dist/commonjs/vue/overlay/rooms/index.js +28 -0
- package/dist/commonjs/vue/overlay/rooms/index.js.map +1 -0
- package/dist/commonjs/vue/overlay/types.d.ts +73 -0
- package/dist/commonjs/vue/overlay/types.d.ts.map +1 -0
- package/dist/commonjs/vue/overlay/types.js +3 -0
- package/dist/commonjs/vue/overlay/types.js.map +1 -0
- package/dist/commonjs/webhooks/defineWebhookHandlers.d.ts +27 -0
- package/dist/commonjs/webhooks/defineWebhookHandlers.d.ts.map +1 -0
- package/dist/commonjs/webhooks/defineWebhookHandlers.js +33 -0
- package/dist/commonjs/webhooks/defineWebhookHandlers.js.map +1 -0
- package/dist/commonjs/webhooks/index.d.ts +15 -0
- package/dist/commonjs/webhooks/index.d.ts.map +1 -0
- package/dist/commonjs/webhooks/index.js +21 -0
- package/dist/commonjs/webhooks/index.js.map +1 -0
- package/dist/commonjs/webhooks/init.d.ts +13 -0
- package/dist/commonjs/webhooks/init.d.ts.map +1 -0
- package/dist/commonjs/webhooks/init.js +39 -0
- package/dist/commonjs/webhooks/init.js.map +1 -0
- package/dist/commonjs/webhooks/types.d.ts +136 -0
- package/dist/commonjs/webhooks/types.d.ts.map +1 -0
- package/dist/commonjs/webhooks/types.js +3 -0
- package/dist/commonjs/webhooks/types.js.map +1 -0
- package/dist/esm/admin/index.d.ts +18 -0
- package/dist/esm/admin/index.d.ts.map +1 -0
- package/dist/esm/admin/index.js +21 -0
- package/dist/esm/admin/index.js.map +1 -0
- package/dist/esm/admin/init.d.ts +67 -0
- package/dist/esm/admin/init.d.ts.map +1 -0
- package/dist/esm/admin/init.js +81 -0
- package/dist/esm/admin/init.js.map +1 -0
- package/dist/esm/admin/query.d.ts +21 -0
- package/dist/esm/admin/query.d.ts.map +1 -0
- package/dist/esm/admin/query.js +42 -0
- package/dist/esm/admin/query.js.map +1 -0
- package/dist/esm/admin/types.d.ts +124 -0
- package/dist/esm/admin/types.d.ts.map +1 -0
- package/dist/esm/admin/types.js +2 -0
- package/dist/esm/admin/types.js.map +1 -0
- package/dist/esm/admin/webhooks.d.ts +11 -0
- package/dist/esm/admin/webhooks.d.ts.map +1 -0
- package/dist/esm/admin/webhooks.js +5 -0
- package/dist/esm/admin/webhooks.js.map +1 -0
- package/dist/esm/errors.d.ts +13 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +16 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +13 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/nuxt/defineAuthSyncHandler.d.ts +15 -0
- package/dist/esm/nuxt/defineAuthSyncHandler.d.ts.map +1 -0
- package/dist/esm/nuxt/defineAuthSyncHandler.js +41 -0
- package/dist/esm/nuxt/defineAuthSyncHandler.js.map +1 -0
- package/dist/esm/nuxt/defineServerKit.d.ts +5 -0
- package/dist/esm/nuxt/defineServerKit.d.ts.map +1 -0
- package/dist/esm/nuxt/defineServerKit.js +46 -0
- package/dist/esm/nuxt/defineServerKit.js.map +1 -0
- package/dist/esm/nuxt/defineWebhookHandler.d.ts +17 -0
- package/dist/esm/nuxt/defineWebhookHandler.d.ts.map +1 -0
- package/dist/esm/nuxt/defineWebhookHandler.js +21 -0
- package/dist/esm/nuxt/defineWebhookHandler.js.map +1 -0
- package/dist/esm/nuxt/index.d.ts +15 -0
- package/dist/esm/nuxt/index.d.ts.map +1 -0
- package/dist/esm/nuxt/index.js +17 -0
- package/dist/esm/nuxt/index.js.map +1 -0
- package/dist/esm/nuxt/types.d.ts +54 -0
- package/dist/esm/nuxt/types.d.ts.map +1 -0
- package/dist/esm/nuxt/types.js +2 -0
- package/dist/esm/nuxt/types.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/perms/ast.d.ts +98 -0
- package/dist/esm/perms/ast.d.ts.map +1 -0
- package/dist/esm/perms/ast.js +140 -0
- package/dist/esm/perms/ast.js.map +1 -0
- package/dist/esm/perms/builder.d.ts +18 -0
- package/dist/esm/perms/builder.d.ts.map +1 -0
- package/dist/esm/perms/builder.js +257 -0
- package/dist/esm/perms/builder.js.map +1 -0
- package/dist/esm/perms/context.d.ts +27 -0
- package/dist/esm/perms/context.d.ts.map +1 -0
- package/dist/esm/perms/context.js +93 -0
- package/dist/esm/perms/context.js.map +1 -0
- package/dist/esm/perms/index.d.ts +13 -0
- package/dist/esm/perms/index.d.ts.map +1 -0
- package/dist/esm/perms/index.js +2 -0
- package/dist/esm/perms/index.js.map +1 -0
- package/dist/esm/perms/types.d.ts +353 -0
- package/dist/esm/perms/types.d.ts.map +1 -0
- package/dist/esm/perms/types.js +2 -0
- package/dist/esm/perms/types.js.map +1 -0
- package/dist/esm/perms/validate.d.ts +31 -0
- package/dist/esm/perms/validate.d.ts.map +1 -0
- package/dist/esm/perms/validate.js +61 -0
- package/dist/esm/perms/validate.js.map +1 -0
- package/dist/esm/query/constants.d.ts +13 -0
- package/dist/esm/query/constants.d.ts.map +1 -0
- package/dist/esm/query/constants.js +13 -0
- package/dist/esm/query/constants.js.map +1 -0
- package/dist/esm/query/defineQuery.d.ts +33 -0
- package/dist/esm/query/defineQuery.d.ts.map +1 -0
- package/dist/esm/query/defineQuery.js +24 -0
- package/dist/esm/query/defineQuery.js.map +1 -0
- package/dist/esm/query/index.d.ts +9 -0
- package/dist/esm/query/index.d.ts.map +1 -0
- package/dist/esm/query/index.js +5 -0
- package/dist/esm/query/index.js.map +1 -0
- package/dist/esm/query/keys.d.ts +33 -0
- package/dist/esm/query/keys.d.ts.map +1 -0
- package/dist/esm/query/keys.js +2 -0
- package/dist/esm/query/keys.js.map +1 -0
- package/dist/esm/query/shapeResult.d.ts +36 -0
- package/dist/esm/query/shapeResult.d.ts.map +1 -0
- package/dist/esm/query/shapeResult.js +168 -0
- package/dist/esm/query/shapeResult.js.map +1 -0
- package/dist/esm/query/types.d.ts +187 -0
- package/dist/esm/query/types.d.ts.map +1 -0
- package/dist/esm/query/types.js +2 -0
- package/dist/esm/query/types.js.map +1 -0
- package/dist/esm/query/validation.d.ts +61 -0
- package/dist/esm/query/validation.d.ts.map +1 -0
- package/dist/esm/query/validation.js +2 -0
- package/dist/esm/query/validation.js.map +1 -0
- package/dist/esm/query/wire.d.ts +13 -0
- package/dist/esm/query/wire.d.ts.map +1 -0
- package/dist/esm/query/wire.js +74 -0
- package/dist/esm/query/wire.js.map +1 -0
- package/dist/esm/schema/defineSchema.d.ts +110 -0
- package/dist/esm/schema/defineSchema.d.ts.map +1 -0
- package/dist/esm/schema/defineSchema.js +69 -0
- package/dist/esm/schema/defineSchema.js.map +1 -0
- package/dist/esm/schema/fields.d.ts +33 -0
- package/dist/esm/schema/fields.d.ts.map +1 -0
- package/dist/esm/schema/fields.js +2 -0
- package/dist/esm/schema/fields.js.map +1 -0
- package/dist/esm/schema/index.d.ts +9 -0
- package/dist/esm/schema/index.d.ts.map +1 -0
- package/dist/esm/schema/index.js +4 -0
- package/dist/esm/schema/index.js.map +1 -0
- package/dist/esm/schema/namespace.d.ts +82 -0
- package/dist/esm/schema/namespace.d.ts.map +1 -0
- package/dist/esm/schema/namespace.js +34 -0
- package/dist/esm/schema/namespace.js.map +1 -0
- package/dist/esm/schema/register.d.ts +37 -0
- package/dist/esm/schema/register.d.ts.map +1 -0
- package/dist/esm/schema/register.js +2 -0
- package/dist/esm/schema/register.js.map +1 -0
- package/dist/esm/schema/singularize.d.ts +45 -0
- package/dist/esm/schema/singularize.d.ts.map +1 -0
- package/dist/esm/schema/singularize.js +44 -0
- package/dist/esm/schema/singularize.js.map +1 -0
- package/dist/esm/schema/types.d.ts +39 -0
- package/dist/esm/schema/types.d.ts.map +1 -0
- package/dist/esm/schema/types.js +2 -0
- package/dist/esm/schema/types.js.map +1 -0
- package/dist/esm/schema/util.d.ts +11 -0
- package/dist/esm/schema/util.d.ts.map +1 -0
- package/dist/esm/schema/util.js +2 -0
- package/dist/esm/schema/util.js.map +1 -0
- package/dist/esm/tx/index.d.ts +4 -0
- package/dist/esm/tx/index.d.ts.map +1 -0
- package/dist/esm/tx/index.js +5 -0
- package/dist/esm/tx/index.js.map +1 -0
- package/dist/esm/tx/typedTx.d.ts +15 -0
- package/dist/esm/tx/typedTx.d.ts.map +1 -0
- package/dist/esm/tx/typedTx.js +51 -0
- package/dist/esm/tx/typedTx.js.map +1 -0
- package/dist/esm/tx/types.d.ts +104 -0
- package/dist/esm/tx/types.d.ts.map +1 -0
- package/dist/esm/tx/types.js +2 -0
- package/dist/esm/tx/types.js.map +1 -0
- package/dist/esm/vue/baseline/InstantDuxDatabase.d.ts +52 -0
- package/dist/esm/vue/baseline/InstantDuxDatabase.d.ts.map +1 -0
- package/dist/esm/vue/baseline/InstantDuxDatabase.js +149 -0
- package/dist/esm/vue/baseline/InstantDuxDatabase.js.map +1 -0
- package/dist/esm/vue/baseline/InstantDuxRoom.d.ts +72 -0
- package/dist/esm/vue/baseline/InstantDuxRoom.d.ts.map +1 -0
- package/dist/esm/vue/baseline/InstantDuxRoom.js +202 -0
- package/dist/esm/vue/baseline/InstantDuxRoom.js.map +1 -0
- package/dist/esm/vue/baseline/components/Cursor.d.ts +15 -0
- package/dist/esm/vue/baseline/components/Cursor.d.ts.map +1 -0
- package/dist/esm/vue/baseline/components/Cursor.js +36 -0
- package/dist/esm/vue/baseline/components/Cursor.js.map +1 -0
- package/dist/esm/vue/baseline/components/Cursors.d.ts +65 -0
- package/dist/esm/vue/baseline/components/Cursors.d.ts.map +1 -0
- package/dist/esm/vue/baseline/components/Cursors.js +107 -0
- package/dist/esm/vue/baseline/components/Cursors.js.map +1 -0
- package/dist/esm/vue/baseline/components/auth.d.ts +37 -0
- package/dist/esm/vue/baseline/components/auth.d.ts.map +1 -0
- package/dist/esm/vue/baseline/components/auth.js +24 -0
- package/dist/esm/vue/baseline/components/auth.js.map +1 -0
- package/dist/esm/vue/baseline/index.d.ts +11 -0
- package/dist/esm/vue/baseline/index.d.ts.map +1 -0
- package/dist/esm/vue/baseline/index.js +10 -0
- package/dist/esm/vue/baseline/index.js.map +1 -0
- package/dist/esm/vue/baseline/useInfiniteQuery.d.ts +19 -0
- package/dist/esm/vue/baseline/useInfiniteQuery.d.ts.map +1 -0
- package/dist/esm/vue/baseline/useInfiniteQuery.js +62 -0
- package/dist/esm/vue/baseline/useInfiniteQuery.js.map +1 -0
- package/dist/esm/vue/baseline/utils.d.ts +9 -0
- package/dist/esm/vue/baseline/utils.d.ts.map +1 -0
- package/dist/esm/vue/baseline/utils.js +25 -0
- package/dist/esm/vue/baseline/utils.js.map +1 -0
- package/dist/esm/vue/baseline/version.d.ts +3 -0
- package/dist/esm/vue/baseline/version.d.ts.map +1 -0
- package/dist/esm/vue/baseline/version.js +4 -0
- package/dist/esm/vue/baseline/version.js.map +1 -0
- package/dist/esm/vue/index.d.ts +21 -0
- package/dist/esm/vue/index.d.ts.map +1 -0
- package/dist/esm/vue/index.js +18 -0
- package/dist/esm/vue/index.js.map +1 -0
- package/dist/esm/vue/overlay/db.d.ts +106 -0
- package/dist/esm/vue/overlay/db.d.ts.map +1 -0
- package/dist/esm/vue/overlay/db.js +101 -0
- package/dist/esm/vue/overlay/db.js.map +1 -0
- package/dist/esm/vue/overlay/defineDb.d.ts +34 -0
- package/dist/esm/vue/overlay/defineDb.d.ts.map +1 -0
- package/dist/esm/vue/overlay/defineDb.js +44 -0
- package/dist/esm/vue/overlay/defineDb.js.map +1 -0
- package/dist/esm/vue/overlay/result.d.ts +29 -0
- package/dist/esm/vue/overlay/result.d.ts.map +1 -0
- package/dist/esm/vue/overlay/result.js +71 -0
- package/dist/esm/vue/overlay/result.js.map +1 -0
- package/dist/esm/vue/overlay/rooms/index.d.ts +79 -0
- package/dist/esm/vue/overlay/rooms/index.d.ts.map +1 -0
- package/dist/esm/vue/overlay/rooms/index.js +25 -0
- package/dist/esm/vue/overlay/rooms/index.js.map +1 -0
- package/dist/esm/vue/overlay/types.d.ts +73 -0
- package/dist/esm/vue/overlay/types.d.ts.map +1 -0
- package/dist/esm/vue/overlay/types.js +2 -0
- package/dist/esm/vue/overlay/types.js.map +1 -0
- package/dist/esm/webhooks/defineWebhookHandlers.d.ts +27 -0
- package/dist/esm/webhooks/defineWebhookHandlers.d.ts.map +1 -0
- package/dist/esm/webhooks/defineWebhookHandlers.js +30 -0
- package/dist/esm/webhooks/defineWebhookHandlers.js.map +1 -0
- package/dist/esm/webhooks/index.d.ts +15 -0
- package/dist/esm/webhooks/index.d.ts.map +1 -0
- package/dist/esm/webhooks/index.js +14 -0
- package/dist/esm/webhooks/index.js.map +1 -0
- package/dist/esm/webhooks/init.d.ts +13 -0
- package/dist/esm/webhooks/init.d.ts.map +1 -0
- package/dist/esm/webhooks/init.js +36 -0
- package/dist/esm/webhooks/init.js.map +1 -0
- package/dist/esm/webhooks/types.d.ts +136 -0
- package/dist/esm/webhooks/types.d.ts.map +1 -0
- package/dist/esm/webhooks/types.js +2 -0
- package/dist/esm/webhooks/types.js.map +1 -0
- package/package.json +149 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typedTx.d.ts","sourceRoot":"","sources":["../../../src/tx/typedTx.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AA8CvC;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,KAAK,KAAK,CAAC,CAAC,CAAC,CAK7E"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.typedTx = typedTx;
|
|
4
|
+
const core_1 = require("@instantdb/core");
|
|
5
|
+
/** `{ 'workspace.inviteCode': code }` → `{ workspace: lookup('inviteCode', code) }` */
|
|
6
|
+
function compileLinkArgs(args) {
|
|
7
|
+
const out = {};
|
|
8
|
+
for (const [key, value] of Object.entries(args)) {
|
|
9
|
+
const dot = key.indexOf('.');
|
|
10
|
+
if (dot === -1)
|
|
11
|
+
out[key] = value;
|
|
12
|
+
else
|
|
13
|
+
out[key.slice(0, dot)] = (0, core_1.lookup)(key.slice(dot + 1), value);
|
|
14
|
+
}
|
|
15
|
+
return out;
|
|
16
|
+
}
|
|
17
|
+
function wrapChunk(chunk) {
|
|
18
|
+
return new Proxy(chunk, {
|
|
19
|
+
get(target, prop) {
|
|
20
|
+
if (prop === 'link' || prop === 'unlink') {
|
|
21
|
+
return (args) => wrapChunk(target[prop](compileLinkArgs(args)));
|
|
22
|
+
}
|
|
23
|
+
const member = target[prop];
|
|
24
|
+
if (typeof member === 'function')
|
|
25
|
+
return (...args) => wrapChunk(member(...args));
|
|
26
|
+
return member;
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function wrapNamespace(namespace) {
|
|
31
|
+
return new Proxy(namespace, {
|
|
32
|
+
get(target, prop) {
|
|
33
|
+
if (prop === 'lookup') {
|
|
34
|
+
return (attr, value) => wrapChunk(target.lookup(attr, value));
|
|
35
|
+
}
|
|
36
|
+
const member = target[prop];
|
|
37
|
+
return typeof member === 'object' && member !== null
|
|
38
|
+
? wrapChunk(member)
|
|
39
|
+
: member;
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build the typed tx chain for a schema. Schema-independent at runtime —
|
|
45
|
+
* all typing is schema-derived; the only runtime behavior added over core
|
|
46
|
+
* is dot-path `.link` compilation.
|
|
47
|
+
*/
|
|
48
|
+
function typedTx() {
|
|
49
|
+
const tx = (0, core_1.txInit)();
|
|
50
|
+
return new Proxy(tx, {
|
|
51
|
+
get: (target, ns) => wrapNamespace(target[ns]),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=typedTx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typedTx.js","sourceRoot":"","sources":["../../../src/tx/typedTx.ts"],"names":[],"mappings":";;AA0DA,0BAKC;AAvDD,0CAAgD;AAEhD,uFAAuF;AACvF,SAAS,eAAe,CAAC,IAA6B;IACpD,MAAM,GAAG,GAA4B,EAAE,CAAA;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,GAAG,KAAK,CAAC,CAAC;YACZ,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;;YAEhB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAA,aAAM,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,KAAU;IAC3B,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;QACtB,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzC,OAAO,CAAC,IAA6B,EAAE,EAAE,CACvC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAClD,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3B,IAAI,OAAO,MAAM,KAAK,UAAU;gBAC9B,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YAC3D,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,SAAc;IACnC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;QAC1B,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE,CACtC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;YACzC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;gBAClD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;gBACnB,CAAC,CAAC,MAAM,CAAA;QACZ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,OAAO;IACrB,MAAM,EAAE,GAAG,IAAA,aAAM,GAAE,CAAA;IACnB,OAAO,IAAI,KAAK,CAAC,EAAY,EAAE;QAC7B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,CAAE,MAAc,CAAC,EAAE,CAAC,CAAC;KACxD,CAAa,CAAA;AAChB,CAAC","sourcesContent":["/**\n * The typed tx runtime: core's `txInit()` proxy wrapped so `.link()`/\n * `.unlink()` dot-path keys compile to the official `lookup()` wire form.\n * Everything else passes through untouched — the chain stays core's chain.\n */\nimport type { IdbSchema } from '../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../schema/register.js'\nimport type { IdbTx } from './types.js'\nimport { lookup, txInit } from '@instantdb/core'\n\n/** `{ 'workspace.inviteCode': code }` → `{ workspace: lookup('inviteCode', code) }` */\nfunction compileLinkArgs(args: Record<string, unknown>): Record<string, unknown> {\n const out: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(args)) {\n const dot = key.indexOf('.')\n if (dot === -1)\n out[key] = value\n else\n out[key.slice(0, dot)] = lookup(key.slice(dot + 1), value)\n }\n return out\n}\n\nfunction wrapChunk(chunk: any): any {\n return new Proxy(chunk, {\n get(target, prop) {\n if (prop === 'link' || prop === 'unlink') {\n return (args: Record<string, unknown>) =>\n wrapChunk(target[prop](compileLinkArgs(args)))\n }\n const member = target[prop]\n if (typeof member === 'function')\n return (...args: unknown[]) => wrapChunk(member(...args))\n return member\n },\n })\n}\n\nfunction wrapNamespace(namespace: any): any {\n return new Proxy(namespace, {\n get(target, prop) {\n if (prop === 'lookup') {\n return (attr: string, value: unknown) =>\n wrapChunk(target.lookup(attr, value))\n }\n const member = target[prop]\n return typeof member === 'object' && member !== null\n ? wrapChunk(member)\n : member\n },\n })\n}\n\n/**\n * Build the typed tx chain for a schema. Schema-independent at runtime —\n * all typing is schema-derived; the only runtime behavior added over core\n * is dot-path `.link` compilation.\n */\nexport function typedTx<S extends IdbSchema = IdbRegisteredSchema>(): IdbTx<S> {\n const tx = txInit()\n return new Proxy(tx as object, {\n get: (target, ns) => wrapNamespace((target as any)[ns]),\n }) as IdbTx<S>\n}\n"]}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The typed-tx types — one machinery for both runtimes (`db.tx` on the
|
|
3
|
+
* client, `adminDb.tx` on the admin surface). Types the two places the
|
|
4
|
+
* official chain goes untyped: `ruleParams` (schema-typed per namespace) and
|
|
5
|
+
* `.link()` dot-path keys (label completes, unique fields narrow, the value
|
|
6
|
+
* is typed; compiles to the official `lookup()` form on the wire).
|
|
7
|
+
*/
|
|
8
|
+
import type { CreateParams, DataAttrDef, UpdateParams } from '@instantdb/core';
|
|
9
|
+
import type { IdbSchema } from '../schema/defineSchema.js';
|
|
10
|
+
import type { AttrsOf, AttrValue, LinkCardinality, LinkLabels, LinkTarget, UniqueFieldKeys, WireValue } from '../schema/fields.js';
|
|
11
|
+
import type { IdbRegisteredSchema } from '../schema/register.js';
|
|
12
|
+
import type { IdbNamespaceName } from '../schema/types.js';
|
|
13
|
+
import type { Expand } from '../schema/util.js';
|
|
14
|
+
/** Options for `update`/`merge` — core's `UpdateOpts` (not exported there). */
|
|
15
|
+
export interface IdbTxUpdateOpts {
|
|
16
|
+
upsert?: boolean | undefined;
|
|
17
|
+
}
|
|
18
|
+
/** The `create` payload — required fields required, optionals optional. */
|
|
19
|
+
export type IdbTxCreate<NS extends IdbNamespaceName<S>, S extends IdbSchema = IdbRegisteredSchema> = CreateParams<S, NS>;
|
|
20
|
+
/** The `update`/`merge`-style payload — everything optional. */
|
|
21
|
+
export type IdbTxUpdate<NS extends IdbNamespaceName<S>, S extends IdbSchema = IdbRegisteredSchema> = UpdateParams<S, NS>;
|
|
22
|
+
type PlainLinkValue<Cardinality> = Cardinality extends 'one' ? string : string | readonly string[];
|
|
23
|
+
type LinkDotPaths<S extends IdbSchema, NS extends string> = {
|
|
24
|
+
[L in LinkLabels<S, NS>]: `${L}.${UniqueFieldKeys<S, LinkTarget<S, NS, L>>}`;
|
|
25
|
+
}[LinkLabels<S, NS>];
|
|
26
|
+
type LinkDotPathValue<S extends IdbSchema, NS extends string, P> = P extends `${infer L}.${infer F}` ? WireValue<AttrValue<AttrsOf<S, LinkTarget<S, NS, L>>[F]>> : never;
|
|
27
|
+
/**
|
|
28
|
+
* The `link`/`unlink` payload: plain label keys typed per cardinality, plus
|
|
29
|
+
* one-hop dot-path keys over the linked namespace's unique fields —
|
|
30
|
+
* `{ 'workspace.inviteCode': code }` compiles to the official `lookup()`
|
|
31
|
+
* form on the wire.
|
|
32
|
+
*/
|
|
33
|
+
export type IdbTxLink<NS extends IdbNamespaceName<S>, S extends IdbSchema = IdbRegisteredSchema> = {
|
|
34
|
+
[L in LinkLabels<S, NS>]?: PlainLinkValue<LinkCardinality<S, NS, L>>;
|
|
35
|
+
} & {
|
|
36
|
+
[P in LinkDotPaths<S, NS>]?: LinkDotPathValue<S, NS, P>;
|
|
37
|
+
};
|
|
38
|
+
type RequiredRuleParamKeys<RP> = {
|
|
39
|
+
[K in keyof RP]: RP[K] extends DataAttrDef<any, infer R, any, any> ? R extends true ? K : never : never;
|
|
40
|
+
}[keyof RP];
|
|
41
|
+
type OptionalRuleParamKeys<RP> = {
|
|
42
|
+
[K in keyof RP]: RP[K] extends DataAttrDef<any, infer R, any, any> ? R extends false ? K : never : never;
|
|
43
|
+
}[keyof RP];
|
|
44
|
+
type RuleParamsShape<RP> = Expand<{
|
|
45
|
+
[K in RequiredRuleParamKeys<RP>]: WireValue<AttrValue<RP[K]>>;
|
|
46
|
+
} & {
|
|
47
|
+
[K in OptionalRuleParamKeys<RP>]?: WireValue<AttrValue<RP[K]>>;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* The `ruleParams` payload for a namespace, typed from its collocated
|
|
51
|
+
* declaration in `defineSchema` — unknown keys are TS errors; a namespace
|
|
52
|
+
* with no declaration accepts none.
|
|
53
|
+
*/
|
|
54
|
+
export type IdbTxRuleParams<NS extends IdbNamespaceName<S>, S extends IdbSchema = IdbRegisteredSchema> = NS extends keyof S['$dux']['namespaces'] ? S['$dux']['namespaces'][NS]['ruleParams'] extends infer RP ? RP extends Record<string, DataAttrDef<any, any, any, any>> ? RuleParamsShape<RP> : Record<string, `QERR_TX_RULE_PARAMS_UNDECLARED: ${NS} declares no ruleParams — declare them in i.namespace({ ruleParams })`> : never : never;
|
|
55
|
+
/**
|
|
56
|
+
* One tx step. Carries the official `__ops`/`__etype` runtime shape that
|
|
57
|
+
* `transact()` consumes, so interop holds on both runtimes; dux's own
|
|
58
|
+
* `transact` types its parameter as `IdbTxChunk` (the official
|
|
59
|
+
* `TransactionChunk` can't be a *structural supertype* — its method params
|
|
60
|
+
* are contravariant — which is exactly why the dux chain owns its own
|
|
61
|
+
* narrower typing rather than re-deriving the official one).
|
|
62
|
+
*/
|
|
63
|
+
export interface IdbTxChunk<S extends IdbSchema = IdbRegisteredSchema, NS extends IdbNamespaceName<S> = IdbNamespaceName<S>> {
|
|
64
|
+
__ops: any[];
|
|
65
|
+
__etype: NS;
|
|
66
|
+
/** Create an entity. Throws if the id already exists. */
|
|
67
|
+
create: (args: IdbTxCreate<NS, S>) => IdbTxChunk<S, NS>;
|
|
68
|
+
/** Upsert by default; `{ upsert: false }` for strict update. */
|
|
69
|
+
update: (args: IdbTxUpdate<NS, S>, opts?: IdbTxUpdateOpts) => IdbTxChunk<S, NS>;
|
|
70
|
+
/** Link entities — plain ids or dot-path unique-field keys. */
|
|
71
|
+
link: (args: IdbTxLink<NS, S>) => IdbTxChunk<S, NS>;
|
|
72
|
+
/** Unlink entities — same payload shape as `link`. */
|
|
73
|
+
unlink: (args: IdbTxLink<NS, S>) => IdbTxChunk<S, NS>;
|
|
74
|
+
/** Delete the entity and all of its links. */
|
|
75
|
+
delete: () => IdbTxChunk<S, NS>;
|
|
76
|
+
/** Deep-merge into the current value (document-style fields). */
|
|
77
|
+
merge: (args: {
|
|
78
|
+
[attribute: string]: any;
|
|
79
|
+
}, opts?: IdbTxUpdateOpts) => IdbTxChunk<S, NS>;
|
|
80
|
+
/** Schema-declared rule params for this namespace. */
|
|
81
|
+
ruleParams: (args: IdbTxRuleParams<NS, S>) => IdbTxChunk<S, NS>;
|
|
82
|
+
}
|
|
83
|
+
export type IdbTxNamespace<S extends IdbSchema, NS extends IdbNamespaceName<S>> = {
|
|
84
|
+
[id: string]: IdbTxChunk<S, NS>;
|
|
85
|
+
} & {
|
|
86
|
+
/** Address an entity by a unique attribute instead of its id. */
|
|
87
|
+
lookup: <K extends UniqueFieldKeys<S, NS>>(attr: K, value: WireValue<AttrValue<AttrsOf<S, NS>[K]>>) => IdbTxChunk<S, NS>;
|
|
88
|
+
};
|
|
89
|
+
/** The typed tx builder — `db.tx` and `adminDb.tx` share this shape. */
|
|
90
|
+
export type IdbTx<S extends IdbSchema = IdbRegisteredSchema> = {
|
|
91
|
+
[NS in IdbNamespaceName<S>]: IdbTxNamespace<S, NS>;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* A chunk for *any one* namespace — the type `transact`/`debugTransact` accept.
|
|
95
|
+
* `IdbTxChunk<S>` defaults its `NS` to the full union, whose method params are
|
|
96
|
+
* contravariant, so a chunk narrowed to one namespace (what `tx.tasks[id]…`
|
|
97
|
+
* produces) wouldn't be assignable to it. The per-namespace union is: a
|
|
98
|
+
* `'tasks'` chunk is exactly one of its members.
|
|
99
|
+
*/
|
|
100
|
+
export type IdbTxChunkInput<S extends IdbSchema = IdbRegisteredSchema> = {
|
|
101
|
+
[NS in IdbNamespaceName<S>]: IdbTxChunk<S, NS>;
|
|
102
|
+
}[IdbNamespaceName<S>];
|
|
103
|
+
export {};
|
|
104
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tx/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tx/types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * The typed-tx types — one machinery for both runtimes (`db.tx` on the\n * client, `adminDb.tx` on the admin surface). Types the two places the\n * official chain goes untyped: `ruleParams` (schema-typed per namespace) and\n * `.link()` dot-path keys (label completes, unique fields narrow, the value\n * is typed; compiles to the official `lookup()` form on the wire).\n */\nimport type {\n CreateParams,\n DataAttrDef,\n UpdateParams,\n} from '@instantdb/core'\nimport type { IdbSchema } from '../schema/defineSchema.js'\nimport type {\n AttrsOf,\n AttrValue,\n LinkCardinality,\n LinkLabels,\n LinkTarget,\n UniqueFieldKeys,\n WireValue,\n} from '../schema/fields.js'\nimport type { IdbRegisteredSchema } from '../schema/register.js'\nimport type { IdbNamespaceName } from '../schema/types.js'\nimport type { Expand } from '../schema/util.js'\n\n// ==========\n// op payloads\n\n/** Options for `update`/`merge` — core's `UpdateOpts` (not exported there). */\nexport interface IdbTxUpdateOpts {\n upsert?: boolean | undefined\n}\n\n/** The `create` payload — required fields required, optionals optional. */\nexport type IdbTxCreate<\n NS extends IdbNamespaceName<S>,\n S extends IdbSchema = IdbRegisteredSchema,\n> = CreateParams<S, NS>\n\n/** The `update`/`merge`-style payload — everything optional. */\nexport type IdbTxUpdate<\n NS extends IdbNamespaceName<S>,\n S extends IdbSchema = IdbRegisteredSchema,\n> = UpdateParams<S, NS>\n\ntype PlainLinkValue<Cardinality> = Cardinality extends 'one'\n ? string\n : string | readonly string[]\n\ntype LinkDotPaths<S extends IdbSchema, NS extends string> = {\n [L in LinkLabels<S, NS>]: `${L}.${UniqueFieldKeys<S, LinkTarget<S, NS, L>>}`\n}[LinkLabels<S, NS>]\n\ntype LinkDotPathValue<\n S extends IdbSchema,\n NS extends string,\n P,\n> = P extends `${infer L}.${infer F}`\n ? WireValue<AttrValue<AttrsOf<S, LinkTarget<S, NS, L>>[F]>>\n : never\n\n/**\n * The `link`/`unlink` payload: plain label keys typed per cardinality, plus\n * one-hop dot-path keys over the linked namespace's unique fields —\n * `{ 'workspace.inviteCode': code }` compiles to the official `lookup()`\n * form on the wire.\n */\nexport type IdbTxLink<\n NS extends IdbNamespaceName<S>,\n S extends IdbSchema = IdbRegisteredSchema,\n> = {\n [L in LinkLabels<S, NS>]?: PlainLinkValue<LinkCardinality<S, NS, L>>\n} & {\n [P in LinkDotPaths<S, NS>]?: LinkDotPathValue<S, NS, P>\n}\n\n// ==========\n// ruleParams\n\ntype RequiredRuleParamKeys<RP> = {\n [K in keyof RP]: RP[K] extends DataAttrDef<any, infer R, any, any>\n ? R extends true\n ? K\n : never\n : never\n}[keyof RP]\n\ntype OptionalRuleParamKeys<RP> = {\n [K in keyof RP]: RP[K] extends DataAttrDef<any, infer R, any, any>\n ? R extends false\n ? K\n : never\n : never\n}[keyof RP]\n\ntype RuleParamsShape<RP> = Expand<\n { [K in RequiredRuleParamKeys<RP>]: WireValue<AttrValue<RP[K]>> } & {\n [K in OptionalRuleParamKeys<RP>]?: WireValue<AttrValue<RP[K]>>\n }\n>\n\n/**\n * The `ruleParams` payload for a namespace, typed from its collocated\n * declaration in `defineSchema` — unknown keys are TS errors; a namespace\n * with no declaration accepts none.\n */\nexport type IdbTxRuleParams<\n NS extends IdbNamespaceName<S>,\n S extends IdbSchema = IdbRegisteredSchema,\n> = NS extends keyof S['$dux']['namespaces']\n ? S['$dux']['namespaces'][NS]['ruleParams'] extends infer RP\n ? RP extends Record<string, DataAttrDef<any, any, any, any>>\n ? RuleParamsShape<RP>\n : Record<\n string,\n `QERR_TX_RULE_PARAMS_UNDECLARED: ${NS} declares no ruleParams — declare them in i.namespace({ ruleParams })`\n >\n : never\n : never\n\n// ==========\n// the chain\n\n/**\n * One tx step. Carries the official `__ops`/`__etype` runtime shape that\n * `transact()` consumes, so interop holds on both runtimes; dux's own\n * `transact` types its parameter as `IdbTxChunk` (the official\n * `TransactionChunk` can't be a *structural supertype* — its method params\n * are contravariant — which is exactly why the dux chain owns its own\n * narrower typing rather than re-deriving the official one).\n */\nexport interface IdbTxChunk<\n S extends IdbSchema = IdbRegisteredSchema,\n NS extends IdbNamespaceName<S> = IdbNamespaceName<S>,\n> {\n // The official op tuple (`Op`) is not exported; this stays structurally\n // assignable to `TransactionChunk.__ops` while remaining inspectable.\n __ops: any[]\n __etype: NS\n /** Create an entity. Throws if the id already exists. */\n create: (args: IdbTxCreate<NS, S>) => IdbTxChunk<S, NS>\n /** Upsert by default; `{ upsert: false }` for strict update. */\n update: (args: IdbTxUpdate<NS, S>, opts?: IdbTxUpdateOpts) => IdbTxChunk<S, NS>\n /** Link entities — plain ids or dot-path unique-field keys. */\n link: (args: IdbTxLink<NS, S>) => IdbTxChunk<S, NS>\n /** Unlink entities — same payload shape as `link`. */\n unlink: (args: IdbTxLink<NS, S>) => IdbTxChunk<S, NS>\n /** Delete the entity and all of its links. */\n delete: () => IdbTxChunk<S, NS>\n /** Deep-merge into the current value (document-style fields). */\n merge: (args: { [attribute: string]: any }, opts?: IdbTxUpdateOpts) => IdbTxChunk<S, NS>\n /** Schema-declared rule params for this namespace. */\n ruleParams: (args: IdbTxRuleParams<NS, S>) => IdbTxChunk<S, NS>\n}\n\nexport type IdbTxNamespace<\n S extends IdbSchema,\n NS extends IdbNamespaceName<S>,\n> = {\n [id: string]: IdbTxChunk<S, NS>\n} & {\n /** Address an entity by a unique attribute instead of its id. */\n lookup: <K extends UniqueFieldKeys<S, NS>>(\n attr: K,\n value: WireValue<AttrValue<AttrsOf<S, NS>[K]>>,\n ) => IdbTxChunk<S, NS>\n}\n\n/** The typed tx builder — `db.tx` and `adminDb.tx` share this shape. */\nexport type IdbTx<S extends IdbSchema = IdbRegisteredSchema> = {\n [NS in IdbNamespaceName<S>]: IdbTxNamespace<S, NS>\n}\n\n/**\n * A chunk for *any one* namespace — the type `transact`/`debugTransact` accept.\n * `IdbTxChunk<S>` defaults its `NS` to the full union, whose method params are\n * contravariant, so a chunk narrowed to one namespace (what `tx.tasks[id]…`\n * produces) wouldn't be assignable to it. The per-namespace union is: a\n * `'tasks'` chunk is exactly one of its members.\n */\nexport type IdbTxChunkInput<S extends IdbSchema = IdbRegisteredSchema> = {\n [NS in IdbNamespaceName<S>]: IdbTxChunk<S, NS>\n}[IdbNamespaceName<S>]\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Auth, ConnectionStatus, IInstantDatabase, InstantConfig, InstantCoreDatabase, InstantSchemaDef, InstaQLOptions, InstaQLResponse, PageInfoResponse, RoomSchemaShape, RoomsOf, Storage, Streams, TransactionChunk, User, ValidQuery } from '@instantdb/core';
|
|
2
|
+
import type { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from 'vue';
|
|
3
|
+
import type { InfiniteQueryResult } from './useInfiniteQuery.js';
|
|
4
|
+
import { InstantDuxRoom } from './InstantDuxRoom.js';
|
|
5
|
+
export interface UseQueryReturn<Schema extends InstantSchemaDef<any, any, any>, Q extends ValidQuery<Q, Schema>, UseDates extends boolean> {
|
|
6
|
+
isLoading: Ref<boolean>;
|
|
7
|
+
data: ShallowRef<InstaQLResponse<Schema, Q, UseDates> | undefined>;
|
|
8
|
+
pageInfo: ShallowRef<PageInfoResponse<Q> | undefined>;
|
|
9
|
+
error: ShallowRef<{
|
|
10
|
+
message: string;
|
|
11
|
+
} | undefined>;
|
|
12
|
+
}
|
|
13
|
+
export interface UseAuthReturn {
|
|
14
|
+
isLoading: Ref<boolean>;
|
|
15
|
+
user: ShallowRef<User | null | undefined>;
|
|
16
|
+
error: ShallowRef<{
|
|
17
|
+
message: string;
|
|
18
|
+
} | undefined>;
|
|
19
|
+
}
|
|
20
|
+
export declare class InstantDuxDatabase<Schema extends InstantSchemaDef<any, any, any>, UseDates extends boolean = false, Rooms extends RoomSchemaShape = RoomsOf<Schema>> implements IInstantDatabase<Schema> {
|
|
21
|
+
tx: import("@instantdb/core").TxChunk<Schema>;
|
|
22
|
+
auth: Auth;
|
|
23
|
+
storage: Storage;
|
|
24
|
+
streams: Streams;
|
|
25
|
+
core: InstantCoreDatabase<Schema, UseDates>;
|
|
26
|
+
constructor(core: InstantCoreDatabase<Schema, UseDates>);
|
|
27
|
+
getLocalId: (name: string) => Promise<string>;
|
|
28
|
+
transact: (chunks: TransactionChunk<any, any> | TransactionChunk<any, any>[]) => Promise<import("@instantdb/core").TransactionResult>;
|
|
29
|
+
getAuth(): Promise<User | null>;
|
|
30
|
+
queryOnce: <Q extends ValidQuery<Q, Schema>>(query: Q, opts?: InstaQLOptions) => Promise<{
|
|
31
|
+
data: InstaQLResponse<Schema, Q, UseDates>;
|
|
32
|
+
pageInfo: PageInfoResponse<Q>;
|
|
33
|
+
}>;
|
|
34
|
+
useQuery: <Q extends ValidQuery<Q, Schema>>(query: MaybeRefOrGetter<Q | null>, opts?: MaybeRefOrGetter<InstaQLOptions | null | undefined>) => UseQueryReturn<Schema, Q, UseDates>;
|
|
35
|
+
useInfiniteQuery: <Q extends ValidQuery<Q, Schema>>(query: MaybeRefOrGetter<Q | null>, opts?: MaybeRefOrGetter<InstaQLOptions | undefined>) => InfiniteQueryResult<Schema, Q, UseDates>;
|
|
36
|
+
useAuth: () => UseAuthReturn;
|
|
37
|
+
useUser: () => ComputedRef<User>;
|
|
38
|
+
useConnectionStatus: () => Ref<ConnectionStatus>;
|
|
39
|
+
useLocalId: (name: MaybeRefOrGetter<string>) => Ref<string | null>;
|
|
40
|
+
room<RoomType extends string & keyof Rooms>(type?: MaybeRefOrGetter<RoomType | undefined>, id?: MaybeRefOrGetter<string | undefined>): InstantDuxRoom<Schema, Rooms, RoomType>;
|
|
41
|
+
rooms: {
|
|
42
|
+
useTopicEffect: typeof import("./InstantDuxRoom.js").useTopicEffect;
|
|
43
|
+
usePublishTopic: typeof import("./InstantDuxRoom.js").usePublishTopic;
|
|
44
|
+
usePresence: typeof import("./InstantDuxRoom.js").usePresence;
|
|
45
|
+
useSyncPresence: typeof import("./InstantDuxRoom.js").useSyncPresence;
|
|
46
|
+
useTypingIndicator: typeof import("./InstantDuxRoom.js").useTypingIndicator;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export declare function init<Schema extends InstantSchemaDef<any, any, any>, UseDates extends boolean = false>(config: Omit<InstantConfig<Schema, UseDates>, 'useDateObjects'> & {
|
|
50
|
+
useDateObjects?: UseDates;
|
|
51
|
+
}): InstantDuxDatabase<Schema, UseDates>;
|
|
52
|
+
//# sourceMappingURL=InstantDuxDatabase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstantDuxDatabase.d.ts","sourceRoot":"","sources":["../../../../src/vue/baseline/InstantDuxDatabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.InstantDuxDatabase = void 0;
|
|
7
|
+
exports.init = init;
|
|
8
|
+
const core_1 = require("@instantdb/core");
|
|
9
|
+
const vue_1 = require("vue");
|
|
10
|
+
const InstantDuxRoom_js_1 = require("./InstantDuxRoom.js");
|
|
11
|
+
const useInfiniteQuery_js_1 = require("./useInfiniteQuery.js");
|
|
12
|
+
const utils_js_1 = require("./utils.js");
|
|
13
|
+
const version_js_1 = __importDefault(require("./version.js"));
|
|
14
|
+
class InstantDuxDatabase {
|
|
15
|
+
tx = (0, core_1.txInit)();
|
|
16
|
+
auth;
|
|
17
|
+
storage;
|
|
18
|
+
streams;
|
|
19
|
+
core;
|
|
20
|
+
constructor(core) {
|
|
21
|
+
this.core = core;
|
|
22
|
+
this.auth = this.core.auth;
|
|
23
|
+
this.storage = this.core.storage;
|
|
24
|
+
this.streams = this.core.streams;
|
|
25
|
+
}
|
|
26
|
+
getLocalId = (name) => {
|
|
27
|
+
return this.core.getLocalId(name);
|
|
28
|
+
};
|
|
29
|
+
transact = (chunks) => {
|
|
30
|
+
return this.core.transact(chunks);
|
|
31
|
+
};
|
|
32
|
+
getAuth() {
|
|
33
|
+
return this.core.getAuth();
|
|
34
|
+
}
|
|
35
|
+
queryOnce = (query, opts) => {
|
|
36
|
+
return this.core.queryOnce(query, opts);
|
|
37
|
+
};
|
|
38
|
+
// -----------
|
|
39
|
+
// Vue reactive hooks
|
|
40
|
+
useQuery = (query, opts) => {
|
|
41
|
+
const isLoading = (0, vue_1.ref)(true);
|
|
42
|
+
const data = (0, vue_1.shallowRef)(undefined);
|
|
43
|
+
const pageInfo = (0, vue_1.shallowRef)(undefined);
|
|
44
|
+
const error = (0, vue_1.shallowRef)(undefined);
|
|
45
|
+
const resolvedQuery = (0, vue_1.computed)(() => {
|
|
46
|
+
const q = (0, vue_1.toValue)(query);
|
|
47
|
+
if (!q)
|
|
48
|
+
return null;
|
|
49
|
+
const o = (0, vue_1.toValue)(opts);
|
|
50
|
+
const withParams = o && 'ruleParams' in o
|
|
51
|
+
? { $$ruleParams: o.ruleParams, ...q }
|
|
52
|
+
: q;
|
|
53
|
+
return (0, core_1.coerceQuery)(withParams);
|
|
54
|
+
});
|
|
55
|
+
const queryHash = (0, vue_1.computed)(() => (0, core_1.weakHash)(resolvedQuery.value));
|
|
56
|
+
const stop = (0, vue_1.watch)(queryHash, (_, __, onCleanup) => {
|
|
57
|
+
const q = resolvedQuery.value;
|
|
58
|
+
// DUX-DELTA(ssr): inert state on the server — never read the cache or
|
|
59
|
+
// open a subscription. The client path below is the official one.
|
|
60
|
+
if (!(0, utils_js_1.isClient)()) {
|
|
61
|
+
isLoading.value = !!q;
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// END DUX-DELTA
|
|
65
|
+
const cached = q ? this.core._reactor.getPreviousResult(q) : null;
|
|
66
|
+
isLoading.value = !cached;
|
|
67
|
+
data.value = cached?.data;
|
|
68
|
+
pageInfo.value = cached?.pageInfo;
|
|
69
|
+
error.value = cached?.error;
|
|
70
|
+
if (!q)
|
|
71
|
+
return;
|
|
72
|
+
const unsub = this.core.subscribeQuery(q, (r) => {
|
|
73
|
+
isLoading.value = false;
|
|
74
|
+
data.value = r.data;
|
|
75
|
+
pageInfo.value = r.pageInfo;
|
|
76
|
+
error.value = r.error;
|
|
77
|
+
});
|
|
78
|
+
onCleanup(unsub);
|
|
79
|
+
}, { immediate: true });
|
|
80
|
+
(0, utils_js_1.tryOnScopeDispose)(stop);
|
|
81
|
+
return { isLoading, data, pageInfo, error };
|
|
82
|
+
};
|
|
83
|
+
useInfiniteQuery = (query, opts) => {
|
|
84
|
+
return (0, useInfiniteQuery_js_1.useInfiniteQuery)(this.core, query, opts);
|
|
85
|
+
};
|
|
86
|
+
useAuth = () => {
|
|
87
|
+
const cached = this.core._reactor._currentUserCached;
|
|
88
|
+
const isLoading = (0, vue_1.ref)(cached?.isLoading ?? true);
|
|
89
|
+
const user = (0, vue_1.shallowRef)(cached?.user);
|
|
90
|
+
const error = (0, vue_1.shallowRef)(cached?.error);
|
|
91
|
+
// DUX-DELTA(ssr): no auth subscription on the server — inert loading state.
|
|
92
|
+
if (!(0, utils_js_1.isClient)())
|
|
93
|
+
return { isLoading, user, error };
|
|
94
|
+
// END DUX-DELTA
|
|
95
|
+
const unsub = this.core.subscribeAuth((auth) => {
|
|
96
|
+
isLoading.value = false;
|
|
97
|
+
user.value = auth.user ?? null;
|
|
98
|
+
error.value = auth.error;
|
|
99
|
+
});
|
|
100
|
+
(0, utils_js_1.tryOnScopeDispose)(unsub);
|
|
101
|
+
return { isLoading, user, error };
|
|
102
|
+
};
|
|
103
|
+
useUser = () => {
|
|
104
|
+
const { user } = this.useAuth();
|
|
105
|
+
return (0, vue_1.computed)(() => {
|
|
106
|
+
if (!user.value) {
|
|
107
|
+
throw new core_1.InstantError('useUser must be used within an auth-protected route');
|
|
108
|
+
}
|
|
109
|
+
return user.value;
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
useConnectionStatus = () => {
|
|
113
|
+
const status = (0, vue_1.ref)(this.core._reactor.status);
|
|
114
|
+
// DUX-DELTA(ssr): no connection subscription on the server.
|
|
115
|
+
if (!(0, utils_js_1.isClient)())
|
|
116
|
+
return status;
|
|
117
|
+
// END DUX-DELTA
|
|
118
|
+
const unsub = this.core.subscribeConnectionStatus((newStatus) => {
|
|
119
|
+
status.value = newStatus;
|
|
120
|
+
});
|
|
121
|
+
(0, utils_js_1.tryOnScopeDispose)(unsub);
|
|
122
|
+
return status;
|
|
123
|
+
};
|
|
124
|
+
useLocalId = (name) => {
|
|
125
|
+
const localId = (0, vue_1.ref)(null);
|
|
126
|
+
// DUX-DELTA(ssr): localId is a client-storage concern — inert on server.
|
|
127
|
+
if (!(0, utils_js_1.isClient)())
|
|
128
|
+
return localId;
|
|
129
|
+
// END DUX-DELTA
|
|
130
|
+
const stop = (0, vue_1.watch)(() => (0, vue_1.toValue)(name), (currentName) => {
|
|
131
|
+
this.getLocalId(currentName).then((id) => {
|
|
132
|
+
// Drop a late resolve if `name` has since changed.
|
|
133
|
+
if ((0, vue_1.toValue)(name) === currentName) {
|
|
134
|
+
localId.value = id;
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}, { immediate: true });
|
|
138
|
+
(0, utils_js_1.tryOnScopeDispose)(stop);
|
|
139
|
+
return localId;
|
|
140
|
+
};
|
|
141
|
+
room(type, id) {
|
|
142
|
+
const _type = (0, vue_1.computed)(() => ((0, vue_1.toValue)(type) ?? '_defaultRoomType'));
|
|
143
|
+
const _id = (0, vue_1.computed)(() => (0, vue_1.toValue)(id) ?? '_defaultRoomId');
|
|
144
|
+
return new InstantDuxRoom_js_1.InstantDuxRoom(this.core, _type, _id);
|
|
145
|
+
}
|
|
146
|
+
rooms = InstantDuxRoom_js_1.rooms;
|
|
147
|
+
}
|
|
148
|
+
exports.InstantDuxDatabase = InstantDuxDatabase;
|
|
149
|
+
// -----------
|
|
150
|
+
// init
|
|
151
|
+
function init(config) {
|
|
152
|
+
const coreDb = (0, core_1.init)(config, undefined, undefined, {
|
|
153
|
+
'@mszr/idb-dux': version_js_1.default,
|
|
154
|
+
});
|
|
155
|
+
return new InstantDuxDatabase(coreDb);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=InstantDuxDatabase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstantDuxDatabase.js","sourceRoot":"","sources":["../../../../src/vue/baseline/InstantDuxDatabase.ts"],"names":[],"mappings":"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","sourcesContent":["// Vendored from @instantdb/vue/src/InstantVueDatabase.ts — see UPSTREAM.md.\n// Deltas: class rename (InstantVueDatabase → InstantDuxDatabase), the SSR\n// floor guards on every reactive hook, and the framework version tag.\nimport type {\n Auth,\n AuthState,\n ConnectionStatus,\n IInstantDatabase,\n InstantConfig,\n InstantCoreDatabase,\n InstantSchemaDef,\n InstaQLOptions,\n InstaQLResponse,\n PageInfoResponse,\n RoomSchemaShape,\n RoomsOf,\n Storage,\n Streams,\n TransactionChunk,\n User,\n ValidQuery,\n} from '@instantdb/core'\nimport type { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from 'vue'\nimport type { InfiniteQueryResult } from './useInfiniteQuery.js'\nimport {\n coerceQuery,\n init as core_init,\n InstantError,\n txInit,\n weakHash,\n} from '@instantdb/core'\nimport { computed, ref, shallowRef, toValue, watch } from 'vue'\nimport { InstantDuxRoom, rooms } from './InstantDuxRoom.js'\nimport { useInfiniteQuery } from './useInfiniteQuery.js'\nimport { isClient, tryOnScopeDispose } from './utils.js'\nimport version from './version.js'\n\n// ------\n// Types\n\nexport interface UseQueryReturn<\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 pageInfo: ShallowRef<PageInfoResponse<Q> | undefined>\n error: ShallowRef<{ message: string } | undefined>\n}\n\nexport interface UseAuthReturn {\n isLoading: Ref<boolean>\n user: ShallowRef<User | null | undefined>\n error: ShallowRef<{ message: string } | undefined>\n}\n\nexport class InstantDuxDatabase<\n Schema extends InstantSchemaDef<any, any, any>,\n UseDates extends boolean = false,\n Rooms extends RoomSchemaShape = RoomsOf<Schema>,\n> implements IInstantDatabase<Schema> {\n public tx = txInit<Schema>()\n\n public auth: Auth\n public storage: Storage\n public streams: Streams\n public core: InstantCoreDatabase<Schema, UseDates>\n\n constructor(core: InstantCoreDatabase<Schema, UseDates>) {\n this.core = core\n this.auth = this.core.auth\n this.storage = this.core.storage\n this.streams = this.core.streams\n }\n\n getLocalId = (name: string): Promise<string> => {\n return this.core.getLocalId(name)\n }\n\n transact = (\n chunks: TransactionChunk<any, any> | TransactionChunk<any, any>[],\n ) => {\n return this.core.transact(chunks)\n }\n\n getAuth(): Promise<User | null> {\n return this.core.getAuth()\n }\n\n queryOnce = <Q extends ValidQuery<Q, Schema>>(\n query: Q,\n opts?: InstaQLOptions,\n ): Promise<{\n data: InstaQLResponse<Schema, Q, UseDates>\n pageInfo: PageInfoResponse<Q>\n }> => {\n return this.core.queryOnce(query, opts)\n }\n\n // -----------\n // Vue reactive hooks\n\n useQuery = <Q extends ValidQuery<Q, Schema>>(\n query: MaybeRefOrGetter<Q | null>,\n opts?: MaybeRefOrGetter<InstaQLOptions | null | undefined>,\n ): UseQueryReturn<Schema, Q, UseDates> => {\n const isLoading = ref(true)\n const data = shallowRef<InstaQLResponse<Schema, Q, UseDates> | undefined>(\n undefined,\n )\n const pageInfo = shallowRef<PageInfoResponse<Q> | undefined>(undefined)\n const error = shallowRef<{ message: string } | undefined>(undefined)\n\n const resolvedQuery = computed(() => {\n const q = toValue(query)\n if (!q)\n return null\n const o = toValue(opts)\n const withParams\n = o && 'ruleParams' in o\n ? ({ $$ruleParams: (o as any).ruleParams, ...q } as Q)\n : q\n return coerceQuery(withParams)\n })\n\n const queryHash = computed(() => weakHash(resolvedQuery.value))\n\n const stop = watch(\n queryHash,\n (_, __, onCleanup) => {\n const q = resolvedQuery.value\n\n // DUX-DELTA(ssr): inert state on the server — never read the cache or\n // open a subscription. The client path below is the official one.\n if (!isClient()) {\n isLoading.value = !!q\n return\n }\n // END DUX-DELTA\n\n const cached: any = q ? this.core._reactor.getPreviousResult(q) : null\n isLoading.value = !cached\n data.value = cached?.data\n pageInfo.value = cached?.pageInfo\n error.value = cached?.error\n\n if (!q)\n return\n\n const unsub = this.core.subscribeQuery<Q, UseDates>(q, (r: any) => {\n isLoading.value = false\n data.value = r.data\n pageInfo.value = r.pageInfo\n error.value = r.error\n })\n onCleanup(unsub)\n },\n { immediate: true },\n )\n\n tryOnScopeDispose(stop)\n\n return { isLoading, data, pageInfo, error } as UseQueryReturn<\n Schema,\n Q,\n UseDates\n >\n }\n\n useInfiniteQuery = <Q extends ValidQuery<Q, Schema>>(\n query: MaybeRefOrGetter<Q | null>,\n opts?: MaybeRefOrGetter<InstaQLOptions | undefined>,\n ): InfiniteQueryResult<Schema, Q, UseDates> => {\n return useInfiniteQuery<Schema, Q, UseDates>(this.core, query, opts)\n }\n\n useAuth = (): UseAuthReturn => {\n const cached = this.core._reactor._currentUserCached as\n | AuthState\n | undefined\n\n const isLoading = ref(cached?.isLoading ?? true)\n const user = shallowRef<User | null | undefined>(cached?.user)\n const error = shallowRef<{ message: string } | undefined>(cached?.error)\n\n // DUX-DELTA(ssr): no auth subscription on the server — inert loading state.\n if (!isClient())\n return { isLoading, user, error }\n // END DUX-DELTA\n\n const unsub = this.core.subscribeAuth((auth: any) => {\n isLoading.value = false\n user.value = auth.user ?? null\n error.value = auth.error\n })\n\n tryOnScopeDispose(unsub)\n\n return { isLoading, user, error }\n }\n\n useUser = (): ComputedRef<User> => {\n const { user } = this.useAuth()\n return computed(() => {\n if (!user.value) {\n throw new InstantError(\n 'useUser must be used within an auth-protected route',\n )\n }\n return user.value\n })\n }\n\n useConnectionStatus = (): Ref<ConnectionStatus> => {\n const status = ref<ConnectionStatus>(\n this.core._reactor.status as ConnectionStatus,\n )\n\n // DUX-DELTA(ssr): no connection subscription on the server.\n if (!isClient())\n return status\n // END DUX-DELTA\n\n const unsub = this.core.subscribeConnectionStatus((newStatus) => {\n status.value = newStatus\n })\n\n tryOnScopeDispose(unsub)\n\n return status\n }\n\n useLocalId = (name: MaybeRefOrGetter<string>): Ref<string | null> => {\n const localId = ref<string | null>(null)\n\n // DUX-DELTA(ssr): localId is a client-storage concern — inert on server.\n if (!isClient())\n return localId\n // END DUX-DELTA\n\n const stop = watch(\n () => toValue(name),\n (currentName) => {\n this.getLocalId(currentName).then((id) => {\n // Drop a late resolve if `name` has since changed.\n if (toValue(name) === currentName) {\n localId.value = id\n }\n })\n },\n { immediate: true },\n )\n\n tryOnScopeDispose(stop)\n return localId\n }\n\n room<RoomType extends string & keyof Rooms>(\n type?: MaybeRefOrGetter<RoomType | undefined>,\n id?: MaybeRefOrGetter<string | undefined>,\n ) {\n const _type = computed(\n () => (toValue(type) ?? '_defaultRoomType') as RoomType,\n )\n const _id = computed(() => toValue(id) ?? '_defaultRoomId')\n return new InstantDuxRoom<Schema, Rooms, RoomType>(this.core, _type, _id)\n }\n\n rooms = rooms\n}\n\n// -----------\n// init\n\nexport function init<\n Schema extends InstantSchemaDef<any, any, any>,\n UseDates extends boolean = false,\n>(\n config: Omit<InstantConfig<Schema, UseDates>, 'useDateObjects'> & {\n useDateObjects?: UseDates\n },\n): InstantDuxDatabase<Schema, UseDates> {\n const coreDb = core_init<Schema, UseDates>(config, undefined, undefined, {\n '@mszr/idb-dux': version,\n })\n return new InstantDuxDatabase<Schema, UseDates>(coreDb)\n}\n"]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { InstantCoreDatabase, InstantSchemaDef, PresenceOpts, PresenceResponse, RoomSchemaShape } from '@instantdb/core';
|
|
2
|
+
import type { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from 'vue';
|
|
3
|
+
export type PresenceHandle<PresenceShape, Keys extends keyof PresenceShape> = {
|
|
4
|
+
[K in keyof PresenceResponse<PresenceShape, Keys>]: ShallowRef<PresenceResponse<PresenceShape, Keys>[K]>;
|
|
5
|
+
} & {
|
|
6
|
+
publishPresence: (data: Partial<PresenceShape>) => void;
|
|
7
|
+
};
|
|
8
|
+
export interface TypingIndicatorOpts {
|
|
9
|
+
timeout?: number | null;
|
|
10
|
+
stopOnEnter?: boolean;
|
|
11
|
+
writeOnly?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface TypingIndicatorHandle<PresenceShape> {
|
|
14
|
+
active: Ref<PresenceShape[]>;
|
|
15
|
+
setActive: (active: boolean) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Listener keys are lowercased (`onKeydown`, not `onKeyDown`) so that
|
|
18
|
+
* Vue's `v-bind` spread hyphenates them correctly to native DOM events
|
|
19
|
+
* (`keydown`). With camelCase Vue would emit a non-existent `key-down`
|
|
20
|
+
* listener and the indicator would never fire.
|
|
21
|
+
*/
|
|
22
|
+
inputProps: {
|
|
23
|
+
onKeydown: (e: KeyboardEvent) => void;
|
|
24
|
+
onBlur: () => void;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export declare const defaultActivityStopTimeout = 1000;
|
|
28
|
+
/**
|
|
29
|
+
* Listen for broadcasted events given a room and topic.
|
|
30
|
+
*
|
|
31
|
+
* @see https://instantdb.com/docs/presence-and-topics
|
|
32
|
+
*/
|
|
33
|
+
export declare function useTopicEffect<RoomSchema extends RoomSchemaShape, RoomType extends keyof RoomSchema, TopicType extends keyof RoomSchema[RoomType]['topics']>(room: InstantDuxRoom<any, RoomSchema, RoomType>, topic: TopicType, onEvent: (event: RoomSchema[RoomType]['topics'][TopicType], peer: RoomSchema[RoomType]['presence']) => any): void;
|
|
34
|
+
/**
|
|
35
|
+
* Broadcast an event to a room.
|
|
36
|
+
*
|
|
37
|
+
* @see https://instantdb.com/docs/presence-and-topics
|
|
38
|
+
*/
|
|
39
|
+
export declare function usePublishTopic<RoomSchema extends RoomSchemaShape, RoomType extends keyof RoomSchema, TopicType extends keyof RoomSchema[RoomType]['topics']>(room: InstantDuxRoom<any, RoomSchema, RoomType>, topic: TopicType): (data: RoomSchema[RoomType]['topics'][TopicType]) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Listen for peer's presence data in a room, and publish the current user's
|
|
42
|
+
* presence.
|
|
43
|
+
*
|
|
44
|
+
* @see https://instantdb.com/docs/presence-and-topics
|
|
45
|
+
*/
|
|
46
|
+
export declare function usePresence<RoomSchema extends RoomSchemaShape, RoomType extends keyof RoomSchema, Keys extends keyof RoomSchema[RoomType]['presence']>(room: InstantDuxRoom<any, RoomSchema, RoomType>, opts?: PresenceOpts<RoomSchema[RoomType]['presence'], Keys>): PresenceHandle<RoomSchema[RoomType]['presence'], Keys>;
|
|
47
|
+
/**
|
|
48
|
+
* Publishes presence data to a room.
|
|
49
|
+
*
|
|
50
|
+
* @see https://instantdb.com/docs/presence-and-topics
|
|
51
|
+
*/
|
|
52
|
+
export declare function useSyncPresence<RoomSchema extends RoomSchemaShape, RoomType extends keyof RoomSchema>(room: InstantDuxRoom<any, RoomSchema, RoomType>, data: MaybeRefOrGetter<Partial<RoomSchema[RoomType]['presence']>>): void;
|
|
53
|
+
/**
|
|
54
|
+
* Manage typing indicator state.
|
|
55
|
+
*
|
|
56
|
+
* @see https://instantdb.com/docs/presence-and-topics
|
|
57
|
+
*/
|
|
58
|
+
export declare function useTypingIndicator<RoomSchema extends RoomSchemaShape, RoomType extends keyof RoomSchema>(room: InstantDuxRoom<any, RoomSchema, RoomType>, inputName: string, opts?: TypingIndicatorOpts): TypingIndicatorHandle<RoomSchema[RoomType]['presence']>;
|
|
59
|
+
export declare const rooms: {
|
|
60
|
+
useTopicEffect: typeof useTopicEffect;
|
|
61
|
+
usePublishTopic: typeof usePublishTopic;
|
|
62
|
+
usePresence: typeof usePresence;
|
|
63
|
+
useSyncPresence: typeof useSyncPresence;
|
|
64
|
+
useTypingIndicator: typeof useTypingIndicator;
|
|
65
|
+
};
|
|
66
|
+
export declare class InstantDuxRoom<Schema extends InstantSchemaDef<any, any, any>, RoomSchema extends RoomSchemaShape, RoomType extends keyof RoomSchema> {
|
|
67
|
+
core: InstantCoreDatabase<Schema, boolean>;
|
|
68
|
+
type: ComputedRef<RoomType> | RoomType;
|
|
69
|
+
id: ComputedRef<string> | string;
|
|
70
|
+
constructor(core: InstantCoreDatabase<Schema, boolean>, type: ComputedRef<RoomType> | RoomType, id: ComputedRef<string> | string);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=InstantDuxRoom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstantDuxRoom.d.ts","sourceRoot":"","sources":["../../../../src/vue/baseline/InstantDuxRoom.ts"],"names":[],"mappings":"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"}
|