@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":"result.d.ts","sourceRoot":"","sources":["../../../../src/vue/overlay/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAiB9B,2EAA2E;AAC3E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9C,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAQlD,+EAA+E;AAC/E,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI;IAC1B,QAAQ,EAAE,CAAC,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAA;AAED,8EAA8E;AAC9E,MAAM,MAAM,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG;IACnC,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CACrB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,SAAS,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAc5E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,OAAO,EACtD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,EACnC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,GAAG,CA8CL"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeResult = makeResult;
|
|
4
|
+
exports.makeDynamicResult = makeDynamicResult;
|
|
5
|
+
/**
|
|
6
|
+
* The refs+state primitive — one shape, every stateful hook ([conventions §3],
|
|
7
|
+
* [dux-spec-vue.md §3]). A result serves three reading styles over one
|
|
8
|
+
* reactive source:
|
|
9
|
+
*
|
|
10
|
+
* - **top-level refs** for destructuring and watch sources,
|
|
11
|
+
* - **`.refs`** for composable passthrough,
|
|
12
|
+
* - **`.state`** for `.value`-free script reads.
|
|
13
|
+
*
|
|
14
|
+
* `state` is a `markRaw` plain object with getters over the underlying refs:
|
|
15
|
+
* Pinia won't try to hydrate it, writing a property fails at the property
|
|
16
|
+
* level, and Vue effects still track because each getter reads a reactive
|
|
17
|
+
* source.
|
|
18
|
+
*/
|
|
19
|
+
const vue_1 = require("vue");
|
|
20
|
+
/**
|
|
21
|
+
* Wrap a hook's flat ref bag into the result pattern. The refs are spread to
|
|
22
|
+
* the top level, exposed again under `.refs`, and projected read-only under a
|
|
23
|
+
* raw `.state`.
|
|
24
|
+
*/
|
|
25
|
+
function makeResult(refs) {
|
|
26
|
+
const state = (0, vue_1.markRaw)(Object.defineProperties({}, Object.fromEntries(Object.keys(refs).map(key => [
|
|
27
|
+
key,
|
|
28
|
+
{ get: () => refs[key].value, enumerable: true },
|
|
29
|
+
]))));
|
|
30
|
+
return { ...refs, refs, state };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The result pattern for hooks whose key set is *dynamic* (query scopes
|
|
34
|
+
* depend on the query, which can change at runtime). `staticRefs` are always
|
|
35
|
+
* present (`isLoading`, `error`, …); any other accessed key is resolved
|
|
36
|
+
* through `scopeRef`, which the builder memoizes. Destructuring, `.refs`
|
|
37
|
+
* passthrough, and the raw `.state` projection all work over arbitrary keys.
|
|
38
|
+
*/
|
|
39
|
+
function makeDynamicResult(staticRefs, scopeRef, extras = {}) {
|
|
40
|
+
const cache = new Map();
|
|
41
|
+
const refFor = (key) => {
|
|
42
|
+
if (key in staticRefs)
|
|
43
|
+
return staticRefs[key];
|
|
44
|
+
if (typeof key !== 'string')
|
|
45
|
+
return undefined;
|
|
46
|
+
let ref = cache.get(key);
|
|
47
|
+
if (!ref) {
|
|
48
|
+
ref = scopeRef(key);
|
|
49
|
+
cache.set(key, ref);
|
|
50
|
+
}
|
|
51
|
+
return ref;
|
|
52
|
+
};
|
|
53
|
+
const refs = new Proxy({}, {
|
|
54
|
+
get: (_t, key) => refFor(key),
|
|
55
|
+
has: () => true,
|
|
56
|
+
});
|
|
57
|
+
const state = (0, vue_1.markRaw)(new Proxy({}, {
|
|
58
|
+
get: (_t, key) => refFor(key)?.value,
|
|
59
|
+
has: () => true,
|
|
60
|
+
set: () => false, // writing a state property fails at the property level
|
|
61
|
+
}));
|
|
62
|
+
return new Proxy({}, {
|
|
63
|
+
get: (_t, key) => {
|
|
64
|
+
if (key === 'refs')
|
|
65
|
+
return refs;
|
|
66
|
+
if (key === 'state')
|
|
67
|
+
return state;
|
|
68
|
+
if (key in extras)
|
|
69
|
+
return extras[key]; // passthrough methods (e.g. loadNextPage)
|
|
70
|
+
return refFor(key);
|
|
71
|
+
},
|
|
72
|
+
has: () => true,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../../src/vue/overlay/result.ts"],"names":[],"mappings":";;AA4CA,gCAcC;AASD,8CAkDC;AApHD;;;;;;;;;;;;;GAaG;AACH,6BAA6B;AAwB7B;;;;GAIG;AACH,SAAgB,UAAU,CAAuB,IAAU;IACzD,MAAM,KAAK,GAAG,IAAA,aAAO,EACnB,MAAM,CAAC,gBAAgB,CACrB,EAAE,EACF,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,GAAG;QACH,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;KAClD,CAAC,CACH,CACF,CACe,CAAA;IAElB,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,UAAkB,EAClB,QAAmC,EACnC,SAAkC,EAAE;IAEpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAA;IACzC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAwB,EAAE;QACnD,IAAI,GAAG,IAAI,UAAU;YACnB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ;YACzB,OAAO,SAAS,CAAA;QAClB,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;YACnB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,EAAa,EAAE;QACpC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;QACrC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI;KAChB,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,IAAA,aAAO,EACnB,IAAI,KAAK,CACP,EAAE,EACF;QACE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK;QAC5C,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI;QACf,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,uDAAuD;KAC1E,CACF,CACF,CAAA;IAED,OAAO,IAAI,KAAK,CACd,EAAE,EACF;QACE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAW,EAAE,EAAE;YACvB,IAAI,GAAG,KAAK,MAAM;gBAChB,OAAO,IAAI,CAAA;YACb,IAAI,GAAG,KAAK,OAAO;gBACjB,OAAO,KAAK,CAAA;YACd,IAAI,GAAG,IAAI,MAAM;gBACf,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA,CAAC,0CAA0C;YAC/D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;QACD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI;KAChB,CACF,CAAA;AACH,CAAC","sourcesContent":["import type { Ref } from 'vue'\n/**\n * The refs+state primitive — one shape, every stateful hook ([conventions §3],\n * [dux-spec-vue.md §3]). A result serves three reading styles over one\n * reactive source:\n *\n * - **top-level refs** for destructuring and watch sources,\n * - **`.refs`** for composable passthrough,\n * - **`.state`** for `.value`-free script reads.\n *\n * `state` is a `markRaw` plain object with getters over the underlying refs:\n * Pinia won't try to hydrate it, writing a property fails at the property\n * level, and Vue effects still track because each getter reads a reactive\n * source.\n */\nimport { markRaw } from 'vue'\n\n/** The flat ref bag a hook produces (`{ isLoading, error, todos, … }`). */\nexport type RefsBag = Record<string, Ref<any>>\n\ntype Unref<R> = R extends Ref<infer V> ? V : never\n\n// The type-level helpers don't constrain to `RefsBag`: a named ref-bag\n// interface (e.g. `AuthRefs`) has no string index signature and so wouldn't\n// satisfy `Record<string, Ref>`, even though every member is a `Ref`. They\n// map over `keyof Refs` directly instead; `makeResult` keeps the runtime\n// constraint where call sites pass object literals.\n\n/** `.state` — getter projection over the refs, `.value`-free and read-only. */\nexport type StateOf<Refs> = {\n readonly [K in keyof Refs]: Unref<Refs[K]>\n}\n\n/** The full result: top-level refs (spread in), plus `.refs` and `.state`. */\nexport type IdbResult<Refs> = Refs & {\n refs: Refs\n state: StateOf<Refs>\n}\n\n/**\n * Wrap a hook's flat ref bag into the result pattern. The refs are spread to\n * the top level, exposed again under `.refs`, and projected read-only under a\n * raw `.state`.\n */\nexport function makeResult<Refs extends RefsBag>(refs: Refs): IdbResult<Refs> {\n const state = markRaw(\n Object.defineProperties(\n {},\n Object.fromEntries(\n Object.keys(refs).map(key => [\n key,\n { get: () => refs[key]!.value, enumerable: true },\n ]),\n ),\n ),\n ) as StateOf<Refs>\n\n return { ...refs, refs, state }\n}\n\n/**\n * The result pattern for hooks whose key set is *dynamic* (query scopes\n * depend on the query, which can change at runtime). `staticRefs` are always\n * present (`isLoading`, `error`, …); any other accessed key is resolved\n * through `scopeRef`, which the builder memoizes. Destructuring, `.refs`\n * passthrough, and the raw `.state` projection all work over arbitrary keys.\n */\nexport function makeDynamicResult<Static extends RefsBag>(\n staticRefs: Static,\n scopeRef: (key: string) => Ref<any>,\n extras: Record<string, unknown> = {},\n): any {\n const cache = new Map<string, Ref<any>>()\n const refFor = (key: string): Ref<any> | undefined => {\n if (key in staticRefs)\n return staticRefs[key]\n if (typeof key !== 'string')\n return undefined\n let ref = cache.get(key)\n if (!ref) {\n ref = scopeRef(key)\n cache.set(key, ref)\n }\n return ref\n }\n\n const refs = new Proxy({} as RefsBag, {\n get: (_t, key: string) => refFor(key),\n has: () => true,\n })\n\n const state = markRaw(\n new Proxy(\n {},\n {\n get: (_t, key: string) => refFor(key)?.value,\n has: () => true,\n set: () => false, // writing a state property fails at the property level\n },\n ),\n )\n\n return new Proxy(\n {},\n {\n get: (_t, key: string) => {\n if (key === 'refs')\n return refs\n if (key === 'state')\n return state\n if (key in extras)\n return extras[key] // passthrough methods (e.g. loadNextPage)\n return refFor(key)\n },\n has: () => true,\n },\n )\n}\n"]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The rooms overlay: the baseline room hooks keep their official names and
|
|
3
|
+
* semantics; the stateful ones (`usePresence`, `useTypingIndicator`) gain the
|
|
4
|
+
* result pattern, the rest pass through unchanged ([dux-spec-vue.md §6]).
|
|
5
|
+
*
|
|
6
|
+
* The wrappers re-declare the baseline generics rather than forwarding
|
|
7
|
+
* `Parameters<typeof …>`: a spread-args signature collapses the generics to
|
|
8
|
+
* their constraints, which erases per-room presence/topic typing (`keys` and
|
|
9
|
+
* `peers` resolve against `never`). Re-declaring keeps `keys`,
|
|
10
|
+
* `initialPresence`, and the resulting `peers`/`active` typed against the
|
|
11
|
+
* room's schema.
|
|
12
|
+
*/
|
|
13
|
+
import type { PresenceOpts, RoomSchemaShape } from '@instantdb/core';
|
|
14
|
+
import type { InstantDuxRoom, TypingIndicatorOpts } from '../../baseline/index.js';
|
|
15
|
+
import { usePublishTopic, useSyncPresence, useTopicEffect } from '../../baseline/index.js';
|
|
16
|
+
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>): {
|
|
17
|
+
peers: import("vue").ShallowRef<{
|
|
18
|
+
[peerId: string]: Pick<RoomSchema[RoomType]["presence"], Keys> & {
|
|
19
|
+
peerId: string;
|
|
20
|
+
};
|
|
21
|
+
}>;
|
|
22
|
+
isLoading: import("vue").ShallowRef<boolean>;
|
|
23
|
+
user: import("vue").ShallowRef<(Pick<RoomSchema[RoomType]["presence"], Keys> & {
|
|
24
|
+
peerId: string;
|
|
25
|
+
}) | undefined>;
|
|
26
|
+
error: import("vue").ShallowRef<string | undefined>;
|
|
27
|
+
} & {
|
|
28
|
+
refs: {
|
|
29
|
+
peers: import("vue").ShallowRef<{
|
|
30
|
+
[peerId: string]: Pick<RoomSchema[RoomType]["presence"], Keys> & {
|
|
31
|
+
peerId: string;
|
|
32
|
+
};
|
|
33
|
+
}>;
|
|
34
|
+
isLoading: import("vue").ShallowRef<boolean>;
|
|
35
|
+
user: import("vue").ShallowRef<(Pick<RoomSchema[RoomType]["presence"], Keys> & {
|
|
36
|
+
peerId: string;
|
|
37
|
+
}) | undefined>;
|
|
38
|
+
error: import("vue").ShallowRef<string | undefined>;
|
|
39
|
+
};
|
|
40
|
+
state: import("../result.js").StateOf<{
|
|
41
|
+
peers: import("vue").ShallowRef<{
|
|
42
|
+
[peerId: string]: Pick<RoomSchema[RoomType]["presence"], Keys> & {
|
|
43
|
+
peerId: string;
|
|
44
|
+
};
|
|
45
|
+
}>;
|
|
46
|
+
isLoading: import("vue").ShallowRef<boolean>;
|
|
47
|
+
user: import("vue").ShallowRef<(Pick<RoomSchema[RoomType]["presence"], Keys> & {
|
|
48
|
+
peerId: string;
|
|
49
|
+
}) | undefined>;
|
|
50
|
+
error: import("vue").ShallowRef<string | undefined>;
|
|
51
|
+
}>;
|
|
52
|
+
} & {
|
|
53
|
+
publishPresence: (data: Partial<RoomSchema[RoomType]["presence"]>) => void;
|
|
54
|
+
};
|
|
55
|
+
declare function useTypingIndicator<RoomSchema extends RoomSchemaShape, RoomType extends keyof RoomSchema>(room: InstantDuxRoom<any, RoomSchema, RoomType>, inputName: string, opts?: TypingIndicatorOpts): {
|
|
56
|
+
active: import("vue").Ref<RoomSchema[RoomType]["presence"][], RoomSchema[RoomType]["presence"][]>;
|
|
57
|
+
} & {
|
|
58
|
+
refs: {
|
|
59
|
+
active: import("vue").Ref<RoomSchema[RoomType]["presence"][], RoomSchema[RoomType]["presence"][]>;
|
|
60
|
+
};
|
|
61
|
+
state: import("../result.js").StateOf<{
|
|
62
|
+
active: import("vue").Ref<RoomSchema[RoomType]["presence"][], RoomSchema[RoomType]["presence"][]>;
|
|
63
|
+
}>;
|
|
64
|
+
} & {
|
|
65
|
+
setActive: (active: boolean) => void;
|
|
66
|
+
inputProps: {
|
|
67
|
+
onKeydown: (e: KeyboardEvent) => void;
|
|
68
|
+
onBlur: () => void;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
export declare const rooms: {
|
|
72
|
+
useTopicEffect: typeof useTopicEffect;
|
|
73
|
+
usePublishTopic: typeof usePublishTopic;
|
|
74
|
+
usePresence: typeof usePresence;
|
|
75
|
+
useSyncPresence: typeof useSyncPresence;
|
|
76
|
+
useTypingIndicator: typeof useTypingIndicator;
|
|
77
|
+
};
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vue/overlay/rooms/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClF,OAAO,EAGL,eAAe,EACf,eAAe,EACf,cAAc,EACf,MAAM,yBAAyB,CAAA;AAGhC,iBAAS,WAAW,CAClB,UAAU,SAAS,eAAe,EAClC,QAAQ,SAAS,MAAM,UAAU,EACjC,IAAI,SAAS,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAEnD,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAC/C,IAAI,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc5D;AAED,iBAAS,kBAAkB,CACzB,UAAU,SAAS,eAAe,EAClC,QAAQ,SAAS,MAAM,UAAU,EAEjC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAC/C,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;EAI3B;AAED,eAAO,MAAM,KAAK;;;;;;CAMjB,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rooms = void 0;
|
|
4
|
+
const index_js_1 = require("../../baseline/index.js");
|
|
5
|
+
const result_js_1 = require("../result.js");
|
|
6
|
+
function usePresence(room, opts) {
|
|
7
|
+
const handle = (0, index_js_1.usePresence)(room, opts);
|
|
8
|
+
// user/error are optional on the presence-response shape, but the baseline
|
|
9
|
+
// always creates their refs; assert them present for the result bag.
|
|
10
|
+
return Object.assign((0, result_js_1.makeResult)({
|
|
11
|
+
peers: handle.peers,
|
|
12
|
+
isLoading: handle.isLoading,
|
|
13
|
+
user: handle.user,
|
|
14
|
+
error: handle.error,
|
|
15
|
+
}), { publishPresence: handle.publishPresence });
|
|
16
|
+
}
|
|
17
|
+
function useTypingIndicator(room, inputName, opts) {
|
|
18
|
+
const { active, setActive, inputProps } = (0, index_js_1.useTypingIndicator)(room, inputName, opts);
|
|
19
|
+
return Object.assign((0, result_js_1.makeResult)({ active }), { setActive, inputProps });
|
|
20
|
+
}
|
|
21
|
+
exports.rooms = {
|
|
22
|
+
useTopicEffect: index_js_1.useTopicEffect,
|
|
23
|
+
usePublishTopic: index_js_1.usePublishTopic,
|
|
24
|
+
usePresence,
|
|
25
|
+
useSyncPresence: index_js_1.useSyncPresence,
|
|
26
|
+
useTypingIndicator,
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/vue/overlay/rooms/index.ts"],"names":[],"mappings":";;;AAcA,sDAMgC;AAChC,4CAAyC;AAEzC,SAAS,WAAW,CAKlB,IAA+C,EAC/C,IAA2D;IAE3D,MAAM,MAAM,GAAG,IAAA,sBAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC9C,2EAA2E;IAC3E,qEAAqE;IACrE,OAAO,MAAM,CAAC,MAAM,CAClB,IAAA,sBAAU,EAAC;QACT,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,IAAI,EAAE,MAAM,CAAC,IAAK;QAClB,KAAK,EAAE,MAAM,CAAC,KAAM;KACrB,CAAC,EACF,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAC5C,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAIzB,IAA+C,EAC/C,SAAiB,EACjB,IAA0B;IAE1B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAA,6BAA0B,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IAC3F,OAAO,MAAM,CAAC,MAAM,CAAC,IAAA,sBAAU,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;AACzE,CAAC;AAEY,QAAA,KAAK,GAAG;IACnB,cAAc,EAAd,yBAAc;IACd,eAAe,EAAf,0BAAe;IACf,WAAW;IACX,eAAe,EAAf,0BAAe;IACf,kBAAkB;CACnB,CAAA","sourcesContent":["/**\n * The rooms overlay: the baseline room hooks keep their official names and\n * semantics; the stateful ones (`usePresence`, `useTypingIndicator`) gain the\n * result pattern, the rest pass through unchanged ([dux-spec-vue.md §6]).\n *\n * The wrappers re-declare the baseline generics rather than forwarding\n * `Parameters<typeof …>`: a spread-args signature collapses the generics to\n * their constraints, which erases per-room presence/topic typing (`keys` and\n * `peers` resolve against `never`). Re-declaring keeps `keys`,\n * `initialPresence`, and the resulting `peers`/`active` typed against the\n * room's schema.\n */\nimport type { PresenceOpts, RoomSchemaShape } from '@instantdb/core'\nimport type { InstantDuxRoom, TypingIndicatorOpts } from '../../baseline/index.js'\nimport {\n usePresence as baselineUsePresence,\n useTypingIndicator as baselineUseTypingIndicator,\n usePublishTopic,\n useSyncPresence,\n useTopicEffect,\n} from '../../baseline/index.js'\nimport { makeResult } from '../result.js'\n\nfunction usePresence<\n RoomSchema extends RoomSchemaShape,\n RoomType extends keyof RoomSchema,\n Keys extends keyof RoomSchema[RoomType]['presence'],\n>(\n room: InstantDuxRoom<any, RoomSchema, RoomType>,\n opts?: PresenceOpts<RoomSchema[RoomType]['presence'], Keys>,\n) {\n const handle = baselineUsePresence(room, opts)\n // user/error are optional on the presence-response shape, but the baseline\n // always creates their refs; assert them present for the result bag.\n return Object.assign(\n makeResult({\n peers: handle.peers,\n isLoading: handle.isLoading,\n user: handle.user!,\n error: handle.error!,\n }),\n { publishPresence: handle.publishPresence },\n )\n}\n\nfunction useTypingIndicator<\n RoomSchema extends RoomSchemaShape,\n RoomType extends keyof RoomSchema,\n>(\n room: InstantDuxRoom<any, RoomSchema, RoomType>,\n inputName: string,\n opts?: TypingIndicatorOpts,\n) {\n const { active, setActive, inputProps } = baselineUseTypingIndicator(room, inputName, opts)\n return Object.assign(makeResult({ active }), { setActive, inputProps })\n}\n\nexport const rooms = {\n useTopicEffect,\n usePublishTopic,\n usePresence,\n useSyncPresence,\n useTypingIndicator,\n}\n"]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `/vue` overlay's public types: the config rename, the result-pattern
|
|
3
|
+
* shapes per domain, and the auth/connection renames. Every stateful hook
|
|
4
|
+
* returns `Idb<Domain>Result` with `-Data`/`-State`/`-Refs` subparts
|
|
5
|
+
* ([conventions §3]).
|
|
6
|
+
*/
|
|
7
|
+
import type { ConnectionStatus, InstantConfig, User } from '@instantdb/core';
|
|
8
|
+
import type { Ref } from 'vue';
|
|
9
|
+
import type { IdbQueryData, IdbQueryPageInfo } from '../../query/index.js';
|
|
10
|
+
import type { IdbSchema } from '../../schema/defineSchema.js';
|
|
11
|
+
import type { IdbRegisteredSchema } from '../../schema/register.js';
|
|
12
|
+
import type { IdbResult, StateOf } from './result.js';
|
|
13
|
+
/**
|
|
14
|
+
* `init`/`defineDb` config — everything core supports, including `devtool`
|
|
15
|
+
* and `apiURI`/`websocketURI` (self-hosting). `i.date()` fields are typed as
|
|
16
|
+
* the wire format everywhere, so `useDateObjects` stays off.
|
|
17
|
+
*/
|
|
18
|
+
export type IdbClientConfig<S extends IdbSchema = IdbRegisteredSchema> = Omit<InstantConfig<S, false>, 'useDateObjects' | 'schema'> & {
|
|
19
|
+
schema?: S;
|
|
20
|
+
};
|
|
21
|
+
/** The authenticated user (official `User`). */
|
|
22
|
+
export type IdbAuthUser = User;
|
|
23
|
+
/** Connection status union (official `ConnectionStatus`). */
|
|
24
|
+
export type IdbConnectionStatus = ConnectionStatus;
|
|
25
|
+
type QueryRefs<Q, S extends IdbSchema> = {
|
|
26
|
+
isLoading: Ref<boolean>;
|
|
27
|
+
error: Ref<{
|
|
28
|
+
message: string;
|
|
29
|
+
} | undefined>;
|
|
30
|
+
pageInfo: Ref<IdbQueryPageInfo<Q> | undefined>;
|
|
31
|
+
} & {
|
|
32
|
+
[K in keyof IdbQueryData<Q, S>]: Ref<IdbQueryData<Q, S>[K]>;
|
|
33
|
+
};
|
|
34
|
+
export type IdbQueryResultRefs<Q, S extends IdbSchema = IdbRegisteredSchema> = QueryRefs<Q, S>;
|
|
35
|
+
export type IdbQueryResultData<Q, S extends IdbSchema = IdbRegisteredSchema> = IdbQueryData<Q, S>;
|
|
36
|
+
export type IdbQueryResultState<Q, S extends IdbSchema = IdbRegisteredSchema> = StateOf<QueryRefs<Q, S>>;
|
|
37
|
+
export type IdbQueryResult<Q, S extends IdbSchema = IdbRegisteredSchema> = IdbResult<QueryRefs<Q, S>>;
|
|
38
|
+
type InfiniteRefs<Q, S extends IdbSchema> = {
|
|
39
|
+
isLoading: Ref<boolean>;
|
|
40
|
+
error: Ref<{
|
|
41
|
+
message: string;
|
|
42
|
+
} | undefined>;
|
|
43
|
+
canLoadNextPage: Ref<boolean>;
|
|
44
|
+
} & {
|
|
45
|
+
[K in keyof IdbQueryData<Q, S>]: Ref<IdbQueryData<Q, S>[K]>;
|
|
46
|
+
};
|
|
47
|
+
export type IdbInfiniteQueryResult<Q, S extends IdbSchema = IdbRegisteredSchema> = IdbResult<InfiniteRefs<Q, S>> & {
|
|
48
|
+
loadNextPage: () => void;
|
|
49
|
+
};
|
|
50
|
+
interface AuthRefs {
|
|
51
|
+
isLoading: Ref<boolean>;
|
|
52
|
+
user: Ref<IdbAuthUser | undefined>;
|
|
53
|
+
error: Ref<{
|
|
54
|
+
message: string;
|
|
55
|
+
} | undefined>;
|
|
56
|
+
}
|
|
57
|
+
export type IdbAuthResultRefs = AuthRefs;
|
|
58
|
+
export type IdbAuthResultState = StateOf<AuthRefs>;
|
|
59
|
+
export type IdbAuthResult = IdbResult<AuthRefs>;
|
|
60
|
+
interface ConnectionRefs {
|
|
61
|
+
status: Ref<IdbConnectionStatus>;
|
|
62
|
+
}
|
|
63
|
+
export type IdbConnectionResult = IdbResult<ConnectionRefs>;
|
|
64
|
+
interface LocalIdRefs {
|
|
65
|
+
localId: Ref<string | null>;
|
|
66
|
+
}
|
|
67
|
+
export type IdbLocalIdResult = IdbResult<LocalIdRefs>;
|
|
68
|
+
export interface IdbUserOptions {
|
|
69
|
+
/** Type `user` as present and treat a missing user as a dev-time error. */
|
|
70
|
+
requireUser?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/vue/overlay/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,IAAI,EACL,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAKrD;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,IAAI,IAAI,CAC3E,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,EACvB,gBAAgB,GAAG,QAAQ,CAC5B,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,CAAA;AAElB,gDAAgD;AAChD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAA;AAE9B,6DAA6D;AAC7D,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AAKlD,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,IAAI;IACvC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,KAAK,EAAE,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAA;IAC3C,QAAQ,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;CAC/C,GAAG;KACD,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5D,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,GAAG,mBAAmB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9F,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,GAAG,mBAAmB,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACjG,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,GAAG,mBAAmB,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACxG,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,GAAG,mBAAmB,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAErG,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,IAAI;IAC1C,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,KAAK,EAAE,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAA;IAC3C,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;CAC9B,GAAG;KACD,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5D,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,GAAG,mBAAmB,IAC3E,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;IAAE,YAAY,EAAE,MAAM,IAAI,CAAA;CAAE,CAAA;AAEhE,UAAU,QAAQ;IAChB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,IAAI,EAAE,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;IAClC,KAAK,EAAE,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAA;CAC5C;AACD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAA;AACxC,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAClD,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAE/C,UAAU,cAAc;IAAG,MAAM,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAA;CAAE;AAC7D,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAA;AAE3D,UAAU,WAAW;IAAG,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CAAE;AACrD,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AAErD,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/vue/overlay/types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * The `/vue` overlay's public types: the config rename, the result-pattern\n * shapes per domain, and the auth/connection renames. Every stateful hook\n * returns `Idb<Domain>Result` with `-Data`/`-State`/`-Refs` subparts\n * ([conventions §3]).\n */\nimport type {\n ConnectionStatus,\n InstantConfig,\n User,\n} from '@instantdb/core'\nimport type { Ref } from 'vue'\nimport type { IdbQueryData, IdbQueryPageInfo } from '../../query/index.js'\nimport type { IdbSchema } from '../../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../../schema/register.js'\nimport type { IdbResult, StateOf } from './result.js'\n\n// ==========\n// config + auth/connection renames\n\n/**\n * `init`/`defineDb` config — everything core supports, including `devtool`\n * and `apiURI`/`websocketURI` (self-hosting). `i.date()` fields are typed as\n * the wire format everywhere, so `useDateObjects` stays off.\n */\nexport type IdbClientConfig<S extends IdbSchema = IdbRegisteredSchema> = Omit<\n InstantConfig<S, false>,\n 'useDateObjects' | 'schema'\n> & { schema?: S }\n\n/** The authenticated user (official `User`). */\nexport type IdbAuthUser = User\n\n/** Connection status union (official `ConnectionStatus`). */\nexport type IdbConnectionStatus = ConnectionStatus\n\n// ==========\n// result-pattern shapes\n\ntype QueryRefs<Q, S extends IdbSchema> = {\n isLoading: Ref<boolean>\n error: Ref<{ message: string } | undefined>\n pageInfo: Ref<IdbQueryPageInfo<Q> | undefined>\n} & {\n [K in keyof IdbQueryData<Q, S>]: Ref<IdbQueryData<Q, S>[K]>\n}\n\nexport type IdbQueryResultRefs<Q, S extends IdbSchema = IdbRegisteredSchema> = QueryRefs<Q, S>\nexport type IdbQueryResultData<Q, S extends IdbSchema = IdbRegisteredSchema> = IdbQueryData<Q, S>\nexport type IdbQueryResultState<Q, S extends IdbSchema = IdbRegisteredSchema> = StateOf<QueryRefs<Q, S>>\nexport type IdbQueryResult<Q, S extends IdbSchema = IdbRegisteredSchema> = IdbResult<QueryRefs<Q, S>>\n\ntype InfiniteRefs<Q, S extends IdbSchema> = {\n isLoading: Ref<boolean>\n error: Ref<{ message: string } | undefined>\n canLoadNextPage: Ref<boolean>\n} & {\n [K in keyof IdbQueryData<Q, S>]: Ref<IdbQueryData<Q, S>[K]>\n}\n\nexport type IdbInfiniteQueryResult<Q, S extends IdbSchema = IdbRegisteredSchema>\n = IdbResult<InfiniteRefs<Q, S>> & { loadNextPage: () => void }\n\ninterface AuthRefs {\n isLoading: Ref<boolean>\n user: Ref<IdbAuthUser | undefined>\n error: Ref<{ message: string } | undefined>\n}\nexport type IdbAuthResultRefs = AuthRefs\nexport type IdbAuthResultState = StateOf<AuthRefs>\nexport type IdbAuthResult = IdbResult<AuthRefs>\n\ninterface ConnectionRefs { status: Ref<IdbConnectionStatus> }\nexport type IdbConnectionResult = IdbResult<ConnectionRefs>\n\ninterface LocalIdRefs { localId: Ref<string | null> }\nexport type IdbLocalIdResult = IdbResult<LocalIdRefs>\n\nexport interface IdbUserOptions {\n /** Type `user` as present and treat a missing user as a dev-time error. */\n requireUser?: boolean\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authoring webhook handlers as plain object literals with full per-change
|
|
3
|
+
* narrowing — no helper functions, no schema generics at the call site
|
|
4
|
+
* (dux-spec-webhooks.md §4).
|
|
5
|
+
*/
|
|
6
|
+
import type { IdbSchema } from '../schema/defineSchema.js';
|
|
7
|
+
import type { IdbRegisteredSchema } from '../schema/register.js';
|
|
8
|
+
import type { IdbWebhookHandlers } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Define webhook handlers as a plain object literal. Contextual typing narrows
|
|
11
|
+
* each handler's `change` per namespace and action ({ after } is
|
|
12
|
+
* `IdbEntity<'ns'>`); pass several maps to merge them.
|
|
13
|
+
*
|
|
14
|
+
* Resolution per change matches the official dispatcher: `namespace.action` →
|
|
15
|
+
* `namespace.$default` → top-level `$default`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* export const handlers = defineWebhookHandlers({
|
|
19
|
+
* tasks: {
|
|
20
|
+
* create: ({ after }) => notifyAssignee(after),
|
|
21
|
+
* delete: ({ before }) => audit('task removed', before),
|
|
22
|
+
* },
|
|
23
|
+
* $default: change => log(change),
|
|
24
|
+
* })
|
|
25
|
+
*/
|
|
26
|
+
export declare function defineWebhookHandlers<S extends IdbSchema = IdbRegisteredSchema>(...maps: IdbWebhookHandlers<S>[]): IdbWebhookHandlers<S>;
|
|
27
|
+
//# sourceMappingURL=defineWebhookHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineWebhookHandlers.d.ts","sourceRoot":"","sources":["../../../src/webhooks/defineWebhookHandlers.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,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,EAC7E,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAC/B,kBAAkB,CAAC,CAAC,CAAC,CAWvB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineWebhookHandlers = defineWebhookHandlers;
|
|
4
|
+
/**
|
|
5
|
+
* Define webhook handlers as a plain object literal. Contextual typing narrows
|
|
6
|
+
* each handler's `change` per namespace and action ({ after } is
|
|
7
|
+
* `IdbEntity<'ns'>`); pass several maps to merge them.
|
|
8
|
+
*
|
|
9
|
+
* Resolution per change matches the official dispatcher: `namespace.action` →
|
|
10
|
+
* `namespace.$default` → top-level `$default`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* export const handlers = defineWebhookHandlers({
|
|
14
|
+
* tasks: {
|
|
15
|
+
* create: ({ after }) => notifyAssignee(after),
|
|
16
|
+
* delete: ({ before }) => audit('task removed', before),
|
|
17
|
+
* },
|
|
18
|
+
* $default: change => log(change),
|
|
19
|
+
* })
|
|
20
|
+
*/
|
|
21
|
+
function defineWebhookHandlers(...maps) {
|
|
22
|
+
const result = {};
|
|
23
|
+
for (const map of maps) {
|
|
24
|
+
for (const key of Object.keys(map)) {
|
|
25
|
+
if (key === '$default')
|
|
26
|
+
result.$default = map.$default;
|
|
27
|
+
else
|
|
28
|
+
result[key] = { ...result[key], ...map[key] };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=defineWebhookHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineWebhookHandlers.js","sourceRoot":"","sources":["../../../src/webhooks/defineWebhookHandlers.ts"],"names":[],"mappings":";;AA0BA,sDAaC;AA9BD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,qBAAqB,CACnC,GAAG,IAA6B;IAEhC,MAAM,MAAM,GAAwB,EAAE,CAAA;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,GAAG,KAAK,UAAU;gBACpB,MAAM,CAAC,QAAQ,GAAI,GAA2B,CAAC,QAAQ,CAAA;;gBAEvD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,GAAI,GAA2B,CAAC,GAAG,CAAC,EAAE,CAAA;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,MAA+B,CAAA;AACxC,CAAC","sourcesContent":["/**\n * Authoring webhook handlers as plain object literals with full per-change\n * narrowing — no helper functions, no schema generics at the call site\n * (dux-spec-webhooks.md §4).\n */\nimport type { IdbSchema } from '../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../schema/register.js'\nimport type { IdbWebhookHandlers } from './types.js'\n\n/**\n * Define webhook handlers as a plain object literal. Contextual typing narrows\n * each handler's `change` per namespace and action ({ after } is\n * `IdbEntity<'ns'>`); pass several maps to merge them.\n *\n * Resolution per change matches the official dispatcher: `namespace.action` →\n * `namespace.$default` → top-level `$default`.\n *\n * @example\n * export const handlers = defineWebhookHandlers({\n * tasks: {\n * create: ({ after }) => notifyAssignee(after),\n * delete: ({ before }) => audit('task removed', before),\n * },\n * $default: change => log(change),\n * })\n */\nexport function defineWebhookHandlers<S extends IdbSchema = IdbRegisteredSchema>(\n ...maps: IdbWebhookHandlers<S>[]\n): IdbWebhookHandlers<S> {\n const result: Record<string, any> = {}\n for (const map of maps) {\n for (const key of Object.keys(map)) {\n if (key === '$default')\n result.$default = (map as Record<string, any>).$default\n else\n result[key] = { ...result[key], ...(map as Record<string, any>)[key] }\n }\n }\n return result as IdbWebhookHandlers<S>\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@mszr/idb-dux/webhooks` — webhook handling and management.
|
|
3
|
+
*
|
|
4
|
+
* Optional-config `init`, `defineWebhookHandlers`, the pipeline verbs
|
|
5
|
+
* (`verify`/`fetchPayload`/`dispatch`/`process`/`processNode`), and `manager`.
|
|
6
|
+
* Admin-free by design: handling needs no admin token.
|
|
7
|
+
*
|
|
8
|
+
* Spec: `../../../docs/dux-spec-webhooks.md`.
|
|
9
|
+
*/
|
|
10
|
+
export { IdbApiError, IdbError } from '../errors.js';
|
|
11
|
+
export type { IdbIssue } from '../errors.js';
|
|
12
|
+
export { defineWebhookHandlers } from './defineWebhookHandlers.js';
|
|
13
|
+
export { init } from './init.js';
|
|
14
|
+
export type { IdbWebhook, IdbWebhookAction, IdbWebhookAttempt, IdbWebhookBody, IdbWebhookChange, IdbWebhookConfig, IdbWebhookCreate, IdbWebhookEvent, IdbWebhookEventsPage, IdbWebhookEventStatus, IdbWebhookHandlers, IdbWebhookManager, IdbWebhookNodeOpts, IdbWebhookNodeRequest, IdbWebhookPayload, IdbWebhooks, IdbWebhookStatus, IdbWebhookUpdate, IdbWebhookVerifyOpts, } from './types.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACpD,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.init = exports.defineWebhookHandlers = exports.IdbError = exports.IdbApiError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `@mszr/idb-dux/webhooks` — webhook handling and management.
|
|
6
|
+
*
|
|
7
|
+
* Optional-config `init`, `defineWebhookHandlers`, the pipeline verbs
|
|
8
|
+
* (`verify`/`fetchPayload`/`dispatch`/`process`/`processNode`), and `manager`.
|
|
9
|
+
* Admin-free by design: handling needs no admin token.
|
|
10
|
+
*
|
|
11
|
+
* Spec: `../../../docs/dux-spec-webhooks.md`.
|
|
12
|
+
*/
|
|
13
|
+
// The branded error family — `e instanceof IdbError` (verify/fetch can throw).
|
|
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
|
+
var defineWebhookHandlers_js_1 = require("./defineWebhookHandlers.js");
|
|
18
|
+
Object.defineProperty(exports, "defineWebhookHandlers", { enumerable: true, get: function () { return defineWebhookHandlers_js_1.defineWebhookHandlers; } });
|
|
19
|
+
var init_js_1 = require("./init.js");
|
|
20
|
+
Object.defineProperty(exports, "init", { enumerable: true, get: function () { return init_js_1.init; } });
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACH,+EAA+E;AAC/E,0CAAoD;AAA3C,wGAAA,WAAW,OAAA;AAAE,qGAAA,QAAQ,OAAA;AAE9B,uEAAkE;AAAzD,iIAAA,qBAAqB,OAAA;AAC9B,qCAAgC;AAAvB,+FAAA,IAAI,OAAA","sourcesContent":["/**\n * `@mszr/idb-dux/webhooks` — webhook handling and management.\n *\n * Optional-config `init`, `defineWebhookHandlers`, the pipeline verbs\n * (`verify`/`fetchPayload`/`dispatch`/`process`/`processNode`), and `manager`.\n * Admin-free by design: handling needs no admin token.\n *\n * Spec: `../../../docs/dux-spec-webhooks.md`.\n */\n// The branded error family — `e instanceof IdbError` (verify/fetch can throw).\nexport { IdbApiError, IdbError } from '../errors.js'\nexport type { IdbIssue } from '../errors.js'\nexport { defineWebhookHandlers } from './defineWebhookHandlers.js'\nexport { init } from './init.js'\nexport type {\n IdbWebhook,\n IdbWebhookAction,\n IdbWebhookAttempt,\n IdbWebhookBody,\n IdbWebhookChange,\n IdbWebhookConfig,\n IdbWebhookCreate,\n IdbWebhookEvent,\n IdbWebhookEventsPage,\n IdbWebhookEventStatus,\n IdbWebhookHandlers,\n IdbWebhookManager,\n IdbWebhookNodeOpts,\n IdbWebhookNodeRequest,\n IdbWebhookPayload,\n IdbWebhooks,\n IdbWebhookStatus,\n IdbWebhookUpdate,\n IdbWebhookVerifyOpts,\n} from './types.js'\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IdbSchema } from '../schema/defineSchema.js';
|
|
2
|
+
import type { IdbRegisteredSchema } from '../schema/register.js';
|
|
3
|
+
import type { IdbWebhookConfig, IdbWebhooks } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Create a webhook handle. Call with no config to handle webhooks; pass
|
|
6
|
+
* `appId` + `adminToken` to also manage subscriptions.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const webhooks = init()
|
|
10
|
+
* await webhooks.process(handlers, request) // verify → fetch → dispatch
|
|
11
|
+
*/
|
|
12
|
+
export declare function init<S extends IdbSchema = IdbRegisteredSchema>(config?: IdbWebhookConfig): IdbWebhooks<S>;
|
|
13
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/webhooks/init.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAsB,WAAW,EAAE,MAAM,YAAY,CAAA;AAGnF;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,EAC5D,MAAM,CAAC,EAAE,gBAAgB,GACxB,WAAW,CAAC,CAAC,CAAC,CAkBhB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.init = init;
|
|
4
|
+
const webhooks_1 = require("@instantdb/webhooks");
|
|
5
|
+
/**
|
|
6
|
+
* Create a webhook handle. Call with no config to handle webhooks; pass
|
|
7
|
+
* `appId` + `adminToken` to also manage subscriptions.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const webhooks = init()
|
|
11
|
+
* await webhooks.process(handlers, request) // verify → fetch → dispatch
|
|
12
|
+
*/
|
|
13
|
+
function init(config) {
|
|
14
|
+
const wh = new webhooks_1.Webhooks({
|
|
15
|
+
appId: config?.appId,
|
|
16
|
+
adminToken: config?.adminToken,
|
|
17
|
+
apiURI: config?.apiURI,
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
manager: wh.manager,
|
|
21
|
+
verify: (input, opts) => input instanceof Request
|
|
22
|
+
? wh.validateRequest(input, opts)
|
|
23
|
+
: wh.validate(input.signature, input.body, opts),
|
|
24
|
+
fetchPayload: body => wh.fetchPayloads(body),
|
|
25
|
+
dispatch: (handlers, payload) => wh.processPayload(official(handlers), payload),
|
|
26
|
+
process: (handlers, request, opts) => wh.processRequest(official(handlers), request, opts),
|
|
27
|
+
processNode: (handlers, req, opts) => wh.processNodeRequest(official(handlers), req, opts),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The handler-map seam: a dux handler map *is* an official `WebhookHandlers`
|
|
32
|
+
* (the compat-target test proves it on a concrete schema). The generic `S`
|
|
33
|
+
* can't carry that proof through `exactOptionalPropertyTypes`, so the rename is
|
|
34
|
+
* asserted here, once, at the boundary.
|
|
35
|
+
*/
|
|
36
|
+
function official(handlers) {
|
|
37
|
+
return handlers;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/webhooks/init.ts"],"names":[],"mappings":";;AAmBA,oBAoBC;AA9BD,kDAA8C;AAE9C;;;;;;;GAOG;AACH,SAAgB,IAAI,CAClB,MAAyB;IAEzB,MAAM,EAAE,GAAG,IAAI,mBAAQ,CAAI;QACzB,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,UAAU,EAAE,MAAM,EAAE,UAAU;QAC9B,MAAM,EAAE,MAAM,EAAE,MAAM;KACvB,CAAC,CAAA;IAEF,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,MAAM,EAAE,CAAC,KAA8E,EAAE,IAAI,EAAE,EAAE,CAC/F,KAAK,YAAY,OAAO;YACtB,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC;YACjC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;QACpD,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;QAC5C,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAC/E,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC;QAC1F,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;KAC3F,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CACf,QAA+B;IAE/B,OAAO,QAAyC,CAAA;AAClD,CAAC","sourcesContent":["/**\n * Optional-config `init` — composes `@instantdb/webhooks` and renames its\n * verbs at the boundary (dux-spec-webhooks.md §3, §5). Handling needs no\n * config; `appId` + `adminToken` unlock the `manager`.\n */\nimport type { WebhookHandlers } from '@instantdb/webhooks'\nimport type { IdbSchema } from '../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../schema/register.js'\nimport type { IdbWebhookConfig, IdbWebhookHandlers, IdbWebhooks } from './types.js'\nimport { Webhooks } from '@instantdb/webhooks'\n\n/**\n * Create a webhook handle. Call with no config to handle webhooks; pass\n * `appId` + `adminToken` to also manage subscriptions.\n *\n * @example\n * const webhooks = init()\n * await webhooks.process(handlers, request) // verify → fetch → dispatch\n */\nexport function init<S extends IdbSchema = IdbRegisteredSchema>(\n config?: IdbWebhookConfig,\n): IdbWebhooks<S> {\n const wh = new Webhooks<S>({\n appId: config?.appId,\n adminToken: config?.adminToken,\n apiURI: config?.apiURI,\n })\n\n return {\n manager: wh.manager,\n verify: (input: Request | { signature: string, body: string | (() => Promise<string>) }, opts) =>\n input instanceof Request\n ? wh.validateRequest(input, opts)\n : wh.validate(input.signature, input.body, opts),\n fetchPayload: body => wh.fetchPayloads(body),\n dispatch: (handlers, payload) => wh.processPayload(official(handlers), payload),\n process: (handlers, request, opts) => wh.processRequest(official(handlers), request, opts),\n processNode: (handlers, req, opts) => wh.processNodeRequest(official(handlers), req, opts),\n }\n}\n\n/**\n * The handler-map seam: a dux handler map *is* an official `WebhookHandlers`\n * (the compat-target test proves it on a concrete schema). The generic `S`\n * can't carry that proof through `exactOptionalPropertyTypes`, so the rename is\n * asserted here, once, at the boundary.\n */\nfunction official<S extends IdbSchema>(\n handlers: IdbWebhookHandlers<S>,\n): WebhookHandlers<S> {\n return handlers as unknown as WebhookHandlers<S>\n}\n"]}
|