@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,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `/admin` boundary module — every rename from `@instantdb/admin` lives
|
|
3
|
+
* here and nowhere else (wrap-and-map, dux-spec-workspace.md §5.1). Two kinds
|
|
4
|
+
* of type live side by side:
|
|
5
|
+
*
|
|
6
|
+
* - **aliases** for shapes dux keeps verbatim (`IdbAuthUser`, the storage and
|
|
7
|
+
* stream option/result types, the debug check result): pure renames over the
|
|
8
|
+
* official types, so upstream changes ride in for free and break loudly at
|
|
9
|
+
* the wrap points.
|
|
10
|
+
* - **authored-fresh** for the subscription surface (`IdbQuerySubscription` and
|
|
11
|
+
* its payload/callback): a subscription emits the *shaped* data plane, the
|
|
12
|
+
* same `IdbQueryData<Q>` `query` returns — so its payload is dux-typed, not a
|
|
13
|
+
* pass-through of the official `InstaQLResponse` shape.
|
|
14
|
+
*
|
|
15
|
+
* Everything is registration-typed — no schema generic at any call site, with
|
|
16
|
+
* the trailing escape-hatch param for multi-schema tools.
|
|
17
|
+
*/
|
|
18
|
+
import type { CreateReadStreamOpts, CreateWriteStreamOpts, DebugCheckResult, DeleteFileResponse, FileOpts, ImpersonationOpts, InstantAdminDatabase, InstantAPIError, InstantConfig, SubscriptionReadyState, UploadFileResponse, User } from '@instantdb/admin';
|
|
19
|
+
import type { IdbQueryData, IdbQueryPageInfo } from '../query/index.js';
|
|
20
|
+
import type { IdbSchema } from '../schema/defineSchema.js';
|
|
21
|
+
import type { IdbRegisteredSchema } from '../schema/register.js';
|
|
22
|
+
/**
|
|
23
|
+
* `init` config — everything the official admin SDK supports, minus
|
|
24
|
+
* `useDateObjects` (dux types `i.date()` fields as the wire format on every
|
|
25
|
+
* surface) and with `schema` typed as your registered `S`. The schema unlocks
|
|
26
|
+
* shaping and typed `ruleParams`; `apiURI` is for self-hosting.
|
|
27
|
+
*/
|
|
28
|
+
export type IdbAdminConfig<S extends IdbSchema = IdbRegisteredSchema> = Omit<InstantConfig<S, false>, 'useDateObjects' | 'schema'> & {
|
|
29
|
+
schema?: S;
|
|
30
|
+
};
|
|
31
|
+
/** The authenticated user (official `User`). */
|
|
32
|
+
export type IdbAuthUser = User;
|
|
33
|
+
/** The scope `asUser` accepts — a user email, an auth token, or a guest. */
|
|
34
|
+
export type IdbAdminImpersonation = ImpersonationOpts;
|
|
35
|
+
/** Per-file upload metadata (official `FileOpts`). */
|
|
36
|
+
export type IdbStorageFileOpts = FileOpts;
|
|
37
|
+
/** The result of a storage upload. */
|
|
38
|
+
export type IdbStorageUploadResult = UploadFileResponse;
|
|
39
|
+
/** The result of a storage delete. */
|
|
40
|
+
export type IdbStorageDeleteResult = DeleteFileResponse;
|
|
41
|
+
/** Options for opening a read stream. */
|
|
42
|
+
export type IdbStreamReadOpts = CreateReadStreamOpts;
|
|
43
|
+
/** Options for opening a write stream. */
|
|
44
|
+
export type IdbStreamWriteOpts = CreateWriteStreamOpts;
|
|
45
|
+
type AdminStreams = InstantAdminDatabase<IdbSchema, false>['streams'];
|
|
46
|
+
/** A live readable stream of string chunks. */
|
|
47
|
+
export type IdbReadableStream = ReturnType<AdminStreams['createReadStream']>;
|
|
48
|
+
/** A live writable stream of string chunks. */
|
|
49
|
+
export type IdbWritableStream = ReturnType<AdminStreams['createWriteStream']>;
|
|
50
|
+
/** One entity's permission-check result from `debugQuery` (official `DebugCheckResult`). */
|
|
51
|
+
export type IdbAdminCheckResult = DebugCheckResult;
|
|
52
|
+
/** The summary `debugTransact` returns — tx id + an all-checks-ok flag. */
|
|
53
|
+
export type IdbAdminDebugTransactResult = Awaited<ReturnType<InstantAdminDatabase<IdbSchema, false>['debugTransact']>>;
|
|
54
|
+
/** The acknowledgement a write returns. */
|
|
55
|
+
export type IdbAdminTransactResult = Awaited<ReturnType<InstantAdminDatabase<IdbSchema, false>['transact']>>;
|
|
56
|
+
/** Whether a subscription's connection is open, connecting, or closed. */
|
|
57
|
+
export type IdbSubscriptionReadyState = SubscriptionReadyState;
|
|
58
|
+
/**
|
|
59
|
+
* Debug info about a subscription's session. Mirrors the official
|
|
60
|
+
* `SubscribeQuerySessionInfo` shape, authored fresh because that type isn't
|
|
61
|
+
* separately exported (the surrounding payload generic can't be instantiated
|
|
62
|
+
* without a concrete query to satisfy its `ValidQuery` constraint).
|
|
63
|
+
*/
|
|
64
|
+
export interface IdbQuerySessionInfo {
|
|
65
|
+
machineId: string;
|
|
66
|
+
sessionId: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* One emission from `subscribeQuery` — `data` is the shaped data plane
|
|
70
|
+
* (`IdbQueryData<Q>`, identical to `query`'s return), so a subscription and a
|
|
71
|
+
* one-shot of the same query deliver the same shape.
|
|
72
|
+
*/
|
|
73
|
+
export type IdbQuerySubscriptionPayload<Q, S extends IdbSchema = IdbRegisteredSchema> = {
|
|
74
|
+
type: 'ok';
|
|
75
|
+
data: IdbQueryData<Q, S>;
|
|
76
|
+
pageInfo: IdbQueryPageInfo<Q> | undefined;
|
|
77
|
+
sessionInfo: IdbQuerySessionInfo | null;
|
|
78
|
+
} | {
|
|
79
|
+
type: 'error';
|
|
80
|
+
error: InstantAPIError;
|
|
81
|
+
readyState: IdbSubscriptionReadyState;
|
|
82
|
+
isClosed: boolean;
|
|
83
|
+
sessionInfo: IdbQuerySessionInfo | null;
|
|
84
|
+
};
|
|
85
|
+
/** The callback form of `subscribeQuery`. */
|
|
86
|
+
export type IdbQuerySubscriptionCallback<Q, S extends IdbSchema = IdbRegisteredSchema> = (payload: IdbQuerySubscriptionPayload<Q, S>) => void;
|
|
87
|
+
/**
|
|
88
|
+
* A live subscription handle (official `SubscribeQueryResponse`, payloads
|
|
89
|
+
* dux-shaped). Iterate it with `for await`, or pass a callback to
|
|
90
|
+
* `subscribeQuery`; `close()` stops it.
|
|
91
|
+
*/
|
|
92
|
+
export interface IdbQuerySubscription<Q, S extends IdbSchema = IdbRegisteredSchema> {
|
|
93
|
+
/** Stop the subscription and close the connection. */
|
|
94
|
+
close: () => void;
|
|
95
|
+
/** Guards against synchronous iteration. */
|
|
96
|
+
[Symbol.iterator]: () => never;
|
|
97
|
+
/** Async iterator of shaped query payloads. */
|
|
98
|
+
[Symbol.asyncIterator]: () => AsyncIterableIterator<IdbQuerySubscriptionPayload<Q, S>>;
|
|
99
|
+
/** Ready state of the connection. */
|
|
100
|
+
readonly readyState: IdbSubscriptionReadyState;
|
|
101
|
+
/** `true` once closed and no more payloads will arrive. */
|
|
102
|
+
readonly isClosed: boolean;
|
|
103
|
+
/** Session debug info; `null` while the session initializes. */
|
|
104
|
+
readonly sessionInfo: IdbQuerySessionInfo | null;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* `debugQuery` options — typed `ruleParams` plus the rules/ip/origin overrides
|
|
108
|
+
* the permission inspector accepts.
|
|
109
|
+
*/
|
|
110
|
+
export interface IdbAdminDebugQueryOpts<S extends IdbSchema = IdbRegisteredSchema> {
|
|
111
|
+
ruleParams?: import('../query/index.js').IdbSchemaRuleParams<S>;
|
|
112
|
+
rules?: unknown;
|
|
113
|
+
ip?: string | null | undefined;
|
|
114
|
+
origin?: string | null | undefined;
|
|
115
|
+
cardinalityInference?: boolean;
|
|
116
|
+
}
|
|
117
|
+
/** `debugTransact` options — rules/ip/origin overrides for the inspector. */
|
|
118
|
+
export interface IdbAdminDebugTransactOpts {
|
|
119
|
+
rules?: unknown;
|
|
120
|
+
ip?: string | null | undefined;
|
|
121
|
+
origin?: string | null | undefined;
|
|
122
|
+
}
|
|
123
|
+
export {};
|
|
124
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/admin/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,IAAI,EACL,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAKhE;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,IAAI,IAAI,CAC1E,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,EACvB,gBAAgB,GAAG,QAAQ,CAC5B,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,CAAA;AAKlB,gDAAgD;AAChD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAA;AAE9B,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAA;AAErD,sDAAsD;AACtD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AACzC,sCAAsC;AACtC,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAA;AACvD,sCAAsC;AACtC,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAA;AAEvD,yCAAyC;AACzC,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAA;AACpD,0CAA0C;AAC1C,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,CAAA;AAEtD,KAAK,YAAY,GAAG,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAA;AACrE,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAA;AAC5E,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAA;AAK7E,4FAA4F;AAC5F,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AAClD,2EAA2E;AAC3E,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAC/C,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CACpE,CAAA;AACD,2CAA2C;AAC3C,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAC/D,CAAA;AAKD,0EAA0E;AAC1E,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,CACrC,CAAC,EACD,CAAC,SAAS,SAAS,GAAG,mBAAmB,IAErC;IACF,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACzC,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAA;CACxC,GACC;IACA,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,eAAe,CAAA;IACtB,UAAU,EAAE,yBAAyB,CAAA;IACrC,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAA;CACxC,CAAA;AAEH,6CAA6C;AAC7C,MAAM,MAAM,4BAA4B,CACtC,CAAC,EACD,CAAC,SAAS,SAAS,GAAG,mBAAmB,IACvC,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAA;AAExD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CACnC,CAAC,EACD,CAAC,SAAS,SAAS,GAAG,mBAAmB;IAEzC,sDAAsD;IACtD,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,4CAA4C;IAC5C,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,CAAA;IAC9B,+CAA+C;IAC/C,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,qBAAqB,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtF,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAA;IAC9C,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAA;CACjD;AAKD;;;GAGG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB;IAC/E,UAAU,CAAC,EAAE,OAAO,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAA;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/admin/types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * The `/admin` boundary module — every rename from `@instantdb/admin` lives\n * here and nowhere else (wrap-and-map, dux-spec-workspace.md §5.1). Two kinds\n * of type live side by side:\n *\n * - **aliases** for shapes dux keeps verbatim (`IdbAuthUser`, the storage and\n * stream option/result types, the debug check result): pure renames over the\n * official types, so upstream changes ride in for free and break loudly at\n * the wrap points.\n * - **authored-fresh** for the subscription surface (`IdbQuerySubscription` and\n * its payload/callback): a subscription emits the *shaped* data plane, the\n * same `IdbQueryData<Q>` `query` returns — so its payload is dux-typed, not a\n * pass-through of the official `InstaQLResponse` shape.\n *\n * Everything is registration-typed — no schema generic at any call site, with\n * the trailing escape-hatch param for multi-schema tools.\n */\nimport type {\n CreateReadStreamOpts,\n CreateWriteStreamOpts,\n DebugCheckResult,\n DeleteFileResponse,\n FileOpts,\n ImpersonationOpts,\n InstantAdminDatabase,\n InstantAPIError,\n InstantConfig,\n SubscriptionReadyState,\n UploadFileResponse,\n User,\n} from '@instantdb/admin'\nimport type { IdbQueryData, IdbQueryPageInfo } from '../query/index.js'\nimport type { IdbSchema } from '../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../schema/register.js'\n\n// ==========\n// init config\n\n/**\n * `init` config — everything the official admin SDK supports, minus\n * `useDateObjects` (dux types `i.date()` fields as the wire format on every\n * surface) and with `schema` typed as your registered `S`. The schema unlocks\n * shaping and typed `ruleParams`; `apiURI` is for self-hosting.\n */\nexport type IdbAdminConfig<S extends IdbSchema = IdbRegisteredSchema> = Omit<\n InstantConfig<S, false>,\n 'useDateObjects' | 'schema'\n> & { schema?: S }\n\n// ==========\n// auth, storage, streams — official shapes, dux names\n\n/** The authenticated user (official `User`). */\nexport type IdbAuthUser = User\n\n/** The scope `asUser` accepts — a user email, an auth token, or a guest. */\nexport type IdbAdminImpersonation = ImpersonationOpts\n\n/** Per-file upload metadata (official `FileOpts`). */\nexport type IdbStorageFileOpts = FileOpts\n/** The result of a storage upload. */\nexport type IdbStorageUploadResult = UploadFileResponse\n/** The result of a storage delete. */\nexport type IdbStorageDeleteResult = DeleteFileResponse\n\n/** Options for opening a read stream. */\nexport type IdbStreamReadOpts = CreateReadStreamOpts\n/** Options for opening a write stream. */\nexport type IdbStreamWriteOpts = CreateWriteStreamOpts\n\ntype AdminStreams = InstantAdminDatabase<IdbSchema, false>['streams']\n/** A live readable stream of string chunks. */\nexport type IdbReadableStream = ReturnType<AdminStreams['createReadStream']>\n/** A live writable stream of string chunks. */\nexport type IdbWritableStream = ReturnType<AdminStreams['createWriteStream']>\n\n// ==========\n// debug + transact results\n\n/** One entity's permission-check result from `debugQuery` (official `DebugCheckResult`). */\nexport type IdbAdminCheckResult = DebugCheckResult\n/** The summary `debugTransact` returns — tx id + an all-checks-ok flag. */\nexport type IdbAdminDebugTransactResult = Awaited<\n ReturnType<InstantAdminDatabase<IdbSchema, false>['debugTransact']>\n>\n/** The acknowledgement a write returns. */\nexport type IdbAdminTransactResult = Awaited<\n ReturnType<InstantAdminDatabase<IdbSchema, false>['transact']>\n>\n\n// ==========\n// the subscription — authored fresh so payloads carry the shaped data plane\n\n/** Whether a subscription's connection is open, connecting, or closed. */\nexport type IdbSubscriptionReadyState = SubscriptionReadyState\n\n/**\n * Debug info about a subscription's session. Mirrors the official\n * `SubscribeQuerySessionInfo` shape, authored fresh because that type isn't\n * separately exported (the surrounding payload generic can't be instantiated\n * without a concrete query to satisfy its `ValidQuery` constraint).\n */\nexport interface IdbQuerySessionInfo {\n machineId: string\n sessionId: string\n}\n\n/**\n * One emission from `subscribeQuery` — `data` is the shaped data plane\n * (`IdbQueryData<Q>`, identical to `query`'s return), so a subscription and a\n * one-shot of the same query deliver the same shape.\n */\nexport type IdbQuerySubscriptionPayload<\n Q,\n S extends IdbSchema = IdbRegisteredSchema,\n>\n = | {\n type: 'ok'\n data: IdbQueryData<Q, S>\n pageInfo: IdbQueryPageInfo<Q> | undefined\n sessionInfo: IdbQuerySessionInfo | null\n }\n | {\n type: 'error'\n error: InstantAPIError\n readyState: IdbSubscriptionReadyState\n isClosed: boolean\n sessionInfo: IdbQuerySessionInfo | null\n }\n\n/** The callback form of `subscribeQuery`. */\nexport type IdbQuerySubscriptionCallback<\n Q,\n S extends IdbSchema = IdbRegisteredSchema,\n> = (payload: IdbQuerySubscriptionPayload<Q, S>) => void\n\n/**\n * A live subscription handle (official `SubscribeQueryResponse`, payloads\n * dux-shaped). Iterate it with `for await`, or pass a callback to\n * `subscribeQuery`; `close()` stops it.\n */\nexport interface IdbQuerySubscription<\n Q,\n S extends IdbSchema = IdbRegisteredSchema,\n> {\n /** Stop the subscription and close the connection. */\n close: () => void\n /** Guards against synchronous iteration. */\n [Symbol.iterator]: () => never\n /** Async iterator of shaped query payloads. */\n [Symbol.asyncIterator]: () => AsyncIterableIterator<IdbQuerySubscriptionPayload<Q, S>>\n /** Ready state of the connection. */\n readonly readyState: IdbSubscriptionReadyState\n /** `true` once closed and no more payloads will arrive. */\n readonly isClosed: boolean\n /** Session debug info; `null` while the session initializes. */\n readonly sessionInfo: IdbQuerySessionInfo | null\n}\n\n// ==========\n// debug-query options\n\n/**\n * `debugQuery` options — typed `ruleParams` plus the rules/ip/origin overrides\n * the permission inspector accepts.\n */\nexport interface IdbAdminDebugQueryOpts<S extends IdbSchema = IdbRegisteredSchema> {\n ruleParams?: import('../query/index.js').IdbSchemaRuleParams<S>\n rules?: unknown\n ip?: string | null | undefined\n origin?: string | null | undefined\n cardinalityInference?: boolean\n}\n\n/** `debugTransact` options — rules/ip/origin overrides for the inspector. */\nexport interface IdbAdminDebugTransactOpts {\n rules?: unknown\n ip?: string | null | undefined\n origin?: string | null | undefined\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adminDb.webhooks` — the `/webhooks` surface, admin-token wired
|
|
3
|
+
* ([dux-spec-admin.md §5]). Identical to `webhooks.init({ appId, adminToken })`
|
|
4
|
+
* by construction: the official webhooks package enters only through the
|
|
5
|
+
* webhooks layer, never `@instantdb/admin`, keeping handling admin-free.
|
|
6
|
+
*/
|
|
7
|
+
import type { IdbSchema } from '../schema/defineSchema.js';
|
|
8
|
+
import type { IdbRegisteredSchema } from '../schema/register.js';
|
|
9
|
+
import type { IdbWebhookConfig, IdbWebhooks } from '../webhooks/index.js';
|
|
10
|
+
export declare function adminWebhooks<S extends IdbSchema = IdbRegisteredSchema>(config: IdbWebhookConfig): IdbWebhooks<S>;
|
|
11
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../src/admin/webhooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGzE,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,EACrE,MAAM,EAAE,gBAAgB,GACvB,WAAW,CAAC,CAAC,CAAC,CAEhB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adminWebhooks = adminWebhooks;
|
|
4
|
+
const index_js_1 = require("../webhooks/index.js");
|
|
5
|
+
function adminWebhooks(config) {
|
|
6
|
+
return (0, index_js_1.init)(config);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../src/admin/webhooks.ts"],"names":[],"mappings":";;AAWA,sCAIC;AAND,mDAA2D;AAE3D,SAAgB,aAAa,CAC3B,MAAwB;IAExB,OAAO,IAAA,eAAY,EAAI,MAAM,CAAC,CAAA;AAChC,CAAC","sourcesContent":["/**\n * `adminDb.webhooks` — the `/webhooks` surface, admin-token wired\n * ([dux-spec-admin.md §5]). Identical to `webhooks.init({ appId, adminToken })`\n * by construction: the official webhooks package enters only through the\n * webhooks layer, never `@instantdb/admin`, keeping handling admin-free.\n */\nimport type { IdbSchema } from '../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../schema/register.js'\nimport type { IdbWebhookConfig, IdbWebhooks } from '../webhooks/index.js'\nimport { init as webhooksInit } from '../webhooks/index.js'\n\nexport function adminWebhooks<S extends IdbSchema = IdbRegisteredSchema>(\n config: IdbWebhookConfig,\n): IdbWebhooks<S> {\n return webhooksInit<S>(config)\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The error family — the one branded value-name exception ([conventions §2]):
|
|
3
|
+
* `e instanceof IdbError` must read branded next to other libraries' errors.
|
|
4
|
+
*
|
|
5
|
+
* These are core's error *classes*, re-exported under dux names. Keeping the
|
|
6
|
+
* official class (not a re-thrown wrapper) is what makes `instanceof` work:
|
|
7
|
+
* every error dux surfaces — client reactor and admin fetch alike — is one of
|
|
8
|
+
* these, since admin's `InstantAPIError extends` core's `InstantError`. Renamed
|
|
9
|
+
* at the boundary, behavior untouched ([dux-vision.md §1.2]).
|
|
10
|
+
*/
|
|
11
|
+
export { InstantAPIError as IdbApiError, InstantError as IdbError, } from '@instantdb/core';
|
|
12
|
+
export type { InstantIssue as IdbIssue } from '@instantdb/core';
|
|
13
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAEL,eAAe,IAAI,WAAW,EAE9B,YAAY,IAAI,QAAQ,GACzB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,YAAY,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IdbError = exports.IdbApiError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The error family — the one branded value-name exception ([conventions §2]):
|
|
6
|
+
* `e instanceof IdbError` must read branded next to other libraries' errors.
|
|
7
|
+
*
|
|
8
|
+
* These are core's error *classes*, re-exported under dux names. Keeping the
|
|
9
|
+
* official class (not a re-thrown wrapper) is what makes `instanceof` work:
|
|
10
|
+
* every error dux surfaces — client reactor and admin fetch alike — is one of
|
|
11
|
+
* these, since admin's `InstantAPIError extends` core's `InstantError`. Renamed
|
|
12
|
+
* at the boundary, behavior untouched ([dux-vision.md §1.2]).
|
|
13
|
+
*/
|
|
14
|
+
var core_1 = require("@instantdb/core");
|
|
15
|
+
// The API-level error (status + issue body); thrown by the admin fetch path.
|
|
16
|
+
Object.defineProperty(exports, "IdbApiError", { enumerable: true, get: function () { return core_1.InstantAPIError; } });
|
|
17
|
+
// The base error every dux error extends — `e instanceof IdbError` catches all.
|
|
18
|
+
Object.defineProperty(exports, "IdbError", { enumerable: true, get: function () { return core_1.InstantError; } });
|
|
19
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,wCAKwB;AAJtB,6EAA6E;AAC7E,mGAAA,eAAe,OAAe;AAC9B,gFAAgF;AAChF,gGAAA,YAAY,OAAY","sourcesContent":["/**\n * The error family — the one branded value-name exception ([conventions §2]):\n * `e instanceof IdbError` must read branded next to other libraries' errors.\n *\n * These are core's error *classes*, re-exported under dux names. Keeping the\n * official class (not a re-thrown wrapper) is what makes `instanceof` work:\n * every error dux surfaces — client reactor and admin fetch alike — is one of\n * these, since admin's `InstantAPIError extends` core's `InstantError`. Renamed\n * at the boundary, behavior untouched ([dux-vision.md §1.2]).\n */\nexport {\n // The API-level error (status + issue body); thrown by the admin fetch path.\n InstantAPIError as IdbApiError,\n // The base error every dux error extends — `e instanceof IdbError` catches all.\n InstantError as IdbError,\n} from '@instantdb/core'\nexport type { InstantIssue as IdbIssue } from '@instantdb/core'\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@mszr/idb-dux` — the framework-agnostic foundation.
|
|
3
|
+
*
|
|
4
|
+
* Schema authoring (`defineSchema`, `i`), query authoring (`q`, `defineQuery`),
|
|
5
|
+
* the typed-tx machinery, the `Idb*` type utilities, and `id`/`lookup`.
|
|
6
|
+
*
|
|
7
|
+
* Spec: `../../docs/dux-spec-root.md`.
|
|
8
|
+
*/
|
|
9
|
+
export * from './errors.js';
|
|
10
|
+
export * from './query/index.js';
|
|
11
|
+
export * from './schema/index.js';
|
|
12
|
+
export * from './tx/index.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `@mszr/idb-dux` — the framework-agnostic foundation.
|
|
4
|
+
*
|
|
5
|
+
* Schema authoring (`defineSchema`, `i`), query authoring (`q`, `defineQuery`),
|
|
6
|
+
* the typed-tx machinery, the `Idb*` type utilities, and `id`/`lookup`.
|
|
7
|
+
*
|
|
8
|
+
* Spec: `../../docs/dux-spec-root.md`.
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
__exportStar(require("./errors.js"), exports);
|
|
26
|
+
__exportStar(require("./query/index.js"), exports);
|
|
27
|
+
__exportStar(require("./schema/index.js"), exports);
|
|
28
|
+
__exportStar(require("./tx/index.js"), exports);
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;AAEH,8CAA2B;AAC3B,mDAAgC;AAChC,oDAAiC;AACjC,gDAA6B","sourcesContent":["/**\n * `@mszr/idb-dux` — the framework-agnostic foundation.\n *\n * Schema authoring (`defineSchema`, `i`), query authoring (`q`, `defineQuery`),\n * the typed-tx machinery, the `Idb*` type utilities, and `id`/`lookup`.\n *\n * Spec: `../../docs/dux-spec-root.md`.\n */\n\nexport * from './errors.js'\nexport * from './query/index.js'\nexport * from './schema/index.js'\nexport * from './tx/index.js'\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `defineAuthSyncHandler` — the route handler for Instant's `firstPartyPath`
|
|
3
|
+
* auth sync ([dux-spec-nuxt.md §3]). One line to mount.
|
|
4
|
+
*
|
|
5
|
+
* Intentional cookie divergence: the official handler stores the full user JSON
|
|
6
|
+
* in `instant_user_<appId>`. dux stores only the `refresh_token` in
|
|
7
|
+
* `instant_token_<appId>` — a smaller cookie, less user data on the wire; the
|
|
8
|
+
* server kit re-derives the user from the token when a mode asks for it.
|
|
9
|
+
* Cookie attributes (SameSite/secure/path/expiry) follow the official handler;
|
|
10
|
+
* `createInstantRouteHandler` remains re-exported for the official shape.
|
|
11
|
+
*/
|
|
12
|
+
import type { EventHandler } from 'h3';
|
|
13
|
+
import type { IdbAuthSyncConfig } from './types.js';
|
|
14
|
+
export declare function defineAuthSyncHandler(config: IdbAuthSyncConfig): EventHandler;
|
|
15
|
+
//# sourceMappingURL=defineAuthSyncHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineAuthSyncHandler.d.ts","sourceRoot":"","sources":["../../../src/nuxt/defineAuthSyncHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAiBnD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY,CAmC7E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineAuthSyncHandler = defineAuthSyncHandler;
|
|
4
|
+
const h3_1 = require("h3");
|
|
5
|
+
const COOKIE_OPTS = {
|
|
6
|
+
path: '/',
|
|
7
|
+
httpOnly: true,
|
|
8
|
+
secure: true,
|
|
9
|
+
sameSite: 'strict',
|
|
10
|
+
maxAge: 604800, // 7 days, matching the official handler
|
|
11
|
+
};
|
|
12
|
+
function defineAuthSyncHandler(config) {
|
|
13
|
+
return (0, h3_1.defineEventHandler)(async (event) => {
|
|
14
|
+
const appId = config.getAppId(event);
|
|
15
|
+
let body;
|
|
16
|
+
try {
|
|
17
|
+
body = await (0, h3_1.readBody)(event);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
(0, h3_1.setResponseStatus)(event, 400);
|
|
21
|
+
return { ok: false, error: 'Invalid JSON body' };
|
|
22
|
+
}
|
|
23
|
+
if (!body?.type) {
|
|
24
|
+
(0, h3_1.setResponseStatus)(event, 400);
|
|
25
|
+
return { ok: false, error: 'Missing "type" field' };
|
|
26
|
+
}
|
|
27
|
+
if (body.appId !== appId) {
|
|
28
|
+
(0, h3_1.setResponseStatus)(event, 403);
|
|
29
|
+
return { ok: false, error: 'App ID mismatch' };
|
|
30
|
+
}
|
|
31
|
+
if (body.type !== 'sync-user') {
|
|
32
|
+
(0, h3_1.setResponseStatus)(event, 400);
|
|
33
|
+
return { ok: false, error: `Unknown type: ${body.type}` };
|
|
34
|
+
}
|
|
35
|
+
const name = `instant_token_${appId}`;
|
|
36
|
+
const token = body.user?.refresh_token;
|
|
37
|
+
if (token)
|
|
38
|
+
(0, h3_1.setCookie)(event, name, token, COOKIE_OPTS);
|
|
39
|
+
else
|
|
40
|
+
(0, h3_1.deleteCookie)(event, name, { path: COOKIE_OPTS.path, httpOnly: true, secure: true, sameSite: 'strict' });
|
|
41
|
+
return { ok: true };
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=defineAuthSyncHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineAuthSyncHandler.js","sourceRoot":"","sources":["../../../src/nuxt/defineAuthSyncHandler.ts"],"names":[],"mappings":";;AA6BA,sDAmCC;AAnDD,2BAA6F;AAE7F,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,MAAM,EAAE,wCAAwC;CAChD,CAAA;AAQV,SAAgB,qBAAqB,CAAC,MAAyB;IAC7D,OAAO,IAAA,uBAAkB,EAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAEpC,IAAI,IAA0B,CAAA;QAC9B,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAA,aAAQ,EAAW,KAAK,CAAC,CAAA;QACxC,CAAC;QACD,MAAM,CAAC;YACL,IAAA,sBAAiB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;QAClD,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAChB,IAAA,sBAAiB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAA;QACrD,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACzB,IAAA,sBAAiB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;QAChD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,IAAA,sBAAiB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAA;QAC3D,CAAC;QAED,MAAM,IAAI,GAAG,iBAAiB,KAAK,EAAE,CAAA;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAA;QACtC,IAAI,KAAK;YACP,IAAA,cAAS,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;;YAE1C,IAAA,iBAAY,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEzG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["/**\n * `defineAuthSyncHandler` — the route handler for Instant's `firstPartyPath`\n * auth sync ([dux-spec-nuxt.md §3]). One line to mount.\n *\n * Intentional cookie divergence: the official handler stores the full user JSON\n * in `instant_user_<appId>`. dux stores only the `refresh_token` in\n * `instant_token_<appId>` — a smaller cookie, less user data on the wire; the\n * server kit re-derives the user from the token when a mode asks for it.\n * Cookie attributes (SameSite/secure/path/expiry) follow the official handler;\n * `createInstantRouteHandler` remains re-exported for the official shape.\n */\nimport type { EventHandler } from 'h3'\nimport type { IdbAuthSyncConfig } from './types.js'\nimport { defineEventHandler, deleteCookie, readBody, setCookie, setResponseStatus } from 'h3'\n\nconst COOKIE_OPTS = {\n path: '/',\n httpOnly: true,\n secure: true,\n sameSite: 'strict',\n maxAge: 604800, // 7 days, matching the official handler\n} as const\n\ninterface SyncBody {\n type?: string\n appId?: string\n user?: { refresh_token?: string } | null\n}\n\nexport function defineAuthSyncHandler(config: IdbAuthSyncConfig): EventHandler {\n return defineEventHandler(async (event) => {\n const appId = config.getAppId(event)\n\n let body: SyncBody | undefined\n try {\n body = await readBody<SyncBody>(event)\n }\n catch {\n setResponseStatus(event, 400)\n return { ok: false, error: 'Invalid JSON body' }\n }\n\n if (!body?.type) {\n setResponseStatus(event, 400)\n return { ok: false, error: 'Missing \"type\" field' }\n }\n if (body.appId !== appId) {\n setResponseStatus(event, 403)\n return { ok: false, error: 'App ID mismatch' }\n }\n if (body.type !== 'sync-user') {\n setResponseStatus(event, 400)\n return { ok: false, error: `Unknown type: ${body.type}` }\n }\n\n const name = `instant_token_${appId}`\n const token = body.user?.refresh_token\n if (token)\n setCookie(event, name, token, COOKIE_OPTS)\n else\n deleteCookie(event, name, { path: COOKIE_OPTS.path, httpOnly: true, secure: true, sameSite: 'strict' })\n\n return { ok: true }\n })\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IdbSchema } from '../schema/defineSchema.js';
|
|
2
|
+
import type { IdbRegisteredSchema } from '../schema/register.js';
|
|
3
|
+
import type { IdbServerKitConfig, IdbServerKitFactory } from './types.js';
|
|
4
|
+
export declare function defineServerKit<S extends IdbSchema = IdbRegisteredSchema>(config: IdbServerKitConfig<S>): IdbServerKitFactory<S>;
|
|
5
|
+
//# sourceMappingURL=defineServerKit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineServerKit.d.ts","sourceRoot":"","sources":["../../../src/nuxt/defineServerKit.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,YAAY,CAAA;AAQnB,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,EACvE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,mBAAmB,CAAC,CAAC,CAAC,CA0DxB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineServerKit = defineServerKit;
|
|
4
|
+
const h3_1 = require("h3");
|
|
5
|
+
const index_js_1 = require("../admin/index.js");
|
|
6
|
+
const CTX_USER = 'idbDuxKitUser';
|
|
7
|
+
const CTX_TOKEN = 'idbDuxKitToken';
|
|
8
|
+
const CTX_USERDB = 'idbDuxKitUserDb';
|
|
9
|
+
function defineServerKit(config) {
|
|
10
|
+
let adminDb;
|
|
11
|
+
// Built once per process — only the per-user work is per-request.
|
|
12
|
+
const getAdminDb = (event) => (adminDb ??= (0, index_js_1.init)({
|
|
13
|
+
appId: config.getAppId(event),
|
|
14
|
+
adminToken: config.getAdminToken(event),
|
|
15
|
+
schema: config.schema,
|
|
16
|
+
...(config.apiURI ? { apiURI: config.apiURI } : {}),
|
|
17
|
+
}));
|
|
18
|
+
// One token read + one verification promise per request, shared by every
|
|
19
|
+
// kit call on the same event (concurrent calls await the same promise).
|
|
20
|
+
async function resolveAuth(event, db, appId) {
|
|
21
|
+
const ctx = event.context;
|
|
22
|
+
if (!(CTX_USER in ctx)) {
|
|
23
|
+
const token = (0, h3_1.getCookie)(event, `instant_token_${appId}`) || undefined;
|
|
24
|
+
ctx[CTX_TOKEN] = token;
|
|
25
|
+
ctx[CTX_USER] = token
|
|
26
|
+
? db.auth.verifyToken(token).then((u) => u, () => undefined)
|
|
27
|
+
: Promise.resolve(undefined);
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
user: await ctx[CTX_USER],
|
|
31
|
+
token: ctx[CTX_TOKEN],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async function useServerKit(event, mode) {
|
|
35
|
+
const db = getAdminDb(event);
|
|
36
|
+
if (!mode)
|
|
37
|
+
return { adminDb: db };
|
|
38
|
+
const { user, token } = await resolveAuth(event, db, config.getAppId(event));
|
|
39
|
+
if ((mode === 'user' || mode === 'userDb') && !user)
|
|
40
|
+
throw (0, h3_1.createError)({ statusCode: 401, statusMessage: 'Unauthorized' });
|
|
41
|
+
if (mode === 'user' || mode === 'user?')
|
|
42
|
+
return { adminDb: db, user };
|
|
43
|
+
const ctx = event.context;
|
|
44
|
+
const userDb = user && token ? (ctx[CTX_USERDB] ??= db.asUser({ token })) : undefined;
|
|
45
|
+
return { adminDb: db, user, userDb };
|
|
46
|
+
}
|
|
47
|
+
return useServerKit;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=defineServerKit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineServerKit.js","sourceRoot":"","sources":["../../../src/nuxt/defineServerKit.ts"],"names":[],"mappings":";;AA2BA,0CA4DC;AAnED,2BAA2C;AAC3C,gDAAqD;AAErD,MAAM,QAAQ,GAAG,eAAe,CAAA;AAChC,MAAM,SAAS,GAAG,gBAAgB,CAAA;AAClC,MAAM,UAAU,GAAG,iBAAiB,CAAA;AAEpC,SAAgB,eAAe,CAC7B,MAA6B;IAE7B,IAAI,OAAsC,CAAA;IAE1C,kEAAkE;IAClE,MAAM,UAAU,GAAG,CAAC,KAAc,EAAqB,EAAE,CACvD,CAAC,OAAO,KAAK,IAAA,eAAS,EAAI;QACxB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC,CAAC,CAAA;IAEL,yEAAyE;IACzE,wEAAwE;IACxE,KAAK,UAAU,WAAW,CACxB,KAAc,EACd,EAAqB,EACrB,KAAa;QAEb,MAAM,GAAG,GAAG,KAAK,CAAC,OAAkC,CAAA;QACpD,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAA,cAAS,EAAC,KAAK,EAAE,iBAAiB,KAAK,EAAE,CAAC,IAAI,SAAS,CAAA;YACrE,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;YACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK;gBACnB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAC7B,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,EACrB,GAAG,EAAE,CAAC,SAAS,CAChB;gBACH,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAChC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,MAAO,GAAG,CAAC,QAAQ,CAAsC;YAC/D,KAAK,EAAE,GAAG,CAAC,SAAS,CAAuB;SAC5C,CAAA;IACH,CAAC;IAED,KAAK,UAAU,YAAY,CACzB,KAAc,EACd,IAAuB;QAEvB,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,CAAC,IAAI;YACP,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAExB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI;YACjD,MAAM,IAAA,gBAAW,EAAC,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,CAAA;QAEvE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO;YACrC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QAE9B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAkC,CAAA;QACpD,MAAM,MAAM,GACR,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1E,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACtC,CAAC;IAED,OAAO,YAAsC,CAAA;AAC/C,CAAC","sourcesContent":["/**\n * `defineServerKit` — the per-request kit factory ([dux-spec-nuxt.md §2]). One\n * factory at module scope, one `await` in the route, typed results; the route\n * declares its auth strictness (the mode) and the kit's keys follow, so there\n * is no hand-rolled token reading, verification, or 401 boilerplate.\n *\n * Request-scoped caching (principle 8): the admin db is built once per process,\n * and the token read + verification promise + per-request `userDb` are cached on\n * `event.context`, so repeated kit calls in one request reuse them — and\n * concurrent calls share a single verification.\n */\nimport type { H3Event } from 'h3'\nimport type { IdbAdminClient, IdbAuthUser } from '../admin/index.js'\nimport type { IdbSchema } from '../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../schema/register.js'\nimport type {\n IdbServerKitConfig,\n IdbServerKitFactory,\n IdbServerKitMode,\n} from './types.js'\nimport { createError, getCookie } from 'h3'\nimport { init as adminInit } from '../admin/index.js'\n\nconst CTX_USER = 'idbDuxKitUser'\nconst CTX_TOKEN = 'idbDuxKitToken'\nconst CTX_USERDB = 'idbDuxKitUserDb'\n\nexport function defineServerKit<S extends IdbSchema = IdbRegisteredSchema>(\n config: IdbServerKitConfig<S>,\n): IdbServerKitFactory<S> {\n let adminDb: IdbAdminClient<S> | undefined\n\n // Built once per process — only the per-user work is per-request.\n const getAdminDb = (event: H3Event): IdbAdminClient<S> =>\n (adminDb ??= adminInit<S>({\n appId: config.getAppId(event),\n adminToken: config.getAdminToken(event),\n schema: config.schema,\n ...(config.apiURI ? { apiURI: config.apiURI } : {}),\n }))\n\n // One token read + one verification promise per request, shared by every\n // kit call on the same event (concurrent calls await the same promise).\n async function resolveAuth(\n event: H3Event,\n db: IdbAdminClient<S>,\n appId: string,\n ): Promise<{ user: IdbAuthUser | undefined, token: string | undefined }> {\n const ctx = event.context as Record<string, unknown>\n if (!(CTX_USER in ctx)) {\n const token = getCookie(event, `instant_token_${appId}`) || undefined\n ctx[CTX_TOKEN] = token\n ctx[CTX_USER] = token\n ? db.auth.verifyToken(token).then(\n (u: IdbAuthUser) => u,\n () => undefined,\n )\n : Promise.resolve(undefined)\n }\n return {\n user: await (ctx[CTX_USER] as Promise<IdbAuthUser | undefined>),\n token: ctx[CTX_TOKEN] as string | undefined,\n }\n }\n\n async function useServerKit(\n event: H3Event,\n mode?: IdbServerKitMode,\n ): Promise<Record<string, unknown>> {\n const db = getAdminDb(event)\n if (!mode)\n return { adminDb: db }\n\n const { user, token } = await resolveAuth(event, db, config.getAppId(event))\n if ((mode === 'user' || mode === 'userDb') && !user)\n throw createError({ statusCode: 401, statusMessage: 'Unauthorized' })\n\n if (mode === 'user' || mode === 'user?')\n return { adminDb: db, user }\n\n const ctx = event.context as Record<string, unknown>\n const userDb\n = user && token ? (ctx[CTX_USERDB] ??= db.asUser({ token })) : undefined\n return { adminDb: db, user, userDb }\n }\n\n return useServerKit as IdbServerKitFactory<S>\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `defineWebhookHandler` — the one-line webhook route ([dux-spec-nuxt.md §4]).
|
|
3
|
+
* Reads the raw body the h3 way (signature verification needs the exact bytes),
|
|
4
|
+
* delegates verify → fetch → dispatch to `/webhooks`, and answers 2xx/4xx per
|
|
5
|
+
* official retry semantics: a handler rejection surfaces as a non-2xx, so
|
|
6
|
+
* Instant retries.
|
|
7
|
+
*
|
|
8
|
+
* The singular/plural pair is deliberate grammar: `defineWebhookHandlers`
|
|
9
|
+
* (in `/webhooks`) authors the *many* handlers; this is the *one* route that
|
|
10
|
+
* receives them — `defineWebhookHandler(defineWebhookHandlers({ … }))`.
|
|
11
|
+
*/
|
|
12
|
+
import type { EventHandler } from 'h3';
|
|
13
|
+
import type { IdbSchema } from '../schema/defineSchema.js';
|
|
14
|
+
import type { IdbRegisteredSchema } from '../schema/register.js';
|
|
15
|
+
import type { IdbWebhookHandlers, IdbWebhookVerifyOpts } from '../webhooks/index.js';
|
|
16
|
+
export declare function defineWebhookHandler<S extends IdbSchema = IdbRegisteredSchema>(handlers: IdbWebhookHandlers<S>, opts?: IdbWebhookVerifyOpts): EventHandler;
|
|
17
|
+
//# sourceMappingURL=defineWebhookHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineWebhookHandler.d.ts","sourceRoot":"","sources":["../../../src/nuxt/defineWebhookHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAI7B,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,EAC5E,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC/B,IAAI,CAAC,EAAE,oBAAoB,GAC1B,YAAY,CAiBd"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineWebhookHandler = defineWebhookHandler;
|
|
4
|
+
const h3_1 = require("h3");
|
|
5
|
+
const index_js_1 = require("../webhooks/index.js");
|
|
6
|
+
function defineWebhookHandler(handlers, opts) {
|
|
7
|
+
const webhooks = (0, index_js_1.init)();
|
|
8
|
+
return (0, h3_1.defineEventHandler)(async (event) => {
|
|
9
|
+
const signature = (0, h3_1.getHeader)(event, 'instant-signature') || '';
|
|
10
|
+
const body = (await (0, h3_1.readRawBody)(event, 'utf8')) || '';
|
|
11
|
+
try {
|
|
12
|
+
const verified = await webhooks.verify({ signature, body }, opts);
|
|
13
|
+
const payload = await webhooks.fetchPayload(verified);
|
|
14
|
+
await webhooks.dispatch(handlers, payload);
|
|
15
|
+
return { ok: true };
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
// Non-2xx → Instant retries (verification failure or handler rejection).
|
|
19
|
+
(0, h3_1.setResponseStatus)(event, 400);
|
|
20
|
+
return { ok: false, error: String(error) };
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=defineWebhookHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineWebhookHandler.js","sourceRoot":"","sources":["../../../src/nuxt/defineWebhookHandler.ts"],"names":[],"mappings":";;AAqBA,oDAoBC;AAvBD,2BAAkF;AAClF,mDAA2D;AAE3D,SAAgB,oBAAoB,CAClC,QAA+B,EAC/B,IAA2B;IAE3B,MAAM,QAAQ,GAAG,IAAA,eAAY,GAAK,CAAA;IAClC,OAAO,IAAA,uBAAkB,EAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxC,MAAM,SAAS,GAAG,IAAA,cAAS,EAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAA;QAC7D,MAAM,IAAI,GAAG,CAAC,MAAM,IAAA,gBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QACrD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;YACjE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YACrD,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACrB,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,yEAAyE;YACzE,IAAA,sBAAiB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;QAC5C,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["/**\n * `defineWebhookHandler` — the one-line webhook route ([dux-spec-nuxt.md §4]).\n * Reads the raw body the h3 way (signature verification needs the exact bytes),\n * delegates verify → fetch → dispatch to `/webhooks`, and answers 2xx/4xx per\n * official retry semantics: a handler rejection surfaces as a non-2xx, so\n * Instant retries.\n *\n * The singular/plural pair is deliberate grammar: `defineWebhookHandlers`\n * (in `/webhooks`) authors the *many* handlers; this is the *one* route that\n * receives them — `defineWebhookHandler(defineWebhookHandlers({ … }))`.\n */\nimport type { EventHandler } from 'h3'\nimport type { IdbSchema } from '../schema/defineSchema.js'\nimport type { IdbRegisteredSchema } from '../schema/register.js'\nimport type {\n IdbWebhookHandlers,\n IdbWebhookVerifyOpts,\n} from '../webhooks/index.js'\nimport { defineEventHandler, getHeader, readRawBody, setResponseStatus } from 'h3'\nimport { init as webhooksInit } from '../webhooks/index.js'\n\nexport function defineWebhookHandler<S extends IdbSchema = IdbRegisteredSchema>(\n handlers: IdbWebhookHandlers<S>,\n opts?: IdbWebhookVerifyOpts,\n): EventHandler {\n const webhooks = webhooksInit<S>()\n return defineEventHandler(async (event) => {\n const signature = getHeader(event, 'instant-signature') || ''\n const body = (await readRawBody(event, 'utf8')) || ''\n try {\n const verified = await webhooks.verify({ signature, body }, opts)\n const payload = await webhooks.fetchPayload(verified)\n await webhooks.dispatch(handlers, payload)\n return { ok: true }\n }\n catch (error) {\n // Non-2xx → Instant retries (verification failure or handler rejection).\n setResponseStatus(event, 400)\n return { ok: false, error: String(error) }\n }\n })\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@mszr/idb-dux/nuxt` — h3/nitro/Nuxt server glue.
|
|
3
|
+
*
|
|
4
|
+
* `defineServerKit`, `defineAuthSyncHandler`, `defineWebhookHandler` — thin h3
|
|
5
|
+
* wiring over the `/admin` and `/webhooks` layers; it owns no data-plane or
|
|
6
|
+
* verification logic of its own.
|
|
7
|
+
*
|
|
8
|
+
* Spec: `../../../docs/dux-spec-nuxt.md`.
|
|
9
|
+
*/
|
|
10
|
+
export { createInstantRouteHandler, type InstantRouteHandlerBody, type InstantRouteHandlerPayloadByType, type InstantRouteHandlerType, } from '../admin/index.js';
|
|
11
|
+
export { defineAuthSyncHandler } from './defineAuthSyncHandler.js';
|
|
12
|
+
export { defineServerKit } from './defineServerKit.js';
|
|
13
|
+
export { defineWebhookHandler } from './defineWebhookHandler.js';
|
|
14
|
+
export type { IdbAuthSyncConfig, IdbServerKit, IdbServerKitConfig, IdbServerKitFactory, IdbServerKitMode, } from './types.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nuxt/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,gCAAgC,EACrC,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `@mszr/idb-dux/nuxt` — h3/nitro/Nuxt server glue.
|
|
4
|
+
*
|
|
5
|
+
* `defineServerKit`, `defineAuthSyncHandler`, `defineWebhookHandler` — thin h3
|
|
6
|
+
* wiring over the `/admin` and `/webhooks` layers; it owns no data-plane or
|
|
7
|
+
* verification logic of its own.
|
|
8
|
+
*
|
|
9
|
+
* Spec: `../../../docs/dux-spec-nuxt.md`.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.defineWebhookHandler = exports.defineServerKit = exports.defineAuthSyncHandler = exports.createInstantRouteHandler = void 0;
|
|
13
|
+
// The official first-party route handler, for apps that want the official
|
|
14
|
+
// cookie shape (and official `getUserFromRequest` compatibility). Reached
|
|
15
|
+
// through the admin layer — `/nuxt` never imports `@instantdb/admin` directly.
|
|
16
|
+
var index_js_1 = require("../admin/index.js");
|
|
17
|
+
Object.defineProperty(exports, "createInstantRouteHandler", { enumerable: true, get: function () { return index_js_1.createInstantRouteHandler; } });
|
|
18
|
+
var defineAuthSyncHandler_js_1 = require("./defineAuthSyncHandler.js");
|
|
19
|
+
Object.defineProperty(exports, "defineAuthSyncHandler", { enumerable: true, get: function () { return defineAuthSyncHandler_js_1.defineAuthSyncHandler; } });
|
|
20
|
+
var defineServerKit_js_1 = require("./defineServerKit.js");
|
|
21
|
+
Object.defineProperty(exports, "defineServerKit", { enumerable: true, get: function () { return defineServerKit_js_1.defineServerKit; } });
|
|
22
|
+
var defineWebhookHandler_js_1 = require("./defineWebhookHandler.js");
|
|
23
|
+
Object.defineProperty(exports, "defineWebhookHandler", { enumerable: true, get: function () { return defineWebhookHandler_js_1.defineWebhookHandler; } });
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nuxt/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,0EAA0E;AAC1E,0EAA0E;AAC1E,+EAA+E;AAC/E,8CAK0B;AAJxB,qHAAA,yBAAyB,OAAA;AAK3B,uEAAkE;AAAzD,iIAAA,qBAAqB,OAAA;AAC9B,2DAAsD;AAA7C,qHAAA,eAAe,OAAA;AACxB,qEAAgE;AAAvD,+HAAA,oBAAoB,OAAA","sourcesContent":["/**\n * `@mszr/idb-dux/nuxt` — h3/nitro/Nuxt server glue.\n *\n * `defineServerKit`, `defineAuthSyncHandler`, `defineWebhookHandler` — thin h3\n * wiring over the `/admin` and `/webhooks` layers; it owns no data-plane or\n * verification logic of its own.\n *\n * Spec: `../../../docs/dux-spec-nuxt.md`.\n */\n\n// The official first-party route handler, for apps that want the official\n// cookie shape (and official `getUserFromRequest` compatibility). Reached\n// through the admin layer — `/nuxt` never imports `@instantdb/admin` directly.\nexport {\n createInstantRouteHandler,\n type InstantRouteHandlerBody,\n type InstantRouteHandlerPayloadByType,\n type InstantRouteHandlerType,\n} from '../admin/index.js'\nexport { defineAuthSyncHandler } from './defineAuthSyncHandler.js'\nexport { defineServerKit } from './defineServerKit.js'\nexport { defineWebhookHandler } from './defineWebhookHandler.js'\nexport type {\n IdbAuthSyncConfig,\n IdbServerKit,\n IdbServerKitConfig,\n IdbServerKitFactory,\n IdbServerKitMode,\n} from './types.js'\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `/nuxt` public types — the kit config and the mode-narrowed kit shapes.
|
|
3
|
+
* `/nuxt` owns no data-plane or verification types of its own; everything it
|
|
4
|
+
* returns comes from the `/admin` and `/webhooks` layers it composes.
|
|
5
|
+
*/
|
|
6
|
+
import type { H3Event } from 'h3';
|
|
7
|
+
import type { IdbAdminClient, IdbAuthUser } from '../admin/index.js';
|
|
8
|
+
import type { IdbSchema } from '../schema/defineSchema.js';
|
|
9
|
+
import type { IdbRegisteredSchema } from '../schema/register.js';
|
|
10
|
+
/** `defineServerKit` config — the schema plus lazy, event-scoped credential reads. */
|
|
11
|
+
export interface IdbServerKitConfig<S extends IdbSchema = IdbRegisteredSchema> {
|
|
12
|
+
/** Your registered schema — unlocks shaping and typed `ruleParams`. */
|
|
13
|
+
schema: S;
|
|
14
|
+
/** Resolve the app id from the event (runtime config, env indirection, …). */
|
|
15
|
+
getAppId: (event: H3Event) => string;
|
|
16
|
+
/** Resolve the admin token from the event. */
|
|
17
|
+
getAdminToken: (event: H3Event) => string;
|
|
18
|
+
/** Base URL for the Instant API (self-hosting). */
|
|
19
|
+
apiURI?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* How strict the kit is about auth, declared at the call site. The kit's keys
|
|
23
|
+
* follow the mode, so there is no manual narrowing or repeated 401 boilerplate.
|
|
24
|
+
*/
|
|
25
|
+
export type IdbServerKitMode = 'user?' | 'user' | 'userDb?' | 'userDb';
|
|
26
|
+
/** The kit a given mode yields — keys typed per the declared strictness. */
|
|
27
|
+
export type IdbServerKit<Mode extends IdbServerKitMode | undefined, S extends IdbSchema> = Mode extends undefined ? {
|
|
28
|
+
adminDb: IdbAdminClient<S>;
|
|
29
|
+
} : Mode extends 'user' ? {
|
|
30
|
+
adminDb: IdbAdminClient<S>;
|
|
31
|
+
user: IdbAuthUser;
|
|
32
|
+
} : Mode extends 'user?' ? {
|
|
33
|
+
adminDb: IdbAdminClient<S>;
|
|
34
|
+
user: IdbAuthUser | undefined;
|
|
35
|
+
} : Mode extends 'userDb' ? {
|
|
36
|
+
adminDb: IdbAdminClient<S>;
|
|
37
|
+
user: IdbAuthUser;
|
|
38
|
+
userDb: IdbAdminClient<S>;
|
|
39
|
+
} : {
|
|
40
|
+
adminDb: IdbAdminClient<S>;
|
|
41
|
+
user: IdbAuthUser | undefined;
|
|
42
|
+
userDb: IdbAdminClient<S> | undefined;
|
|
43
|
+
};
|
|
44
|
+
/** The request-kit factory `defineServerKit` returns. */
|
|
45
|
+
export interface IdbServerKitFactory<S extends IdbSchema> {
|
|
46
|
+
(event: H3Event): Promise<IdbServerKit<undefined, S>>;
|
|
47
|
+
<Mode extends IdbServerKitMode>(event: H3Event, mode: Mode): Promise<IdbServerKit<Mode, S>>;
|
|
48
|
+
}
|
|
49
|
+
/** `defineAuthSyncHandler` config — the app id read from the event. */
|
|
50
|
+
export interface IdbAuthSyncConfig {
|
|
51
|
+
/** Resolve the app id from the event (must match the client's app id). */
|
|
52
|
+
getAppId: (event: H3Event) => string;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/nuxt/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,sFAAsF;AACtF,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB;IAC3E,uEAAuE;IACvE,MAAM,EAAE,CAAC,CAAA;IACT,8EAA8E;IAC9E,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;IACpC,8CAA8C;IAC9C,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;IACzC,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEtE,4EAA4E;AAC5E,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,gBAAgB,GAAG,SAAS,EAAE,CAAC,SAAS,SAAS,IACnF,IAAI,SAAS,SAAS,GACpB;IAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;CAAE,GAC9B,IAAI,SAAS,MAAM,GACjB;IAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACjD,IAAI,SAAS,OAAO,GAClB;IAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,GAC7D,IAAI,SAAS,QAAQ,GACnB;IAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;CAAE,GAC5E;IAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;CAAE,CAAA;AAEhH,yDAAyD;AACzD,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,SAAS;IACtD,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC,IAAI,SAAS,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;CAC5F;AAED,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;CACrC"}
|