@raybase/core 0.0.2 → 0.3.4
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/dist/.admin-build/AdminApp.css +2 -0
- package/dist/.admin-build/AdminApp.js +77 -0
- package/dist/.admin-docs-build/AdminDocsApp.css +2 -0
- package/dist/.admin-docs-build/AdminDocsApp.js +45 -0
- package/dist/actions.d.ts +347 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +661 -0
- package/dist/actions.js.map +1 -0
- package/dist/admin-assets/admin.7738f50720a8ed7b.css +2 -0
- package/dist/admin-assets/admin.8678cb61db34dc81.js +77 -0
- package/dist/admin-boot.d.ts +94 -0
- package/dist/admin-boot.d.ts.map +1 -0
- package/dist/admin-boot.js +139 -0
- package/dist/admin-boot.js.map +1 -0
- package/dist/admin-docs-content.d.ts +95 -0
- package/dist/admin-docs-content.d.ts.map +1 -0
- package/dist/admin-docs-content.js +463 -0
- package/dist/admin-docs-content.js.map +1 -0
- package/dist/admin-docs-ui.d.ts +11 -0
- package/dist/admin-docs-ui.d.ts.map +1 -0
- package/dist/admin-docs-ui.js +23 -0
- package/dist/admin-docs-ui.js.map +1 -0
- package/dist/admin-kit.d.ts +29 -0
- package/dist/admin-kit.js +1557 -0
- package/dist/admin-role.d.ts +8 -0
- package/dist/admin-role.d.ts.map +1 -0
- package/dist/admin-role.js +22 -0
- package/dist/admin-role.js.map +1 -0
- package/dist/admin-ui.d.ts +3 -0
- package/dist/admin-ui.d.ts.map +1 -0
- package/dist/admin-ui.js +16 -0
- package/dist/admin-ui.js.map +1 -0
- package/dist/agent-ai-chat.d.ts +127 -0
- package/dist/agent-ai-chat.d.ts.map +1 -0
- package/dist/agent-ai-chat.js +5975 -0
- package/dist/agent-ai-chat.js.map +1 -0
- package/dist/agent-chapter-archive.d.ts +214 -0
- package/dist/agent-chapter-archive.d.ts.map +1 -0
- package/dist/agent-chapter-archive.js +696 -0
- package/dist/agent-chapter-archive.js.map +1 -0
- package/dist/agent-chapter-search.d.ts +116 -0
- package/dist/agent-chapter-search.d.ts.map +1 -0
- package/dist/agent-chapter-search.js +605 -0
- package/dist/agent-chapter-search.js.map +1 -0
- package/dist/agent-chapter-tools.d.ts +45 -0
- package/dist/agent-chapter-tools.d.ts.map +1 -0
- package/dist/agent-chapter-tools.js +344 -0
- package/dist/agent-chapter-tools.js.map +1 -0
- package/dist/agent-chapters.d.ts +228 -0
- package/dist/agent-chapters.d.ts.map +1 -0
- package/dist/agent-chapters.js +737 -0
- package/dist/agent-chapters.js.map +1 -0
- package/dist/agent-data-parts.d.ts +167 -0
- package/dist/agent-data-parts.d.ts.map +1 -0
- package/dist/agent-data-parts.js +68 -0
- package/dist/agent-data-parts.js.map +1 -0
- package/dist/agent-errors.d.ts +41 -0
- package/dist/agent-errors.d.ts.map +1 -0
- package/dist/agent-errors.js +191 -0
- package/dist/agent-errors.js.map +1 -0
- package/dist/agent-follow-up-store.d.ts +273 -0
- package/dist/agent-follow-up-store.d.ts.map +1 -0
- package/dist/agent-follow-up-store.js +703 -0
- package/dist/agent-follow-up-store.js.map +1 -0
- package/dist/agent-follow-ups.d.ts +314 -0
- package/dist/agent-follow-ups.d.ts.map +1 -0
- package/dist/agent-follow-ups.js +840 -0
- package/dist/agent-follow-ups.js.map +1 -0
- package/dist/agent-memory.d.ts +323 -0
- package/dist/agent-memory.d.ts.map +1 -0
- package/dist/agent-memory.js +1270 -0
- package/dist/agent-memory.js.map +1 -0
- package/dist/agent-message-parts.d.ts +58 -0
- package/dist/agent-message-parts.d.ts.map +1 -0
- package/dist/agent-message-parts.js +163 -0
- package/dist/agent-message-parts.js.map +1 -0
- package/dist/agent-remote-mcp-credentials.d.ts +154 -0
- package/dist/agent-remote-mcp-credentials.d.ts.map +1 -0
- package/dist/agent-remote-mcp-credentials.js +287 -0
- package/dist/agent-remote-mcp-credentials.js.map +1 -0
- package/dist/agent-remote-mcp-crypto.d.ts +32 -0
- package/dist/agent-remote-mcp-crypto.d.ts.map +1 -0
- package/dist/agent-remote-mcp-crypto.js +101 -0
- package/dist/agent-remote-mcp-crypto.js.map +1 -0
- package/dist/agent-remote-mcp-install.d.ts +299 -0
- package/dist/agent-remote-mcp-install.d.ts.map +1 -0
- package/dist/agent-remote-mcp-install.js +785 -0
- package/dist/agent-remote-mcp-install.js.map +1 -0
- package/dist/agent-remote-mcp-oauth.d.ts +73 -0
- package/dist/agent-remote-mcp-oauth.d.ts.map +1 -0
- package/dist/agent-remote-mcp-oauth.js +344 -0
- package/dist/agent-remote-mcp-oauth.js.map +1 -0
- package/dist/agent-remote-mcp-transport.d.ts +46 -0
- package/dist/agent-remote-mcp-transport.d.ts.map +1 -0
- package/dist/agent-remote-mcp-transport.js +225 -0
- package/dist/agent-remote-mcp-transport.js.map +1 -0
- package/dist/agent-remote-mcp.d.ts +147 -0
- package/dist/agent-remote-mcp.d.ts.map +1 -0
- package/dist/agent-remote-mcp.js +681 -0
- package/dist/agent-remote-mcp.js.map +1 -0
- package/dist/agent-room-redaction.d.ts +66 -0
- package/dist/agent-room-redaction.d.ts.map +1 -0
- package/dist/agent-room-redaction.js +264 -0
- package/dist/agent-room-redaction.js.map +1 -0
- package/dist/agent-rooms.d.ts +209 -0
- package/dist/agent-rooms.d.ts.map +1 -0
- package/dist/agent-rooms.js +244 -0
- package/dist/agent-rooms.js.map +1 -0
- package/dist/agent-runtime.d.ts +541 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +4260 -0
- package/dist/agent-runtime.js.map +1 -0
- package/dist/agent-skill-archive.d.ts +20 -0
- package/dist/agent-skill-archive.d.ts.map +1 -0
- package/dist/agent-skill-archive.js +316 -0
- package/dist/agent-skill-archive.js.map +1 -0
- package/dist/agent-skill-discovery.d.ts +96 -0
- package/dist/agent-skill-discovery.d.ts.map +1 -0
- package/dist/agent-skill-discovery.js +464 -0
- package/dist/agent-skill-discovery.js.map +1 -0
- package/dist/agent-skill-format.d.ts +57 -0
- package/dist/agent-skill-format.d.ts.map +1 -0
- package/dist/agent-skill-format.js +238 -0
- package/dist/agent-skill-format.js.map +1 -0
- package/dist/agent-skill-import.d.ts +64 -0
- package/dist/agent-skill-import.d.ts.map +1 -0
- package/dist/agent-skill-import.js +295 -0
- package/dist/agent-skill-import.js.map +1 -0
- package/dist/agent-skill-publish.d.ts +51 -0
- package/dist/agent-skill-publish.d.ts.map +1 -0
- package/dist/agent-skill-publish.js +136 -0
- package/dist/agent-skill-publish.js.map +1 -0
- package/dist/agent-skill-store.d.ts +252 -0
- package/dist/agent-skill-store.d.ts.map +1 -0
- package/dist/agent-skill-store.js +514 -0
- package/dist/agent-skill-store.js.map +1 -0
- package/dist/agent-skills.d.ts +85 -0
- package/dist/agent-skills.d.ts.map +1 -0
- package/dist/agent-skills.js +291 -0
- package/dist/agent-skills.js.map +1 -0
- package/dist/agent-transcript-pager.d.ts +77 -0
- package/dist/agent-transcript-pager.d.ts.map +1 -0
- package/dist/agent-transcript-pager.js +210 -0
- package/dist/agent-transcript-pager.js.map +1 -0
- package/dist/agent-user-data-parts.d.ts +20 -0
- package/dist/agent-user-data-parts.d.ts.map +1 -0
- package/dist/agent-user-data-parts.js +161 -0
- package/dist/agent-user-data-parts.js.map +1 -0
- package/dist/agent-user-transcript.d.ts +46 -0
- package/dist/agent-user-transcript.d.ts.map +1 -0
- package/dist/agent-user-transcript.js +106 -0
- package/dist/agent-user-transcript.js.map +1 -0
- package/dist/agent-voice-notes.d.ts +15 -0
- package/dist/agent-voice-notes.d.ts.map +1 -0
- package/dist/agent-voice-notes.js +17 -0
- package/dist/agent-voice-notes.js.map +1 -0
- package/dist/agent-wakes.d.ts +213 -0
- package/dist/agent-wakes.d.ts.map +1 -0
- package/dist/agent-wakes.js +534 -0
- package/dist/agent-wakes.js.map +1 -0
- package/dist/agent.d.ts +1780 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +3123 -0
- package/dist/agent.js.map +1 -0
- package/dist/ai.d.ts +583 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +1858 -0
- package/dist/ai.js.map +1 -0
- package/dist/app-manifest.d.ts +255 -0
- package/dist/app-manifest.d.ts.map +1 -0
- package/dist/app-manifest.js +372 -0
- package/dist/app-manifest.js.map +1 -0
- package/dist/app-users.d.ts +30 -0
- package/dist/app-users.d.ts.map +1 -0
- package/dist/app-users.js +91 -0
- package/dist/app-users.js.map +1 -0
- package/dist/audit-archive.d.ts +85 -0
- package/dist/audit-archive.d.ts.map +1 -0
- package/dist/audit-archive.js +178 -0
- package/dist/audit-archive.js.map +1 -0
- package/dist/audit.d.ts +54 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +95 -0
- package/dist/audit.js.map +1 -0
- package/dist/auth-logger.d.ts +28 -0
- package/dist/auth-logger.d.ts.map +1 -0
- package/dist/auth-logger.js +53 -0
- package/dist/auth-logger.js.map +1 -0
- package/dist/auth-password-secret.d.ts +59 -0
- package/dist/auth-password-secret.d.ts.map +1 -0
- package/dist/auth-password-secret.js +409 -0
- package/dist/auth-password-secret.js.map +1 -0
- package/dist/auth-schema.d.ts +120 -0
- package/dist/auth-schema.d.ts.map +1 -0
- package/dist/auth-schema.js +285 -0
- package/dist/auth-schema.js.map +1 -0
- package/dist/auth.d.ts +321 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +1562 -0
- package/dist/auth.js.map +1 -0
- package/dist/backup-archive.d.ts +257 -0
- package/dist/backup-archive.d.ts.map +1 -0
- package/dist/backup-archive.js +2068 -0
- package/dist/backup-archive.js.map +1 -0
- package/dist/backup-crypto.d.ts +313 -0
- package/dist/backup-crypto.d.ts.map +1 -0
- package/dist/backup-crypto.js +693 -0
- package/dist/backup-crypto.js.map +1 -0
- package/dist/backup-format.d.ts +200 -0
- package/dist/backup-format.d.ts.map +1 -0
- package/dist/backup-format.js +1247 -0
- package/dist/backup-format.js.map +1 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +15 -0
- package/dist/cli.js.map +1 -0
- package/dist/clock.d.ts +35 -0
- package/dist/clock.d.ts.map +1 -0
- package/dist/clock.js +83 -0
- package/dist/clock.js.map +1 -0
- package/dist/data-client.d.ts +187 -0
- package/dist/data-client.d.ts.map +1 -0
- package/dist/data-client.js +590 -0
- package/dist/data-client.js.map +1 -0
- package/dist/data-secrets.d.ts +164 -0
- package/dist/data-secrets.d.ts.map +1 -0
- package/dist/data-secrets.js +383 -0
- package/dist/data-secrets.js.map +1 -0
- package/dist/db.d.ts +453 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +324 -0
- package/dist/db.js.map +1 -0
- package/dist/dev-activity.d.ts +48 -0
- package/dist/dev-activity.d.ts.map +1 -0
- package/dist/dev-activity.js +50 -0
- package/dist/dev-activity.js.map +1 -0
- package/dist/do.d.ts +429 -0
- package/dist/do.d.ts.map +1 -0
- package/dist/do.js +4526 -0
- package/dist/do.js.map +1 -0
- package/dist/email.d.ts +137 -0
- package/dist/email.d.ts.map +1 -0
- package/dist/email.js +527 -0
- package/dist/email.js.map +1 -0
- package/dist/generated/admin-assets.d.ts +16 -0
- package/dist/generated/admin-assets.d.ts.map +1 -0
- package/dist/generated/admin-assets.js +16 -0
- package/dist/generated/admin-assets.js.map +1 -0
- package/dist/generated/admin-docs-assets.d.ts +3 -0
- package/dist/generated/admin-docs-assets.d.ts.map +1 -0
- package/dist/generated/admin-docs-assets.js +3 -0
- package/dist/generated/admin-docs-assets.js.map +1 -0
- package/dist/handoff-consumer.d.ts +79 -0
- package/dist/handoff-consumer.d.ts.map +1 -0
- package/dist/handoff-consumer.js +300 -0
- package/dist/handoff-consumer.js.map +1 -0
- package/dist/handoff.d.ts +70 -0
- package/dist/handoff.d.ts.map +1 -0
- package/dist/handoff.js +228 -0
- package/dist/handoff.js.map +1 -0
- package/dist/host-auth.d.ts +47 -0
- package/dist/host-auth.d.ts.map +1 -0
- package/dist/host-auth.js +59 -0
- package/dist/host-auth.js.map +1 -0
- package/dist/host-user.d.ts +15 -0
- package/dist/host-user.d.ts.map +1 -0
- package/dist/host-user.js +23 -0
- package/dist/host-user.js.map +1 -0
- package/dist/html.d.ts +35 -0
- package/dist/html.d.ts.map +1 -0
- package/dist/html.js +634 -0
- package/dist/html.js.map +1 -0
- package/dist/http-error.d.ts +13 -0
- package/dist/http-error.d.ts.map +1 -0
- package/dist/http-error.js +15 -0
- package/dist/http-error.js.map +1 -0
- package/dist/imports.d.ts +219 -0
- package/dist/imports.d.ts.map +1 -0
- package/dist/imports.js +571 -0
- package/dist/imports.js.map +1 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/inference-tape.d.ts +64 -0
- package/dist/inference-tape.d.ts.map +1 -0
- package/dist/inference-tape.js +278 -0
- package/dist/inference-tape.js.map +1 -0
- package/dist/internal.d.ts +15 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +48 -0
- package/dist/internal.js.map +1 -0
- package/dist/jobs.d.ts +796 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +538 -0
- package/dist/jobs.js.map +1 -0
- package/dist/json-schema.d.ts +91 -0
- package/dist/json-schema.d.ts.map +1 -0
- package/dist/json-schema.js +884 -0
- package/dist/json-schema.js.map +1 -0
- package/dist/knowledge.d.ts +33 -0
- package/dist/knowledge.d.ts.map +1 -0
- package/dist/knowledge.js +348 -0
- package/dist/knowledge.js.map +1 -0
- package/dist/local-dev-chrome.d.ts +29 -0
- package/dist/local-dev-chrome.d.ts.map +1 -0
- package/dist/local-dev-chrome.js +514 -0
- package/dist/local-dev-chrome.js.map +1 -0
- package/dist/local-dev-personas.d.ts +15 -0
- package/dist/local-dev-personas.d.ts.map +1 -0
- package/dist/local-dev-personas.js +46 -0
- package/dist/local-dev-personas.js.map +1 -0
- package/dist/mcp.d.ts +567 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +2480 -0
- package/dist/mcp.js.map +1 -0
- package/dist/modules.d.ts +145 -0
- package/dist/modules.d.ts.map +1 -0
- package/dist/modules.js +164 -0
- package/dist/modules.js.map +1 -0
- package/dist/notification-client.d.ts +94 -0
- package/dist/notification-client.d.ts.map +1 -0
- package/dist/notification-client.js +127 -0
- package/dist/notification-client.js.map +1 -0
- package/dist/notifications.d.ts +447 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/notifications.js +1625 -0
- package/dist/notifications.js.map +1 -0
- package/dist/operator-data-query.d.ts +117 -0
- package/dist/operator-data-query.d.ts.map +1 -0
- package/dist/operator-data-query.js +431 -0
- package/dist/operator-data-query.js.map +1 -0
- package/dist/operator-mcp.d.ts +63 -0
- package/dist/operator-mcp.d.ts.map +1 -0
- package/dist/operator-mcp.js +2828 -0
- package/dist/operator-mcp.js.map +1 -0
- package/dist/outbound-https.d.ts +24 -0
- package/dist/outbound-https.d.ts.map +1 -0
- package/dist/outbound-https.js +172 -0
- package/dist/outbound-https.js.map +1 -0
- package/dist/pitr.d.ts +60 -0
- package/dist/pitr.d.ts.map +1 -0
- package/dist/pitr.js +94 -0
- package/dist/pitr.js.map +1 -0
- package/dist/platform.d.ts +199 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +196 -0
- package/dist/platform.js.map +1 -0
- package/dist/policies.d.ts +115 -0
- package/dist/policies.d.ts.map +1 -0
- package/dist/policies.js +158 -0
- package/dist/policies.js.map +1 -0
- package/dist/principal.d.ts +143 -0
- package/dist/principal.d.ts.map +1 -0
- package/dist/principal.js +174 -0
- package/dist/principal.js.map +1 -0
- package/dist/realtime.d.ts +280 -0
- package/dist/realtime.d.ts.map +1 -0
- package/dist/realtime.js +578 -0
- package/dist/realtime.js.map +1 -0
- package/dist/retrieval.d.ts +263 -0
- package/dist/retrieval.d.ts.map +1 -0
- package/dist/retrieval.js +602 -0
- package/dist/retrieval.js.map +1 -0
- package/dist/runtime-error-client.d.ts +10 -0
- package/dist/runtime-error-client.d.ts.map +1 -0
- package/dist/runtime-error-client.js +70 -0
- package/dist/runtime-error-client.js.map +1 -0
- package/dist/runtime-errors.d.ts +180 -0
- package/dist/runtime-errors.d.ts.map +1 -0
- package/dist/runtime-errors.js +572 -0
- package/dist/runtime-errors.js.map +1 -0
- package/dist/schema.d.ts +434 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +232 -0
- package/dist/schema.js.map +1 -0
- package/dist/search.d.ts +216 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +785 -0
- package/dist/search.js.map +1 -0
- package/dist/settings.d.ts +191 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +478 -0
- package/dist/settings.js.map +1 -0
- package/dist/sql.d.ts +7 -0
- package/dist/sql.d.ts.map +1 -0
- package/dist/sql.js +30 -0
- package/dist/sql.js.map +1 -0
- package/dist/storage-client.d.ts +69 -0
- package/dist/storage-client.d.ts.map +1 -0
- package/dist/storage-client.js +469 -0
- package/dist/storage-client.js.map +1 -0
- package/dist/storage.d.ts +21 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +82 -0
- package/dist/storage.js.map +1 -0
- package/dist/subject-domains.d.ts +15 -0
- package/dist/subject-domains.d.ts.map +1 -0
- package/dist/subject-domains.js +38 -0
- package/dist/subject-domains.js.map +1 -0
- package/dist/support.d.ts +132 -0
- package/dist/support.d.ts.map +1 -0
- package/dist/support.js +483 -0
- package/dist/support.js.map +1 -0
- package/dist/system-tables.d.ts +12 -0
- package/dist/system-tables.d.ts.map +1 -0
- package/dist/system-tables.js +225 -0
- package/dist/system-tables.js.map +1 -0
- package/dist/test.d.ts +57 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +454 -0
- package/dist/test.js.map +1 -0
- package/dist/vite.d.ts +82 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +82 -0
- package/dist/vite.js.map +1 -0
- package/dist/webpush-crypto.d.ts +39 -0
- package/dist/webpush-crypto.d.ts.map +1 -0
- package/dist/webpush-crypto.js +213 -0
- package/dist/webpush-crypto.js.map +1 -0
- package/dist/webpush-private.d.ts +11 -0
- package/dist/webpush-private.d.ts.map +1 -0
- package/dist/webpush-private.js +11 -0
- package/dist/webpush-private.js.map +1 -0
- package/dist/webpush.d.ts +86 -0
- package/dist/webpush.d.ts.map +1 -0
- package/dist/webpush.js +375 -0
- package/dist/webpush.js.map +1 -0
- package/dist/worker.d.ts +185 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +13021 -0
- package/dist/worker.js.map +1 -0
- package/package.json +161 -8
- package/README.md +0 -3
package/dist/webpush.js
ADDED
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import { sha256Hex } from "./internal.js";
|
|
2
|
+
import { integer, longText, raybaseSystemTable, text } from "./schema.js";
|
|
3
|
+
import { nowIso, q, randomId } from "./sql.js";
|
|
4
|
+
import { base64UrlDecode, createVapidJwt, encryptWebPushPayload, importVapidKeyPair, validateVapidSubject, validateWebPushSubscriptionKeys, WebPushCryptoError, webPushMaxPlaintextBytes } from "./webpush-crypto.js";
|
|
5
|
+
import { registerWebPushPrivateSender } from "./webpush-private.js";
|
|
6
|
+
export const raybaseWebPushSubscriptionsTableName = "_notification_push_subscriptions";
|
|
7
|
+
export const raybaseWebPushAdapterName = "raybase-webpush";
|
|
8
|
+
export const raybaseWebPushChannel = "webpush";
|
|
9
|
+
export const webPushDefaults = {
|
|
10
|
+
maxSubscriptionsPerUser: 10,
|
|
11
|
+
ttlSeconds: 86_400,
|
|
12
|
+
maxEndpointBytes: 2048,
|
|
13
|
+
maxLabelLength: 64,
|
|
14
|
+
maxUserAgentLength: 256,
|
|
15
|
+
maxBodyBytes: 1024,
|
|
16
|
+
expireAfterFailures: 8
|
|
17
|
+
};
|
|
18
|
+
export class WebPushDeliveryError extends Error {
|
|
19
|
+
classification;
|
|
20
|
+
requestSummary;
|
|
21
|
+
responseSummary;
|
|
22
|
+
constructor(classification, requestSummary, responseSummary) {
|
|
23
|
+
super(classification === "retry" ? "Web Push delivery failed temporarily" : "Web Push delivery failed permanently");
|
|
24
|
+
this.classification = classification;
|
|
25
|
+
this.requestSummary = requestSummary;
|
|
26
|
+
this.responseSummary = responseSummary;
|
|
27
|
+
this.name = "WebPushDeliveryError";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export const raybaseWebPushSystemTables = [
|
|
31
|
+
raybaseSystemTable(raybaseWebPushSubscriptionsTableName, {
|
|
32
|
+
id: text({ primaryKey: true, required: true }),
|
|
33
|
+
userId: text({ required: true }),
|
|
34
|
+
endpointHash: text({ required: true }),
|
|
35
|
+
endpoint: longText({ required: true }),
|
|
36
|
+
keysP256dh: text({ required: true }),
|
|
37
|
+
keysAuth: text({ required: true }),
|
|
38
|
+
label: text(),
|
|
39
|
+
userAgent: text(),
|
|
40
|
+
status: text({ required: true }),
|
|
41
|
+
failureCount: integer({ required: true }),
|
|
42
|
+
lastSeenAt: text({ required: true }),
|
|
43
|
+
lastUsedAt: text(),
|
|
44
|
+
createdAt: text({ required: true }),
|
|
45
|
+
updatedAt: text({ required: true })
|
|
46
|
+
}, {
|
|
47
|
+
label: "Push subscriptions",
|
|
48
|
+
operatorVisible: false,
|
|
49
|
+
indexes: [
|
|
50
|
+
{ columns: ["endpointHash"], unique: true, name: "_notification_push_endpoint_idx" },
|
|
51
|
+
{ columns: ["userId", "status"], name: "_notification_push_user_status_idx" },
|
|
52
|
+
{ columns: ["status", "updatedAt"], name: "_notification_push_status_idx" }
|
|
53
|
+
]
|
|
54
|
+
})
|
|
55
|
+
];
|
|
56
|
+
function positiveInteger(value, fallback, name) {
|
|
57
|
+
if (value === undefined)
|
|
58
|
+
return fallback;
|
|
59
|
+
if (!Number.isInteger(value) || Number(value) <= 0)
|
|
60
|
+
throw new Error(`${name} must be a positive integer`);
|
|
61
|
+
return Number(value);
|
|
62
|
+
}
|
|
63
|
+
export function resolveWebPushConfig(config) {
|
|
64
|
+
const input = config.notifications?.webpush;
|
|
65
|
+
return {
|
|
66
|
+
enabled: input?.enabled === true,
|
|
67
|
+
subject: input?.subject?.trim() ?? "",
|
|
68
|
+
maxSubscriptionsPerUser: positiveInteger(input?.maxSubscriptionsPerUser, webPushDefaults.maxSubscriptionsPerUser, "notifications.webpush.maxSubscriptionsPerUser"),
|
|
69
|
+
ttlSeconds: positiveInteger(input?.ttlSeconds, webPushDefaults.ttlSeconds, "notifications.webpush.ttlSeconds"),
|
|
70
|
+
allowLocalSend: input?.allowLocalSend === true
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function endpointOrigin(endpoint) {
|
|
74
|
+
try {
|
|
75
|
+
return new URL(endpoint).origin;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return "[invalid-origin]";
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function redactedSubscription(row) {
|
|
82
|
+
return {
|
|
83
|
+
id: row.id,
|
|
84
|
+
userId: row.userId,
|
|
85
|
+
endpointOrigin: endpointOrigin(row.endpoint),
|
|
86
|
+
endpointHashPrefix: row.endpointHash.slice(0, 12),
|
|
87
|
+
label: row.label,
|
|
88
|
+
userAgent: row.userAgent,
|
|
89
|
+
status: row.status,
|
|
90
|
+
failureCount: Number(row.failureCount ?? 0),
|
|
91
|
+
lastSeenAt: row.lastSeenAt,
|
|
92
|
+
lastUsedAt: row.lastUsedAt,
|
|
93
|
+
createdAt: row.createdAt,
|
|
94
|
+
updatedAt: row.updatedAt
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function utf8Bytes(value) {
|
|
98
|
+
return new TextEncoder().encode(value).byteLength;
|
|
99
|
+
}
|
|
100
|
+
export async function validateWebPushSubscription(input) {
|
|
101
|
+
if (!input || typeof input !== "object" || typeof input.endpoint !== "string")
|
|
102
|
+
throw new Error("A Web Push subscription endpoint is required");
|
|
103
|
+
const endpoint = input.endpoint.trim();
|
|
104
|
+
let parsed;
|
|
105
|
+
try {
|
|
106
|
+
parsed = new URL(endpoint);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
throw new Error("Web Push subscription endpoint must be a valid HTTPS URL");
|
|
110
|
+
}
|
|
111
|
+
if (parsed.protocol !== "https:")
|
|
112
|
+
throw new Error("Web Push subscription endpoint must use HTTPS");
|
|
113
|
+
if (utf8Bytes(endpoint) > webPushDefaults.maxEndpointBytes)
|
|
114
|
+
throw new Error("Web Push subscription endpoint is too long");
|
|
115
|
+
const keysP256dh = input.keys?.p256dh?.trim();
|
|
116
|
+
const keysAuth = input.keys?.auth?.trim();
|
|
117
|
+
if (!keysP256dh || !keysAuth)
|
|
118
|
+
throw new Error("Web Push subscription keys are required");
|
|
119
|
+
try {
|
|
120
|
+
await validateWebPushSubscriptionKeys(keysP256dh, keysAuth);
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
throw new Error("Web Push subscription keys are invalid");
|
|
124
|
+
}
|
|
125
|
+
const label = input.label?.trim() || null;
|
|
126
|
+
if (label && label.length > webPushDefaults.maxLabelLength)
|
|
127
|
+
throw new Error(`Web Push device label must be ${webPushDefaults.maxLabelLength} characters or fewer`);
|
|
128
|
+
return { endpoint, endpointHash: await sha256Hex(endpoint), keysP256dh, keysAuth, label };
|
|
129
|
+
}
|
|
130
|
+
export async function upsertWebPushSubscription(input) {
|
|
131
|
+
const validated = await validateWebPushSubscription(input.subscription);
|
|
132
|
+
const now = nowIso();
|
|
133
|
+
const userAgent = input.userAgent?.trim().slice(0, webPushDefaults.maxUserAgentLength) || null;
|
|
134
|
+
const row = await input.db.first(`INSERT INTO ${q(raybaseWebPushSubscriptionsTableName)}
|
|
135
|
+
("id", "userId", "endpointHash", "endpoint", "keysP256dh", "keysAuth", "label", "userAgent", "status", "failureCount", "lastSeenAt", "lastUsedAt", "createdAt", "updatedAt")
|
|
136
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'active', 0, ?, NULL, ?, ?)
|
|
137
|
+
ON CONFLICT("endpointHash") DO UPDATE SET
|
|
138
|
+
"endpoint" = excluded."endpoint", "keysP256dh" = excluded."keysP256dh", "keysAuth" = excluded."keysAuth",
|
|
139
|
+
"label" = excluded."label", "userAgent" = excluded."userAgent", "status" = 'active', "failureCount" = 0,
|
|
140
|
+
"lastSeenAt" = excluded."lastSeenAt", "updatedAt" = excluded."updatedAt"
|
|
141
|
+
WHERE "userId" = excluded."userId"
|
|
142
|
+
RETURNING *`, [
|
|
143
|
+
randomId("npsub"),
|
|
144
|
+
input.userId,
|
|
145
|
+
validated.endpointHash,
|
|
146
|
+
validated.endpoint,
|
|
147
|
+
validated.keysP256dh,
|
|
148
|
+
validated.keysAuth,
|
|
149
|
+
validated.label,
|
|
150
|
+
userAgent,
|
|
151
|
+
now,
|
|
152
|
+
now,
|
|
153
|
+
now
|
|
154
|
+
]);
|
|
155
|
+
if (!row)
|
|
156
|
+
throw new Error("This Web Push subscription belongs to another user");
|
|
157
|
+
const cap = input.maxSubscriptionsPerUser ?? webPushDefaults.maxSubscriptionsPerUser;
|
|
158
|
+
const active = await input.db.all(`SELECT * FROM ${q(raybaseWebPushSubscriptionsTableName)} WHERE "userId" = ? AND "status" = 'active' ORDER BY "lastSeenAt" DESC, "createdAt" DESC`, [input.userId]);
|
|
159
|
+
const evictedRows = active.slice(cap);
|
|
160
|
+
for (const evicted of evictedRows) {
|
|
161
|
+
await input.db.run(`UPDATE ${q(raybaseWebPushSubscriptionsTableName)} SET "status" = 'revoked', "updatedAt" = ? WHERE "id" = ? AND "userId" = ?`, [now, evicted.id, input.userId]);
|
|
162
|
+
}
|
|
163
|
+
return { subscription: redactedSubscription(row), evicted: evictedRows.map(redactedSubscription) };
|
|
164
|
+
}
|
|
165
|
+
export async function listWebPushSubscriptions(db, userId) {
|
|
166
|
+
const rows = await db.all(`SELECT * FROM ${q(raybaseWebPushSubscriptionsTableName)} WHERE "userId" = ? ORDER BY "lastSeenAt" DESC LIMIT 50`, [userId]);
|
|
167
|
+
return rows.map(redactedSubscription);
|
|
168
|
+
}
|
|
169
|
+
export async function removeWebPushSubscription(db, userId, endpoint) {
|
|
170
|
+
if (typeof endpoint !== "string" || !endpoint.trim())
|
|
171
|
+
throw new Error("A Web Push subscription endpoint is required");
|
|
172
|
+
const endpointHash = await sha256Hex(endpoint.trim());
|
|
173
|
+
const row = await db.first(`UPDATE ${q(raybaseWebPushSubscriptionsTableName)} SET "status" = 'revoked', "updatedAt" = ?
|
|
174
|
+
WHERE "userId" = ? AND "endpointHash" = ? AND "status" != 'revoked' RETURNING "id"`, [nowIso(), userId, endpointHash]);
|
|
175
|
+
return Boolean(row);
|
|
176
|
+
}
|
|
177
|
+
export async function activeWebPushSubjectIds(db, subjectIds) {
|
|
178
|
+
if (!subjectIds.length)
|
|
179
|
+
return new Set();
|
|
180
|
+
const unique = Array.from(new Set(subjectIds));
|
|
181
|
+
const rows = await db.all(`SELECT DISTINCT "userId" FROM ${q(raybaseWebPushSubscriptionsTableName)} WHERE "status" = 'active' AND "userId" IN (${unique.map(() => "?").join(", ")})`, unique);
|
|
182
|
+
return new Set(rows.map((row) => row.userId));
|
|
183
|
+
}
|
|
184
|
+
async function activeSubscriptionsForDelivery(db, userId) {
|
|
185
|
+
return db.all(`SELECT * FROM ${q(raybaseWebPushSubscriptionsTableName)} WHERE "userId" = ? AND "status" = 'active' ORDER BY "lastSeenAt" DESC LIMIT 50`, [userId]);
|
|
186
|
+
}
|
|
187
|
+
async function markDeviceAccepted(db, id, now) {
|
|
188
|
+
await db.run(`UPDATE ${q(raybaseWebPushSubscriptionsTableName)} SET "failureCount" = 0, "lastUsedAt" = ?, "updatedAt" = ? WHERE "id" = ?`, [now, now, id]);
|
|
189
|
+
}
|
|
190
|
+
async function markDeviceExpired(ctx, subscription, reason) {
|
|
191
|
+
await ctx.db.run(`UPDATE ${q(raybaseWebPushSubscriptionsTableName)} SET "status" = 'expired', "updatedAt" = ? WHERE "id" = ?`, [ctx.now, subscription.id]);
|
|
192
|
+
await ctx.audit?.("notification.push.pruned", raybaseWebPushSubscriptionsTableName, subscription.id, {
|
|
193
|
+
endpointOrigin: endpointOrigin(subscription.endpoint),
|
|
194
|
+
endpointHashPrefix: subscription.endpointHash.slice(0, 12),
|
|
195
|
+
reason
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
async function markDeviceFailed(ctx, subscription) {
|
|
199
|
+
const row = await ctx.db.first(`UPDATE ${q(raybaseWebPushSubscriptionsTableName)}
|
|
200
|
+
SET "failureCount" = "failureCount" + 1,
|
|
201
|
+
"status" = CASE WHEN "failureCount" + 1 >= ? THEN 'expired' ELSE "status" END,
|
|
202
|
+
"updatedAt" = ?
|
|
203
|
+
WHERE "id" = ? RETURNING "failureCount", "status"`, [webPushDefaults.expireAfterFailures, ctx.now, subscription.id]);
|
|
204
|
+
if (row?.status === "expired") {
|
|
205
|
+
await ctx.audit?.("notification.push.pruned", raybaseWebPushSubscriptionsTableName, subscription.id, {
|
|
206
|
+
endpointOrigin: endpointOrigin(subscription.endpoint),
|
|
207
|
+
endpointHashPrefix: subscription.endpointHash.slice(0, 12),
|
|
208
|
+
reason: "consecutive-failures",
|
|
209
|
+
failureCount: row.failureCount
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function truncateUtf8(value, maxBytes) {
|
|
214
|
+
if (!value)
|
|
215
|
+
return undefined;
|
|
216
|
+
const encoder = new TextEncoder();
|
|
217
|
+
if (encoder.encode(value).byteLength <= maxBytes)
|
|
218
|
+
return value;
|
|
219
|
+
let output = "";
|
|
220
|
+
for (const character of value) {
|
|
221
|
+
if (encoder.encode(output + character).byteLength > maxBytes)
|
|
222
|
+
break;
|
|
223
|
+
output += character;
|
|
224
|
+
}
|
|
225
|
+
return output;
|
|
226
|
+
}
|
|
227
|
+
export function webPushPayload(delivery) {
|
|
228
|
+
const value = {
|
|
229
|
+
title: delivery.notification.title,
|
|
230
|
+
body: truncateUtf8(delivery.notification.body, webPushDefaults.maxBodyBytes),
|
|
231
|
+
severity: delivery.notification.severity,
|
|
232
|
+
href: delivery.notification.targetHref ?? undefined,
|
|
233
|
+
notificationId: delivery.notification.id
|
|
234
|
+
};
|
|
235
|
+
let bytes = new TextEncoder().encode(JSON.stringify(value));
|
|
236
|
+
if (bytes.byteLength > webPushMaxPlaintextBytes && value.href) {
|
|
237
|
+
delete value.href;
|
|
238
|
+
bytes = new TextEncoder().encode(JSON.stringify(value));
|
|
239
|
+
}
|
|
240
|
+
if (bytes.byteLength > webPushMaxPlaintextBytes)
|
|
241
|
+
throw new Error("Web Push payload is too large");
|
|
242
|
+
return bytes;
|
|
243
|
+
}
|
|
244
|
+
export function webPushNotificationAdapter(config, options = {}) {
|
|
245
|
+
const resolved = resolveWebPushConfig(config);
|
|
246
|
+
const adapter = {
|
|
247
|
+
name: raybaseWebPushAdapterName,
|
|
248
|
+
channel: raybaseWebPushChannel,
|
|
249
|
+
description: "VAPID-authenticated encrypted Web Push delivery",
|
|
250
|
+
allowLocalSend: resolved.allowLocalSend,
|
|
251
|
+
classifyError(error) {
|
|
252
|
+
return error instanceof WebPushDeliveryError ? error.classification : "permanent";
|
|
253
|
+
},
|
|
254
|
+
async doctor(ctx) {
|
|
255
|
+
const env = ctx.env;
|
|
256
|
+
const findings = [];
|
|
257
|
+
if (!validateVapidSubject(resolved.subject)) {
|
|
258
|
+
findings.push({ severity: "error", message: "Web Push VAPID subject must be a mailto: or https: URI." });
|
|
259
|
+
}
|
|
260
|
+
if (!env.RAYBASE_VAPID_PUBLIC_KEY || !env.RAYBASE_VAPID_PRIVATE_KEY) {
|
|
261
|
+
findings.push({ severity: "error", message: "Web Push VAPID keys are missing." });
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
try {
|
|
265
|
+
await importVapidKeyPair(env.RAYBASE_VAPID_PRIVATE_KEY, env.RAYBASE_VAPID_PUBLIC_KEY);
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
findings.push({ severity: "error", message: "Web Push VAPID keys are invalid or do not match." });
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return findings;
|
|
272
|
+
},
|
|
273
|
+
async send() {
|
|
274
|
+
throw new Error("The reserved Web Push adapter can only be invoked by the Raybase notification runtime");
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
registerWebPushPrivateSender(adapter, async (delivery, publicContext, capabilities) => {
|
|
278
|
+
const ctx = { ...publicContext, ...capabilities };
|
|
279
|
+
if (!delivery.recipientSubjectId) {
|
|
280
|
+
throw new WebPushDeliveryError("permanent", { devices: 0 }, { devices: [], reason: "recipient-unavailable" });
|
|
281
|
+
}
|
|
282
|
+
const env = ctx.env;
|
|
283
|
+
if (!env.RAYBASE_VAPID_PUBLIC_KEY || !env.RAYBASE_VAPID_PRIVATE_KEY) {
|
|
284
|
+
throw new WebPushDeliveryError("permanent", { devices: 0 }, { devices: [], reason: "vapid-unavailable" });
|
|
285
|
+
}
|
|
286
|
+
let vapidKeys;
|
|
287
|
+
try {
|
|
288
|
+
vapidKeys = await importVapidKeyPair(env.RAYBASE_VAPID_PRIVATE_KEY, env.RAYBASE_VAPID_PUBLIC_KEY);
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
throw new WebPushDeliveryError("permanent", { devices: 0 }, { devices: [], reason: "vapid-invalid" });
|
|
292
|
+
}
|
|
293
|
+
const subscriptions = await activeSubscriptionsForDelivery(ctx.db, delivery.recipientSubjectId);
|
|
294
|
+
if (!subscriptions.length) {
|
|
295
|
+
throw new WebPushDeliveryError("permanent", { devices: 0 }, { devices: [], reason: "no-active-subscriptions" });
|
|
296
|
+
}
|
|
297
|
+
const payload = webPushPayload(delivery);
|
|
298
|
+
const fetchImpl = options.fetch ?? fetch;
|
|
299
|
+
const outcomes = [];
|
|
300
|
+
let firstProviderMessageId;
|
|
301
|
+
for (const subscription of subscriptions) {
|
|
302
|
+
const outcomeBase = {
|
|
303
|
+
endpointOrigin: endpointOrigin(subscription.endpoint),
|
|
304
|
+
endpointHashPrefix: subscription.endpointHash.slice(0, 12)
|
|
305
|
+
};
|
|
306
|
+
try {
|
|
307
|
+
const encrypted = await encryptWebPushPayload(payload, base64UrlDecode(subscription.keysP256dh), base64UrlDecode(subscription.keysAuth));
|
|
308
|
+
const jwt = await createVapidJwt({
|
|
309
|
+
audience: subscription.endpoint,
|
|
310
|
+
subject: resolved.subject,
|
|
311
|
+
privateKey: vapidKeys.privateKey,
|
|
312
|
+
nowSeconds: Math.floor(Date.parse(ctx.now) / 1000)
|
|
313
|
+
});
|
|
314
|
+
const response = await fetchImpl(subscription.endpoint, {
|
|
315
|
+
method: "POST",
|
|
316
|
+
headers: {
|
|
317
|
+
Authorization: `vapid t=${jwt}, k=${vapidKeys.publicKeyBase64Url}`,
|
|
318
|
+
"Content-Encoding": "aes128gcm",
|
|
319
|
+
"Content-Type": "application/octet-stream",
|
|
320
|
+
TTL: String(resolved.ttlSeconds),
|
|
321
|
+
Urgency: delivery.notification.severity === "error" ? "high" : "normal"
|
|
322
|
+
},
|
|
323
|
+
body: new Blob([encrypted.body.slice().buffer], { type: "application/octet-stream" })
|
|
324
|
+
});
|
|
325
|
+
if (response.ok) {
|
|
326
|
+
await markDeviceAccepted(ctx.db, subscription.id, ctx.now);
|
|
327
|
+
outcomes.push({ ...outcomeBase, status: "accepted", httpStatus: response.status });
|
|
328
|
+
firstProviderMessageId ??= response.headers.get("location") ?? undefined;
|
|
329
|
+
}
|
|
330
|
+
else if (response.status === 404 || response.status === 410) {
|
|
331
|
+
await markDeviceExpired(ctx, subscription, `push-service-${response.status}`);
|
|
332
|
+
outcomes.push({ ...outcomeBase, status: "expired", httpStatus: response.status });
|
|
333
|
+
}
|
|
334
|
+
else if (response.status === 429 || response.status >= 500) {
|
|
335
|
+
await markDeviceFailed(ctx, subscription);
|
|
336
|
+
outcomes.push({ ...outcomeBase, status: "retryable_failure", httpStatus: response.status });
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
await markDeviceFailed(ctx, subscription);
|
|
340
|
+
outcomes.push({ ...outcomeBase, status: "permanent_failure", httpStatus: response.status });
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
catch (error) {
|
|
344
|
+
if (error instanceof WebPushCryptoError) {
|
|
345
|
+
await markDeviceFailed(ctx, subscription);
|
|
346
|
+
outcomes.push({ ...outcomeBase, status: "permanent_failure" });
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
await markDeviceFailed(ctx, subscription);
|
|
350
|
+
outcomes.push({ ...outcomeBase, status: "retryable_failure" });
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
const requestSummary = { devices: subscriptions.map((subscription) => ({ endpointOrigin: endpointOrigin(subscription.endpoint), endpointHashPrefix: subscription.endpointHash.slice(0, 12) })) };
|
|
355
|
+
const responseSummary = { devices: outcomes };
|
|
356
|
+
if (outcomes.some((outcome) => outcome.status === "accepted")) {
|
|
357
|
+
return { status: "delivered", providerMessageId: firstProviderMessageId, requestSummary, responseSummary };
|
|
358
|
+
}
|
|
359
|
+
const classification = outcomes.length > 0 && outcomes.every((outcome) => outcome.status === "retryable_failure") ? "retry" : "permanent";
|
|
360
|
+
throw new WebPushDeliveryError(classification, requestSummary, responseSummary);
|
|
361
|
+
});
|
|
362
|
+
return adapter;
|
|
363
|
+
}
|
|
364
|
+
export async function webPushAdminSubscriptions(db) {
|
|
365
|
+
const [counts, rows] = await Promise.all([
|
|
366
|
+
db.all(`SELECT "status", COUNT(*) AS "count" FROM ${q(raybaseWebPushSubscriptionsTableName)} GROUP BY "status" ORDER BY "status"`),
|
|
367
|
+
db.all(`SELECT * FROM ${q(raybaseWebPushSubscriptionsTableName)} ORDER BY "updatedAt" DESC LIMIT 200`)
|
|
368
|
+
]);
|
|
369
|
+
return { counts: counts.map((row) => ({ status: row.status, count: Number(row.count) })), subscriptions: rows.map(redactedSubscription) };
|
|
370
|
+
}
|
|
371
|
+
export async function revokeWebPushSubscription(db, id) {
|
|
372
|
+
const row = await db.first(`UPDATE ${q(raybaseWebPushSubscriptionsTableName)} SET "status" = 'revoked', "updatedAt" = ? WHERE "id" = ? RETURNING *`, [nowIso(), id]);
|
|
373
|
+
return row ? redactedSubscription(row) : null;
|
|
374
|
+
}
|
|
375
|
+
//# sourceMappingURL=webpush.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webpush.js","sourceRoot":"","sources":["../src/webpush.ts"],"names":[],"mappings":"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"}
|
package/dist/worker.d.ts
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { type RaybaseActionRoute, type RaybaseActions } from "./actions.js";
|
|
2
|
+
import { type RaybaseAgentQueueMessage, type RaybaseAgents } from "./agent.js";
|
|
3
|
+
import { createRaybaseAIChatAgentBase, type RaybaseAgentStaticRuntime, type RaybaseAIChatAgentEnv } from "./agent-ai-chat.js";
|
|
4
|
+
import { type RaybaseVectorizeBinding, type RaybaseInferenceProvider } from "./ai.js";
|
|
5
|
+
import { type RaybaseBackupsOptions } from "./backup-crypto.js";
|
|
6
|
+
import { type RaybaseAuthEnv, type RaybaseExternalAuthRuntime } from "./auth.js";
|
|
7
|
+
import { type RaybaseHostAuth } from "./host-auth.js";
|
|
8
|
+
import { type RaybaseDataClient } from "./data-client.js";
|
|
9
|
+
import { type DoMigration } from "./db.js";
|
|
10
|
+
import { type RaybaseRuntimeClaims, type RaybaseRuntimeProfile } from "./platform.js";
|
|
11
|
+
import { type RaybaseGeneratedMcpToolsConfig, type RaybaseMcpContextResolver, type RaybaseMcpResource, type RaybaseMcpHostApprovalOptions, type RaybaseMcpTool } from "./mcp.js";
|
|
12
|
+
import { type OperatorEvidenceProvider } from "./operator-mcp.js";
|
|
13
|
+
import { type RaybaseModule } from "./modules.js";
|
|
14
|
+
import { type RaybaseNotifications, type RaybaseNotificationsRuntime } from "./notifications.js";
|
|
15
|
+
import { type EnqueueJobOptions, type RaybaseJobDefinition, type RaybaseJobQueueMessage, type RaybaseJobRun, type RaybaseJobsRuntime, type RaybaseJobs, type RaybaseJobPrincipal } from "./jobs.js";
|
|
16
|
+
import { type RaybaseUser } from "./policies.js";
|
|
17
|
+
import { type RaybaseRetrieval } from "./retrieval.js";
|
|
18
|
+
import { type RaybaseSearch } from "./search.js";
|
|
19
|
+
import type { RaybaseConfig, RaybaseSchema, RaybaseSystemTable } from "./schema.js";
|
|
20
|
+
import { type RaybaseAppManifest as CoreRaybaseAppManifest } from "./app-manifest.js";
|
|
21
|
+
import { type RaybaseSettingsDefinitions, type RaybaseRuntimeSettings } from "./settings.js";
|
|
22
|
+
import { type RaybaseStorageConfig } from "./storage.js";
|
|
23
|
+
import { type RaybaseSupportModuleOptions } from "./support.js";
|
|
24
|
+
export { maxOutstandingComposeRequests } from "./agent-ai-chat.js";
|
|
25
|
+
export { raybaseLocalDevChromePayload, raybaseLocalDevChromePersonas, withRaybaseLocalDevChrome, type RaybaseLocalDevChromeOptions, type RaybaseLocalDevChromePayload, type RaybaseLocalDevChromePersona } from "./local-dev-chrome.js";
|
|
26
|
+
export type RaybaseEnv = RaybaseAuthEnv & {
|
|
27
|
+
RAYBASE_DATA?: DurableObjectNamespace;
|
|
28
|
+
RAYBASE_AI_CHAT_AGENT?: DurableObjectNamespace;
|
|
29
|
+
AI?: Ai;
|
|
30
|
+
RAYBASE_VECTORIZE?: RaybaseVectorizeBinding;
|
|
31
|
+
RAYBASE_JOBS?: Queue<RaybaseJobQueueMessage | RaybaseAgentQueueMessage | RaybaseDevTimeCatchUpMessage>;
|
|
32
|
+
RAYBASE_JOB_ARTIFACTS?: R2Bucket;
|
|
33
|
+
RAYBASE_AUDIT_ARCHIVE?: R2Bucket;
|
|
34
|
+
RAYBASE_AUDIT_ARCHIVE_ENABLED?: string;
|
|
35
|
+
RAYBASE_AUDIT_HOT_DAYS?: string;
|
|
36
|
+
RAYBASE_BACKUPS?: R2Bucket;
|
|
37
|
+
RAYBASE_BACKUPS_ENABLED?: string;
|
|
38
|
+
RAYBASE_BACKUPS_KEY?: string;
|
|
39
|
+
RAYBASE_BACKUPS_KEY_RETAINED?: string;
|
|
40
|
+
RAYBASE_BACKUPS_RETAIN?: string;
|
|
41
|
+
RAYBASE_DATA_SECRETS_KEY?: string;
|
|
42
|
+
RAYBASE_DATA_SECRETS_KEY_RETAINED?: string;
|
|
43
|
+
RAYBASE_FILES?: R2Bucket;
|
|
44
|
+
BETTER_AUTH_SECRET?: string;
|
|
45
|
+
RAYBASE_HANDOFF_PRIVATE_JWK?: string;
|
|
46
|
+
RAYBASE_SITE_ORIGIN?: string;
|
|
47
|
+
RAYBASE_ENV?: string;
|
|
48
|
+
RAYBASE_APP_ID?: string;
|
|
49
|
+
RAYBASE_UPDATES_WEBHOOK_URL?: string;
|
|
50
|
+
RAYBASE_VAPID_PUBLIC_KEY?: string;
|
|
51
|
+
RAYBASE_VAPID_PRIVATE_KEY?: string;
|
|
52
|
+
RAYBASE_DEV_MANIFEST?: string;
|
|
53
|
+
};
|
|
54
|
+
type RaybaseDevTimeCatchUpMessage = RaybaseRuntimeClaims & {
|
|
55
|
+
kind: "raybase.dev.time.catch_up";
|
|
56
|
+
version: 1;
|
|
57
|
+
expectedAnchor: string;
|
|
58
|
+
};
|
|
59
|
+
export type RaybaseRequestContext<Env extends RaybaseEnv = RaybaseEnv, Schema extends RaybaseSchema = RaybaseSchema> = {
|
|
60
|
+
env: Env;
|
|
61
|
+
request: Request;
|
|
62
|
+
user: RaybaseUser;
|
|
63
|
+
db: RaybaseDataClient<Schema>;
|
|
64
|
+
settings: RaybaseRuntimeSettings<Env, RaybaseSettingsDefinitions<Env>>;
|
|
65
|
+
notifications: RaybaseNotificationsRuntime<Env>;
|
|
66
|
+
};
|
|
67
|
+
export type RaybaseSeedVariantContext<Env extends RaybaseEnv = RaybaseEnv, Schema extends RaybaseSchema = RaybaseSchema> = RaybaseRequestContext<Env, Schema>;
|
|
68
|
+
export type RaybaseSeedVariants<Env extends RaybaseEnv = RaybaseEnv, Schema extends RaybaseSchema = RaybaseSchema> = Record<string, (ctx: RaybaseSeedVariantContext<Env, Schema>) => void | Promise<void>>;
|
|
69
|
+
export declare function defineSeedVariants<const Variants extends RaybaseSeedVariants<any, any>>(variants: Variants): Variants;
|
|
70
|
+
export type RaybaseWorkerOptions<Env extends RaybaseEnv = RaybaseEnv, Schema extends RaybaseSchema = RaybaseSchema> = {
|
|
71
|
+
config: RaybaseConfig;
|
|
72
|
+
schema: Schema;
|
|
73
|
+
storage?: RaybaseStorageConfig;
|
|
74
|
+
backups?: RaybaseBackupsOptions;
|
|
75
|
+
/**
|
|
76
|
+
* Control-plane tables declared by this template/integration (see
|
|
77
|
+
* raybaseSystemTable). They are bootstrapped at runtime like core's own
|
|
78
|
+
* system tables but only exist in deployments that declare them.
|
|
79
|
+
*/
|
|
80
|
+
systemTables?: RaybaseSystemTable[];
|
|
81
|
+
/**
|
|
82
|
+
* Compiled app-table migrations (src/db/migrations.gen.ts, written by
|
|
83
|
+
* raybase migrate). The singleton Durable Object applies the bundle lazily
|
|
84
|
+
* before the first app-data query.
|
|
85
|
+
*/
|
|
86
|
+
appMigrations?: DoMigration[];
|
|
87
|
+
seed?: (client: RaybaseDataClient<Schema>, ctx: RaybaseRequestContext<Env, Schema>) => Promise<void>;
|
|
88
|
+
seedVariants?: RaybaseSeedVariants<Env, Schema>;
|
|
89
|
+
renderApp?: (ctx: RaybaseRequestContext<Env, Schema>) => Response | string | Promise<Response | string>;
|
|
90
|
+
jobs?: RaybaseJobs;
|
|
91
|
+
settings?: RaybaseSettingsDefinitions<Env>;
|
|
92
|
+
actions?: RaybaseActions<Env, Schema>;
|
|
93
|
+
agents?: RaybaseAgents<Env, Schema>;
|
|
94
|
+
notifications?: RaybaseNotifications<Env>;
|
|
95
|
+
support?: RaybaseSupportModuleOptions;
|
|
96
|
+
retrieval?: RaybaseRetrieval<Env>;
|
|
97
|
+
search?: RaybaseSearch<Env>;
|
|
98
|
+
modules?: RaybaseModule<Env>[];
|
|
99
|
+
aiProvider?: RaybaseInferenceProvider<Env>;
|
|
100
|
+
auth?: RaybaseExternalAuthRuntime;
|
|
101
|
+
/**
|
|
102
|
+
* Host platform sign-in for agent routes (the Guide and other agents). See
|
|
103
|
+
* RaybaseHostAuth: used only when an agent request has no Raybase session.
|
|
104
|
+
*/
|
|
105
|
+
hostAuth?: RaybaseHostAuth<Env>;
|
|
106
|
+
mcp?: {
|
|
107
|
+
tools?: RaybaseMcpTool<unknown, Env>[];
|
|
108
|
+
resources?: RaybaseMcpResource[];
|
|
109
|
+
generatedTools?: RaybaseGeneratedMcpToolsConfig;
|
|
110
|
+
resolveContext?: RaybaseMcpContextResolver<Env>;
|
|
111
|
+
/**
|
|
112
|
+
* The connect-and-approve flow for an app embedded in another platform's
|
|
113
|
+
* admin: MCP grants bound to one of the host's accounts. When enabled it
|
|
114
|
+
* owns the OAuth authorization endpoint.
|
|
115
|
+
*/
|
|
116
|
+
hostApproval?: RaybaseMcpHostApprovalOptions<Env>;
|
|
117
|
+
operator?: {
|
|
118
|
+
enabled?: boolean;
|
|
119
|
+
providers?: OperatorEvidenceProvider<Env>[];
|
|
120
|
+
tools?: RaybaseMcpTool<unknown, Env>[];
|
|
121
|
+
resources?: RaybaseMcpResource[];
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
api?: {
|
|
125
|
+
actions?: RaybaseActionRoute<Env, Schema>[];
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
/** True when source config removes the web admin surface for this request. */
|
|
129
|
+
export declare function isRaybaseAdminPanelRequestDisabled(request: Request | URL, config: RaybaseConfig): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Whether a request is for one of the addresses Raybase answers outside
|
|
132
|
+
* `/api` and `/admin`: the app's connector (`mcp.endpoint`, default `/mcp`,
|
|
133
|
+
* and everything under it) and the discovery documents under `/.well-known`
|
|
134
|
+
* that an agent product, a single-sign-on client or a mail relay reads. A
|
|
135
|
+
* framework's own router never sees these: send them to the Raybase handler
|
|
136
|
+
* before it.
|
|
137
|
+
*/
|
|
138
|
+
export declare function isRaybaseConnectorRequest(request: Request | URL, config?: RaybaseConfig): boolean;
|
|
139
|
+
export declare function enqueueRaybaseJob<Env extends RaybaseEnv, Input>(input: {
|
|
140
|
+
env: Env;
|
|
141
|
+
config: RaybaseConfig;
|
|
142
|
+
schema: RaybaseSchema;
|
|
143
|
+
appMigrations?: DoMigration[];
|
|
144
|
+
job: RaybaseJobDefinition<Input>;
|
|
145
|
+
principal: RaybaseJobPrincipal;
|
|
146
|
+
input: Input;
|
|
147
|
+
options?: EnqueueJobOptions;
|
|
148
|
+
}): Promise<RaybaseJobRun>;
|
|
149
|
+
/**
|
|
150
|
+
* The job runner an action gets (`ctx.jobs`), for a layered runtime that runs
|
|
151
|
+
* its own surfaces, such as its connector's tools: enqueue, view and cancel
|
|
152
|
+
* registered jobs and schedules as `principal`, under each job's policies.
|
|
153
|
+
* Pass the request's runtime env (a layered runtime's tenant-scoped one).
|
|
154
|
+
*/
|
|
155
|
+
export declare function createRaybaseJobsRuntime<Env extends RaybaseEnv>(input: Parameters<typeof createJobsRuntime<Env>>[0]): RaybaseJobsRuntime;
|
|
156
|
+
declare function createJobsRuntime<Env extends RaybaseEnv>(input: {
|
|
157
|
+
env: Env;
|
|
158
|
+
config: RaybaseConfig;
|
|
159
|
+
schema: RaybaseSchema;
|
|
160
|
+
appMigrations?: DoMigration[];
|
|
161
|
+
jobs: RaybaseJobs;
|
|
162
|
+
principal: RaybaseJobPrincipal;
|
|
163
|
+
organizationId?: string;
|
|
164
|
+
auditMetadata?: Record<string, unknown>;
|
|
165
|
+
/** The job run this runtime executes inside, when there is one. */
|
|
166
|
+
currentRun?: RaybaseJobRun | null;
|
|
167
|
+
}): RaybaseJobsRuntime;
|
|
168
|
+
export type RaybaseAppManifest = CoreRaybaseAppManifest;
|
|
169
|
+
export declare const raybaseAppManifestGlobalKey = "__RAYBASE_APP_MANIFESTS__";
|
|
170
|
+
export type RaybaseApp<Env extends RaybaseEnv = RaybaseEnv, Schema extends RaybaseSchema = RaybaseSchema> = {
|
|
171
|
+
handler: ExportedHandler<Env>;
|
|
172
|
+
ensureRuntimeReconciled(env: Env, claims: RaybaseRuntimeClaims): Promise<void>;
|
|
173
|
+
RaybaseAIChatAgentObject: ReturnType<typeof createRaybaseAIChatAgentBase<Env & RaybaseAIChatAgentEnv, Schema>>;
|
|
174
|
+
staticRuntime: RaybaseAgentStaticRuntime<Env & RaybaseAIChatAgentEnv, Schema>;
|
|
175
|
+
manifest: RaybaseAppManifest;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* First-party distribution composition boundary. Normal Core applications
|
|
179
|
+
* use createRaybaseApp(), whose runtime profile is deliberately closed.
|
|
180
|
+
*/
|
|
181
|
+
export declare function createRaybaseRuntimeApp<Env extends RaybaseEnv, Schema extends RaybaseSchema = RaybaseSchema>(runtimeProfile: RaybaseRuntimeProfile<Env>, options: RaybaseWorkerOptions<Env, Schema>): RaybaseApp<Env, Schema>;
|
|
182
|
+
export declare function createRaybaseApp<Env extends RaybaseEnv, Schema extends RaybaseSchema = RaybaseSchema>(options: RaybaseWorkerOptions<Env, Schema>): RaybaseApp<Env, Schema>;
|
|
183
|
+
export declare function createRaybaseWorker<Env extends RaybaseEnv, Schema extends RaybaseSchema = RaybaseSchema>(options: RaybaseWorkerOptions<Env, Schema>): ExportedHandler<Env>;
|
|
184
|
+
export declare function createRaybaseHandlers<Env extends RaybaseEnv, Schema extends RaybaseSchema = RaybaseSchema>(options: RaybaseWorkerOptions<Env, Schema>): ExportedHandler<Env>;
|
|
185
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|