@hexclave/js 1.0.41 → 1.0.43
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/dist/admin-app-impl-6qQFRdrQ.d.ts +1095 -0
- package/dist/admin-app-impl-6qQFRdrQ.d.ts.map +1 -0
- package/dist/clickmap/clickmap-core.d.ts +1 -2
- package/dist/clickmap/clickmap-core.d.ts.map +1 -1
- package/dist/clickmap/clickmap-core.js +2 -4
- package/dist/clickmap/clickmap-core.js.map +1 -1
- package/dist/clickmap/clickmap-styles.js +3 -6
- package/dist/clickmap/clickmap-styles.js.map +1 -1
- package/dist/clickmap/index.d.ts +1 -2
- package/dist/clickmap/index.d.ts.map +1 -1
- package/dist/clickmap/index.js +2 -4
- package/dist/clickmap/index.js.map +1 -1
- package/dist/client-app-D8-Lm4RT.d.ts +1235 -0
- package/dist/client-app-D8-Lm4RT.d.ts.map +1 -0
- package/dist/common-BDyEKSM6.d.ts +174 -0
- package/dist/common-BDyEKSM6.d.ts.map +1 -0
- package/dist/common-CRu2FsO9.d.ts +65 -0
- package/dist/common-CRu2FsO9.d.ts.map +1 -0
- package/dist/config.js +17 -19
- package/dist/cookie-DTOQvCYn.d.ts +42 -0
- package/dist/cookie-DTOQvCYn.d.ts.map +1 -0
- package/dist/dev-tool/dev-tool-core.d.ts +1 -2
- package/dist/dev-tool/dev-tool-core.d.ts.map +1 -1
- package/dist/dev-tool/dev-tool-core.js +2 -4
- package/dist/dev-tool/dev-tool-core.js.map +1 -1
- package/dist/dev-tool/dev-tool-styles.js +3 -6
- package/dist/dev-tool/dev-tool-styles.js.map +1 -1
- package/dist/dev-tool/dev-tool-trigger-position.d.ts.map +1 -1
- package/dist/dev-tool/dev-tool-trigger-position.js +6 -7
- package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
- package/dist/dev-tool/dev-tool-trigger-position.test.js +1 -3
- package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
- package/dist/dev-tool/index.d.ts +1 -2
- package/dist/dev-tool/index.d.ts.map +1 -1
- package/dist/dev-tool/index.js +2 -4
- package/dist/dev-tool/index.js.map +1 -1
- package/dist/esm/clickmap/clickmap-core.d.ts +1 -1
- package/dist/esm/clickmap/clickmap-core.d.ts.map +1 -1
- package/dist/esm/clickmap/clickmap-core.js +1 -2
- package/dist/esm/clickmap/clickmap-core.js.map +1 -1
- package/dist/esm/clickmap/clickmap-styles.js +1 -2
- package/dist/esm/clickmap/clickmap-styles.js.map +1 -1
- package/dist/esm/clickmap/index.d.ts +1 -1
- package/dist/esm/clickmap/index.d.ts.map +1 -1
- package/dist/esm/clickmap/index.js +1 -2
- package/dist/esm/clickmap/index.js.map +1 -1
- package/dist/esm/config.js +1 -2
- package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
- package/dist/esm/dev-tool/dev-tool-core.d.ts.map +1 -1
- package/dist/esm/dev-tool/dev-tool-core.js +1 -2
- package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
- package/dist/esm/dev-tool/dev-tool-styles.js +1 -2
- package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
- package/dist/esm/dev-tool/dev-tool-trigger-position.d.ts.map +1 -1
- package/dist/esm/dev-tool/dev-tool-trigger-position.js +5 -5
- package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
- package/dist/esm/dev-tool/dev-tool-trigger-position.test.js +2 -3
- package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
- package/dist/esm/dev-tool/index.d.ts +1 -1
- package/dist/esm/dev-tool/index.d.ts.map +1 -1
- package/dist/esm/dev-tool/index.js +1 -2
- package/dist/esm/dev-tool/index.js.map +1 -1
- package/dist/esm/generated/env.js +1 -1
- package/dist/esm/generated/env.js.map +1 -1
- package/dist/esm/global.d.ts.map +1 -1
- package/dist/esm/in-page-ui/base-styles.d.ts.map +1 -1
- package/dist/esm/in-page-ui/base-styles.js +1 -1
- package/dist/esm/in-page-ui/base-styles.js.map +1 -1
- package/dist/esm/in-page-ui/dom.d.ts.map +1 -1
- package/dist/esm/in-page-ui/dom.js +1 -1
- package/dist/esm/in-page-ui/dom.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -4
- package/dist/esm/integrations/convex/component/convex.config.d.ts +1 -3
- package/dist/esm/integrations/convex/component/convex.config.d.ts.map +1 -1
- package/dist/esm/integrations/convex/component/convex.config.js +1 -2
- package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
- package/dist/esm/integrations/convex.js +1 -2
- package/dist/esm/integrations/convex.js.map +1 -1
- package/dist/esm/lib/auth.js +1 -2
- package/dist/esm/lib/auth.js.map +1 -1
- package/dist/esm/lib/auth.test.js +2 -3
- package/dist/esm/lib/auth.test.js.map +1 -1
- package/dist/esm/lib/cookie.d.ts.map +1 -1
- package/dist/esm/lib/cookie.js +4 -22
- package/dist/esm/lib/cookie.js.map +1 -1
- package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/api-keys/index.js +1 -2
- package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +34 -42
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +2 -3
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +26 -28
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js +2 -3
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/common.js +7 -8
- package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js +2 -3
- package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +3 -3
- package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/index.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +13 -13
- package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js +2 -3
- package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js +13 -7
- package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js +134 -3
- package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/index.d.ts +3 -3
- package/dist/esm/lib/hexclave-app/apps/index.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts +8 -8
- package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts +6 -6
- package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts +7 -7
- package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js +1 -2
- package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -1
- package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/common.js +1 -1
- package/dist/esm/lib/hexclave-app/common.js.map +1 -1
- package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/connected-accounts/index.js +1 -1
- package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/contact-channels/index.js +1 -1
- package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -1
- package/dist/esm/lib/hexclave-app/customers/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/customers/index.js +1 -1
- package/dist/esm/lib/hexclave-app/data-vault/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/data-vault/index.js +1 -1
- package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/email/index.js +1 -1
- package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/email-templates/index.js +1 -1
- package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -1
- package/dist/esm/lib/hexclave-app/index.d.ts +14 -14
- package/dist/esm/lib/hexclave-app/index.js +1 -2
- package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/internal-api-keys/index.js +1 -1
- package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -1
- package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/notification-categories/index.js +1 -1
- package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/permissions/index.js +1 -1
- package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -1
- package/dist/esm/lib/hexclave-app/plan-usage/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/plan-usage/index.js +1 -1
- package/dist/esm/lib/hexclave-app/project-configs/index.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/project-configs/index.js +1 -1
- package/dist/esm/lib/hexclave-app/projects/index.d.ts +2 -2
- package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/projects/index.js +5 -1
- package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -1
- package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/session-replays/index.js +1 -1
- package/dist/esm/lib/hexclave-app/teams/index.d.ts +4 -4
- package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/teams/index.js +1 -1
- package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -1
- package/dist/esm/lib/hexclave-app/url-targets.d.ts +1 -1
- package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/url-targets.js +2 -3
- package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -1
- package/dist/esm/lib/hexclave-app/url-targets.test.js +2 -3
- package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -1
- package/dist/esm/lib/hexclave-app/users/index.d.ts +10 -10
- package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/users/index.js +1 -2
- package/dist/esm/lib/hexclave-app/users/index.js.map +1 -1
- package/dist/esm/pushed-config-error-overlay/index.d.ts +1 -1
- package/dist/esm/pushed-config-error-overlay/index.d.ts.map +1 -1
- package/dist/esm/pushed-config-error-overlay/index.js +1 -2
- package/dist/esm/pushed-config-error-overlay/index.js.map +1 -1
- package/dist/esm/pushed-config-error-overlay/index.test.js +2 -3
- package/dist/esm/pushed-config-error-overlay/index.test.js.map +1 -1
- package/dist/esm/utils/url.d.ts.map +1 -1
- package/dist/esm/utils/url.js +1 -2
- package/dist/esm/utils/url.js.map +1 -1
- package/dist/generated/env.js +2 -3
- package/dist/generated/env.js.map +1 -1
- package/dist/global.d.ts.map +1 -1
- package/dist/in-page-ui/base-styles.d.ts.map +1 -1
- package/dist/in-page-ui/base-styles.js +2 -3
- package/dist/in-page-ui/base-styles.js.map +1 -1
- package/dist/in-page-ui/dom.d.ts.map +1 -1
- package/dist/in-page-ui/dom.js +2 -3
- package/dist/in-page-ui/dom.js.map +1 -1
- package/dist/index-BKZ67WMa.d.ts +1 -0
- package/dist/index-BVVgDSdq.d.ts +1 -0
- package/dist/index-Bo5DpPFH.d.ts +17 -0
- package/dist/index-Bo5DpPFH.d.ts.map +1 -0
- package/dist/index-CBDR4cNg.d.ts +206 -0
- package/dist/index-CBDR4cNg.d.ts.map +1 -0
- package/dist/index-ClBTM-St.d.ts +40 -0
- package/dist/index-ClBTM-St.d.ts.map +1 -0
- package/dist/index-D7Vdg30O.d.ts +27 -0
- package/dist/index-D7Vdg30O.d.ts.map +1 -0
- package/dist/index-DLPccxVU.d.ts +14 -0
- package/dist/index-DLPccxVU.d.ts.map +1 -0
- package/dist/index-DN04TjLM.d.ts +43 -0
- package/dist/index-DN04TjLM.d.ts.map +1 -0
- package/dist/index-DSzMf-rS.d.ts +43 -0
- package/dist/index-DSzMf-rS.d.ts.map +1 -0
- package/dist/index-Dq4xsW7_.d.ts +106 -0
- package/dist/index-Dq4xsW7_.d.ts.map +1 -0
- package/dist/index-O3hJsHSl.d.ts +11 -0
- package/dist/index-O3hJsHSl.d.ts.map +1 -0
- package/dist/index-TUtJOdMm.d.ts +42 -0
- package/dist/index-TUtJOdMm.d.ts.map +1 -0
- package/dist/index-ZiEXZJBF.d.ts +129 -0
- package/dist/index-ZiEXZJBF.d.ts.map +1 -0
- package/dist/index-fOYcs4NH.d.ts +53 -0
- package/dist/{lib/hexclave-app/api-keys/index.d.ts.map → index-fOYcs4NH.d.ts.map} +1 -1
- package/dist/index-hYjsGKNc.d.ts +66 -0
- package/dist/index-hYjsGKNc.d.ts.map +1 -0
- package/dist/index.d.ts +11 -16
- package/dist/index.js +23 -23
- package/dist/integrations/convex/component/convex.config.d.ts +1 -1
- package/dist/integrations/convex/component/convex.config.d.ts.map +1 -1
- package/dist/integrations/convex/component/convex.config.js +2 -5
- package/dist/integrations/convex/component/convex.config.js.map +1 -1
- package/dist/integrations/convex.js +2 -4
- package/dist/integrations/convex.js.map +1 -1
- package/dist/lib/auth.js +2 -4
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/auth.test.js +1 -3
- package/dist/lib/auth.test.js.map +1 -1
- package/dist/lib/cookie.d.ts +2 -42
- package/dist/lib/cookie.js +7 -25
- package/dist/lib/cookie.js.map +1 -1
- package/dist/lib/hexclave-app/api-keys/index.d.ts +2 -53
- package/dist/lib/hexclave-app/api-keys/index.js +2 -4
- package/dist/lib/hexclave-app/api-keys/index.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +2 -376
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js +2 -4
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +1 -3
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +2 -554
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +4 -5
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -3
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/common.d.ts +2 -65
- package/dist/lib/hexclave-app/apps/implementations/common.js +7 -9
- package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/event-tracker.js +2 -4
- package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js +1 -3
- package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/index.d.ts +1 -3
- package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/index.js +2 -4
- package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts +2 -35
- package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js +2 -4
- package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +2 -217
- package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js +2 -4
- package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js +2 -3
- package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js +1 -3
- package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/session-replay.d.ts +2 -122
- package/dist/lib/hexclave-app/apps/implementations/session-replay.js +14 -9
- package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js +135 -3
- package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -1
- package/dist/lib/hexclave-app/apps/index.d.ts +1 -3
- package/dist/lib/hexclave-app/apps/index.js +32 -34
- package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts +3 -255
- package/dist/lib/hexclave-app/apps/interfaces/admin-app.js +3 -6
- package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
- package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts +2 -219
- package/dist/lib/hexclave-app/apps/interfaces/client-app.js +3 -6
- package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts +2 -133
- package/dist/lib/hexclave-app/apps/interfaces/server-app.js +3 -6
- package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -1
- package/dist/lib/hexclave-app/common.d.ts +2 -174
- package/dist/lib/hexclave-app/common.js +2 -3
- package/dist/lib/hexclave-app/common.js.map +1 -1
- package/dist/lib/hexclave-app/connected-accounts/index.d.ts +2 -40
- package/dist/lib/hexclave-app/contact-channels/index.d.ts +2 -43
- package/dist/lib/hexclave-app/contact-channels/index.js +2 -3
- package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -1
- package/dist/lib/hexclave-app/customers/index.d.ts +2 -129
- package/dist/lib/hexclave-app/data-vault/index.d.ts +2 -14
- package/dist/lib/hexclave-app/email/index.d.ts +2 -206
- package/dist/lib/hexclave-app/email-templates/index.d.ts +2 -17
- package/dist/lib/hexclave-app/email-templates/index.js +2 -3
- package/dist/lib/hexclave-app/email-templates/index.js.map +1 -1
- package/dist/lib/hexclave-app/index.d.ts +10 -15
- package/dist/lib/hexclave-app/index.js +49 -51
- package/dist/lib/hexclave-app/internal-api-keys/index.d.ts +2 -42
- package/dist/lib/hexclave-app/internal-api-keys/index.js +2 -3
- package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -1
- package/dist/lib/hexclave-app/notification-categories/index.d.ts +2 -11
- package/dist/lib/hexclave-app/permissions/index.d.ts +2 -43
- package/dist/lib/hexclave-app/permissions/index.js +2 -3
- package/dist/lib/hexclave-app/permissions/index.js.map +1 -1
- package/dist/lib/hexclave-app/plan-usage/index.d.ts +2 -27
- package/dist/lib/hexclave-app/project-configs/index.d.ts +2 -106
- package/dist/lib/hexclave-app/projects/index.d.ts +2 -152
- package/dist/lib/hexclave-app/projects/index.js +6 -3
- package/dist/lib/hexclave-app/projects/index.js.map +1 -1
- package/dist/lib/hexclave-app/session-replays/index.d.ts +2 -66
- package/dist/lib/hexclave-app/teams/index.d.ts +2 -164
- package/dist/lib/hexclave-app/teams/index.js +2 -3
- package/dist/lib/hexclave-app/teams/index.js.map +1 -1
- package/dist/lib/hexclave-app/url-targets.d.ts +2 -39
- package/dist/lib/hexclave-app/url-targets.js +3 -5
- package/dist/lib/hexclave-app/url-targets.js.map +1 -1
- package/dist/lib/hexclave-app/url-targets.test.js +1 -3
- package/dist/lib/hexclave-app/url-targets.test.js.map +1 -1
- package/dist/lib/hexclave-app/users/index.d.ts +2 -357
- package/dist/lib/hexclave-app/users/index.js +2 -4
- package/dist/lib/hexclave-app/users/index.js.map +1 -1
- package/dist/pushed-config-error-overlay/index.d.ts +1 -2
- package/dist/pushed-config-error-overlay/index.d.ts.map +1 -1
- package/dist/pushed-config-error-overlay/index.js +2 -4
- package/dist/pushed-config-error-overlay/index.js.map +1 -1
- package/dist/pushed-config-error-overlay/index.test.js +1 -3
- package/dist/pushed-config-error-overlay/index.test.js.map +1 -1
- package/dist/redirect-page-urls-elbPx2J1.d.ts +35 -0
- package/dist/redirect-page-urls-elbPx2J1.d.ts.map +1 -0
- package/dist/{chunk-BE-pF4vm.js → rolldown-runtime-D6vf50IK.js} +12 -18
- package/dist/session-replay-8_3WCrsZ.d.ts +122 -0
- package/dist/session-replay-8_3WCrsZ.d.ts.map +1 -0
- package/dist/{storage-CKsyME2q.d.ts → storage-CA867GtX.d.ts} +1 -1
- package/dist/storage-CA867GtX.d.ts.map +1 -0
- package/dist/url-targets-BJgkwPGW.d.ts +39 -0
- package/dist/url-targets-BJgkwPGW.d.ts.map +1 -0
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +2 -4
- package/dist/utils/url.js.map +1 -1
- package/package.json +4 -4
- package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +160 -1
- package/src/lib/hexclave-app/apps/implementations/session-replay.ts +38 -12
- package/dist/lib/cookie.d.ts.map +0 -1
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +0 -1
- package/dist/lib/hexclave-app/apps/implementations/common.d.ts.map +0 -1
- package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
- package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +0 -1
- package/dist/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +0 -1
- package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +0 -1
- package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +0 -1
- package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +0 -1
- package/dist/lib/hexclave-app/common.d.ts.map +0 -1
- package/dist/lib/hexclave-app/connected-accounts/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/contact-channels/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/customers/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/data-vault/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/email/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/email-templates/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/internal-api-keys/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/notification-categories/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/permissions/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/plan-usage/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/project-configs/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/projects/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/session-replays/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/teams/index.d.ts.map +0 -1
- package/dist/lib/hexclave-app/url-targets.d.ts.map +0 -1
- package/dist/lib/hexclave-app/users/index.d.ts.map +0 -1
- package/dist/storage-CKsyME2q.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["envVars"],"sources":["../../src/pushed-config-error-overlay/index.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { captureError } from \"@hexclave/shared/dist/utils/errors\";\nimport { runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport { isLocalhost } from \"@hexclave/shared/dist/utils/urls\";\nimport { envVars } from \"../generated/env\";\nimport { getInPageUiBaseCSS } from \"../in-page-ui/base-styles\";\nimport { canMountIntoDom, getGlobalUiInstance, h, setGlobalUiInstance, setHtml } from \"../in-page-ui/dom\";\nimport type { StackClientApp } from \"../lib/hexclave-app\";\n\nconst GLOBAL_INSTANCE_KEY = \"__hexclave-pushed-config-error-overlay\";\nconst MINIMIZED_STORAGE_KEY = \"hexclave-pushed-config-error-minimized-key\";\nconst REFRESH_INTERVAL_MS = 5_000;\nconst HEXCLAVE_LOGO_SVG = '<svg width=\"16\" height=\"16\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linejoin=\"miter\"><path d=\"M 24 4 L 41.32 14 L 41.32 34 L 24 44 L 6.68 34 L 6.68 14 Z\"/><path d=\"M 11 16.87 L 14 15.13 L 14 32.87 L 11 31.13 Z\" fill=\"currentColor\" stroke=\"none\"/><path d=\"M 11 16.87 L 14 15.13 L 14 32.87 L 11 31.13 Z\" fill=\"currentColor\" stroke=\"none\" transform=\"rotate(120 24 24)\"/><path d=\"M 11 16.87 L 14 15.13 L 14 32.87 L 11 31.13 Z\" fill=\"currentColor\" stroke=\"none\" transform=\"rotate(240 24 24)\"/></svg>';\nconst COPY_ICON_SVG = '<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.25\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"/></svg>';\n\ntype ConfigIssue = {\n kind: \"error\" | \"warning\",\n messages: string[],\n};\n\nconst css = getInPageUiBaseCSS(\".hexclave-config-error-overlay\") + `\n .hexclave-config-error-overlay .hce-backdrop {\n position: fixed;\n inset: 0;\n z-index: 2147483647;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n background: rgba(0, 0, 0, 0.46);\n backdrop-filter: blur(6px);\n overflow: auto;\n }\n\n .hexclave-config-error-overlay .hce-card {\n --hce-status: var(--sdt-error);\n width: min(720px, calc(100vw - 32px));\n max-height: min(640px, calc(100dvh - 48px));\n border: 1px solid color-mix(in srgb, var(--hce-status) 35%, var(--sdt-border));\n border-radius: 18px;\n background: var(--sdt-overlay-bg);\n box-shadow: var(--sdt-shadow);\n backdrop-filter: blur(18px);\n display: flex;\n overflow: hidden;\n }\n\n .hexclave-config-error-overlay .hce-card-warning {\n --hce-status: var(--sdt-warning);\n }\n\n .hexclave-config-error-overlay .hce-card-inner {\n padding: 18px;\n width: 100%;\n overflow: auto;\n }\n\n .hexclave-config-error-overlay .hce-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 12px;\n }\n\n .hexclave-config-error-overlay .hce-title-row {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n min-width: 0;\n }\n\n .hexclave-config-error-overlay .hce-logo {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 34px;\n height: 34px;\n border-radius: 10px;\n background: var(--hce-status);\n color: white;\n box-shadow: 0 10px 30px color-mix(in srgb, var(--hce-status) 32%, transparent);\n }\n\n .hexclave-config-error-overlay .hce-badge {\n display: inline-flex;\n flex-shrink: 0;\n padding: 2px 6px;\n border-radius: 999px;\n background: var(--hce-status);\n color: white;\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n }\n\n .hexclave-config-error-overlay .hce-title {\n color: var(--sdt-text);\n margin-top: 4px;\n font-size: 18px;\n font-weight: 700;\n line-height: 1.25;\n }\n\n .hexclave-config-error-overlay .hce-actions {\n display: flex;\n gap: 4px;\n }\n\n .hexclave-config-error-overlay .hce-icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid var(--sdt-border);\n border-radius: 8px;\n background: var(--sdt-bg-elevated);\n color: var(--sdt-text-secondary);\n cursor: pointer;\n font: inherit;\n line-height: 1;\n vertical-align: top;\n }\n\n .hexclave-config-error-overlay .hce-icon-btn svg {\n display: block;\n flex-shrink: 0;\n }\n\n .hexclave-config-error-overlay .hce-text-btn {\n align-items: center;\n gap: 6px;\n min-height: 28px;\n padding: 0 10px;\n width: auto;\n font-size: 12px;\n line-height: 1;\n }\n\n .hexclave-config-error-overlay .hce-icon-btn:hover {\n background: var(--sdt-bg-hover);\n color: var(--sdt-text);\n }\n\n .hexclave-config-error-overlay .hce-body {\n color: var(--sdt-text-secondary);\n font-size: 14px;\n line-height: 1.5;\n }\n\n .hexclave-config-error-overlay .hce-message-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n margin-top: 14px;\n margin-bottom: 8px;\n }\n\n .hexclave-config-error-overlay .hce-message-label {\n color: var(--sdt-text);\n font-size: 12px;\n font-weight: 650;\n }\n\n .hexclave-config-error-overlay .hce-message {\n padding: 12px;\n max-height: min(260px, max(96px, 30dvh));\n overflow: auto;\n border: 1px solid var(--sdt-border-subtle);\n border-radius: 10px;\n background: var(--sdt-bg-subtle);\n color: var(--sdt-text);\n font-family: var(--sdt-font-mono);\n font-size: 12px;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n }\n\n .hexclave-config-error-overlay .hce-footer {\n margin-top: 10px;\n color: var(--sdt-text-tertiary);\n font-size: 12px;\n }\n\n .hexclave-config-error-overlay .hce-pill {\n position: fixed;\n right: 18px;\n bottom: 18px;\n z-index: 2147483647;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px 8px 8px;\n --hce-status: var(--sdt-error);\n border: 1px solid color-mix(in srgb, var(--hce-status) 35%, var(--sdt-border));\n border-radius: 999px;\n background: var(--sdt-overlay-bg);\n box-shadow: var(--sdt-trigger-shadow);\n color: var(--sdt-text);\n cursor: pointer;\n font: inherit;\n backdrop-filter: blur(18px);\n }\n\n .hexclave-config-error-overlay .hce-pill-warning {\n --hce-status: var(--sdt-warning);\n }\n\n .hexclave-config-error-overlay .hce-pill-logo {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border-radius: 999px;\n background: var(--hce-status);\n color: white;\n }\n\n @media (max-height: 520px) {\n .hexclave-config-error-overlay .hce-backdrop {\n align-items: flex-start;\n padding: 12px;\n }\n\n .hexclave-config-error-overlay .hce-card {\n width: min(720px, calc(100vw - 24px));\n max-height: calc(100dvh - 24px);\n }\n\n .hexclave-config-error-overlay .hce-card-inner {\n padding: 12px;\n }\n\n .hexclave-config-error-overlay .hce-header {\n margin-bottom: 8px;\n }\n\n .hexclave-config-error-overlay .hce-title {\n font-size: 16px;\n }\n\n .hexclave-config-error-overlay .hce-body {\n font-size: 13px;\n }\n\n .hexclave-config-error-overlay .hce-message {\n max-height: max(80px, 24dvh);\n }\n }\n`;\n\nfunction storageGet(key: string): string | null {\n try {\n return localStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nfunction storageSet(key: string, value: string): void {\n try {\n localStorage.setItem(key, value);\n } catch {\n // Storage may be unavailable in private or embedded contexts.\n }\n}\n\nfunction storageRemove(key: string): void {\n try {\n localStorage.removeItem(key);\n } catch {\n // Storage may be unavailable in private or embedded contexts.\n }\n}\n\nfunction shouldMount(): boolean {\n if (!canMountIntoDom()) {\n return false;\n }\n\n const nodeEnv = envVars.NODE_ENV;\n if (nodeEnv !== undefined) {\n return nodeEnv === \"development\";\n }\n\n try {\n const url = new URL(window.location.href);\n if (url.protocol === \"file:\") {\n return true;\n }\n } catch {\n return false;\n }\n return isLocalhost(window.location.href);\n}\n\nasync function copyTextToClipboard(text: string): Promise<void> {\n const clipboard: unknown = Reflect.get(navigator, \"clipboard\");\n const writeText = clipboard != null && typeof clipboard === \"object\"\n ? Reflect.get(clipboard, \"writeText\")\n : null;\n if (typeof writeText === \"function\") {\n await writeText.call(clipboard, text);\n return;\n }\n\n const textarea = h(\"textarea\", {\n style: {\n position: \"fixed\",\n left: \"-9999px\",\n top: \"0\",\n opacity: \"0\",\n },\n readonly: \"true\",\n }) as HTMLTextAreaElement;\n textarea.value = text;\n document.body.appendChild(textarea);\n textarea.select();\n const copied = document.execCommand(\"copy\");\n textarea.remove();\n if (!copied) {\n throw new Error(\"Browser refused to copy the config error message.\");\n }\n}\n\nfunction buildConfigIssueAiPrompt(issue: ConfigIssue): string {\n const issueLabel = issue.kind === \"error\" ? \"error\" : \"warning\";\n return [\n `Help me fix this Hexclave config ${issueLabel}.`,\n \"\",\n \"Hexclave reminder:\",\n `This ${issueLabel} comes from a pushed Hexclave config file. The app may keep running with the synced Hexclave config, but I need to fix the config file mentioned in the message and save it again so Hexclave can sync the config successfully and clear the dialog. Use your web fetch tool to read https://skill.hexclave.com to learn more about Hexclave.`,\n \"\",\n issue.kind === \"error\" ? \"Error message:\" : \"Warning message:\",\n issue.messages.join(\"\\n\"),\n \"\",\n \"Please explain the likely cause, identify the config key or value I should change, and suggest the smallest safe fix.\",\n ].join(\"\\n\");\n}\n\nexport function mountPushedConfigErrorOverlay(app: StackClientApp<true>): () => void {\n if (!shouldMount()) {\n return () => {};\n }\n\n getGlobalUiInstance(GLOBAL_INSTANCE_KEY)?.cleanup();\n\n const root = h(\"div\", { className: \"hexclave-config-error-overlay\" });\n const style = h(\"style\", null, css);\n root.appendChild(style);\n document.body.appendChild(root);\n\n let disposed = false;\n let lastErrorKey: string | null = null;\n let lastConsoleErrorKey: string | null = null;\n let minimized = false;\n\n const render = (issue: ConfigIssue | null) => {\n root.replaceChildren(style);\n if (issue == null) {\n lastErrorKey = null;\n minimized = false;\n return;\n }\n\n const issueMessage = issue.messages.join(\"\\n\");\n const issueKey = `${app.projectId}:${issue.kind}:${issueMessage}`;\n const issueLabel = issue.kind === \"error\" ? \"error\" : \"warning\";\n const issueTitle = issue.kind === \"error\"\n ? \"Your Hexclave config has been saved, but contains errors\"\n : \"Your Hexclave config has been saved, but has warnings\";\n const bodyText = issue.kind === \"error\"\n ? \"Your app can keep running, but Hexclave is still using the last valid config until this is fixed.\"\n : \"Your app can keep running, but part of your Hexclave config may not behave the way you expect until this is fixed.\";\n const footerText = issue.kind === \"error\"\n ? \"Fix the config file mentioned above and save it again. This message will disappear after the config sync succeeds.\"\n : \"Fix the config file mentioned above and save it again. This warning will disappear after Hexclave syncs a config without warnings.\";\n if (issueKey !== lastConsoleErrorKey) {\n lastConsoleErrorKey = issueKey;\n const consoleMessage = `[Hexclave] Config ${issueLabel}: ${issueMessage}`;\n if (issue.kind === \"error\") {\n console.error(consoleMessage);\n } else {\n console.warn(consoleMessage);\n }\n }\n\n if (issueKey !== lastErrorKey) {\n lastErrorKey = issueKey;\n minimized = storageGet(MINIMIZED_STORAGE_KEY) === issueKey;\n }\n\n if (minimized) {\n const logoSpan = h(\"span\", { className: \"hce-pill-logo\" });\n setHtml(logoSpan, HEXCLAVE_LOGO_SVG);\n root.appendChild(h(\"button\", {\n className: issue.kind === \"error\" ? \"hce-pill\" : \"hce-pill hce-pill-warning\",\n type: \"button\",\n onClick: () => {\n minimized = false;\n storageRemove(MINIMIZED_STORAGE_KEY);\n render(issue);\n },\n },\n logoSpan,\n h(\"span\", null, issue.kind === \"error\" ? \"Config error\" : \"Config warning\")));\n return;\n }\n\n const logoSpan = h(\"span\", { className: \"hce-logo\" });\n setHtml(logoSpan, HEXCLAVE_LOGO_SVG);\n const copyButton = h(\"button\", {\n className: \"hce-icon-btn hce-text-btn\",\n type: \"button\",\n title: issue.kind === \"error\" ? \"Copy error message\" : \"Copy warning message\",\n \"aria-label\": issue.kind === \"error\" ? \"Copy config error message\" : \"Copy config warning message\",\n onClick: () => {\n runAsynchronously(async () => {\n await copyTextToClipboard(issueMessage);\n copyButton.textContent = \"Copied\";\n setTimeout(() => {\n setHtml(copyButton, `${COPY_ICON_SVG}Copy`);\n }, 1500);\n }, {\n noErrorLogging: true,\n onError: (copyError) => {\n captureError(\"pushed-config-error-overlay-copy\", copyError);\n copyButton.textContent = \"Copy failed\";\n setTimeout(() => {\n setHtml(copyButton, `${COPY_ICON_SVG}Copy`);\n }, 1500);\n },\n });\n },\n });\n setHtml(copyButton, `${COPY_ICON_SVG}Copy`);\n\n const aiPromptCopyButton = h(\"button\", {\n className: \"hce-icon-btn\",\n type: \"button\",\n title: \"Copy AI prompt\",\n \"aria-label\": issue.kind === \"error\" ? \"Copy AI prompt for config error\" : \"Copy AI prompt for config warning\",\n onClick: () => {\n runAsynchronously(async () => {\n await copyTextToClipboard(buildConfigIssueAiPrompt(issue));\n aiPromptCopyButton.textContent = \"✓\";\n setTimeout(() => {\n setHtml(aiPromptCopyButton, COPY_ICON_SVG);\n }, 1500);\n }, {\n noErrorLogging: true,\n onError: (copyError) => {\n captureError(\"pushed-config-error-overlay-copy-ai-prompt\", copyError);\n aiPromptCopyButton.textContent = \"!\";\n setTimeout(() => {\n setHtml(aiPromptCopyButton, COPY_ICON_SVG);\n }, 1500);\n },\n });\n },\n });\n setHtml(aiPromptCopyButton, COPY_ICON_SVG);\n\n root.appendChild(h(\"div\", { className: \"hce-backdrop\" },\n h(\"div\", { className: issue.kind === \"error\" ? \"hce-card\" : \"hce-card hce-card-warning\", role: \"alertdialog\", \"aria-modal\": \"true\", \"aria-label\": `Hexclave config ${issueLabel}` },\n h(\"div\", { className: \"hce-card-inner\" },\n h(\"div\", { className: \"hce-header\" },\n h(\"div\", { className: \"hce-title-row\" },\n logoSpan,\n h(\"div\", null,\n h(\"span\", { className: \"hce-badge\" }, `Config ${issueLabel}`),\n h(\"div\", { className: \"hce-title\" }, issueTitle),\n ),\n ),\n h(\"div\", { className: \"hce-actions\" },\n aiPromptCopyButton,\n h(\"button\", {\n className: \"hce-icon-btn\",\n type: \"button\",\n title: \"Minimize\",\n \"aria-label\": issue.kind === \"error\" ? \"Minimize config error\" : \"Minimize config warning\",\n onClick: () => {\n minimized = true;\n storageSet(MINIMIZED_STORAGE_KEY, issueKey);\n render(issue);\n },\n }, \"–\"),\n ),\n ),\n h(\"div\", { className: \"hce-body\" },\n bodyText,\n h(\"div\", { className: \"hce-message-header\" },\n h(\"div\", { className: \"hce-message-label\" }, issue.kind === \"error\" ? \"Error message\" : \"Warning message\"),\n copyButton,\n ),\n h(\"div\", { className: \"hce-message\" }, issueMessage),\n h(\"div\", { className: \"hce-footer\" }, footerText),\n ),\n ),\n )));\n };\n\n const refresh = () => {\n if (disposed || !canMountIntoDom()) {\n return;\n }\n runAsynchronously(async () => {\n const project = await app.getProject();\n if (disposed) {\n return;\n }\n render(project.pushedConfigError == null\n ? project.configWarnings.length === 0\n ? null\n : { kind: \"warning\", messages: project.configWarnings.map((warning) => warning.message) }\n : { kind: \"error\", messages: [project.pushedConfigError.message] });\n }, {\n noErrorLogging: true,\n onError: (error) => {\n captureError(\"pushed-config-error-overlay-refresh\", error);\n },\n });\n };\n\n // This is mounted from the base client-app constructor, which also runs\n // before subclass field initializers. Defer the first app call so overridden\n // methods like adminApp.getProject() can safely touch subclass caches.\n queueMicrotask(refresh);\n const interval = setInterval(refresh, REFRESH_INTERVAL_MS);\n\n const cleanup = () => {\n disposed = true;\n clearInterval(interval);\n root.remove();\n if (getGlobalUiInstance(GLOBAL_INSTANCE_KEY)?.cleanup === cleanup) {\n setGlobalUiInstance(GLOBAL_INSTANCE_KEY, null);\n }\n };\n setGlobalUiInstance(GLOBAL_INSTANCE_KEY, { cleanup });\n return cleanup;\n}\n\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["envVars"],"sources":["../../src/pushed-config-error-overlay/index.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { captureError } from \"@hexclave/shared/dist/utils/errors\";\nimport { runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport { isLocalhost } from \"@hexclave/shared/dist/utils/urls\";\nimport { envVars } from \"../generated/env\";\nimport { getInPageUiBaseCSS } from \"../in-page-ui/base-styles\";\nimport { canMountIntoDom, getGlobalUiInstance, h, setGlobalUiInstance, setHtml } from \"../in-page-ui/dom\";\nimport type { StackClientApp } from \"../lib/hexclave-app\";\n\nconst GLOBAL_INSTANCE_KEY = \"__hexclave-pushed-config-error-overlay\";\nconst MINIMIZED_STORAGE_KEY = \"hexclave-pushed-config-error-minimized-key\";\nconst REFRESH_INTERVAL_MS = 5_000;\nconst HEXCLAVE_LOGO_SVG = '<svg width=\"16\" height=\"16\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linejoin=\"miter\"><path d=\"M 24 4 L 41.32 14 L 41.32 34 L 24 44 L 6.68 34 L 6.68 14 Z\"/><path d=\"M 11 16.87 L 14 15.13 L 14 32.87 L 11 31.13 Z\" fill=\"currentColor\" stroke=\"none\"/><path d=\"M 11 16.87 L 14 15.13 L 14 32.87 L 11 31.13 Z\" fill=\"currentColor\" stroke=\"none\" transform=\"rotate(120 24 24)\"/><path d=\"M 11 16.87 L 14 15.13 L 14 32.87 L 11 31.13 Z\" fill=\"currentColor\" stroke=\"none\" transform=\"rotate(240 24 24)\"/></svg>';\nconst COPY_ICON_SVG = '<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.25\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"/></svg>';\n\ntype ConfigIssue = {\n kind: \"error\" | \"warning\",\n messages: string[],\n};\n\nconst css = getInPageUiBaseCSS(\".hexclave-config-error-overlay\") + `\n .hexclave-config-error-overlay .hce-backdrop {\n position: fixed;\n inset: 0;\n z-index: 2147483647;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n background: rgba(0, 0, 0, 0.46);\n backdrop-filter: blur(6px);\n overflow: auto;\n }\n\n .hexclave-config-error-overlay .hce-card {\n --hce-status: var(--sdt-error);\n width: min(720px, calc(100vw - 32px));\n max-height: min(640px, calc(100dvh - 48px));\n border: 1px solid color-mix(in srgb, var(--hce-status) 35%, var(--sdt-border));\n border-radius: 18px;\n background: var(--sdt-overlay-bg);\n box-shadow: var(--sdt-shadow);\n backdrop-filter: blur(18px);\n display: flex;\n overflow: hidden;\n }\n\n .hexclave-config-error-overlay .hce-card-warning {\n --hce-status: var(--sdt-warning);\n }\n\n .hexclave-config-error-overlay .hce-card-inner {\n padding: 18px;\n width: 100%;\n overflow: auto;\n }\n\n .hexclave-config-error-overlay .hce-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 12px;\n }\n\n .hexclave-config-error-overlay .hce-title-row {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n min-width: 0;\n }\n\n .hexclave-config-error-overlay .hce-logo {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 34px;\n height: 34px;\n border-radius: 10px;\n background: var(--hce-status);\n color: white;\n box-shadow: 0 10px 30px color-mix(in srgb, var(--hce-status) 32%, transparent);\n }\n\n .hexclave-config-error-overlay .hce-badge {\n display: inline-flex;\n flex-shrink: 0;\n padding: 2px 6px;\n border-radius: 999px;\n background: var(--hce-status);\n color: white;\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n }\n\n .hexclave-config-error-overlay .hce-title {\n color: var(--sdt-text);\n margin-top: 4px;\n font-size: 18px;\n font-weight: 700;\n line-height: 1.25;\n }\n\n .hexclave-config-error-overlay .hce-actions {\n display: flex;\n gap: 4px;\n }\n\n .hexclave-config-error-overlay .hce-icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid var(--sdt-border);\n border-radius: 8px;\n background: var(--sdt-bg-elevated);\n color: var(--sdt-text-secondary);\n cursor: pointer;\n font: inherit;\n line-height: 1;\n vertical-align: top;\n }\n\n .hexclave-config-error-overlay .hce-icon-btn svg {\n display: block;\n flex-shrink: 0;\n }\n\n .hexclave-config-error-overlay .hce-text-btn {\n align-items: center;\n gap: 6px;\n min-height: 28px;\n padding: 0 10px;\n width: auto;\n font-size: 12px;\n line-height: 1;\n }\n\n .hexclave-config-error-overlay .hce-icon-btn:hover {\n background: var(--sdt-bg-hover);\n color: var(--sdt-text);\n }\n\n .hexclave-config-error-overlay .hce-body {\n color: var(--sdt-text-secondary);\n font-size: 14px;\n line-height: 1.5;\n }\n\n .hexclave-config-error-overlay .hce-message-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n margin-top: 14px;\n margin-bottom: 8px;\n }\n\n .hexclave-config-error-overlay .hce-message-label {\n color: var(--sdt-text);\n font-size: 12px;\n font-weight: 650;\n }\n\n .hexclave-config-error-overlay .hce-message {\n padding: 12px;\n max-height: min(260px, max(96px, 30dvh));\n overflow: auto;\n border: 1px solid var(--sdt-border-subtle);\n border-radius: 10px;\n background: var(--sdt-bg-subtle);\n color: var(--sdt-text);\n font-family: var(--sdt-font-mono);\n font-size: 12px;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n }\n\n .hexclave-config-error-overlay .hce-footer {\n margin-top: 10px;\n color: var(--sdt-text-tertiary);\n font-size: 12px;\n }\n\n .hexclave-config-error-overlay .hce-pill {\n position: fixed;\n right: 18px;\n bottom: 18px;\n z-index: 2147483647;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px 8px 8px;\n --hce-status: var(--sdt-error);\n border: 1px solid color-mix(in srgb, var(--hce-status) 35%, var(--sdt-border));\n border-radius: 999px;\n background: var(--sdt-overlay-bg);\n box-shadow: var(--sdt-trigger-shadow);\n color: var(--sdt-text);\n cursor: pointer;\n font: inherit;\n backdrop-filter: blur(18px);\n }\n\n .hexclave-config-error-overlay .hce-pill-warning {\n --hce-status: var(--sdt-warning);\n }\n\n .hexclave-config-error-overlay .hce-pill-logo {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border-radius: 999px;\n background: var(--hce-status);\n color: white;\n }\n\n @media (max-height: 520px) {\n .hexclave-config-error-overlay .hce-backdrop {\n align-items: flex-start;\n padding: 12px;\n }\n\n .hexclave-config-error-overlay .hce-card {\n width: min(720px, calc(100vw - 24px));\n max-height: calc(100dvh - 24px);\n }\n\n .hexclave-config-error-overlay .hce-card-inner {\n padding: 12px;\n }\n\n .hexclave-config-error-overlay .hce-header {\n margin-bottom: 8px;\n }\n\n .hexclave-config-error-overlay .hce-title {\n font-size: 16px;\n }\n\n .hexclave-config-error-overlay .hce-body {\n font-size: 13px;\n }\n\n .hexclave-config-error-overlay .hce-message {\n max-height: max(80px, 24dvh);\n }\n }\n`;\n\nfunction storageGet(key: string): string | null {\n try {\n return localStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nfunction storageSet(key: string, value: string): void {\n try {\n localStorage.setItem(key, value);\n } catch {\n // Storage may be unavailable in private or embedded contexts.\n }\n}\n\nfunction storageRemove(key: string): void {\n try {\n localStorage.removeItem(key);\n } catch {\n // Storage may be unavailable in private or embedded contexts.\n }\n}\n\nfunction shouldMount(): boolean {\n if (!canMountIntoDom()) {\n return false;\n }\n\n const nodeEnv = envVars.NODE_ENV;\n if (nodeEnv !== undefined) {\n return nodeEnv === \"development\";\n }\n\n try {\n const url = new URL(window.location.href);\n if (url.protocol === \"file:\") {\n return true;\n }\n } catch {\n return false;\n }\n return isLocalhost(window.location.href);\n}\n\nasync function copyTextToClipboard(text: string): Promise<void> {\n const clipboard: unknown = Reflect.get(navigator, \"clipboard\");\n const writeText = clipboard != null && typeof clipboard === \"object\"\n ? Reflect.get(clipboard, \"writeText\")\n : null;\n if (typeof writeText === \"function\") {\n await writeText.call(clipboard, text);\n return;\n }\n\n const textarea = h(\"textarea\", {\n style: {\n position: \"fixed\",\n left: \"-9999px\",\n top: \"0\",\n opacity: \"0\",\n },\n readonly: \"true\",\n }) as HTMLTextAreaElement;\n textarea.value = text;\n document.body.appendChild(textarea);\n textarea.select();\n const copied = document.execCommand(\"copy\");\n textarea.remove();\n if (!copied) {\n throw new Error(\"Browser refused to copy the config error message.\");\n }\n}\n\nfunction buildConfigIssueAiPrompt(issue: ConfigIssue): string {\n const issueLabel = issue.kind === \"error\" ? \"error\" : \"warning\";\n return [\n `Help me fix this Hexclave config ${issueLabel}.`,\n \"\",\n \"Hexclave reminder:\",\n `This ${issueLabel} comes from a pushed Hexclave config file. The app may keep running with the synced Hexclave config, but I need to fix the config file mentioned in the message and save it again so Hexclave can sync the config successfully and clear the dialog. Use your web fetch tool to read https://skill.hexclave.com to learn more about Hexclave.`,\n \"\",\n issue.kind === \"error\" ? \"Error message:\" : \"Warning message:\",\n issue.messages.join(\"\\n\"),\n \"\",\n \"Please explain the likely cause, identify the config key or value I should change, and suggest the smallest safe fix.\",\n ].join(\"\\n\");\n}\n\nexport function mountPushedConfigErrorOverlay(app: StackClientApp<true>): () => void {\n if (!shouldMount()) {\n return () => {};\n }\n\n getGlobalUiInstance(GLOBAL_INSTANCE_KEY)?.cleanup();\n\n const root = h(\"div\", { className: \"hexclave-config-error-overlay\" });\n const style = h(\"style\", null, css);\n root.appendChild(style);\n document.body.appendChild(root);\n\n let disposed = false;\n let lastErrorKey: string | null = null;\n let lastConsoleErrorKey: string | null = null;\n let minimized = false;\n\n const render = (issue: ConfigIssue | null) => {\n root.replaceChildren(style);\n if (issue == null) {\n lastErrorKey = null;\n minimized = false;\n return;\n }\n\n const issueMessage = issue.messages.join(\"\\n\");\n const issueKey = `${app.projectId}:${issue.kind}:${issueMessage}`;\n const issueLabel = issue.kind === \"error\" ? \"error\" : \"warning\";\n const issueTitle = issue.kind === \"error\"\n ? \"Your Hexclave config has been saved, but contains errors\"\n : \"Your Hexclave config has been saved, but has warnings\";\n const bodyText = issue.kind === \"error\"\n ? \"Your app can keep running, but Hexclave is still using the last valid config until this is fixed.\"\n : \"Your app can keep running, but part of your Hexclave config may not behave the way you expect until this is fixed.\";\n const footerText = issue.kind === \"error\"\n ? \"Fix the config file mentioned above and save it again. This message will disappear after the config sync succeeds.\"\n : \"Fix the config file mentioned above and save it again. This warning will disappear after Hexclave syncs a config without warnings.\";\n if (issueKey !== lastConsoleErrorKey) {\n lastConsoleErrorKey = issueKey;\n const consoleMessage = `[Hexclave] Config ${issueLabel}: ${issueMessage}`;\n if (issue.kind === \"error\") {\n console.error(consoleMessage);\n } else {\n console.warn(consoleMessage);\n }\n }\n\n if (issueKey !== lastErrorKey) {\n lastErrorKey = issueKey;\n minimized = storageGet(MINIMIZED_STORAGE_KEY) === issueKey;\n }\n\n if (minimized) {\n const logoSpan = h(\"span\", { className: \"hce-pill-logo\" });\n setHtml(logoSpan, HEXCLAVE_LOGO_SVG);\n root.appendChild(h(\"button\", {\n className: issue.kind === \"error\" ? \"hce-pill\" : \"hce-pill hce-pill-warning\",\n type: \"button\",\n onClick: () => {\n minimized = false;\n storageRemove(MINIMIZED_STORAGE_KEY);\n render(issue);\n },\n },\n logoSpan,\n h(\"span\", null, issue.kind === \"error\" ? \"Config error\" : \"Config warning\")));\n return;\n }\n\n const logoSpan = h(\"span\", { className: \"hce-logo\" });\n setHtml(logoSpan, HEXCLAVE_LOGO_SVG);\n const copyButton = h(\"button\", {\n className: \"hce-icon-btn hce-text-btn\",\n type: \"button\",\n title: issue.kind === \"error\" ? \"Copy error message\" : \"Copy warning message\",\n \"aria-label\": issue.kind === \"error\" ? \"Copy config error message\" : \"Copy config warning message\",\n onClick: () => {\n runAsynchronously(async () => {\n await copyTextToClipboard(issueMessage);\n copyButton.textContent = \"Copied\";\n setTimeout(() => {\n setHtml(copyButton, `${COPY_ICON_SVG}Copy`);\n }, 1500);\n }, {\n noErrorLogging: true,\n onError: (copyError) => {\n captureError(\"pushed-config-error-overlay-copy\", copyError);\n copyButton.textContent = \"Copy failed\";\n setTimeout(() => {\n setHtml(copyButton, `${COPY_ICON_SVG}Copy`);\n }, 1500);\n },\n });\n },\n });\n setHtml(copyButton, `${COPY_ICON_SVG}Copy`);\n\n const aiPromptCopyButton = h(\"button\", {\n className: \"hce-icon-btn\",\n type: \"button\",\n title: \"Copy AI prompt\",\n \"aria-label\": issue.kind === \"error\" ? \"Copy AI prompt for config error\" : \"Copy AI prompt for config warning\",\n onClick: () => {\n runAsynchronously(async () => {\n await copyTextToClipboard(buildConfigIssueAiPrompt(issue));\n aiPromptCopyButton.textContent = \"✓\";\n setTimeout(() => {\n setHtml(aiPromptCopyButton, COPY_ICON_SVG);\n }, 1500);\n }, {\n noErrorLogging: true,\n onError: (copyError) => {\n captureError(\"pushed-config-error-overlay-copy-ai-prompt\", copyError);\n aiPromptCopyButton.textContent = \"!\";\n setTimeout(() => {\n setHtml(aiPromptCopyButton, COPY_ICON_SVG);\n }, 1500);\n },\n });\n },\n });\n setHtml(aiPromptCopyButton, COPY_ICON_SVG);\n\n root.appendChild(h(\"div\", { className: \"hce-backdrop\" },\n h(\"div\", { className: issue.kind === \"error\" ? \"hce-card\" : \"hce-card hce-card-warning\", role: \"alertdialog\", \"aria-modal\": \"true\", \"aria-label\": `Hexclave config ${issueLabel}` },\n h(\"div\", { className: \"hce-card-inner\" },\n h(\"div\", { className: \"hce-header\" },\n h(\"div\", { className: \"hce-title-row\" },\n logoSpan,\n h(\"div\", null,\n h(\"span\", { className: \"hce-badge\" }, `Config ${issueLabel}`),\n h(\"div\", { className: \"hce-title\" }, issueTitle),\n ),\n ),\n h(\"div\", { className: \"hce-actions\" },\n aiPromptCopyButton,\n h(\"button\", {\n className: \"hce-icon-btn\",\n type: \"button\",\n title: \"Minimize\",\n \"aria-label\": issue.kind === \"error\" ? \"Minimize config error\" : \"Minimize config warning\",\n onClick: () => {\n minimized = true;\n storageSet(MINIMIZED_STORAGE_KEY, issueKey);\n render(issue);\n },\n }, \"–\"),\n ),\n ),\n h(\"div\", { className: \"hce-body\" },\n bodyText,\n h(\"div\", { className: \"hce-message-header\" },\n h(\"div\", { className: \"hce-message-label\" }, issue.kind === \"error\" ? \"Error message\" : \"Warning message\"),\n copyButton,\n ),\n h(\"div\", { className: \"hce-message\" }, issueMessage),\n h(\"div\", { className: \"hce-footer\" }, footerText),\n ),\n ),\n )));\n };\n\n const refresh = () => {\n if (disposed || !canMountIntoDom()) {\n return;\n }\n runAsynchronously(async () => {\n const project = await app.getProject();\n if (disposed) {\n return;\n }\n render(project.pushedConfigError == null\n ? project.configWarnings.length === 0\n ? null\n : { kind: \"warning\", messages: project.configWarnings.map((warning) => warning.message) }\n : { kind: \"error\", messages: [project.pushedConfigError.message] });\n }, {\n noErrorLogging: true,\n onError: (error) => {\n captureError(\"pushed-config-error-overlay-refresh\", error);\n },\n });\n };\n\n // This is mounted from the base client-app constructor, which also runs\n // before subclass field initializers. Defer the first app call so overridden\n // methods like adminApp.getProject() can safely touch subclass caches.\n queueMicrotask(refresh);\n const interval = setInterval(refresh, REFRESH_INTERVAL_MS);\n\n const cleanup = () => {\n disposed = true;\n clearInterval(interval);\n root.remove();\n if (getGlobalUiInstance(GLOBAL_INSTANCE_KEY)?.cleanup === cleanup) {\n setGlobalUiInstance(GLOBAL_INSTANCE_KEY, null);\n }\n };\n setGlobalUiInstance(GLOBAL_INSTANCE_KEY, { cleanup });\n return cleanup;\n}\n\n"],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
const require_chunk = require('../chunk-BE-pF4vm.js');
|
|
2
1
|
let ___generated_env_js = require("../generated/env.js");
|
|
3
2
|
let vitest = require("vitest");
|
|
4
3
|
let ___lib_hexclave_app_index_js = require("../lib/hexclave-app/index.js");
|
|
5
4
|
let __index_js = require("./index.js");
|
|
6
|
-
|
|
7
5
|
//#region src/pushed-config-error-overlay/index.test.ts
|
|
8
6
|
function createMockElement() {
|
|
9
7
|
return {
|
|
@@ -62,6 +60,6 @@ function createMockElement() {
|
|
|
62
60
|
}
|
|
63
61
|
});
|
|
64
62
|
});
|
|
65
|
-
|
|
66
63
|
//#endregion
|
|
64
|
+
|
|
67
65
|
//# sourceMappingURL=index.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","names":["StackClientApp","vi","envVars"],"sources":["../../src/pushed-config-error-overlay/index.test.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { afterEach, describe, expect, it, vi } from \"vitest\";\nimport { envVars } from \"../generated/env\";\nimport { StackClientApp } from \"../lib/hexclave-app\";\nimport { mountPushedConfigErrorOverlay } from \".\";\n\nfunction createMockElement() {\n return {\n style: {},\n appendChild: () => {},\n addEventListener: () => {},\n setAttribute: () => {},\n replaceChildren: () => {},\n remove: () => {},\n };\n}\n\ndescribe(\"pushed config error overlay\", () => {\n afterEach(() => {\n vi.unstubAllEnvs();\n vi.unstubAllGlobals();\n });\n\n it(\"defers the first project refresh until after construction-time callers finish\", async () => {\n const app = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000000\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"none\",\n devTool: false,\n });\n const getProject = vi.fn(async () => ({\n pushedConfigError: null,\n configWarnings: [],\n }));\n Reflect.set(app, \"getProject\", getProject);\n const appendChild = vi.fn();\n vi.stubEnv(\"NODE_ENV\", \"development\");\n expect(Reflect.get(envVars, \"NODE_ENV\")).toBe(\"development\");\n\n vi.stubGlobal(\"window\", {\n \"__hexclave-pushed-config-error-overlay\": null,\n location: {\n href: \"http://localhost:3000\",\n },\n });\n vi.stubGlobal(\"document\", {\n body: {\n appendChild,\n },\n createElement: () => createMockElement(),\n createTextNode: () => createMockElement(),\n });\n vi.stubGlobal(\"localStorage\", {\n getItem: () => null,\n setItem: () => {},\n removeItem: () => {},\n });\n\n const cleanup = mountPushedConfigErrorOverlay(app);\n try {\n expect(appendChild).toHaveBeenCalledOnce();\n expect(getProject).not.toHaveBeenCalled();\n\n await Promise.resolve();\n\n expect(getProject).toHaveBeenCalledOnce();\n } finally {\n cleanup();\n }\n });\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.test.js","names":["StackClientApp","vi","envVars"],"sources":["../../src/pushed-config-error-overlay/index.test.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { afterEach, describe, expect, it, vi } from \"vitest\";\nimport { envVars } from \"../generated/env\";\nimport { StackClientApp } from \"../lib/hexclave-app\";\nimport { mountPushedConfigErrorOverlay } from \".\";\n\nfunction createMockElement() {\n return {\n style: {},\n appendChild: () => {},\n addEventListener: () => {},\n setAttribute: () => {},\n replaceChildren: () => {},\n remove: () => {},\n };\n}\n\ndescribe(\"pushed config error overlay\", () => {\n afterEach(() => {\n vi.unstubAllEnvs();\n vi.unstubAllGlobals();\n });\n\n it(\"defers the first project refresh until after construction-time callers finish\", async () => {\n const app = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000000\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"none\",\n devTool: false,\n });\n const getProject = vi.fn(async () => ({\n pushedConfigError: null,\n configWarnings: [],\n }));\n Reflect.set(app, \"getProject\", getProject);\n const appendChild = vi.fn();\n vi.stubEnv(\"NODE_ENV\", \"development\");\n expect(Reflect.get(envVars, \"NODE_ENV\")).toBe(\"development\");\n\n vi.stubGlobal(\"window\", {\n \"__hexclave-pushed-config-error-overlay\": null,\n location: {\n href: \"http://localhost:3000\",\n },\n });\n vi.stubGlobal(\"document\", {\n body: {\n appendChild,\n },\n createElement: () => createMockElement(),\n createTextNode: () => createMockElement(),\n });\n vi.stubGlobal(\"localStorage\", {\n getItem: () => null,\n setItem: () => {},\n removeItem: () => {},\n });\n\n const cleanup = mountPushedConfigErrorOverlay(app);\n try {\n expect(appendChild).toHaveBeenCalledOnce();\n expect(getProject).not.toHaveBeenCalled();\n\n await Promise.resolve();\n\n expect(getProject).toHaveBeenCalledOnce();\n } finally {\n cleanup();\n }\n });\n});\n"],"mappings":";;;;;AASA,SAAS,oBAAoB;CAC3B,OAAO;EACL,OAAO,CAAC;EACR,mBAAmB,CAAC;EACpB,wBAAwB,CAAC;EACzB,oBAAoB,CAAC;EACrB,uBAAuB,CAAC;EACxB,cAAc,CAAC;CACjB;AACF;qBAES,qCAAqC;CAC5C,CAAA,GAAA,OAAA,UAAA,OAAgB;EACd,OAAA,GAAG,cAAc;EACjB,OAAA,GAAG,iBAAiB;CACtB,CAAC;CAED,CAAA,GAAA,OAAA,GAAA,CAAG,iFAAiF,YAAY;EAC9F,MAAM,MAAM,IAAIA,6BAAAA,eAAe;GAC7B,SAAS;GACT,WAAW;GACX,sBAAsB;GACtB,YAAY;GACZ,gBAAgB;GAChB,SAAS;EACX,CAAC;EACD,MAAM,aAAaC,OAAAA,GAAG,GAAG,aAAa;GACpC,mBAAmB;GACnB,gBAAgB,CAAC;EACnB,EAAE;EACF,QAAQ,IAAI,KAAK,cAAc,UAAU;EACzC,MAAM,cAAcA,OAAAA,GAAG,GAAG;EAC1B,OAAA,GAAG,QAAQ,YAAY,aAAa;EACpC,CAAA,GAAA,OAAA,OAAA,CAAO,QAAQ,IAAIC,oBAAAA,SAAS,UAAU,CAAC,CAAC,CAAC,KAAK,aAAa;EAE3D,OAAA,GAAG,WAAW,UAAU;GACtB,0CAA0C;GAC1C,UAAU,EACR,MAAM,wBACR;EACF,CAAC;EACD,OAAA,GAAG,WAAW,YAAY;GACxB,MAAM,EACJ,YACF;GACA,qBAAqB,kBAAkB;GACvC,sBAAsB,kBAAkB;EAC1C,CAAC;EACD,OAAA,GAAG,WAAW,gBAAgB;GAC5B,eAAe;GACf,eAAe,CAAC;GAChB,kBAAkB,CAAC;EACrB,CAAC;EAED,MAAM,WAAA,GAAA,WAAA,8BAAA,CAAwC,GAAG;EACjD,IAAI;GACF,CAAA,GAAA,OAAA,OAAA,CAAO,WAAW,CAAC,CAAC,qBAAqB;GACzC,CAAA,GAAA,OAAA,OAAA,CAAO,UAAU,CAAC,CAAC,IAAI,iBAAiB;GAExC,MAAM,QAAQ,QAAQ;GAEtB,CAAA,GAAA,OAAA,OAAA,CAAO,UAAU,CAAC,CAAC,qBAAqB;EAC1C,UAAU;GACR,QAAQ;EACV;CACF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { f as HandlerUrls } from "./common-BDyEKSM6.js";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts
|
|
4
|
+
declare const crossDomainAuthQueryParams: {
|
|
5
|
+
readonly marker: "hexclave_cross_domain_auth";
|
|
6
|
+
readonly state: "hexclave_cross_domain_state";
|
|
7
|
+
readonly codeChallenge: "hexclave_cross_domain_code_challenge";
|
|
8
|
+
readonly afterCallbackRedirectUrl: "hexclave_cross_domain_after_callback_redirect_url";
|
|
9
|
+
};
|
|
10
|
+
type CrossDomainHandoffParams = {
|
|
11
|
+
state: string;
|
|
12
|
+
codeChallenge: string;
|
|
13
|
+
};
|
|
14
|
+
declare function getCrossDomainHandoffParamsFromCurrentUrl(currentUrl: URL): CrossDomainHandoffParams | null;
|
|
15
|
+
type RedirectToHandlerPlan = {
|
|
16
|
+
type: "redirect";
|
|
17
|
+
url: string;
|
|
18
|
+
} | {
|
|
19
|
+
type: "cross-domain-authorize";
|
|
20
|
+
redirectUri: string;
|
|
21
|
+
state: string;
|
|
22
|
+
codeChallenge: string;
|
|
23
|
+
afterCallbackRedirectUrl: string;
|
|
24
|
+
};
|
|
25
|
+
declare function planRedirectToHandler(options: {
|
|
26
|
+
handlerName: keyof HandlerUrls;
|
|
27
|
+
rawHandlerUrl: string;
|
|
28
|
+
noRedirectBack: boolean;
|
|
29
|
+
currentUrl: URL | null;
|
|
30
|
+
localOAuthCallbackUrl: string;
|
|
31
|
+
getCrossDomainHandoffParams: (currentUrl: URL) => Promise<CrossDomainHandoffParams>;
|
|
32
|
+
}): Promise<RedirectToHandlerPlan>;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { planRedirectToHandler as i, crossDomainAuthQueryParams as n, getCrossDomainHandoffParamsFromCurrentUrl as r, CrossDomainHandoffParams as t };
|
|
35
|
+
//# sourceMappingURL=redirect-page-urls-elbPx2J1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redirect-page-urls-elbPx2J1.d.ts","names":[],"sources":["../src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts"],"mappings":";;;cAQa,0BAAA;EAAA;;;;;KAqBD,wBAAA;EACV,KAAA;EACA,aAAa;AAAA;AAAA,iBAGC,yCAAA,CAA0C,UAAA,EAAY,GAAA,GAAM,wBAAwB;AAAA,KAkI/F,qBAAA;EACC,IAAA;EAAkB,GAAA;AAAA;EAEpB,IAAA;EACA,WAAA;EACA,KAAA;EACA,aAAA;EACA,wBAAA;AAAA;AAAA,iBAsCkB,qBAAA,CAAsB,OAAA;EAC1C,WAAA,QAAmB,WAAA;EACnB,aAAA;EACA,cAAA;EACA,UAAA,EAAY,GAAA;EACZ,qBAAA;EACA,2BAAA,GAA8B,UAAA,EAAY,GAAA,KAAQ,OAAA,CAAQ,wBAAA;AAAA,IACxD,OAAA,CAAQ,qBAAA"}
|
|
@@ -6,16 +6,12 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
8
|
var __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
19
15
|
}
|
|
20
16
|
return to;
|
|
21
17
|
};
|
|
@@ -23,12 +19,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
19
|
value: mod,
|
|
24
20
|
enumerable: true
|
|
25
21
|
}) : target, mod));
|
|
26
|
-
|
|
27
22
|
//#endregion
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
});
|
|
23
|
+
Object.defineProperty(exports, "__toESM", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function() {
|
|
26
|
+
return __toESM;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Result } from "@hexclave/shared/dist/utils/results";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/hexclave-app/apps/implementations/session-replay.d.ts
|
|
4
|
+
type AnalyticsReplayOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* Whether session replays are enabled.
|
|
7
|
+
*
|
|
8
|
+
* @default true
|
|
9
|
+
*/
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Whether to mask the content of all `<input>` elements.
|
|
13
|
+
*
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
maskAllInputs?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* A CSS class name or RegExp. Elements with a matching class will be blocked
|
|
19
|
+
* (replaced with a placeholder in the recording).
|
|
20
|
+
*
|
|
21
|
+
* @default undefined
|
|
22
|
+
*/
|
|
23
|
+
blockClass?: string | RegExp;
|
|
24
|
+
/**
|
|
25
|
+
* A CSS selector string. Elements matching this selector will be blocked
|
|
26
|
+
* (replaced with a placeholder in the recording).
|
|
27
|
+
*
|
|
28
|
+
* @default undefined
|
|
29
|
+
*/
|
|
30
|
+
blockSelector?: string;
|
|
31
|
+
};
|
|
32
|
+
type AnalyticsOptions = {
|
|
33
|
+
/**
|
|
34
|
+
* Whether SDK-managed analytics capture is enabled.
|
|
35
|
+
*
|
|
36
|
+
* @default true
|
|
37
|
+
*/
|
|
38
|
+
enabled?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Options for session replay recording. Replays are enabled by default;
|
|
41
|
+
* set `enabled: false` to opt out.
|
|
42
|
+
*/
|
|
43
|
+
replays?: AnalyticsReplayOptions;
|
|
44
|
+
};
|
|
45
|
+
declare function getSessionReplayOptions(analyticsOptions: AnalyticsOptions | undefined): AnalyticsReplayOptions;
|
|
46
|
+
/**
|
|
47
|
+
* Converts AnalyticsOptions to a JSON-safe representation.
|
|
48
|
+
* RegExp blockClass values are serialized as `{ __regexp, __flags }` objects.
|
|
49
|
+
* The return type is AnalyticsOptions to keep StackClientAppJson simple;
|
|
50
|
+
* the actual runtime value is JSON-safe.
|
|
51
|
+
*/
|
|
52
|
+
declare function analyticsOptionsToJson(options: AnalyticsOptions | undefined): AnalyticsOptions | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Reconstructs AnalyticsOptions from a JSON-deserialized value.
|
|
55
|
+
* Converts `{ __regexp, __flags }` objects back to RegExp instances.
|
|
56
|
+
*/
|
|
57
|
+
declare function analyticsOptionsFromJson(json: AnalyticsOptions | undefined): AnalyticsOptions | undefined;
|
|
58
|
+
type StoredSession = {
|
|
59
|
+
session_id: string;
|
|
60
|
+
created_at_ms: number;
|
|
61
|
+
last_activity_ms: number;
|
|
62
|
+
};
|
|
63
|
+
declare function safeParseStoredSession(raw: string | null): StoredSession | null;
|
|
64
|
+
declare function makeStorageKey(projectId: string): string;
|
|
65
|
+
declare function makeLegacyStorageKey(projectId: string): string;
|
|
66
|
+
declare function generateUuid(): `${string}-${string}-${string}-${string}-${string}`;
|
|
67
|
+
declare function getOrRotateSession(options: {
|
|
68
|
+
key: string;
|
|
69
|
+
legacyKey?: string;
|
|
70
|
+
nowMs: number;
|
|
71
|
+
}): StoredSession;
|
|
72
|
+
type SessionRecorderDeps = {
|
|
73
|
+
projectId: string;
|
|
74
|
+
sendBatch: (body: string, options: {
|
|
75
|
+
keepalive: boolean;
|
|
76
|
+
}) => Promise<Result<Response, Error>>;
|
|
77
|
+
};
|
|
78
|
+
declare function isAnalyticsNotEnabledError(error: unknown): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Whether the error looks like a network failure caused by an ad blocker or
|
|
81
|
+
* similar extension blocking analytics requests. These are expected in
|
|
82
|
+
* production and should be silently ignored rather than logged as warnings.
|
|
83
|
+
*/
|
|
84
|
+
declare function isAdBlockerNetworkError(error: unknown): boolean;
|
|
85
|
+
declare class SessionRecorder {
|
|
86
|
+
private _started;
|
|
87
|
+
private _cancelled;
|
|
88
|
+
private _disabled;
|
|
89
|
+
private _stopRecording;
|
|
90
|
+
private _detachListeners;
|
|
91
|
+
private _flushTimer;
|
|
92
|
+
private _events;
|
|
93
|
+
private _eventSizes;
|
|
94
|
+
private _approxBytes;
|
|
95
|
+
private _lastPersistActivity;
|
|
96
|
+
private _recording;
|
|
97
|
+
private _rrwebModule;
|
|
98
|
+
private _lastBrowserSessionId;
|
|
99
|
+
private _takingSnapshot;
|
|
100
|
+
private _flushInProgress;
|
|
101
|
+
private readonly _sessionReplaySegmentId;
|
|
102
|
+
private readonly _storageKey;
|
|
103
|
+
private readonly _legacyStorageKey;
|
|
104
|
+
private readonly _deps;
|
|
105
|
+
private readonly _replayOptions;
|
|
106
|
+
constructor(deps: SessionRecorderDeps, replayOptions: AnalyticsReplayOptions);
|
|
107
|
+
/**
|
|
108
|
+
* Starts recording. Idempotent — calling multiple times is safe.
|
|
109
|
+
*/
|
|
110
|
+
start(): void;
|
|
111
|
+
stop(): void;
|
|
112
|
+
clearBuffer(): void;
|
|
113
|
+
private _persistActivity;
|
|
114
|
+
private _flush;
|
|
115
|
+
private _disable;
|
|
116
|
+
private _startRecording;
|
|
117
|
+
private _stopCurrentRecording;
|
|
118
|
+
private _tick;
|
|
119
|
+
}
|
|
120
|
+
//#endregion
|
|
121
|
+
export { StoredSession as a, generateUuid as c, isAdBlockerNetworkError as d, isAnalyticsNotEnabledError as f, safeParseStoredSession as h, SessionRecorderDeps as i, getOrRotateSession as l, makeStorageKey as m, AnalyticsReplayOptions as n, analyticsOptionsFromJson as o, makeLegacyStorageKey as p, SessionRecorder as r, analyticsOptionsToJson as s, AnalyticsOptions as t, getSessionReplayOptions as u };
|
|
122
|
+
//# sourceMappingURL=session-replay-8_3WCrsZ.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-replay-8_3WCrsZ.d.ts","names":[],"sources":["../src/lib/hexclave-app/apps/implementations/session-replay.ts"],"mappings":";;;KAUY,sBAAA;;AAAZ;;;;EAME,OAAA;EAMA;;;;;EAAA,aAAA;EAiBU;;;;;;EAVV,UAAA,YAAsB,MAAM;EAqBI;AAAA;AAGlC;;;;EAjBE,aAAA;AAAA;AAAA,KAGU,gBAAA;EAcmG;AAAA;AAa/G;;;EArBE,OAAA;EAqB8C;;;;EAhB9C,OAAA,GAAU,sBAAsB;AAAA;AAAA,iBAGlB,uBAAA,CAAwB,gBAAA,EAAkB,gBAAA,eAA+B,sBAAsB;;;;;;;iBAa/F,sBAAA,CAAuB,OAAA,EAAS,gBAAA,eAA+B,gBAAgB;AA4D/F;;;;AAAA,iBA1CgB,wBAAA,CAAyB,IAAA,EAAM,gBAAA,eAA+B,gBAAgB;AAAA,KA0ClF,aAAA;EACV,UAAA;EACA,aAAA;EACA,gBAAA;AAAA;AAAA,iBAGc,sBAAA,CAAuB,GAAA,kBAAqB,aAAa;AAAA,iBAczD,cAAA,CAAe,SAAiB;AAAA,iBAKhC,oBAAA,CAAqB,SAAiB;AAAA,iBAItC,YAAA;AAAA,iBAIA,kBAAA,CAAmB,OAAA;EAAW,GAAA;EAAa,SAAA;EAAoB,KAAA;AAAA,IAAkB,aAAa;AAAA,KAiBlG,mBAAA;EACV,SAAA;EACA,SAAA,GAAY,IAAA,UAAc,OAAA;IAAW,SAAA;EAAA,MAAyB,OAAA,CAAQ,MAAA,CAAO,QAAA,EAAU,KAAA;AAAA;AAAA,iBAGzE,0BAAA,CAA2B,KAAc;;;AA1B7B;AAI5B;;iBA+BgB,uBAAA,CAAwB,KAAc;AAAA,cAUzC,eAAA;EAAA,QACH,QAAA;EAAA,QACA,UAAA;EAAA,QACA,SAAA;EAAA,QACA,cAAA;EAAA,QACA,gBAAA;EAAA,QACA,WAAA;EAAA,QACA,OAAA;EAAA,QACA,WAAA;EAAA,QACA,YAAA;EAAA,QACA,oBAAA;EAAA,QACA,UAAA;EAAA,QACA,YAAA;EAAA,QACA,qBAAA;EAAA,QACA,eAAA;EAAA,QACA,gBAAA;EAAA,iBACS,uBAAA;EAAA,iBACA,WAAA;EAAA,iBAEA,iBAAA;EAAA,iBACA,KAAA;EAAA,iBACA,cAAA;cAEL,IAAA,EAAM,mBAAA,EAAqB,aAAA,EAAe,sBAAsB;EA7Cd;;;EAwD9D,KAAA;EAYA,IAAA;EAWA,WAAA;EAAA,QAMQ,gBAAA;EAAA,QASM,MAAA;EAAA,QA+GN,QAAA;EAAA,QAUM,eAAA;EAAA,QAgEN,qBAAA;EAAA,QAeA,KAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-CA867GtX.d.ts","names":["JSONValue","key","TableName","__tableName","ArrayBuffer","Value","value","encoded","modernBigIntToBase64","modernBase64ToBigInt","ObjectType","Record","Key","T","K","Property","UnionType","k","I","T","GenericId","TableName","Type","IsOptional","OptionalProperty","FieldPaths","type","fieldPaths","isOptional","isConvexValidator","constructor","optional","BaseValidator","tableName","TableNameFromType","kind","ArrayBuffer","Fields","Record","GenericValidator","Property","JoinFieldPaths","fields","value","Element","Validator","element","Key","Value","key","members","VId","VString","VFloat64","VInt64","VBoolean","VNull","VAny","VLiteral","VBytes","VObject","VArray","VRecord","VUnion","Members","Start","End","fieldType","ValidatorJSON","JSONValue","keys","RecordKeyValidatorJSON","values","RecordValueValidatorJSON","ObjectFieldType","Validator","v","GenericValidator","V","PropertyValidators","obj","ObjectType","id","TableName","tableName","VId","GenericId","null","VNull","number","VFloat64","float64","bigint","VInt64","int64","boolean","VBoolean","string","VString","bytes","VBytes","ArrayBuffer","literal","T","VLiteral","array","T_1","element","VArray","object","T_2","fields","VObject","Expand","Property","OptionalKeys","Exclude","Infer","Property_1","Property_2","record","Key","Value","keys","values","VRecord","Record","union","T_3","members","VUnion","any","VAny","optional","T_4","value","VOptional","OptionalProperty","Fields","RequiredKeys","tokenIdentifier","subject","issuer","name","givenName","familyName","nickname","preferredUsername","profileUrl","pictureUrl","email","emailVerified","gender","birthday","timezone","language","phoneNumber","phoneNumberVerified","address","updatedAt","key","JSONValue","Omit","UserIdentity","getUserIdentity","Promise","Record","Value","GenericIndexFields","searchField","filterFields","GenericSearchIndexConfig","vectorField","dimensions","GenericVectorIndexConfig","T","Key","Default","Document","GenericDocument","FieldPath","FieldTypeFromFieldPathInner","First","Second","ValueFromUnion","FieldValue","FieldTypeFromFieldPath","document","fieldPaths","GenericFieldPaths","indexes","GenericTableIndexes","searchIndexes","GenericTableSearchIndexes","vectorIndexes","GenericTableVectorIndexes","TableInfo","GenericTableInfo","Indexes","IndexName","IndexNames","SearchIndexes","SearchIndexNames","VectorIndexes","VectorIndexNames","tableName","DataModel","GenericDataModel","TableName","TableNamesInDataModel","T","Value","_isExpression","_value","Expression","TableInfo","GenericTableInfo","eq","ExpressionOrValue","l","r","neq","lt","lte","gt","gte","add","NumericValue","sub","mul","div","mod","neg","x","and","exprs","Array","or","not","field","FieldPath","FieldPaths","fieldPath","FieldTypeFromFieldPath","DocumentByInfo","N","Document","GenericDocument","IndexFields","GenericIndexFields","FieldNum","LowerBoundIndexRangeBuilder","eq","fieldName","FieldTypeFromFieldPath","value","NextIndexRangeBuilder","PlusOne","IndexRange","IndexRangeBuilder","IndexFieldName","UpperBoundIndexRangeBuilder","gt","gte","lt","lte","_isIndexRange","T","page","isDone","continueCursor","Cursor","splitCursor","pageStatus","numItems","cursor","id","endCursor","maximumRowsRead","maximumBytesRead","Document","GenericDocument","SearchIndexConfig","GenericSearchIndexConfig","search","fieldName","query","SearchFilterFinalizer","SearchFilter","eq","FieldName","FieldTypeFromFieldPath","value","_isSearchFilter","TableInfo","GenericTableInfo","Query","fullTableScan","withIndex","IndexName","IndexNames","indexName","IndexRangeBuilder","DocumentByInfo","NamedIndex","q","IndexRange","indexRange","withSearchIndex","SearchIndexNames","SearchFilterBuilder","NamedSearchIndex","SearchFilter","searchFilter","OrderedQuery","order","AsyncIterable","filter","FilterBuilder","ExpressionOrValue","predicate","paginate","PaginationOptions","paginationOpts","Promise","PaginationResult","collect","Array","take","n","first","unique","_creationTime","TableName","_id","GenericId","Document","GenericDocument","Expand","BetterOmit","SystemFields","WithoutSystemFields","Partial","Pick","by_id","by_creation_time","T","Validator","SystemFields","Expand","FirstFieldPath","RestFieldPaths","fields","SearchField","FilterFields","searchField","filterFields","VectorField","vectorField","dimensions","staged","DocumentType","Indexes","GenericTableIndexes","SearchIndexes","GenericTableSearchIndexes","VectorIndexes","GenericTableVectorIndexes","indexes","stagedDbIndexes","searchIndexes","stagedSearchIndexes","vectorIndexes","stagedVectorIndexes","validator","indexDescriptor","index","IndexName","ExtractFieldPaths","name","DbIndexConfig","IndexOptions","indexConfig","TableDefinition","Record","IndexTiebreakerField","searchIndex","SearchIndexConfig","vectorIndex","VectorIndexConfig","self","DocumentSchema","documentSchema","GenericValidator","VObject","ObjectType","Schema","GenericSchema","StrictTableTypes","tables","strictTableNameTypes","schemaValidation","StrictTableNameTypes","schema","DefineSchemaOptions","options","SchemaDefinition","SchemaDef","MaybeMakeLooseDataModel","TableName","document","IdField","ExtractDocument","fieldPaths","SystemIndexes","DataModel","GenericDataModel","AnyDataModel","_scheduled_functions","completedTime","args","scheduledTime","state","kind","error","_storage","contentType","sha256","size","DataModelFromSchemaDefinition","_systemSchema","TableNamesInDataModel","SystemDataModel","DataModel","GenericDataModel","get","TableName","TableNamesInDataModel","GenericId","id","Promise","DocumentByName","query","tableName","QueryInitializer","NamedTableInfo","normalizeId","table","BaseTableReader","BaseDatabaseReader","system","SystemDataModel","BaseDatabaseReaderWithTable","GenericDatabaseReader","insert","WithoutSystemFields","value","patch","PatchValue","replace","WithOptionalSystemFields","delete","GenericDatabaseReaderWithTable","BaseTableWriter","T","P","Type","FunctionType","Visibility","FunctionVisibility","Args","DefaultFunctionArgs","ReturnType","ComponentPath","_type","_visibility","_args","_returnType","_componentPath","AnyFunctionReference","functionReference","type","args","ret","name","FunctionReference","Export","RegisteredQuery","ReturnValue","ConvertReturnType","RegisteredMutation","RegisteredAction","Module","Record","ExportName","FunctionReferenceFromExport","ModulePath","First","Second","_","ApiForModule","FunctionReferencesInModule","AllModules","FilterApi","ApiFromModulesAllowEmptyNodes","ExpandModulesAndDirs","UnionToIntersection","API","Predicate","Expand","mod","api","paginationOpts","PaginationOptions","PaginationResult","ObjectType","Key","key","AnyModuleDirOrFunc","PartialApi","AnyApi","FuncRef","EmptyObject","Options","options","T","UndefinedToNull","Awaited","Promise","NullToUndefinedOrNull","DataModel","GenericDataModel","db","GenericDatabaseWriter","auth","Auth","storage","StorageWriter","scheduler","Scheduler","runQuery","Query","FunctionReference","query","args","OptionalRestArgs","Promise","FunctionReturnType","runMutation","Mutation","mutation","Omit","GenericMutationCtx","GenericDatabaseWriterWithTable","GenericDatabaseReader","StorageReader","GenericQueryCtx","GenericDatabaseReaderWithTable","runAction","Action","action","StorageActionWriter","vectorSearch","TableName","TableNamesInDataModel","IndexName","VectorIndexNames","NamedTableInfo","tableName","indexName","Expand","VectorSearchQuery","Array","_id","Id","_score","Record","ArgsObject","DefaultFunctionArgs","OneArgArray","NoArgsArray","Args","ArgsArray","EmptyObject","Visiblity","FunctionVisibility","isPublic","isInternal","Visibility","Returns","isConvexFunction","isMutation","VisibilityProperties","isQuery","isAction","isHttp","Ctx","ctx","handler","ArgsValidator","PropertyValidators","ObjectType","ReturnsValidator","Validator","ValidatorTypeToReturnType","Infer","GenericValidator","ReturnValue","ReturnValueForOptionalValidator","OneOrZeroArgs","ArgsArrayForOptionalValidator","DefaultArgsForOptionalValidator","returns","RegisteredMutation","ArgsArrayToObject","GenericMutationCtxWithTable","RegisteredQuery","GenericQueryCtxWithTable","GenericActionCtx","func","RegisteredAction","Request","request","Response","PublicHttpAction","GenericId","StorageId","storageId","sha256","size","contentType","getUrl","Promise","T","__tableName","getMetadata","FileMetadata","StorageReader","generateUploadUrl","delete","StorageWriter","get","Blob","store","blob","options"],"sources":["../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/values/value.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/type_utils.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/values/validators.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/values/validator.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/authentication.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/data_model.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/filter_builder.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/index_range_builder.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/pagination.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/search_filter_builder.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/query.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/system_fields.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/schema.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/database.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/api.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/registration.d.ts","../../../node_modules/.pnpm/convex@1.27.0_react@19.2.1/node_modules/convex/dist/cjs-types/server/storage.d.ts"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { _ as ResolvedHandlerUrls, i as DefaultHandlerUrlTarget, u as HandlerUrlOptions } from "./common-BDyEKSM6.js";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/hexclave-app/url-targets.d.ts
|
|
4
|
+
declare const getHostedHandlerUrl: (options: {
|
|
5
|
+
projectId: string;
|
|
6
|
+
pagePath: string;
|
|
7
|
+
}) => string;
|
|
8
|
+
declare const isLocalHandlerUrlTarget: (options: {
|
|
9
|
+
targetUrl: string;
|
|
10
|
+
handlerPath: string;
|
|
11
|
+
currentOrigin?: string;
|
|
12
|
+
}) => boolean;
|
|
13
|
+
declare const resolveHandlerUrls: (options: {
|
|
14
|
+
urls: HandlerUrlOptions | undefined;
|
|
15
|
+
projectId: string;
|
|
16
|
+
}) => ResolvedHandlerUrls;
|
|
17
|
+
declare const buildCliAuthConfirmUrl: (options: {
|
|
18
|
+
cliAuthConfirmUrl: string; /** Used as the base URL only when cliAuthConfirmUrl is relative. */
|
|
19
|
+
appUrl: string;
|
|
20
|
+
loginCode: string;
|
|
21
|
+
}) => string;
|
|
22
|
+
declare const resolveUnknownHandlerPathFallbackUrl: (options: {
|
|
23
|
+
defaultTarget: DefaultHandlerUrlTarget | undefined;
|
|
24
|
+
projectId: string;
|
|
25
|
+
unknownPath: string;
|
|
26
|
+
}) => string | null;
|
|
27
|
+
declare function getPagePrompt(pageName: string, currentVersion?: number): {
|
|
28
|
+
title: string;
|
|
29
|
+
fullPrompt: string;
|
|
30
|
+
upgradePrompt: string | null;
|
|
31
|
+
latestVersion: number;
|
|
32
|
+
} | null;
|
|
33
|
+
declare const isHostedHandlerUrlForProject: (options: {
|
|
34
|
+
url: string;
|
|
35
|
+
projectId: string;
|
|
36
|
+
}) => boolean;
|
|
37
|
+
//#endregion
|
|
38
|
+
export { isLocalHandlerUrlTarget as a, isHostedHandlerUrlForProject as i, getHostedHandlerUrl as n, resolveHandlerUrls as o, getPagePrompt as r, resolveUnknownHandlerPathFallbackUrl as s, buildCliAuthConfirmUrl as t };
|
|
39
|
+
//# sourceMappingURL=url-targets-BJgkwPGW.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-targets-BJgkwPGW.d.ts","names":[],"sources":["../src/lib/hexclave-app/url-targets.ts"],"mappings":";;;cA2Ga,mBAAA,GAAuB,OAAA;EAAW,SAAA;EAAmB,QAAA;AAAA;AAAA,cA0BrD,uBAAA,GAA2B,OAAA;EACtC,SAAA;EACA,WAAA;EACA,aAAA;AAAA;AAAA,cA+DW,kBAAA,GAAsB,OAAA;EAAW,IAAA,EAAM,iBAAA;EAA+B,SAAA;AAAA,MAAsB,mBAmJxG;AAAA,cAEY,sBAAA,GAA0B,OAAA;EACrC,iBAAA,UAvNA;EAyNA,MAAA;EACA,SAAA;AAAA;AAAA,cAOW,oCAAA,GAAwC,OAAA;EACnD,aAAA,EAAe,uBAAuB;EACtC,SAAA;EACA,WAAA;AAAA;AAAA,iBAiBc,aAAA,CAAc,QAAA,UAAkB,cAAA;EAA4B,KAAA;EAAe,UAAA;EAAoB,aAAA;EAA8B,aAAA;AAAA;AAAA,cAuBhI,4BAAA,GAAgC,OAAA;EAAW,GAAA;EAAa,SAAA;AAAA"}
|
package/dist/utils/url.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.d.ts","names":[],"sources":["../../src/utils/url.ts"],"mappings":";iBAOgB,oBAAA,CAAqB,WAAA,EAAa,
|
|
1
|
+
{"version":3,"file":"url.d.ts","names":[],"sources":["../../src/utils/url.ts"],"mappings":";iBAOgB,oBAAA,CAAqB,WAAA,EAAa,GAAG,uBAAuB,eAAA"}
|
package/dist/utils/url.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const require_chunk = require('../chunk-BE-pF4vm.js');
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
2
|
let _hexclave_shared_dist_utils_errors = require("@hexclave/shared/dist/utils/errors");
|
|
4
|
-
|
|
5
3
|
//#region src/utils/url.ts
|
|
6
4
|
function constructRedirectUrl(redirectUrl, callbackUrlName) {
|
|
7
5
|
if (typeof window === "undefined" || !window.location) throw new _hexclave_shared_dist_utils_errors.HexclaveAssertionError(`${callbackUrlName} option is required in a non-browser environment.`, { redirectUrl });
|
|
@@ -12,7 +10,7 @@ function constructRedirectUrl(redirectUrl, callbackUrlName) {
|
|
|
12
10
|
url.hash = "";
|
|
13
11
|
return url.toString();
|
|
14
12
|
}
|
|
15
|
-
|
|
16
13
|
//#endregion
|
|
17
14
|
exports.constructRedirectUrl = constructRedirectUrl;
|
|
15
|
+
|
|
18
16
|
//# sourceMappingURL=url.js.map
|
package/dist/utils/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","names":["HexclaveAssertionError"],"sources":["../../src/utils/url.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\n\n\nexport function constructRedirectUrl(redirectUrl: URL | string | undefined, callbackUrlName: string) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof window === 'undefined' || !window.location) {\n throw new HexclaveAssertionError(`${callbackUrlName} option is required in a non-browser environment.`, { redirectUrl });\n }\n\n const retainedQueryParams = [\"after_auth_return_to\"];\n const currentUrl = new URL(window.location.href);\n const url = redirectUrl ? new URL(redirectUrl, window.location.href) : new URL(window.location.href);\n for (const param of retainedQueryParams) {\n if (currentUrl.searchParams.has(param)) {\n url.searchParams.set(param, currentUrl.searchParams.get(param)!);\n }\n }\n url.hash = \"\";\n return url.toString();\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"url.js","names":["HexclaveAssertionError"],"sources":["../../src/utils/url.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\n\n\nexport function constructRedirectUrl(redirectUrl: URL | string | undefined, callbackUrlName: string) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof window === 'undefined' || !window.location) {\n throw new HexclaveAssertionError(`${callbackUrlName} option is required in a non-browser environment.`, { redirectUrl });\n }\n\n const retainedQueryParams = [\"after_auth_return_to\"];\n const currentUrl = new URL(window.location.href);\n const url = redirectUrl ? new URL(redirectUrl, window.location.href) : new URL(window.location.href);\n for (const param of retainedQueryParams) {\n if (currentUrl.searchParams.has(param)) {\n url.searchParams.set(param, currentUrl.searchParams.get(param)!);\n }\n }\n url.hash = \"\";\n return url.toString();\n}\n"],"mappings":";;;AAOA,SAAgB,qBAAqB,aAAuC,iBAAyB;CAEnG,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,UAC3C,MAAM,IAAIA,mCAAAA,uBAAuB,GAAG,gBAAgB,oDAAoD,EAAE,YAAY,CAAC;CAGzH,MAAM,sBAAsB,CAAC,sBAAsB;CACnD,MAAM,aAAa,IAAI,IAAI,OAAO,SAAS,IAAI;CAC/C,MAAM,MAAM,cAAc,IAAI,IAAI,aAAa,OAAO,SAAS,IAAI,IAAI,IAAI,IAAI,OAAO,SAAS,IAAI;CACnG,KAAK,MAAM,SAAS,qBAClB,IAAI,WAAW,aAAa,IAAI,KAAK,GACnC,IAAI,aAAa,IAAI,OAAO,WAAW,aAAa,IAAI,KAAK,CAAE;CAGnE,IAAI,OAAO;CACX,OAAO,IAAI,SAAS;AACtB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"//": "THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template (FOR package.json FILES, PLEASE EDIT package-template.json)",
|
|
3
3
|
"name": "@hexclave/js",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.43",
|
|
5
5
|
"repository": "https://github.com/hexclave/hexclave",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"qrcode": "^1.5.4",
|
|
66
66
|
"rrweb": "^1.1.3",
|
|
67
67
|
"yup": "^1.7.1",
|
|
68
|
-
"@hexclave/shared": "1.0.
|
|
68
|
+
"@hexclave/shared": "1.0.43"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@quetzallabs/i18n": "^0.1.19",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"react": "^19.0.0",
|
|
85
85
|
"rimraf": "^6.1.2",
|
|
86
86
|
"tailwindcss": "^3.4.4",
|
|
87
|
-
"tsdown": "^0.
|
|
87
|
+
"tsdown": "^0.22.3",
|
|
88
88
|
"tsx": "^4.21.0",
|
|
89
89
|
"convex": "^1.27.0"
|
|
90
90
|
},
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"codegen": "pnpm run env",
|
|
96
96
|
"codegen:watch": "concurrently -n \"env\" -k \"pnpm run env:watch\"",
|
|
97
97
|
"build": "rimraf dist && pnpm run codegen && tsdown",
|
|
98
|
-
"dev": "
|
|
98
|
+
"dev": "pnpm run codegen:watch",
|
|
99
99
|
"env": "tsx ./scripts/generate-env.ts",
|
|
100
100
|
"env:watch": "chokidar --silent './scripts/generate-env.ts' -c 'pnpm run env' --throttle 2000"
|
|
101
101
|
}
|