qarpeo 0.0.0-alpha.10
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 +21 -0
- package/README.md +102 -0
- package/dist/chunks/auth-schema.mjs +219 -0
- package/dist/chunks/wrangler.mjs +783 -0
- package/dist/cli/index.mjs +1085 -0
- package/dist/dev/env.d.ts +12 -0
- package/dist/dev/wrangler.d.ts +18 -0
- package/dist/module.d.ts +16 -0
- package/dist/module.mjs +4436 -0
- package/dist/runtime/ai.d.ts +25 -0
- package/dist/runtime/ai.mjs +106 -0
- package/dist/runtime/analytics.d.ts +24 -0
- package/dist/runtime/analytics.mjs +38 -0
- package/dist/runtime/app/components/BlobImage.vue +100 -0
- package/dist/runtime/app/components/CMSBlocks.vue +93 -0
- package/dist/runtime/app/components/CMSContent.vue +23 -0
- package/dist/runtime/app/components/CMSImage.vue +49 -0
- package/dist/runtime/app/components/CMSLocaleSwitcher.vue +110 -0
- package/dist/runtime/app/components/CMSPreviewBanner.vue +79 -0
- package/dist/runtime/app/components/CMSVersionBanner.vue +49 -0
- package/dist/runtime/app/components/CMSVersionSwitcher.vue +126 -0
- package/dist/runtime/app/components/ContentRenderer.vue +80 -0
- package/dist/runtime/app/components/FileUpload.vue +196 -0
- package/dist/runtime/app/components/ImpersonationBanner.vue +57 -0
- package/dist/runtime/app/components/SignedIn.vue +13 -0
- package/dist/runtime/app/components/SignedOut.vue +13 -0
- package/dist/runtime/app/components/shiki.css +34 -0
- package/dist/runtime/app/composables/analytics.d.ts +125 -0
- package/dist/runtime/app/composables/analytics.mjs +81 -0
- package/dist/runtime/app/composables/api-tokens.d.ts +49 -0
- package/dist/runtime/app/composables/api-tokens.mjs +61 -0
- package/dist/runtime/app/composables/auth.d.ts +50 -0
- package/dist/runtime/app/composables/auth.mjs +101 -0
- package/dist/runtime/app/composables/chat.d.ts +69 -0
- package/dist/runtime/app/composables/chat.mjs +159 -0
- package/dist/runtime/app/composables/cms-preview.d.ts +33 -0
- package/dist/runtime/app/composables/cms-preview.mjs +83 -0
- package/dist/runtime/app/composables/cms.d.ts +307 -0
- package/dist/runtime/app/composables/cms.mjs +355 -0
- package/dist/runtime/app/composables/docs-version.d.ts +35 -0
- package/dist/runtime/app/composables/docs-version.mjs +70 -0
- package/dist/runtime/app/composables/impersonation.d.ts +14 -0
- package/dist/runtime/app/composables/impersonation.mjs +44 -0
- package/dist/runtime/app/composables/notifications.d.ts +35 -0
- package/dist/runtime/app/composables/notifications.mjs +139 -0
- package/dist/runtime/app/composables/organization.d.ts +127 -0
- package/dist/runtime/app/composables/organization.mjs +138 -0
- package/dist/runtime/app/composables/passkey.d.ts +6 -0
- package/dist/runtime/app/composables/passkey.mjs +105 -0
- package/dist/runtime/app/composables/passwordless.d.ts +7 -0
- package/dist/runtime/app/composables/passwordless.mjs +67 -0
- package/dist/runtime/app/composables/payments.d.ts +43 -0
- package/dist/runtime/app/composables/payments.mjs +74 -0
- package/dist/runtime/app/composables/realtime.d.ts +96 -0
- package/dist/runtime/app/composables/realtime.mjs +432 -0
- package/dist/runtime/app/composables/site.d.ts +35 -0
- package/dist/runtime/app/composables/site.mjs +36 -0
- package/dist/runtime/app/composables/storage.d.ts +60 -0
- package/dist/runtime/app/composables/storage.mjs +294 -0
- package/dist/runtime/app/composables/tenant.d.ts +82 -0
- package/dist/runtime/app/composables/tenant.mjs +120 -0
- package/dist/runtime/app/composables/turnstile.d.ts +3 -0
- package/dist/runtime/app/composables/turnstile.mjs +10 -0
- package/dist/runtime/app/composables/two-factor.d.ts +12 -0
- package/dist/runtime/app/composables/two-factor.mjs +65 -0
- package/dist/runtime/app/middleware/auth.global.d.ts +2 -0
- package/dist/runtime/app/middleware/auth.global.mjs +44 -0
- package/dist/runtime/app/pages/cms.vue +2249 -0
- package/dist/runtime/app/pages/devtools/agents.vue +717 -0
- package/dist/runtime/app/pages/devtools/analytics.vue +618 -0
- package/dist/runtime/app/pages/devtools/auth.vue +351 -0
- package/dist/runtime/app/pages/devtools/blob.vue +745 -0
- package/dist/runtime/app/pages/devtools/db.vue +546 -0
- package/dist/runtime/app/pages/devtools/domains.vue +772 -0
- package/dist/runtime/app/pages/devtools/kv.vue +829 -0
- package/dist/runtime/app/pages/devtools/logs.vue +655 -0
- package/dist/runtime/app/pages/devtools/mail.vue +389 -0
- package/dist/runtime/app/pages/devtools/overview.vue +390 -0
- package/dist/runtime/app/pages/devtools/settings.vue +560 -0
- package/dist/runtime/app/pages/devtools.vue +165 -0
- package/dist/runtime/app/plugins/seo.d.ts +2 -0
- package/dist/runtime/app/plugins/seo.mjs +105 -0
- package/dist/runtime/app/plugins/shortcuts.client.d.ts +6 -0
- package/dist/runtime/app/plugins/shortcuts.client.mjs +19 -0
- package/dist/runtime/app/public/sw-notifications.mjs +52 -0
- package/dist/runtime/auth.d.ts +25 -0
- package/dist/runtime/auth.mjs +11 -0
- package/dist/runtime/bindings.d.ts +27 -0
- package/dist/runtime/bindings.mjs +38 -0
- package/dist/runtime/blob.d.ts +26 -0
- package/dist/runtime/blob.mjs +334 -0
- package/dist/runtime/bots.d.ts +1 -0
- package/dist/runtime/bots.mjs +1 -0
- package/dist/runtime/browser.d.ts +21 -0
- package/dist/runtime/browser.mjs +64 -0
- package/dist/runtime/cache.d.ts +19 -0
- package/dist/runtime/cache.mjs +12 -0
- package/dist/runtime/cms.d.ts +2 -0
- package/dist/runtime/cms.mjs +0 -0
- package/dist/runtime/db.d.ts +21 -0
- package/dist/runtime/db.mjs +36 -0
- package/dist/runtime/drizzle.d.ts +11 -0
- package/dist/runtime/drizzle.mjs +18 -0
- package/dist/runtime/email.d.ts +51 -0
- package/dist/runtime/email.mjs +245 -0
- package/dist/runtime/hyperdrive.d.ts +21 -0
- package/dist/runtime/hyperdrive.mjs +49 -0
- package/dist/runtime/index.d.ts +23 -0
- package/dist/runtime/index.mjs +23 -0
- package/dist/runtime/kv.d.ts +16 -0
- package/dist/runtime/kv.mjs +126 -0
- package/dist/runtime/payments.d.ts +2 -0
- package/dist/runtime/payments.mjs +0 -0
- package/dist/runtime/queue.d.ts +21 -0
- package/dist/runtime/queue.mjs +41 -0
- package/dist/runtime/rag.d.ts +1 -0
- package/dist/runtime/rag.mjs +1 -0
- package/dist/runtime/ratelimit.d.ts +21 -0
- package/dist/runtime/ratelimit.mjs +38 -0
- package/dist/runtime/realtime.d.ts +6 -0
- package/dist/runtime/realtime.mjs +13 -0
- package/dist/runtime/server/db/cms-schema.d.ts +651 -0
- package/dist/runtime/server/db/cms-schema.mjs +74 -0
- package/dist/runtime/server/durable-objects/agent.d.ts +14 -0
- package/dist/runtime/server/durable-objects/agent.mjs +571 -0
- package/dist/runtime/server/durable-objects/room.d.ts +34 -0
- package/dist/runtime/server/durable-objects/room.mjs +514 -0
- package/dist/runtime/server/middleware/auth.d.ts +2 -0
- package/dist/runtime/server/middleware/auth.mjs +108 -0
- package/dist/runtime/server/middleware/devtools.d.ts +2 -0
- package/dist/runtime/server/middleware/devtools.mjs +61 -0
- package/dist/runtime/server/middleware/ratelimit.d.ts +2 -0
- package/dist/runtime/server/middleware/ratelimit.mjs +49 -0
- package/dist/runtime/server/middleware/tenancy.d.ts +6 -0
- package/dist/runtime/server/middleware/tenancy.mjs +15 -0
- package/dist/runtime/server/middleware/tracker.d.ts +7 -0
- package/dist/runtime/server/middleware/tracker.mjs +9 -0
- package/dist/runtime/server/plugins/agents.d.ts +7 -0
- package/dist/runtime/server/plugins/agents.mjs +3 -0
- package/dist/runtime/server/plugins/cms.d.ts +7 -0
- package/dist/runtime/server/plugins/cms.mjs +16 -0
- package/dist/runtime/server/plugins/dev-logs.d.ts +1 -0
- package/dist/runtime/server/plugins/dev-logs.mjs +58 -0
- package/dist/runtime/server/plugins/dev-proxy.d.ts +3 -0
- package/dist/runtime/server/plugins/dev-proxy.mjs +21 -0
- package/dist/runtime/server/plugins/env.d.ts +6 -0
- package/dist/runtime/server/plugins/env.mjs +17 -0
- package/dist/runtime/server/plugins/queue.d.ts +6 -0
- package/dist/runtime/server/plugins/queue.mjs +8 -0
- package/dist/runtime/server/routes/__qarpeo/agents/chat.post.d.ts +20 -0
- package/dist/runtime/server/routes/__qarpeo/agents/chat.post.mjs +110 -0
- package/dist/runtime/server/routes/__qarpeo/agents/clear.post.d.ts +7 -0
- package/dist/runtime/server/routes/__qarpeo/agents/clear.post.mjs +15 -0
- package/dist/runtime/server/routes/__qarpeo/agents/create.post.d.ts +17 -0
- package/dist/runtime/server/routes/__qarpeo/agents/create.post.mjs +47 -0
- package/dist/runtime/server/routes/__qarpeo/agents/history.get.d.ts +15 -0
- package/dist/runtime/server/routes/__qarpeo/agents/history.get.mjs +24 -0
- package/dist/runtime/server/routes/__qarpeo/agents/list.get.d.ts +5 -0
- package/dist/runtime/server/routes/__qarpeo/agents/list.get.mjs +63 -0
- package/dist/runtime/server/routes/__qarpeo/analytics/events.get.d.ts +64 -0
- package/dist/runtime/server/routes/__qarpeo/analytics/events.get.mjs +55 -0
- package/dist/runtime/server/routes/__qarpeo/analytics/summary.get.d.ts +30 -0
- package/dist/runtime/server/routes/__qarpeo/analytics/summary.get.mjs +73 -0
- package/dist/runtime/server/routes/__qarpeo/auth/revoke-session.post.d.ts +6 -0
- package/dist/runtime/server/routes/__qarpeo/auth/revoke-session.post.mjs +26 -0
- package/dist/runtime/server/routes/__qarpeo/auth/sessions.get.d.ts +6 -0
- package/dist/runtime/server/routes/__qarpeo/auth/sessions.get.mjs +46 -0
- package/dist/runtime/server/routes/__qarpeo/auth/users.get.d.ts +7 -0
- package/dist/runtime/server/routes/__qarpeo/auth/users.get.mjs +65 -0
- package/dist/runtime/server/routes/__qarpeo/blob/files.get.d.ts +22 -0
- package/dist/runtime/server/routes/__qarpeo/blob/files.get.mjs +36 -0
- package/dist/runtime/server/routes/__qarpeo/db/query.post.d.ts +23 -0
- package/dist/runtime/server/routes/__qarpeo/db/query.post.mjs +34 -0
- package/dist/runtime/server/routes/__qarpeo/db/tables.get.d.ts +31 -0
- package/dist/runtime/server/routes/__qarpeo/db/tables.get.mjs +81 -0
- package/dist/runtime/server/routes/__qarpeo/kv/delete.post.d.ts +11 -0
- package/dist/runtime/server/routes/__qarpeo/kv/delete.post.mjs +18 -0
- package/dist/runtime/server/routes/__qarpeo/kv/get.get.d.ts +11 -0
- package/dist/runtime/server/routes/__qarpeo/kv/get.get.mjs +20 -0
- package/dist/runtime/server/routes/__qarpeo/kv/keys.get.d.ts +8 -0
- package/dist/runtime/server/routes/__qarpeo/kv/keys.get.mjs +27 -0
- package/dist/runtime/server/routes/__qarpeo/kv/set.post.d.ts +14 -0
- package/dist/runtime/server/routes/__qarpeo/kv/set.post.mjs +24 -0
- package/dist/runtime/server/routes/__qarpeo/logs.delete.d.ts +5 -0
- package/dist/runtime/server/routes/__qarpeo/logs.delete.mjs +6 -0
- package/dist/runtime/server/routes/__qarpeo/logs.get.d.ts +5 -0
- package/dist/runtime/server/routes/__qarpeo/logs.get.mjs +26 -0
- package/dist/runtime/server/routes/__qarpeo/logs.post.d.ts +6 -0
- package/dist/runtime/server/routes/__qarpeo/logs.post.mjs +17 -0
- package/dist/runtime/server/routes/__qarpeo/mail/bounce.post.d.ts +5 -0
- package/dist/runtime/server/routes/__qarpeo/mail/bounce.post.mjs +37 -0
- package/dist/runtime/server/routes/__qarpeo/mail/clear.post.d.ts +4 -0
- package/dist/runtime/server/routes/__qarpeo/mail/clear.post.mjs +6 -0
- package/dist/runtime/server/routes/__qarpeo/mail/inbox.get.d.ts +5 -0
- package/dist/runtime/server/routes/__qarpeo/mail/inbox.get.mjs +7 -0
- package/dist/runtime/server/routes/__qarpeo/mail/send-test.post.d.ts +4 -0
- package/dist/runtime/server/routes/__qarpeo/mail/send-test.post.mjs +29 -0
- package/dist/runtime/server/routes/__qarpeo/mail/track/click/[id].get.d.ts +2 -0
- package/dist/runtime/server/routes/__qarpeo/mail/track/click/[id].get.mjs +23 -0
- package/dist/runtime/server/routes/__qarpeo/mail/track/open/[id].get.d.ts +2 -0
- package/dist/runtime/server/routes/__qarpeo/mail/track/open/[id].get.mjs +31 -0
- package/dist/runtime/server/routes/__qarpeo/overview/health.get.d.ts +8 -0
- package/dist/runtime/server/routes/__qarpeo/overview/health.get.mjs +46 -0
- package/dist/runtime/server/routes/__qarpeo/overview.get.d.ts +32 -0
- package/dist/runtime/server/routes/__qarpeo/overview.get.mjs +38 -0
- package/dist/runtime/server/routes/__qarpeo/settings/reset-dev-data.post.d.ts +11 -0
- package/dist/runtime/server/routes/__qarpeo/settings/reset-dev-data.post.mjs +84 -0
- package/dist/runtime/server/routes/__qarpeo/settings.get.d.ts +124 -0
- package/dist/runtime/server/routes/__qarpeo/settings.get.mjs +145 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/create.post.d.ts +7 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/create.post.mjs +26 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/domain-add.post.d.ts +6 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/domain-add.post.mjs +29 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/domain-delete.post.d.ts +7 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/domain-delete.post.mjs +21 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/domain-verify.post.d.ts +9 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/domain-verify.post.mjs +21 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/list.get.d.ts +15 -0
- package/dist/runtime/server/routes/__qarpeo/tenants/list.get.mjs +22 -0
- package/dist/runtime/server/routes/agents/[agent]/chat.post.d.ts +2 -0
- package/dist/runtime/server/routes/agents/[agent]/chat.post.mjs +35 -0
- package/dist/runtime/server/routes/agents/[agent]/clear.post.d.ts +4 -0
- package/dist/runtime/server/routes/agents/[agent]/clear.post.mjs +27 -0
- package/dist/runtime/server/routes/agents/[agent]/history.get.d.ts +4 -0
- package/dist/runtime/server/routes/agents/[agent]/history.get.mjs +27 -0
- package/dist/runtime/server/routes/analytics/events.get.d.ts +3 -0
- package/dist/runtime/server/routes/analytics/events.get.mjs +17 -0
- package/dist/runtime/server/routes/analytics/pageviews.get.d.ts +3 -0
- package/dist/runtime/server/routes/analytics/pageviews.get.mjs +15 -0
- package/dist/runtime/server/routes/analytics/summary.get.d.ts +6 -0
- package/dist/runtime/server/routes/analytics/summary.get.mjs +15 -0
- package/dist/runtime/server/routes/atom.xml.get.d.ts +2 -0
- package/dist/runtime/server/routes/atom.xml.get.mjs +76 -0
- package/dist/runtime/server/routes/auth/2fa/disable.post.d.ts +4 -0
- package/dist/runtime/server/routes/auth/2fa/disable.post.mjs +44 -0
- package/dist/runtime/server/routes/auth/2fa/setup.post.d.ts +6 -0
- package/dist/runtime/server/routes/auth/2fa/setup.post.mjs +32 -0
- package/dist/runtime/server/routes/auth/2fa/verify.post.d.ts +6 -0
- package/dist/runtime/server/routes/auth/2fa/verify.post.mjs +92 -0
- package/dist/runtime/server/routes/auth/[provider]/callback.d.ts +1 -0
- package/dist/runtime/server/routes/auth/[provider]/callback.mjs +1 -0
- package/dist/runtime/server/routes/auth/[provider].d.ts +3 -0
- package/dist/runtime/server/routes/auth/[provider].mjs +95 -0
- package/dist/runtime/server/routes/auth/account.delete.d.ts +5 -0
- package/dist/runtime/server/routes/auth/account.delete.mjs +52 -0
- package/dist/runtime/server/routes/auth/impersonate/start.post.d.ts +5 -0
- package/dist/runtime/server/routes/auth/impersonate/start.post.mjs +14 -0
- package/dist/runtime/server/routes/auth/impersonate/stop.post.d.ts +5 -0
- package/dist/runtime/server/routes/auth/impersonate/stop.post.mjs +5 -0
- package/dist/runtime/server/routes/auth/logout-all.post.d.ts +4 -0
- package/dist/runtime/server/routes/auth/logout-all.post.mjs +16 -0
- package/dist/runtime/server/routes/auth/logout-others.post.d.ts +4 -0
- package/dist/runtime/server/routes/auth/logout-others.post.mjs +11 -0
- package/dist/runtime/server/routes/auth/logout.post.d.ts +4 -0
- package/dist/runtime/server/routes/auth/logout.post.mjs +17 -0
- package/dist/runtime/server/routes/auth/magic-link/send.post.d.ts +10 -0
- package/dist/runtime/server/routes/auth/magic-link/send.post.mjs +29 -0
- package/dist/runtime/server/routes/auth/magic-link/verify.get.d.ts +2 -0
- package/dist/runtime/server/routes/auth/magic-link/verify.get.mjs +81 -0
- package/dist/runtime/server/routes/auth/organization/create.post.d.ts +5 -0
- package/dist/runtime/server/routes/auth/organization/create.post.mjs +10 -0
- package/dist/runtime/server/routes/auth/organization/invite.post.d.ts +9 -0
- package/dist/runtime/server/routes/auth/organization/invite.post.mjs +27 -0
- package/dist/runtime/server/routes/auth/organization/join.post.d.ts +6 -0
- package/dist/runtime/server/routes/auth/organization/join.post.mjs +15 -0
- package/dist/runtime/server/routes/auth/organization/list.get.d.ts +5 -0
- package/dist/runtime/server/routes/auth/organization/list.get.mjs +7 -0
- package/dist/runtime/server/routes/auth/organization/members/[id].delete.d.ts +4 -0
- package/dist/runtime/server/routes/auth/organization/members/[id].delete.mjs +33 -0
- package/dist/runtime/server/routes/auth/organization/members/index.get.d.ts +6 -0
- package/dist/runtime/server/routes/auth/organization/members/index.get.mjs +18 -0
- package/dist/runtime/server/routes/auth/organization/mfa.post.d.ts +6 -0
- package/dist/runtime/server/routes/auth/organization/mfa.post.mjs +33 -0
- package/dist/runtime/server/routes/auth/organization/sso/[id].delete.d.ts +4 -0
- package/dist/runtime/server/routes/auth/organization/sso/[id].delete.mjs +28 -0
- package/dist/runtime/server/routes/auth/organization/sso/index.get.d.ts +2 -0
- package/dist/runtime/server/routes/auth/organization/sso/index.get.mjs +23 -0
- package/dist/runtime/server/routes/auth/organization/sso/index.post.d.ts +5 -0
- package/dist/runtime/server/routes/auth/organization/sso/index.post.mjs +84 -0
- package/dist/runtime/server/routes/auth/organization/switch.post.d.ts +6 -0
- package/dist/runtime/server/routes/auth/organization/switch.post.mjs +14 -0
- package/dist/runtime/server/routes/auth/otp/send.post.d.ts +10 -0
- package/dist/runtime/server/routes/auth/otp/send.post.mjs +29 -0
- package/dist/runtime/server/routes/auth/otp/verify.post.d.ts +6 -0
- package/dist/runtime/server/routes/auth/otp/verify.post.mjs +95 -0
- package/dist/runtime/server/routes/auth/sessions/[id].delete.d.ts +5 -0
- package/dist/runtime/server/routes/auth/sessions/[id].delete.mjs +24 -0
- package/dist/runtime/server/routes/auth/sessions.get.d.ts +2 -0
- package/dist/runtime/server/routes/auth/sessions.get.mjs +11 -0
- package/dist/runtime/server/routes/auth/sso/login.get.d.ts +2 -0
- package/dist/runtime/server/routes/auth/sso/login.get.mjs +94 -0
- package/dist/runtime/server/routes/auth/sso/oidc/callback.get.d.ts +2 -0
- package/dist/runtime/server/routes/auth/sso/oidc/callback.get.mjs +113 -0
- package/dist/runtime/server/routes/auth/sso/saml/acs.post.d.ts +2 -0
- package/dist/runtime/server/routes/auth/sso/saml/acs.post.mjs +95 -0
- package/dist/runtime/server/routes/auth/tokens/[id].delete.d.ts +4 -0
- package/dist/runtime/server/routes/auth/tokens/[id].delete.mjs +13 -0
- package/dist/runtime/server/routes/auth/tokens/create.post.d.ts +9 -0
- package/dist/runtime/server/routes/auth/tokens/create.post.mjs +17 -0
- package/dist/runtime/server/routes/auth/tokens/index.get.d.ts +9 -0
- package/dist/runtime/server/routes/auth/tokens/index.get.mjs +5 -0
- package/dist/runtime/server/routes/auth/turnstile/verify.post.d.ts +2 -0
- package/dist/runtime/server/routes/auth/turnstile/verify.post.mjs +15 -0
- package/dist/runtime/server/routes/auth/user.get.d.ts +2 -0
- package/dist/runtime/server/routes/auth/user.get.mjs +6 -0
- package/dist/runtime/server/routes/auth/webauthn/login/options.post.d.ts +2 -0
- package/dist/runtime/server/routes/auth/webauthn/login/options.post.mjs +17 -0
- package/dist/runtime/server/routes/auth/webauthn/login/verify.post.d.ts +6 -0
- package/dist/runtime/server/routes/auth/webauthn/login/verify.post.mjs +127 -0
- package/dist/runtime/server/routes/auth/webauthn/register/options.post.d.ts +2 -0
- package/dist/runtime/server/routes/auth/webauthn/register/options.post.mjs +47 -0
- package/dist/runtime/server/routes/auth/webauthn/register/verify.post.d.ts +5 -0
- package/dist/runtime/server/routes/auth/webauthn/register/verify.post.mjs +88 -0
- package/dist/runtime/server/routes/cms/[collection]/[id]/preview-token.post.d.ts +8 -0
- package/dist/runtime/server/routes/cms/[collection]/[id]/preview-token.post.mjs +27 -0
- package/dist/runtime/server/routes/cms/[collection]/[id]/publish.post.d.ts +6 -0
- package/dist/runtime/server/routes/cms/[collection]/[id]/publish.post.mjs +19 -0
- package/dist/runtime/server/routes/cms/[collection]/[id]/review.post.d.ts +6 -0
- package/dist/runtime/server/routes/cms/[collection]/[id]/review.post.mjs +33 -0
- package/dist/runtime/server/routes/cms/[collection]/[id].delete.d.ts +4 -0
- package/dist/runtime/server/routes/cms/[collection]/[id].delete.mjs +17 -0
- package/dist/runtime/server/routes/cms/[collection]/[id].put.d.ts +4 -0
- package/dist/runtime/server/routes/cms/[collection]/[id].put.mjs +18 -0
- package/dist/runtime/server/routes/cms/[collection]/[slug].get.d.ts +4 -0
- package/dist/runtime/server/routes/cms/[collection]/[slug].get.mjs +19 -0
- package/dist/runtime/server/routes/cms/[collection]/atom.xml.get.d.ts +2 -0
- package/dist/runtime/server/routes/cms/[collection]/atom.xml.get.mjs +69 -0
- package/dist/runtime/server/routes/cms/[collection]/by-path.get.d.ts +8 -0
- package/dist/runtime/server/routes/cms/[collection]/by-path.get.mjs +23 -0
- package/dist/runtime/server/routes/cms/[collection]/feed.xml.get.d.ts +2 -0
- package/dist/runtime/server/routes/cms/[collection]/feed.xml.get.mjs +65 -0
- package/dist/runtime/server/routes/cms/[collection]/index.get.d.ts +7 -0
- package/dist/runtime/server/routes/cms/[collection]/index.get.mjs +15 -0
- package/dist/runtime/server/routes/cms/[collection]/index.post.d.ts +4 -0
- package/dist/runtime/server/routes/cms/[collection]/index.post.mjs +23 -0
- package/dist/runtime/server/routes/cms/[collection]/references.get.d.ts +19 -0
- package/dist/runtime/server/routes/cms/[collection]/references.get.mjs +47 -0
- package/dist/runtime/server/routes/cms/[collection]/surroundings.get.d.ts +10 -0
- package/dist/runtime/server/routes/cms/[collection]/surroundings.get.mjs +12 -0
- package/dist/runtime/server/routes/cms/collections/[id].delete.d.ts +4 -0
- package/dist/runtime/server/routes/cms/collections/[id].delete.mjs +10 -0
- package/dist/runtime/server/routes/cms/collections/[id].put.d.ts +4 -0
- package/dist/runtime/server/routes/cms/collections/[id].put.mjs +11 -0
- package/dist/runtime/server/routes/cms/collections/index.get.d.ts +4 -0
- package/dist/runtime/server/routes/cms/collections/index.get.mjs +6 -0
- package/dist/runtime/server/routes/cms/collections/index.post.d.ts +4 -0
- package/dist/runtime/server/routes/cms/collections/index.post.mjs +19 -0
- package/dist/runtime/server/routes/cms/components/index.get.d.ts +17 -0
- package/dist/runtime/server/routes/cms/components/index.get.mjs +16 -0
- package/dist/runtime/server/routes/cms/deploy.post.d.ts +4 -0
- package/dist/runtime/server/routes/cms/deploy.post.mjs +46 -0
- package/dist/runtime/server/routes/cms/export.post.d.ts +10 -0
- package/dist/runtime/server/routes/cms/export.post.mjs +55 -0
- package/dist/runtime/server/routes/cms/navigation.get.d.ts +8 -0
- package/dist/runtime/server/routes/cms/navigation.get.mjs +36 -0
- package/dist/runtime/server/routes/cms/preview/disable.get.d.ts +9 -0
- package/dist/runtime/server/routes/cms/preview/disable.get.mjs +9 -0
- package/dist/runtime/server/routes/cms/preview/enable.get.d.ts +14 -0
- package/dist/runtime/server/routes/cms/preview/enable.get.mjs +42 -0
- package/dist/runtime/server/routes/cms/publish-scheduled.post.d.ts +11 -0
- package/dist/runtime/server/routes/cms/publish-scheduled.post.mjs +35 -0
- package/dist/runtime/server/routes/cms/search.get.d.ts +13 -0
- package/dist/runtime/server/routes/cms/search.get.mjs +137 -0
- package/dist/runtime/server/routes/cms/sync.post.d.ts +7 -0
- package/dist/runtime/server/routes/cms/sync.post.mjs +18 -0
- package/dist/runtime/server/routes/cms/webhooks/[provider].post.d.ts +150 -0
- package/dist/runtime/server/routes/cms/webhooks/[provider].post.mjs +213 -0
- package/dist/runtime/server/routes/docs/search.get.d.ts +15 -0
- package/dist/runtime/server/routes/docs/search.get.mjs +20 -0
- package/dist/runtime/server/routes/feed.xml.get.d.ts +2 -0
- package/dist/runtime/server/routes/feed.xml.get.mjs +73 -0
- package/dist/runtime/server/routes/mail/bounce.post.d.ts +14 -0
- package/dist/runtime/server/routes/mail/bounce.post.mjs +56 -0
- package/dist/runtime/server/routes/mail/inbox/[id].get.d.ts +2 -0
- package/dist/runtime/server/routes/mail/inbox/[id].get.mjs +9 -0
- package/dist/runtime/server/routes/mail/inbox.get.d.ts +4 -0
- package/dist/runtime/server/routes/mail/inbox.get.mjs +7 -0
- package/dist/runtime/server/routes/mail/suppressions/[email].delete.d.ts +11 -0
- package/dist/runtime/server/routes/mail/suppressions/[email].delete.mjs +18 -0
- package/dist/runtime/server/routes/mail/suppressions/index.get.d.ts +12 -0
- package/dist/runtime/server/routes/mail/suppressions/index.get.mjs +23 -0
- package/dist/runtime/server/routes/mail/suppressions/index.post.d.ts +10 -0
- package/dist/runtime/server/routes/mail/suppressions/index.post.mjs +23 -0
- package/dist/runtime/server/routes/mail/unsubscribe.d.ts +13 -0
- package/dist/runtime/server/routes/mail/unsubscribe.mjs +91 -0
- package/dist/runtime/server/routes/mail/webhooks.post.d.ts +12 -0
- package/dist/runtime/server/routes/mail/webhooks.post.mjs +71 -0
- package/dist/runtime/server/routes/notifications/[id]/read.post.d.ts +4 -0
- package/dist/runtime/server/routes/notifications/[id]/read.post.mjs +13 -0
- package/dist/runtime/server/routes/notifications/[id].delete.d.ts +4 -0
- package/dist/runtime/server/routes/notifications/[id].delete.mjs +13 -0
- package/dist/runtime/server/routes/notifications/[id].get.d.ts +2 -0
- package/dist/runtime/server/routes/notifications/[id].get.mjs +15 -0
- package/dist/runtime/server/routes/notifications/index.get.d.ts +6 -0
- package/dist/runtime/server/routes/notifications/index.get.mjs +18 -0
- package/dist/runtime/server/routes/notifications/push/subscribe.post.d.ts +4 -0
- package/dist/runtime/server/routes/notifications/push/subscribe.post.mjs +20 -0
- package/dist/runtime/server/routes/notifications/push/unsubscribe.post.d.ts +4 -0
- package/dist/runtime/server/routes/notifications/push/unsubscribe.post.mjs +15 -0
- package/dist/runtime/server/routes/notifications/read-all.post.d.ts +4 -0
- package/dist/runtime/server/routes/notifications/read-all.post.mjs +11 -0
- package/dist/runtime/server/routes/payments/cancel.post.d.ts +7 -0
- package/dist/runtime/server/routes/payments/cancel.post.mjs +9 -0
- package/dist/runtime/server/routes/payments/change-plan.post.d.ts +7 -0
- package/dist/runtime/server/routes/payments/change-plan.post.mjs +12 -0
- package/dist/runtime/server/routes/payments/checkout.post.d.ts +9 -0
- package/dist/runtime/server/routes/payments/checkout.post.mjs +16 -0
- package/dist/runtime/server/routes/payments/pause.post.d.ts +7 -0
- package/dist/runtime/server/routes/payments/pause.post.mjs +9 -0
- package/dist/runtime/server/routes/payments/portal.post.d.ts +5 -0
- package/dist/runtime/server/routes/payments/portal.post.mjs +9 -0
- package/dist/runtime/server/routes/payments/subscription.get.d.ts +6 -0
- package/dist/runtime/server/routes/payments/subscription.get.mjs +9 -0
- package/dist/runtime/server/routes/payments/usage.get.d.ts +12 -0
- package/dist/runtime/server/routes/payments/usage.get.mjs +18 -0
- package/dist/runtime/server/routes/payments/usage.post.d.ts +6 -0
- package/dist/runtime/server/routes/payments/usage.post.mjs +24 -0
- package/dist/runtime/server/routes/payments/webhook.post.d.ts +14 -0
- package/dist/runtime/server/routes/payments/webhook.post.mjs +21 -0
- package/dist/runtime/server/routes/realtime/broadcast.post.d.ts +4 -0
- package/dist/runtime/server/routes/realtime/broadcast.post.mjs +26 -0
- package/dist/runtime/server/routes/realtime/history.delete.d.ts +13 -0
- package/dist/runtime/server/routes/realtime/history.delete.mjs +12 -0
- package/dist/runtime/server/routes/realtime/history.get.d.ts +16 -0
- package/dist/runtime/server/routes/realtime/history.get.mjs +15 -0
- package/dist/runtime/server/routes/realtime/presence.get.d.ts +6 -0
- package/dist/runtime/server/routes/realtime/presence.get.mjs +27 -0
- package/dist/runtime/server/routes/realtime/state.get.d.ts +5 -0
- package/dist/runtime/server/routes/realtime/state.get.mjs +26 -0
- package/dist/runtime/server/routes/realtime/state.post.d.ts +6 -0
- package/dist/runtime/server/routes/realtime/state.post.mjs +37 -0
- package/dist/runtime/server/routes/realtime/ws.get.d.ts +2 -0
- package/dist/runtime/server/routes/realtime/ws.get.mjs +73 -0
- package/dist/runtime/server/routes/robots.txt.get.d.ts +2 -0
- package/dist/runtime/server/routes/robots.txt.get.mjs +41 -0
- package/dist/runtime/server/routes/rss.xml.get.d.ts +2 -0
- package/dist/runtime/server/routes/rss.xml.get.mjs +2 -0
- package/dist/runtime/server/routes/sitemap.xml.get.d.ts +2 -0
- package/dist/runtime/server/routes/sitemap.xml.get.mjs +84 -0
- package/dist/runtime/server/routes/storage/file/[...key].delete.d.ts +4 -0
- package/dist/runtime/server/routes/storage/file/[...key].delete.mjs +23 -0
- package/dist/runtime/server/routes/storage/file/[...key].get.d.ts +2 -0
- package/dist/runtime/server/routes/storage/file/[...key].get.mjs +23 -0
- package/dist/runtime/server/routes/storage/files.get.d.ts +14 -0
- package/dist/runtime/server/routes/storage/files.get.mjs +11 -0
- package/dist/runtime/server/routes/storage/presigned.post.d.ts +8 -0
- package/dist/runtime/server/routes/storage/presigned.post.mjs +39 -0
- package/dist/runtime/server/routes/storage/sign.post.d.ts +6 -0
- package/dist/runtime/server/routes/storage/sign.post.mjs +24 -0
- package/dist/runtime/server/routes/storage/upload.post.d.ts +22 -0
- package/dist/runtime/server/routes/storage/upload.post.mjs +96 -0
- package/dist/runtime/server/routes/tenants/[tenant]/domains/[domain]/index.delete.d.ts +8 -0
- package/dist/runtime/server/routes/tenants/[tenant]/domains/[domain]/index.delete.mjs +39 -0
- package/dist/runtime/server/routes/tenants/[tenant]/domains/[domain]/verify.post.d.ts +8 -0
- package/dist/runtime/server/routes/tenants/[tenant]/domains/[domain]/verify.post.mjs +39 -0
- package/dist/runtime/server/routes/tenants/[tenant]/domains/index.get.d.ts +8 -0
- package/dist/runtime/server/routes/tenants/[tenant]/domains/index.get.mjs +20 -0
- package/dist/runtime/server/routes/tenants/[tenant]/domains/index.post.d.ts +8 -0
- package/dist/runtime/server/routes/tenants/[tenant]/domains/index.post.mjs +44 -0
- package/dist/runtime/server/routes/tenants/current.get.d.ts +8 -0
- package/dist/runtime/server/routes/tenants/current.get.mjs +6 -0
- package/dist/runtime/server/tasks/cms/publish.d.ts +4 -0
- package/dist/runtime/server/tasks/cms/publish.mjs +18 -0
- package/dist/runtime/server/utils/agent-store.d.ts +24 -0
- package/dist/runtime/server/utils/agent-store.mjs +53 -0
- package/dist/runtime/server/utils/agents-registry-fallback.d.ts +1 -0
- package/dist/runtime/server/utils/agents-registry-fallback.mjs +1 -0
- package/dist/runtime/server/utils/ai.d.ts +119 -0
- package/dist/runtime/server/utils/ai.mjs +607 -0
- package/dist/runtime/server/utils/analytics-query.d.ts +109 -0
- package/dist/runtime/server/utils/analytics-query.mjs +234 -0
- package/dist/runtime/server/utils/auth.d.ts +60 -0
- package/dist/runtime/server/utils/auth.mjs +361 -0
- package/dist/runtime/server/utils/blob-store.d.ts +13 -0
- package/dist/runtime/server/utils/blob-store.mjs +60 -0
- package/dist/runtime/server/utils/bots.d.ts +21 -0
- package/dist/runtime/server/utils/bots.mjs +491 -0
- package/dist/runtime/server/utils/cache.d.ts +33 -0
- package/dist/runtime/server/utils/cache.mjs +128 -0
- package/dist/runtime/server/utils/cms-events.d.ts +17 -0
- package/dist/runtime/server/utils/cms-events.mjs +80 -0
- package/dist/runtime/server/utils/cms-filter.d.ts +3 -0
- package/dist/runtime/server/utils/cms-filter.mjs +34 -0
- package/dist/runtime/server/utils/cms.d.ts +278 -0
- package/dist/runtime/server/utils/cms.mjs +3268 -0
- package/dist/runtime/server/utils/config.d.ts +27 -0
- package/dist/runtime/server/utils/config.mjs +38 -0
- package/dist/runtime/server/utils/context.d.ts +13 -0
- package/dist/runtime/server/utils/context.mjs +98 -0
- package/dist/runtime/server/utils/crypto.d.ts +16 -0
- package/dist/runtime/server/utils/crypto.mjs +56 -0
- package/dist/runtime/server/utils/dev-logs.d.ts +21 -0
- package/dist/runtime/server/utils/dev-logs.mjs +41 -0
- package/dist/runtime/server/utils/dev-proxy.d.ts +1 -0
- package/dist/runtime/server/utils/dev-proxy.mjs +69 -0
- package/dist/runtime/server/utils/domains.d.ts +46 -0
- package/dist/runtime/server/utils/domains.mjs +318 -0
- package/dist/runtime/server/utils/drizzle.d.ts +10 -0
- package/dist/runtime/server/utils/drizzle.mjs +36 -0
- package/dist/runtime/server/utils/email-templates.d.ts +44 -0
- package/dist/runtime/server/utils/email-templates.mjs +373 -0
- package/dist/runtime/server/utils/feed.d.ts +42 -0
- package/dist/runtime/server/utils/feed.mjs +161 -0
- package/dist/runtime/server/utils/impersonation.d.ts +67 -0
- package/dist/runtime/server/utils/impersonation.mjs +298 -0
- package/dist/runtime/server/utils/jobs.d.ts +70 -0
- package/dist/runtime/server/utils/jobs.mjs +125 -0
- package/dist/runtime/server/utils/kv-store.d.ts +9 -0
- package/dist/runtime/server/utils/kv-store.mjs +32 -0
- package/dist/runtime/server/utils/mail-suppression.d.ts +62 -0
- package/dist/runtime/server/utils/mail-suppression.mjs +328 -0
- package/dist/runtime/server/utils/mail.d.ts +90 -0
- package/dist/runtime/server/utils/mail.mjs +366 -0
- package/dist/runtime/server/utils/notifications.d.ts +51 -0
- package/dist/runtime/server/utils/notifications.mjs +215 -0
- package/dist/runtime/server/utils/organization.d.ts +54 -0
- package/dist/runtime/server/utils/organization.mjs +354 -0
- package/dist/runtime/server/utils/passwordless.d.ts +48 -0
- package/dist/runtime/server/utils/passwordless.mjs +179 -0
- package/dist/runtime/server/utils/payments.d.ts +121 -0
- package/dist/runtime/server/utils/payments.mjs +1067 -0
- package/dist/runtime/server/utils/queue-fallback.d.ts +2 -0
- package/dist/runtime/server/utils/queue-fallback.mjs +2 -0
- package/dist/runtime/server/utils/queue.d.ts +4 -0
- package/dist/runtime/server/utils/queue.mjs +3 -0
- package/dist/runtime/server/utils/rag.d.ts +25 -0
- package/dist/runtime/server/utils/rag.mjs +333 -0
- package/dist/runtime/server/utils/ratelimit.d.ts +45 -0
- package/dist/runtime/server/utils/ratelimit.mjs +182 -0
- package/dist/runtime/server/utils/realtime.d.ts +110 -0
- package/dist/runtime/server/utils/realtime.mjs +197 -0
- package/dist/runtime/server/utils/schema-fallback.d.ts +3 -0
- package/dist/runtime/server/utils/schema-fallback.mjs +2 -0
- package/dist/runtime/server/utils/session.d.ts +72 -0
- package/dist/runtime/server/utils/session.mjs +287 -0
- package/dist/runtime/server/utils/sso.d.ts +49 -0
- package/dist/runtime/server/utils/sso.mjs +131 -0
- package/dist/runtime/server/utils/storage.d.ts +111 -0
- package/dist/runtime/server/utils/storage.mjs +654 -0
- package/dist/runtime/server/utils/tenant.d.ts +44 -0
- package/dist/runtime/server/utils/tenant.mjs +285 -0
- package/dist/runtime/server/utils/totp.d.ts +33 -0
- package/dist/runtime/server/utils/totp.mjs +112 -0
- package/dist/runtime/server/utils/tracker.d.ts +72 -0
- package/dist/runtime/server/utils/tracker.mjs +139 -0
- package/dist/runtime/server/utils/turnstile.d.ts +17 -0
- package/dist/runtime/server/utils/turnstile.mjs +68 -0
- package/dist/runtime/server/utils/vapid.d.ts +35 -0
- package/dist/runtime/server/utils/vapid.mjs +211 -0
- package/dist/runtime/storage.d.ts +1 -0
- package/dist/runtime/storage.mjs +0 -0
- package/dist/runtime/types/ai.d.ts +68 -0
- package/dist/runtime/types/ai.mjs +0 -0
- package/dist/runtime/types/analytics.d.ts +30 -0
- package/dist/runtime/types/analytics.mjs +0 -0
- package/dist/runtime/types/auth-globals.d.ts +14 -0
- package/dist/runtime/types/auth.d.ts +153 -0
- package/dist/runtime/types/auth.mjs +0 -0
- package/dist/runtime/types/browser.d.ts +29 -0
- package/dist/runtime/types/browser.mjs +0 -0
- package/dist/runtime/types/d1.d.ts +44 -0
- package/dist/runtime/types/d1.mjs +0 -0
- package/dist/runtime/types/drizzle.d.ts +13 -0
- package/dist/runtime/types/drizzle.mjs +0 -0
- package/dist/runtime/types/durable-object.d.ts +51 -0
- package/dist/runtime/types/durable-object.mjs +0 -0
- package/dist/runtime/types/email.d.ts +66 -0
- package/dist/runtime/types/email.mjs +0 -0
- package/dist/runtime/types/hyperdrive.d.ts +18 -0
- package/dist/runtime/types/hyperdrive.mjs +0 -0
- package/dist/runtime/types/imports.d.ts +58 -0
- package/dist/runtime/types/index.d.ts +156 -0
- package/dist/runtime/types/index.mjs +13 -0
- package/dist/runtime/types/queue.d.ts +67 -0
- package/dist/runtime/types/queue.mjs +0 -0
- package/dist/runtime/types/r2.d.ts +108 -0
- package/dist/runtime/types/r2.mjs +0 -0
- package/dist/runtime/types/ratelimit.d.ts +21 -0
- package/dist/runtime/types/ratelimit.mjs +0 -0
- package/dist/runtime/types/vectorize.d.ts +74 -0
- package/dist/runtime/types/vectorize.mjs +0 -0
- package/dist/runtime/vectorize.d.ts +21 -0
- package/dist/runtime/vectorize.mjs +53 -0
- package/dist/types.d.ts +2750 -0
- package/dist/types.mjs +1 -0
- package/dist/utils/agents.d.ts +8 -0
- package/dist/utils/auth-schema.d.ts +11 -0
- package/dist/utils/bindings.d.ts +16 -0
- package/dist/utils/cms-schema.d.ts +1 -0
- package/dist/utils/cms-sources.d.ts +62 -0
- package/dist/utils/drizzle.d.ts +42 -0
- package/dist/utils/jobs.d.ts +8 -0
- package/dist/utils/local-db.d.ts +28 -0
- package/dist/utils/notifications-schema.d.ts +15 -0
- package/dist/utils/payments-schema.d.ts +11 -0
- package/dist/utils/pkg.d.ts +15 -0
- package/dist/utils/queue.d.ts +8 -0
- package/dist/utils/tenants-schema.d.ts +11 -0
- package/package.json +104 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { getRequestHeader, createError } from "nuxt/server";
|
|
2
|
+
import { getQarpeoConfig } from "./config.mjs";
|
|
3
|
+
export async function verifyTurnstileToken(event, token, remoteIp) {
|
|
4
|
+
const resolvedToken = token || getRequestHeader(event, "cf-turnstile-response") || getRequestHeader(event, "x-turnstile-token");
|
|
5
|
+
if (!resolvedToken) {
|
|
6
|
+
return {
|
|
7
|
+
success: false,
|
|
8
|
+
errorCodes: ["missing-input-response"]
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
if (resolvedToken === "XXXX.DUMMY.TOKEN.XXXX") {
|
|
12
|
+
return { success: true };
|
|
13
|
+
}
|
|
14
|
+
const authConfig = getQarpeoConfig(event).auth || {};
|
|
15
|
+
const turnstileConfig = typeof authConfig.turnstile === "object" ? authConfig.turnstile : {};
|
|
16
|
+
const secretKey = globalThis.process?.env?.NUXT_TURNSTILE_SECRET_KEY || globalThis.process?.env?.TURNSTILE_SECRET_KEY || turnstileConfig.secretKey;
|
|
17
|
+
if (!secretKey) {
|
|
18
|
+
if (globalThis.process?.env?.NODE_ENV !== "production") {
|
|
19
|
+
console.warn(
|
|
20
|
+
"[qarpeo:turnstile] NUXT_TURNSTILE_SECRET_KEY is not set. Allowing request in development mode."
|
|
21
|
+
);
|
|
22
|
+
return { success: true };
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
success: false,
|
|
26
|
+
errorCodes: ["missing-secret-key"]
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const ip = remoteIp || getRequestHeader(event, "cf-connecting-ip") || getRequestHeader(event, "x-forwarded-for")?.split(",")[0]?.trim();
|
|
30
|
+
const formData = new FormData();
|
|
31
|
+
formData.append("secret", secretKey);
|
|
32
|
+
formData.append("response", resolvedToken);
|
|
33
|
+
if (ip) {
|
|
34
|
+
formData.append("remoteip", ip);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const res = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", {
|
|
38
|
+
method: "POST",
|
|
39
|
+
body: formData
|
|
40
|
+
});
|
|
41
|
+
const outcome = await res.json();
|
|
42
|
+
return {
|
|
43
|
+
success: Boolean(outcome.success),
|
|
44
|
+
errorCodes: outcome["error-codes"],
|
|
45
|
+
challengeTs: outcome.challenge_ts,
|
|
46
|
+
hostname: outcome.hostname,
|
|
47
|
+
action: outcome.action,
|
|
48
|
+
cdata: outcome.cdata
|
|
49
|
+
};
|
|
50
|
+
} catch (err) {
|
|
51
|
+
console.error("[qarpeo:turnstile] Verification network error:", err.message);
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
errorCodes: ["internal-error"]
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export async function requireTurnstile(event, token) {
|
|
59
|
+
const result = await verifyTurnstileToken(event, token);
|
|
60
|
+
if (!result.success) {
|
|
61
|
+
throw createError({
|
|
62
|
+
statusCode: 403,
|
|
63
|
+
statusMessage: "Forbidden",
|
|
64
|
+
message: "Turnstile bot verification failed. Please complete the security challenge.",
|
|
65
|
+
data: { errorCodes: result.errorCodes }
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qarpeo VAPID Web Push helper — RFC 8292 & RFC 8291
|
|
3
|
+
* Uses only native crypto.subtle (zero external dependencies).
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Generate a new VAPID P-256 key pair.
|
|
7
|
+
* Returns base64url-encoded public and private keys.
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateVapidKeys(): Promise<{
|
|
10
|
+
publicKey: string;
|
|
11
|
+
privateKey: string;
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Build a RFC 8292 VAPID Authorization header value.
|
|
15
|
+
*
|
|
16
|
+
* @param endpoint Push subscription endpoint URL
|
|
17
|
+
* @param subject VAPID contact URI (mailto: or https:)
|
|
18
|
+
* @param publicKey Base64url VAPID public key
|
|
19
|
+
* @param privateKey Base64url VAPID private key (raw 32-byte scalar)
|
|
20
|
+
*/
|
|
21
|
+
export declare function signVapidHeader(endpoint: string, subject: string, publicKey: string, privateKey: string): Promise<string>;
|
|
22
|
+
/**
|
|
23
|
+
* Encrypt a Web Push payload using ECDH + HKDF + AES-128-GCM.
|
|
24
|
+
* Returns the encrypted body and required headers.
|
|
25
|
+
*/
|
|
26
|
+
export declare function encryptWebPushPayload(subscription: {
|
|
27
|
+
endpoint: string;
|
|
28
|
+
keys: {
|
|
29
|
+
p256dh: string;
|
|
30
|
+
auth: string;
|
|
31
|
+
};
|
|
32
|
+
}, payload: string | object): Promise<{
|
|
33
|
+
body: Uint8Array;
|
|
34
|
+
headers: Record<string, string>;
|
|
35
|
+
}>;
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
function base64UrlEncode(buffer) {
|
|
2
|
+
const bytes = new Uint8Array(
|
|
3
|
+
"buffer" in buffer ? buffer.buffer : buffer,
|
|
4
|
+
"byteOffset" in buffer ? buffer.byteOffset : 0,
|
|
5
|
+
buffer.byteLength
|
|
6
|
+
);
|
|
7
|
+
let str = "";
|
|
8
|
+
for (const byte of bytes) str += String.fromCharCode(byte);
|
|
9
|
+
return btoa(str).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
|
|
10
|
+
}
|
|
11
|
+
function base64UrlDecode(str) {
|
|
12
|
+
const padded = str.replace(/-/g, "+").replace(/_/g, "/");
|
|
13
|
+
const pad = padded.length % 4 === 0 ? 0 : 4 - padded.length % 4;
|
|
14
|
+
const b64 = padded + "=".repeat(pad);
|
|
15
|
+
const binary = atob(b64);
|
|
16
|
+
const bytes = new Uint8Array(binary.length);
|
|
17
|
+
for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
|
|
18
|
+
return bytes;
|
|
19
|
+
}
|
|
20
|
+
function concatBuffers(...buffers) {
|
|
21
|
+
const totalLen = buffers.reduce((s, b) => s + b.byteLength, 0);
|
|
22
|
+
const out = new Uint8Array(totalLen);
|
|
23
|
+
let offset = 0;
|
|
24
|
+
for (const buf of buffers) {
|
|
25
|
+
out.set(new Uint8Array(buf), offset);
|
|
26
|
+
offset += buf.byteLength;
|
|
27
|
+
}
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
function encodeUint16BE(n) {
|
|
31
|
+
return new Uint8Array([n >> 8 & 255, n & 255]);
|
|
32
|
+
}
|
|
33
|
+
export async function generateVapidKeys() {
|
|
34
|
+
const keyPair = await crypto.subtle.generateKey(
|
|
35
|
+
{ name: "ECDH", namedCurve: "P-256" },
|
|
36
|
+
true,
|
|
37
|
+
["deriveKey", "deriveBits"]
|
|
38
|
+
);
|
|
39
|
+
const publicKeyRaw = await crypto.subtle.exportKey("raw", keyPair.publicKey);
|
|
40
|
+
const privateKeyPkcs8 = await crypto.subtle.exportKey("pkcs8", keyPair.privateKey);
|
|
41
|
+
const privateKeyBytes = new Uint8Array(privateKeyPkcs8).slice(-32);
|
|
42
|
+
return {
|
|
43
|
+
publicKey: base64UrlEncode(publicKeyRaw),
|
|
44
|
+
privateKey: base64UrlEncode(privateKeyBytes.buffer)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export async function signVapidHeader(endpoint, subject, publicKey, privateKey) {
|
|
48
|
+
const origin = new URL(endpoint).origin;
|
|
49
|
+
const expiry = Math.floor(Date.now() / 1e3) + 12 * 3600;
|
|
50
|
+
const header = base64UrlEncode(
|
|
51
|
+
new TextEncoder().encode(JSON.stringify({ typ: "JWT", alg: "ES256" }))
|
|
52
|
+
);
|
|
53
|
+
const payload = base64UrlEncode(
|
|
54
|
+
new TextEncoder().encode(JSON.stringify({ aud: origin, exp: expiry, sub: subject }))
|
|
55
|
+
);
|
|
56
|
+
const signingInput = `${header}.${payload}`;
|
|
57
|
+
const privateKeyBytes = base64UrlDecode(privateKey);
|
|
58
|
+
const publicKeyBytes = base64UrlDecode(publicKey);
|
|
59
|
+
const ecPrivateKey = concatBuffers(
|
|
60
|
+
// ECPrivateKey header: version 1, privateKey octet string
|
|
61
|
+
new Uint8Array([48, 119, 2, 1, 1, 4, 32]).buffer,
|
|
62
|
+
privateKeyBytes.buffer,
|
|
63
|
+
// namedCurve OID for P-256 [a0 0a 06 08 2a 86 48 ce 3d 03 01 07]
|
|
64
|
+
new Uint8Array([160, 10, 6, 8, 42, 134, 72, 206, 61, 3, 1, 7]).buffer,
|
|
65
|
+
// publicKey bit string [a1 44 03 42 00 ...]
|
|
66
|
+
new Uint8Array([161, 68, 3, 66, 0]).buffer,
|
|
67
|
+
publicKeyBytes.buffer
|
|
68
|
+
);
|
|
69
|
+
const pkcs8Header = new Uint8Array([
|
|
70
|
+
// SEQUENCE
|
|
71
|
+
48,
|
|
72
|
+
129,
|
|
73
|
+
135,
|
|
74
|
+
// version 0
|
|
75
|
+
2,
|
|
76
|
+
1,
|
|
77
|
+
0,
|
|
78
|
+
// AlgorithmIdentifier: EC + P-256 OID
|
|
79
|
+
48,
|
|
80
|
+
19,
|
|
81
|
+
6,
|
|
82
|
+
7,
|
|
83
|
+
42,
|
|
84
|
+
134,
|
|
85
|
+
72,
|
|
86
|
+
206,
|
|
87
|
+
61,
|
|
88
|
+
2,
|
|
89
|
+
1,
|
|
90
|
+
6,
|
|
91
|
+
8,
|
|
92
|
+
42,
|
|
93
|
+
134,
|
|
94
|
+
72,
|
|
95
|
+
206,
|
|
96
|
+
61,
|
|
97
|
+
3,
|
|
98
|
+
1,
|
|
99
|
+
7,
|
|
100
|
+
// OCTET STRING wrapping ECPrivateKey
|
|
101
|
+
4,
|
|
102
|
+
109
|
|
103
|
+
]);
|
|
104
|
+
const pkcs8 = concatBuffers(pkcs8Header.buffer, ecPrivateKey.buffer);
|
|
105
|
+
const signingKey = await crypto.subtle.importKey(
|
|
106
|
+
"pkcs8",
|
|
107
|
+
pkcs8.buffer,
|
|
108
|
+
{ name: "ECDSA", namedCurve: "P-256" },
|
|
109
|
+
false,
|
|
110
|
+
["sign"]
|
|
111
|
+
);
|
|
112
|
+
const signature = await crypto.subtle.sign(
|
|
113
|
+
{ name: "ECDSA", hash: "SHA-256" },
|
|
114
|
+
signingKey,
|
|
115
|
+
new TextEncoder().encode(signingInput)
|
|
116
|
+
);
|
|
117
|
+
const jwtToken = `${signingInput}.${base64UrlEncode(signature)}`;
|
|
118
|
+
return `vapid t=${jwtToken}, k=${publicKey}`;
|
|
119
|
+
}
|
|
120
|
+
export async function encryptWebPushPayload(subscription, payload) {
|
|
121
|
+
const plaintext = typeof payload === "string" ? payload : JSON.stringify(payload);
|
|
122
|
+
const plaintextBytes = new TextEncoder().encode(plaintext);
|
|
123
|
+
const receiverPublicKeyBytes = base64UrlDecode(subscription.keys.p256dh);
|
|
124
|
+
const authSecret = base64UrlDecode(subscription.keys.auth);
|
|
125
|
+
const senderKeyPair = await crypto.subtle.generateKey(
|
|
126
|
+
{ name: "ECDH", namedCurve: "P-256" },
|
|
127
|
+
true,
|
|
128
|
+
["deriveBits"]
|
|
129
|
+
);
|
|
130
|
+
const senderPublicKeyRaw = await crypto.subtle.exportKey("raw", senderKeyPair.publicKey);
|
|
131
|
+
const senderPublicKey = new Uint8Array(senderPublicKeyRaw);
|
|
132
|
+
const receiverPublicKey = await crypto.subtle.importKey(
|
|
133
|
+
"raw",
|
|
134
|
+
receiverPublicKeyBytes,
|
|
135
|
+
{ name: "ECDH", namedCurve: "P-256" },
|
|
136
|
+
false,
|
|
137
|
+
[]
|
|
138
|
+
);
|
|
139
|
+
const sharedSecretBits = await crypto.subtle.deriveBits(
|
|
140
|
+
{ name: "ECDH", public: receiverPublicKey },
|
|
141
|
+
senderKeyPair.privateKey,
|
|
142
|
+
256
|
|
143
|
+
);
|
|
144
|
+
const sharedSecret = new Uint8Array(sharedSecretBits);
|
|
145
|
+
const salt = crypto.getRandomValues(new Uint8Array(16));
|
|
146
|
+
const prk = await hkdf(
|
|
147
|
+
authSecret,
|
|
148
|
+
sharedSecret,
|
|
149
|
+
buildInfo("Content-Encoding: auth\0", new Uint8Array(0), new Uint8Array(0)),
|
|
150
|
+
32
|
|
151
|
+
);
|
|
152
|
+
const cek = await hkdf(
|
|
153
|
+
salt,
|
|
154
|
+
prk,
|
|
155
|
+
buildInfo(
|
|
156
|
+
"Content-Encoding: aesgcm\0",
|
|
157
|
+
receiverPublicKeyBytes,
|
|
158
|
+
senderPublicKey
|
|
159
|
+
),
|
|
160
|
+
16
|
|
161
|
+
);
|
|
162
|
+
const nonce = await hkdf(
|
|
163
|
+
salt,
|
|
164
|
+
prk,
|
|
165
|
+
buildInfo("Content-Encoding: nonce\0", receiverPublicKeyBytes, senderPublicKey),
|
|
166
|
+
12
|
|
167
|
+
);
|
|
168
|
+
const encryptKey = await crypto.subtle.importKey("raw", cek, { name: "AES-GCM" }, false, [
|
|
169
|
+
"encrypt"
|
|
170
|
+
]);
|
|
171
|
+
const paddingLength = 0;
|
|
172
|
+
const paddedContent = concatBuffers(
|
|
173
|
+
encodeUint16BE(paddingLength).buffer,
|
|
174
|
+
new Uint8Array(paddingLength).buffer,
|
|
175
|
+
plaintextBytes.buffer
|
|
176
|
+
);
|
|
177
|
+
const ciphertext = await crypto.subtle.encrypt(
|
|
178
|
+
{ name: "AES-GCM", iv: nonce },
|
|
179
|
+
encryptKey,
|
|
180
|
+
paddedContent
|
|
181
|
+
);
|
|
182
|
+
const cryptoKey = `dh=${base64UrlEncode(senderPublicKeyRaw)}`;
|
|
183
|
+
const encryptionHeader = `salt=${base64UrlEncode(salt.buffer)}`;
|
|
184
|
+
return {
|
|
185
|
+
body: new Uint8Array(ciphertext),
|
|
186
|
+
headers: {
|
|
187
|
+
"Content-Encoding": "aesgcm",
|
|
188
|
+
"Crypto-Key": cryptoKey,
|
|
189
|
+
Encryption: encryptionHeader,
|
|
190
|
+
"Content-Type": "application/octet-stream"
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
async function hkdf(salt, ikm, info, length) {
|
|
195
|
+
const saltKey = await crypto.subtle.importKey("raw", salt, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
|
|
196
|
+
const prk = new Uint8Array(await crypto.subtle.sign("HMAC", saltKey, ikm));
|
|
197
|
+
const prkKey = await crypto.subtle.importKey("raw", prk, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
|
|
198
|
+
const counter = new Uint8Array([1]);
|
|
199
|
+
const okm = new Uint8Array(await crypto.subtle.sign("HMAC", prkKey, concatBuffers(info.buffer, counter.buffer)));
|
|
200
|
+
return okm.slice(0, length);
|
|
201
|
+
}
|
|
202
|
+
function buildInfo(encoding, receiverKey, senderKey) {
|
|
203
|
+
const encBytes = new TextEncoder().encode(encoding);
|
|
204
|
+
return concatBuffers(
|
|
205
|
+
encBytes.buffer,
|
|
206
|
+
encodeUint16BE(receiverKey.length).buffer,
|
|
207
|
+
receiverKey.buffer,
|
|
208
|
+
encodeUint16BE(senderKey.length).buffer,
|
|
209
|
+
senderKey.buffer
|
|
210
|
+
);
|
|
211
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "./app/composables/storage";
|
|
File without changes
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { GenerateImageOptions, GenerateImageResult, GenerateSpeechOptions, GenerateSpeechResult, TranscribeAudioInput, TranscribeAudioOptions, TranscribeAudioResult, StreamTextOptions } from "../../types";
|
|
2
|
+
export type { GenerateImageOptions, GenerateImageResult, GenerateSpeechOptions, GenerateSpeechResult, TranscribeAudioInput, TranscribeAudioOptions, TranscribeAudioResult, StreamTextOptions, };
|
|
3
|
+
export interface AiOptions {
|
|
4
|
+
/** Optional Cloudflare AI Gateway routing options */
|
|
5
|
+
gateway?: {
|
|
6
|
+
id: string;
|
|
7
|
+
skipCache?: boolean;
|
|
8
|
+
cacheTtl?: number;
|
|
9
|
+
};
|
|
10
|
+
/** Additional driver or provider-specific options */
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}
|
|
13
|
+
export interface AiBinding {
|
|
14
|
+
/**
|
|
15
|
+
* Runs an inference task against the specified model.
|
|
16
|
+
*
|
|
17
|
+
* @param model Model identifier, e.g. `@cf/meta/llama-3.1-8b-instruct`
|
|
18
|
+
* @param inputs Inputs required by the model (prompt, messages, text, etc.)
|
|
19
|
+
* @param options Optional AI Gateway or inference options
|
|
20
|
+
*/
|
|
21
|
+
run(model: string, inputs: Record<string, any>, options?: AiOptions): Promise<any>;
|
|
22
|
+
}
|
|
23
|
+
export interface QarpeoAI {
|
|
24
|
+
/**
|
|
25
|
+
* Run an inference task using Cloudflare Workers AI.
|
|
26
|
+
*
|
|
27
|
+
* @param model Model identifier, e.g. `@cf/meta/llama-3.1-8b-instruct` or
|
|
28
|
+
* `@cf/baai/bge-base-en-v1.5`
|
|
29
|
+
* @param inputs Inputs required by the model (prompt, messages, text, etc.)
|
|
30
|
+
* @param options Optional AI Gateway or inference options
|
|
31
|
+
*/
|
|
32
|
+
run<T = any>(model: string, inputs: Record<string, any>, options?: AiOptions): Promise<T>;
|
|
33
|
+
/** Access the raw underlying Cloudflare Workers AI binding. */
|
|
34
|
+
raw(bindingName?: string): AiBinding;
|
|
35
|
+
/**
|
|
36
|
+
* Generate an image from a text prompt or options using Cloudflare Workers AI.
|
|
37
|
+
*
|
|
38
|
+
* @default model "@cf/black-forest-labs/flux-1-schnell"
|
|
39
|
+
*/
|
|
40
|
+
generateImage(options: string | GenerateImageOptions): Promise<GenerateImageResult>;
|
|
41
|
+
/** Alias for `generateImage`. */
|
|
42
|
+
textToImage(options: string | GenerateImageOptions): Promise<GenerateImageResult>;
|
|
43
|
+
/**
|
|
44
|
+
* Generate spoken audio from text using Cloudflare Workers AI.
|
|
45
|
+
*
|
|
46
|
+
* @default model "@cf/meta/mms-tts-eng"
|
|
47
|
+
*/
|
|
48
|
+
generateSpeech(options: string | GenerateSpeechOptions): Promise<GenerateSpeechResult>;
|
|
49
|
+
/** Alias for `generateSpeech`. */
|
|
50
|
+
textToSpeech(options: string | GenerateSpeechOptions): Promise<GenerateSpeechResult>;
|
|
51
|
+
/**
|
|
52
|
+
* Transcribe speech audio to text using Cloudflare Workers AI Whisper.
|
|
53
|
+
*
|
|
54
|
+
* @default model "@cf/openai/whisper"
|
|
55
|
+
*/
|
|
56
|
+
transcribeAudio(options: TranscribeAudioInput | TranscribeAudioOptions): Promise<TranscribeAudioResult>;
|
|
57
|
+
/** Alias for `transcribeAudio`. */
|
|
58
|
+
speechToText(options: TranscribeAudioInput | TranscribeAudioOptions): Promise<TranscribeAudioResult>;
|
|
59
|
+
/** Generate complete text from a prompt or chat messages. */
|
|
60
|
+
generateText(options: StreamTextOptions): Promise<string>;
|
|
61
|
+
/** Stream text generation as a Server-Sent Events response. */
|
|
62
|
+
streamText(options: StreamTextOptions): Promise<Response>;
|
|
63
|
+
/** Generate vector embeddings for text. */
|
|
64
|
+
embed(text: string | string[], options?: {
|
|
65
|
+
model?: string;
|
|
66
|
+
binding?: string;
|
|
67
|
+
}): Promise<number[][]>;
|
|
68
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface AnalyticsEngineDataPoint {
|
|
2
|
+
/**
|
|
3
|
+
* Up to 1 index string to filter and group events (e.g. user ID, account ID, region). Indexed
|
|
4
|
+
* fields are searchable in the Analytics Engine SQL API.
|
|
5
|
+
*/
|
|
6
|
+
indexes?: (string | null)[];
|
|
7
|
+
/**
|
|
8
|
+
* Up to 20 blob (string) values attached to the data point. Use these for dimensions like event
|
|
9
|
+
* type, country, path, browser, etc.
|
|
10
|
+
*/
|
|
11
|
+
blobs?: (string | null)[];
|
|
12
|
+
/**
|
|
13
|
+
* Up to 20 double (numeric) values attached to the data point. Use these for measurements like
|
|
14
|
+
* response time, bytes transferred, score, count, etc.
|
|
15
|
+
*/
|
|
16
|
+
doubles?: number[];
|
|
17
|
+
}
|
|
18
|
+
export interface AnalyticsEngineDataset {
|
|
19
|
+
/**
|
|
20
|
+
* Writes a structured data point to the Analytics Engine dataset. Writes are fire-and-forget —
|
|
21
|
+
* they never block a response.
|
|
22
|
+
*
|
|
23
|
+
* @param event The structured data point to write
|
|
24
|
+
*/
|
|
25
|
+
writeDataPoint(event: AnalyticsEngineDataPoint): void;
|
|
26
|
+
}
|
|
27
|
+
export interface QarpeoAnalytics extends AnalyticsEngineDataset {
|
|
28
|
+
/** Access the raw underlying Cloudflare AnalyticsEngineDataset binding. */
|
|
29
|
+
raw(bindingName?: string): AnalyticsEngineDataset;
|
|
30
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const getAuthSession: (event: any) => Promise<any>
|
|
2
|
+
declare const setAuthSession: (event: any, session: any, config?: any) => Promise<any>
|
|
3
|
+
declare const replaceAuthSession: (event: any, session: any, config?: any) => Promise<any>
|
|
4
|
+
declare const clearAuthSession: (event: any, config?: any) => Promise<boolean>
|
|
5
|
+
declare const requireAuthSession: (event: any, opts?: any) => Promise<any>
|
|
6
|
+
declare const getUserSession: (event: any) => Promise<any>
|
|
7
|
+
declare const setUserSession: (event: any, session: any, config?: any) => Promise<any>
|
|
8
|
+
declare const replaceUserSession: (event: any, session: any, config?: any) => Promise<any>
|
|
9
|
+
declare const clearUserSession: (event: any, config?: any) => Promise<boolean>
|
|
10
|
+
declare const requireUserSession: (event: any, opts?: any) => Promise<any>
|
|
11
|
+
declare const useUserSession: () => any
|
|
12
|
+
declare const useRuntimeConfig: (event?: any) => any
|
|
13
|
+
declare const navigateTo: any
|
|
14
|
+
declare const defineNuxtRouteMiddleware: any
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
export interface QarpeoUser {
|
|
2
|
+
id: string;
|
|
3
|
+
email: string;
|
|
4
|
+
name?: string | null;
|
|
5
|
+
avatarUrl?: string | null;
|
|
6
|
+
emailVerified?: boolean;
|
|
7
|
+
role?: string;
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}
|
|
10
|
+
export interface QarpeoOrganization {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
slug: string;
|
|
14
|
+
logoUrl?: string | null;
|
|
15
|
+
createdAt: number;
|
|
16
|
+
}
|
|
17
|
+
export interface QarpeoMember {
|
|
18
|
+
id: string;
|
|
19
|
+
organizationId: string;
|
|
20
|
+
userId: string;
|
|
21
|
+
role: "owner" | "admin" | "member" | string;
|
|
22
|
+
createdAt: number;
|
|
23
|
+
user?: QarpeoUser;
|
|
24
|
+
}
|
|
25
|
+
export interface QarpeoInvitation {
|
|
26
|
+
id: string;
|
|
27
|
+
organizationId: string;
|
|
28
|
+
email: string;
|
|
29
|
+
role: string;
|
|
30
|
+
tokenHash: string;
|
|
31
|
+
expiresAt: number;
|
|
32
|
+
createdAt: number;
|
|
33
|
+
}
|
|
34
|
+
export interface QarpeoApiToken {
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
scopes: string[];
|
|
38
|
+
lastUsedAt?: number | null;
|
|
39
|
+
expiresAt?: number | null;
|
|
40
|
+
createdAt: number;
|
|
41
|
+
}
|
|
42
|
+
export interface QarpeoSession {
|
|
43
|
+
user: QarpeoUser;
|
|
44
|
+
provider?: string;
|
|
45
|
+
loggedInAt?: number;
|
|
46
|
+
/** Device session ID registered in D1 `_qarpeo_sessions` table (Phase 3) */
|
|
47
|
+
sessionId?: string;
|
|
48
|
+
/** Active organization (Phase 5) */
|
|
49
|
+
currentOrganizationId?: string | null;
|
|
50
|
+
currentOrganization?: QarpeoOrganization | null;
|
|
51
|
+
currentRole?: string | null;
|
|
52
|
+
/** Impersonation context (Phase 6) */
|
|
53
|
+
impersonator?: QarpeoUser | null;
|
|
54
|
+
/** Tenant this session was issued on — prevents cross-tenant session reuse */
|
|
55
|
+
tenantId?: string | null;
|
|
56
|
+
/** Multi-Factor Authentication enforcement status */
|
|
57
|
+
mfaRequired?: boolean;
|
|
58
|
+
mfaVerified?: boolean;
|
|
59
|
+
/** Enterprise SSO connection ID if authenticated via SAML or OIDC */
|
|
60
|
+
ssoConnectionId?: string;
|
|
61
|
+
[key: string]: any;
|
|
62
|
+
}
|
|
63
|
+
export interface QarpeoSSOConnection {
|
|
64
|
+
id: string;
|
|
65
|
+
organizationId?: string | null;
|
|
66
|
+
providerType: "saml" | "oidc";
|
|
67
|
+
name: string;
|
|
68
|
+
domain?: string | null;
|
|
69
|
+
clientId?: string | null;
|
|
70
|
+
clientSecret?: string | null;
|
|
71
|
+
issuer?: string | null;
|
|
72
|
+
ssoUrl: string;
|
|
73
|
+
tokenUrl?: string | null;
|
|
74
|
+
userinfoUrl?: string | null;
|
|
75
|
+
cert?: string | null;
|
|
76
|
+
enabled: boolean;
|
|
77
|
+
createdAt: number;
|
|
78
|
+
updatedAt: number;
|
|
79
|
+
}
|
|
80
|
+
export interface DeleteAccountOptions {
|
|
81
|
+
confirm?: boolean;
|
|
82
|
+
phrase?: string;
|
|
83
|
+
turnstileToken?: string;
|
|
84
|
+
cascadeOrg?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export interface QarpeoDeviceSession {
|
|
87
|
+
id: string;
|
|
88
|
+
clientType: string;
|
|
89
|
+
userAgent: string | null;
|
|
90
|
+
ipAddress: string | null;
|
|
91
|
+
lastActive: number;
|
|
92
|
+
expiresAt: number;
|
|
93
|
+
isCurrent: boolean;
|
|
94
|
+
}
|
|
95
|
+
export interface QarpeoAuthContext {
|
|
96
|
+
user: QarpeoUser;
|
|
97
|
+
session: QarpeoSession | null;
|
|
98
|
+
organization: QarpeoOrganization | null;
|
|
99
|
+
role: string | null;
|
|
100
|
+
isImpersonating: boolean;
|
|
101
|
+
impersonator: QarpeoUser | null;
|
|
102
|
+
token: {
|
|
103
|
+
id: string;
|
|
104
|
+
scopes: string[];
|
|
105
|
+
} | null;
|
|
106
|
+
isAdmin: boolean;
|
|
107
|
+
hasScope: (scope: string) => boolean;
|
|
108
|
+
}
|
|
109
|
+
export interface RequireAuthOptions {
|
|
110
|
+
role?: string | string[];
|
|
111
|
+
organization?: boolean;
|
|
112
|
+
scope?: string | string[];
|
|
113
|
+
}
|
|
114
|
+
export type AuthRouteRule = boolean | {
|
|
115
|
+
role?: string | string[];
|
|
116
|
+
organization?: boolean;
|
|
117
|
+
redirect?: string;
|
|
118
|
+
};
|
|
119
|
+
declare module "nitro/types" {
|
|
120
|
+
interface NitroRuntimeHooks {
|
|
121
|
+
"qarpeo:auth:oauth:success": (ctx: {
|
|
122
|
+
event: any;
|
|
123
|
+
provider: string;
|
|
124
|
+
user: QarpeoUser & {
|
|
125
|
+
isNew: boolean;
|
|
126
|
+
};
|
|
127
|
+
tokens: any;
|
|
128
|
+
}) => void | Promise<void>;
|
|
129
|
+
"qarpeo:auth:session:create": (ctx: {
|
|
130
|
+
event: any;
|
|
131
|
+
user: QarpeoUser;
|
|
132
|
+
session: QarpeoSession;
|
|
133
|
+
}) => void | Promise<void>;
|
|
134
|
+
"qarpeo:auth:otp:send": (ctx: {
|
|
135
|
+
email: string;
|
|
136
|
+
code: string;
|
|
137
|
+
type?: "otp" | "magic-link";
|
|
138
|
+
}) => void | Promise<void>;
|
|
139
|
+
"qarpeo:auth:magic-link:send": (ctx: {
|
|
140
|
+
email: string;
|
|
141
|
+
url: string;
|
|
142
|
+
}) => void | Promise<void>;
|
|
143
|
+
"qarpeo:auth:organization:invite": (ctx: {
|
|
144
|
+
organization: QarpeoOrganization;
|
|
145
|
+
invitation: QarpeoInvitation;
|
|
146
|
+
inviteUrl: string;
|
|
147
|
+
}) => void | Promise<void>;
|
|
148
|
+
"qarpeo:auth:organization:create": (ctx: {
|
|
149
|
+
organization: QarpeoOrganization;
|
|
150
|
+
owner: QarpeoUser;
|
|
151
|
+
}) => void | Promise<void>;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Browser Rendering binding representation. Represents the Worker Fetcher used to
|
|
3
|
+
* communicate with the headless Chromium instance.
|
|
4
|
+
*/
|
|
5
|
+
export interface BrowserBinding {
|
|
6
|
+
/** Fetcher to communicate directly with the Cloudflare Browser Rendering session */
|
|
7
|
+
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}
|
|
10
|
+
export interface QarpeoBrowser {
|
|
11
|
+
/** Access the raw underlying Cloudflare Browser Rendering binding fetcher. */
|
|
12
|
+
raw(bindingName?: string): BrowserBinding;
|
|
13
|
+
/** The underlying browser binding fetcher. */
|
|
14
|
+
readonly binding: BrowserBinding;
|
|
15
|
+
/**
|
|
16
|
+
* Launch a headless Chromium browser instance using `@cloudflare/puppeteer`. Requires
|
|
17
|
+
* `@cloudflare/puppeteer` to be installed.
|
|
18
|
+
*
|
|
19
|
+
* @param options Optional launch options passed to `puppeteer.launch(binding, options)`
|
|
20
|
+
*/
|
|
21
|
+
launch(options?: Record<string, any>): Promise<any>;
|
|
22
|
+
/**
|
|
23
|
+
* Connect to an existing browser session using `@cloudflare/puppeteer`. Requires
|
|
24
|
+
* `@cloudflare/puppeteer` to be installed.
|
|
25
|
+
*
|
|
26
|
+
* @param sessionId The browser session ID
|
|
27
|
+
*/
|
|
28
|
+
connect(sessionId: string): Promise<any>;
|
|
29
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** Cloudflare D1 Database types. */
|
|
2
|
+
export interface D1Result<T = Record<string, unknown>> {
|
|
3
|
+
results: T[];
|
|
4
|
+
success: boolean;
|
|
5
|
+
meta: Record<string, unknown>;
|
|
6
|
+
error?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface D1ExecResult {
|
|
9
|
+
count: number;
|
|
10
|
+
duration: number;
|
|
11
|
+
}
|
|
12
|
+
export interface D1PreparedStatement {
|
|
13
|
+
/** Bind parameters to the SQL query. */
|
|
14
|
+
bind(...values: unknown[]): D1PreparedStatement;
|
|
15
|
+
/**
|
|
16
|
+
* Return the first row matching the query. Optionally specify a column name to return only that
|
|
17
|
+
* column value.
|
|
18
|
+
*/
|
|
19
|
+
first<T = Record<string, unknown>>(): Promise<T | null>;
|
|
20
|
+
first<T = unknown>(colName: string): Promise<T | null>;
|
|
21
|
+
/** Execute the query and return all result rows. */
|
|
22
|
+
all<T = Record<string, unknown>>(): Promise<D1Result<T>>;
|
|
23
|
+
/** Execute a write query (INSERT, UPDATE, DELETE) and return execution metadata. */
|
|
24
|
+
run<T = Record<string, unknown>>(): Promise<D1Result<T>>;
|
|
25
|
+
/** Return raw arrays of rows without column keys. */
|
|
26
|
+
raw<T = unknown[]>(): Promise<T[]>;
|
|
27
|
+
}
|
|
28
|
+
export interface D1Database {
|
|
29
|
+
/** Prepare a SQL query for execution. */
|
|
30
|
+
prepare(query: string): D1PreparedStatement;
|
|
31
|
+
/** Execute multiple prepared statements sequentially in a single batch. */
|
|
32
|
+
batch<T = Record<string, unknown>>(statements: D1PreparedStatement[]): Promise<D1Result<T>[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Execute one or more SQL statements directly (supports multiple statements separated by
|
|
35
|
+
* semicolons).
|
|
36
|
+
*/
|
|
37
|
+
exec(query: string): Promise<D1ExecResult>;
|
|
38
|
+
/** Dump the database as a SQLite binary format. */
|
|
39
|
+
dump(): Promise<ArrayBuffer>;
|
|
40
|
+
}
|
|
41
|
+
export interface QarpeoDB extends D1Database {
|
|
42
|
+
/** Access the raw underlying Cloudflare D1Database binding. */
|
|
43
|
+
raw(bindingName?: string): D1Database;
|
|
44
|
+
}
|
|
File without changes
|