@hexclave/shared 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/dist/ai/image-limits.d.ts +24 -0
- package/dist/ai/image-limits.d.ts.map +1 -0
- package/dist/ai/image-limits.js +61 -0
- package/dist/ai/image-limits.js.map +1 -0
- package/dist/ai/unified-prompts/reminders.d.ts +5 -0
- package/dist/ai/unified-prompts/reminders.d.ts.map +1 -0
- package/dist/ai/unified-prompts/reminders.js +33 -0
- package/dist/ai/unified-prompts/reminders.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts +11 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +851 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts +5 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js +12 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts +5 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +12 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts +5 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +12 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts +5 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +12 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts +5 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +12 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts +5 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +64 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts +5 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +12 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts +5 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +12 -0
- package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt.d.ts +5 -0
- package/dist/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -0
- package/dist/ai/unified-prompts/skill-site-prompt.js +75 -0
- package/dist/ai/unified-prompts/skill-site-prompt.js.map +1 -0
- package/dist/apps/apps-config.d.ts +168 -0
- package/dist/apps/apps-config.d.ts.map +1 -0
- package/dist/apps/apps-config.js +157 -0
- package/dist/apps/apps-config.js.map +1 -0
- package/dist/apps/apps-ui.d.ts +45 -0
- package/dist/apps/apps-ui.d.ts.map +1 -0
- package/dist/apps/apps-ui.js +109 -0
- package/dist/apps/apps-ui.js.map +1 -0
- package/dist/chunk-BE-pF4vm.js +34 -0
- package/dist/config/db-sync-mappings.d.ts +193 -0
- package/dist/config/db-sync-mappings.d.ts.map +1 -0
- package/dist/config/db-sync-mappings.js +2255 -0
- package/dist/config/db-sync-mappings.js.map +1 -0
- package/dist/config/format.d.ts +61 -0
- package/dist/config/format.d.ts.map +1 -0
- package/dist/config/format.js +337 -0
- package/dist/config/format.js.map +1 -0
- package/dist/config/migrate-catalogs-to-product-lines.d.ts +14 -0
- package/dist/config/migrate-catalogs-to-product-lines.d.ts.map +1 -0
- package/dist/config/migrate-catalogs-to-product-lines.js +379 -0
- package/dist/config/migrate-catalogs-to-product-lines.js.map +1 -0
- package/dist/config/schema-fuzzer.test.d.ts +1 -0
- package/dist/config/schema-fuzzer.test.js +401 -0
- package/dist/config/schema-fuzzer.test.js.map +1 -0
- package/dist/config/schema.d.ts +2315 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +1085 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config-authoring.d.ts +12 -0
- package/dist/config-authoring.d.ts.map +1 -0
- package/dist/config-authoring.js +12 -0
- package/dist/config-authoring.js.map +1 -0
- package/dist/config-authoring.test.d.ts +1 -0
- package/dist/config-authoring.test.js +29 -0
- package/dist/config-authoring.test.js.map +1 -0
- package/dist/config-rendering.d.ts +17 -0
- package/dist/config-rendering.d.ts.map +1 -0
- package/dist/config-rendering.js +114 -0
- package/dist/config-rendering.js.map +1 -0
- package/dist/crud.d.ts +98 -0
- package/dist/crud.d.ts.map +1 -0
- package/dist/crud.js +129 -0
- package/dist/crud.js.map +1 -0
- package/dist/esm/ai/image-limits.d.ts +24 -0
- package/dist/esm/ai/image-limits.d.ts.map +1 -0
- package/dist/esm/ai/image-limits.js +53 -0
- package/dist/esm/ai/image-limits.js.map +1 -0
- package/dist/esm/ai/unified-prompts/reminders.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/reminders.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/reminders.js +31 -0
- package/dist/esm/ai/unified-prompts/reminders.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts +11 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +843 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js +10 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +10 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +10 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +10 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +10 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +61 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +10 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +10 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts +5 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt.js +73 -0
- package/dist/esm/ai/unified-prompts/skill-site-prompt.js.map +1 -0
- package/dist/esm/apps/apps-config.d.ts +168 -0
- package/dist/esm/apps/apps-config.d.ts.map +1 -0
- package/dist/esm/apps/apps-config.js +154 -0
- package/dist/esm/apps/apps-config.js.map +1 -0
- package/dist/esm/apps/apps-ui.d.ts +45 -0
- package/dist/esm/apps/apps-ui.d.ts.map +1 -0
- package/dist/esm/apps/apps-ui.js +104 -0
- package/dist/esm/apps/apps-ui.js.map +1 -0
- package/dist/esm/config/db-sync-mappings.d.ts +193 -0
- package/dist/esm/config/db-sync-mappings.d.ts.map +1 -0
- package/dist/esm/config/db-sync-mappings.js +2253 -0
- package/dist/esm/config/db-sync-mappings.js.map +1 -0
- package/dist/esm/config/format.d.ts +61 -0
- package/dist/esm/config/format.d.ts.map +1 -0
- package/dist/esm/config/format.js +327 -0
- package/dist/esm/config/format.js.map +1 -0
- package/dist/esm/config/migrate-catalogs-to-product-lines.d.ts +14 -0
- package/dist/esm/config/migrate-catalogs-to-product-lines.d.ts.map +1 -0
- package/dist/esm/config/migrate-catalogs-to-product-lines.js +377 -0
- package/dist/esm/config/migrate-catalogs-to-product-lines.js.map +1 -0
- package/dist/esm/config/schema-fuzzer.test.d.ts +1 -0
- package/dist/esm/config/schema-fuzzer.test.js +401 -0
- package/dist/esm/config/schema-fuzzer.test.js.map +1 -0
- package/dist/esm/config/schema.d.ts +2315 -0
- package/dist/esm/config/schema.d.ts.map +1 -0
- package/dist/esm/config/schema.js +1065 -0
- package/dist/esm/config/schema.js.map +1 -0
- package/dist/esm/config-authoring.d.ts +12 -0
- package/dist/esm/config-authoring.d.ts.map +1 -0
- package/dist/esm/config-authoring.js +9 -0
- package/dist/esm/config-authoring.js.map +1 -0
- package/dist/esm/config-authoring.test.d.ts +1 -0
- package/dist/esm/config-authoring.test.js +29 -0
- package/dist/esm/config-authoring.test.js.map +1 -0
- package/dist/esm/config-rendering.d.ts +17 -0
- package/dist/esm/config-rendering.d.ts.map +1 -0
- package/dist/esm/config-rendering.js +108 -0
- package/dist/esm/config-rendering.js.map +1 -0
- package/dist/esm/crud.d.ts +98 -0
- package/dist/esm/crud.d.ts.map +1 -0
- package/dist/esm/crud.js +127 -0
- package/dist/esm/crud.js.map +1 -0
- package/dist/esm/global.d.ts +1 -0
- package/dist/esm/helpers/emails.d.ts +69 -0
- package/dist/esm/helpers/emails.d.ts.map +1 -0
- package/dist/esm/helpers/emails.js +243 -0
- package/dist/esm/helpers/emails.js.map +1 -0
- package/dist/esm/helpers/init-prompt.d.ts +5 -0
- package/dist/esm/helpers/init-prompt.d.ts.map +1 -0
- package/dist/esm/helpers/init-prompt.js +40 -0
- package/dist/esm/helpers/init-prompt.js.map +1 -0
- package/dist/esm/helpers/password.d.ts +7 -0
- package/dist/esm/helpers/password.d.ts.map +1 -0
- package/dist/esm/helpers/password.js +13 -0
- package/dist/esm/helpers/password.js.map +1 -0
- package/dist/esm/helpers/production-mode.d.ts +11 -0
- package/dist/esm/helpers/production-mode.d.ts.map +1 -0
- package/dist/esm/helpers/production-mode.js +46 -0
- package/dist/esm/helpers/production-mode.js.map +1 -0
- package/dist/esm/helpers/support-sla.d.ts +48 -0
- package/dist/esm/helpers/support-sla.d.ts.map +1 -0
- package/dist/esm/helpers/support-sla.js +65 -0
- package/dist/esm/helpers/support-sla.js.map +1 -0
- package/dist/esm/helpers/support-sla.test.d.ts +1 -0
- package/dist/esm/helpers/support-sla.test.js +102 -0
- package/dist/esm/helpers/support-sla.test.js.map +1 -0
- package/dist/esm/helpers/vault/client-side.d.ts +16 -0
- package/dist/esm/helpers/vault/client-side.d.ts.map +1 -0
- package/dist/esm/helpers/vault/client-side.js +69 -0
- package/dist/esm/helpers/vault/client-side.js.map +1 -0
- package/dist/esm/helpers/vault/server-side.d.ts +9 -0
- package/dist/esm/helpers/vault/server-side.d.ts.map +1 -0
- package/dist/esm/helpers/vault/server-side.js +123 -0
- package/dist/esm/helpers/vault/server-side.js.map +1 -0
- package/dist/esm/hooks/use-async-callback.d.ts +8 -0
- package/dist/esm/hooks/use-async-callback.d.ts.map +1 -0
- package/dist/esm/hooks/use-async-callback.js +38 -0
- package/dist/esm/hooks/use-async-callback.js.map +1 -0
- package/dist/esm/hooks/use-async-external-store.d.ts +9 -0
- package/dist/esm/hooks/use-async-external-store.d.ts.map +1 -0
- package/dist/esm/hooks/use-async-external-store.js +20 -0
- package/dist/esm/hooks/use-async-external-store.js.map +1 -0
- package/dist/esm/hooks/use-hash.d.ts +5 -0
- package/dist/esm/hooks/use-hash.d.ts.map +1 -0
- package/dist/esm/hooks/use-hash.js +15 -0
- package/dist/esm/hooks/use-hash.js.map +1 -0
- package/dist/esm/hooks/use-hover.d.ts +8 -0
- package/dist/esm/hooks/use-hover.d.ts.map +1 -0
- package/dist/esm/hooks/use-hover.js +59 -0
- package/dist/esm/hooks/use-hover.js.map +1 -0
- package/dist/esm/hooks/use-strict-memo.d.ts +10 -0
- package/dist/esm/hooks/use-strict-memo.d.ts.map +1 -0
- package/dist/esm/hooks/use-strict-memo.js +119 -0
- package/dist/esm/hooks/use-strict-memo.js.map +1 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/interface/admin-interface.d.ts +308 -0
- package/dist/esm/interface/admin-interface.d.ts.map +1 -0
- package/dist/esm/interface/admin-interface.js +463 -0
- package/dist/esm/interface/admin-interface.js.map +1 -0
- package/dist/esm/interface/admin-metrics.d.ts +597 -0
- package/dist/esm/interface/admin-metrics.d.ts.map +1 -0
- package/dist/esm/interface/admin-metrics.js +134 -0
- package/dist/esm/interface/admin-metrics.js.map +1 -0
- package/dist/esm/interface/client-interface.d.ts +447 -0
- package/dist/esm/interface/client-interface.d.ts.map +1 -0
- package/dist/esm/interface/client-interface.js +1946 -0
- package/dist/esm/interface/client-interface.js.map +1 -0
- package/dist/esm/interface/client-interface.test.d.ts +1 -0
- package/dist/esm/interface/client-interface.test.js +559 -0
- package/dist/esm/interface/client-interface.test.js.map +1 -0
- package/dist/esm/interface/conversations.d.ts +314 -0
- package/dist/esm/interface/conversations.d.ts.map +1 -0
- package/dist/esm/interface/conversations.js +108 -0
- package/dist/esm/interface/conversations.js.map +1 -0
- package/dist/esm/interface/crud/analytics.d.ts +14 -0
- package/dist/esm/interface/crud/analytics.d.ts.map +1 -0
- package/dist/esm/interface/crud/analytics.js +1 -0
- package/dist/esm/interface/crud/connected-accounts.d.ts +69 -0
- package/dist/esm/interface/crud/connected-accounts.d.ts.map +1 -0
- package/dist/esm/interface/crud/connected-accounts.js +35 -0
- package/dist/esm/interface/crud/connected-accounts.js.map +1 -0
- package/dist/esm/interface/crud/contact-channels.d.ts +182 -0
- package/dist/esm/interface/crud/contact-channels.d.ts.map +1 -0
- package/dist/esm/interface/crud/contact-channels.js +68 -0
- package/dist/esm/interface/crud/contact-channels.js.map +1 -0
- package/dist/esm/interface/crud/current-user.d.ts +286 -0
- package/dist/esm/interface/crud/current-user.d.ts.map +1 -0
- package/dist/esm/interface/crud/current-user.js +69 -0
- package/dist/esm/interface/crud/current-user.js.map +1 -0
- package/dist/esm/interface/crud/email-outbox.d.ts +1466 -0
- package/dist/esm/interface/crud/email-outbox.d.ts.map +1 -0
- package/dist/esm/interface/crud/email-outbox.js +190 -0
- package/dist/esm/interface/crud/email-outbox.js.map +1 -0
- package/dist/esm/interface/crud/email-templates.d.ts +86 -0
- package/dist/esm/interface/crud/email-templates.d.ts.map +1 -0
- package/dist/esm/interface/crud/email-templates.js +46 -0
- package/dist/esm/interface/crud/email-templates.js.map +1 -0
- package/dist/esm/interface/crud/emails.d.ts +42 -0
- package/dist/esm/interface/crud/emails.d.ts.map +1 -0
- package/dist/esm/interface/crud/emails.js +19 -0
- package/dist/esm/interface/crud/emails.js.map +1 -0
- package/dist/esm/interface/crud/internal-api-keys.d.ts +141 -0
- package/dist/esm/interface/crud/internal-api-keys.d.ts.map +1 -0
- package/dist/esm/interface/crud/internal-api-keys.js +49 -0
- package/dist/esm/interface/crud/internal-api-keys.js.map +1 -0
- package/dist/esm/interface/crud/invoices.d.ts +43 -0
- package/dist/esm/interface/crud/invoices.d.ts.map +1 -0
- package/dist/esm/interface/crud/invoices.js +25 -0
- package/dist/esm/interface/crud/invoices.js.map +1 -0
- package/dist/esm/interface/crud/items.d.ts +31 -0
- package/dist/esm/interface/crud/items.d.ts.map +1 -0
- package/dist/esm/interface/crud/items.js +23 -0
- package/dist/esm/interface/crud/items.js.map +1 -0
- package/dist/esm/interface/crud/notification-preferences.d.ts +39 -0
- package/dist/esm/interface/crud/notification-preferences.d.ts.map +1 -0
- package/dist/esm/interface/crud/notification-preferences.js +31 -0
- package/dist/esm/interface/crud/notification-preferences.js.map +1 -0
- package/dist/esm/interface/crud/oauth-providers.d.ts +187 -0
- package/dist/esm/interface/crud/oauth-providers.d.ts.map +1 -0
- package/dist/esm/interface/crud/oauth-providers.js +75 -0
- package/dist/esm/interface/crud/oauth-providers.js.map +1 -0
- package/dist/esm/interface/crud/products.d.ts +182 -0
- package/dist/esm/interface/crud/products.d.ts.map +1 -0
- package/dist/esm/interface/crud/products.js +29 -0
- package/dist/esm/interface/crud/products.js.map +1 -0
- package/dist/esm/interface/crud/project-api-keys.d.ts +204 -0
- package/dist/esm/interface/crud/project-api-keys.d.ts.map +1 -0
- package/dist/esm/interface/crud/project-api-keys.js +72 -0
- package/dist/esm/interface/crud/project-api-keys.js.map +1 -0
- package/dist/esm/interface/crud/project-permissions.d.ts +162 -0
- package/dist/esm/interface/crud/project-permissions.d.ts.map +1 -0
- package/dist/esm/interface/crud/project-permissions.js +104 -0
- package/dist/esm/interface/crud/project-permissions.js.map +1 -0
- package/dist/esm/interface/crud/projects.d.ts +852 -0
- package/dist/esm/interface/crud/projects.d.ts.map +1 -0
- package/dist/esm/interface/crud/projects.js +193 -0
- package/dist/esm/interface/crud/projects.js.map +1 -0
- package/dist/esm/interface/crud/session-replays.d.ts +83 -0
- package/dist/esm/interface/crud/session-replays.d.ts.map +1 -0
- package/dist/esm/interface/crud/session-replays.js +1 -0
- package/dist/esm/interface/crud/sessions.d.ts +151 -0
- package/dist/esm/interface/crud/sessions.d.ts.map +1 -0
- package/dist/esm/interface/crud/sessions.js +56 -0
- package/dist/esm/interface/crud/sessions.js.map +1 -0
- package/dist/esm/interface/crud/sign-up-rules.d.ts +15 -0
- package/dist/esm/interface/crud/sign-up-rules.d.ts.map +1 -0
- package/dist/esm/interface/crud/sign-up-rules.js +1 -0
- package/dist/esm/interface/crud/svix-token.d.ts +32 -0
- package/dist/esm/interface/crud/svix-token.d.ts.map +1 -0
- package/dist/esm/interface/crud/svix-token.js +18 -0
- package/dist/esm/interface/crud/svix-token.js.map +1 -0
- package/dist/esm/interface/crud/team-invitation-details.d.ts +32 -0
- package/dist/esm/interface/crud/team-invitation-details.d.ts.map +1 -0
- package/dist/esm/interface/crud/team-invitation-details.js +21 -0
- package/dist/esm/interface/crud/team-invitation-details.js.map +1 -0
- package/dist/esm/interface/crud/team-invitation.d.ts +55 -0
- package/dist/esm/interface/crud/team-invitation.d.ts.map +1 -0
- package/dist/esm/interface/crud/team-invitation.js +37 -0
- package/dist/esm/interface/crud/team-invitation.js.map +1 -0
- package/dist/esm/interface/crud/team-member-profiles.d.ts +287 -0
- package/dist/esm/interface/crud/team-member-profiles.d.ts.map +1 -0
- package/dist/esm/interface/crud/team-member-profiles.js +58 -0
- package/dist/esm/interface/crud/team-member-profiles.js.map +1 -0
- package/dist/esm/interface/crud/team-memberships.d.ts +76 -0
- package/dist/esm/interface/crud/team-memberships.d.ts.map +1 -0
- package/dist/esm/interface/crud/team-memberships.js +54 -0
- package/dist/esm/interface/crud/team-memberships.js.map +1 -0
- package/dist/esm/interface/crud/team-permissions.d.ts +170 -0
- package/dist/esm/interface/crud/team-permissions.d.ts.map +1 -0
- package/dist/esm/interface/crud/team-permissions.js +105 -0
- package/dist/esm/interface/crud/team-permissions.js.map +1 -0
- package/dist/esm/interface/crud/teams.d.ts +300 -0
- package/dist/esm/interface/crud/teams.d.ts.map +1 -0
- package/dist/esm/interface/crud/teams.js +129 -0
- package/dist/esm/interface/crud/teams.js.map +1 -0
- package/dist/esm/interface/crud/transactions.d.ts +183 -0
- package/dist/esm/interface/crud/transactions.d.ts.map +1 -0
- package/dist/esm/interface/crud/transactions.js +85 -0
- package/dist/esm/interface/crud/transactions.js.map +1 -0
- package/dist/esm/interface/crud/users.d.ts +654 -0
- package/dist/esm/interface/crud/users.d.ts.map +1 -0
- package/dist/esm/interface/crud/users.js +181 -0
- package/dist/esm/interface/crud/users.js.map +1 -0
- package/dist/esm/interface/handler-urls.d.ts +51 -0
- package/dist/esm/interface/handler-urls.d.ts.map +1 -0
- package/dist/esm/interface/handler-urls.js +3 -0
- package/dist/esm/interface/page-component-versions.d.ts +25 -0
- package/dist/esm/interface/page-component-versions.d.ts.map +1 -0
- package/dist/esm/interface/page-component-versions.js +1661 -0
- package/dist/esm/interface/page-component-versions.js.map +1 -0
- package/dist/esm/interface/server-interface.d.ts +255 -0
- package/dist/esm/interface/server-interface.d.ts.map +1 -0
- package/dist/esm/interface/server-interface.js +459 -0
- package/dist/esm/interface/server-interface.js.map +1 -0
- package/dist/esm/interface/webhooks.d.ts +326 -0
- package/dist/esm/interface/webhooks.d.ts.map +1 -0
- package/dist/esm/interface/webhooks.js +22 -0
- package/dist/esm/interface/webhooks.js.map +1 -0
- package/dist/esm/known-errors.d.ts +575 -0
- package/dist/esm/known-errors.d.ts.map +1 -0
- package/dist/esm/known-errors.js +791 -0
- package/dist/esm/known-errors.js.map +1 -0
- package/dist/esm/local-emulator.d.ts +6 -0
- package/dist/esm/local-emulator.d.ts.map +1 -0
- package/dist/esm/local-emulator.js +7 -0
- package/dist/esm/local-emulator.js.map +1 -0
- package/dist/esm/payments/payment-methods.d.ts +64 -0
- package/dist/esm/payments/payment-methods.d.ts.map +1 -0
- package/dist/esm/payments/payment-methods.js +205 -0
- package/dist/esm/payments/payment-methods.js.map +1 -0
- package/dist/esm/payments/stripe-limits.d.ts +17 -0
- package/dist/esm/payments/stripe-limits.d.ts.map +1 -0
- package/dist/esm/payments/stripe-limits.js +17 -0
- package/dist/esm/payments/stripe-limits.js.map +1 -0
- package/dist/esm/plans.d.ts +72 -0
- package/dist/esm/plans.d.ts.map +1 -0
- package/dist/esm/plans.js +81 -0
- package/dist/esm/plans.js.map +1 -0
- package/dist/esm/schema-fields.d.ts +472 -0
- package/dist/esm/schema-fields.d.ts.map +1 -0
- package/dist/esm/schema-fields.js +1009 -0
- package/dist/esm/schema-fields.js.map +1 -0
- package/dist/esm/sessions.d.ts +165 -0
- package/dist/esm/sessions.d.ts.map +1 -0
- package/dist/esm/sessions.js +226 -0
- package/dist/esm/sessions.js.map +1 -0
- package/dist/esm/stack-config-file.d.ts +15 -0
- package/dist/esm/stack-config-file.d.ts.map +1 -0
- package/dist/esm/stack-config-file.js +76 -0
- package/dist/esm/stack-config-file.js.map +1 -0
- package/dist/esm/utils/api-keys.d.ts +26 -0
- package/dist/esm/utils/api-keys.d.ts.map +1 -0
- package/dist/esm/utils/api-keys.js +77 -0
- package/dist/esm/utils/api-keys.js.map +1 -0
- package/dist/esm/utils/arrays.d.ts +25 -0
- package/dist/esm/utils/arrays.d.ts.map +1 -0
- package/dist/esm/utils/arrays.js +552 -0
- package/dist/esm/utils/arrays.js.map +1 -0
- package/dist/esm/utils/auth-methods.d.ts +6 -0
- package/dist/esm/utils/auth-methods.d.ts.map +1 -0
- package/dist/esm/utils/auth-methods.js +11 -0
- package/dist/esm/utils/auth-methods.js.map +1 -0
- package/dist/esm/utils/base64.d.ts +6 -0
- package/dist/esm/utils/base64.d.ts.map +1 -0
- package/dist/esm/utils/base64.js +25 -0
- package/dist/esm/utils/base64.js.map +1 -0
- package/dist/esm/utils/booleans.d.ts +8 -0
- package/dist/esm/utils/booleans.d.ts.map +1 -0
- package/dist/esm/utils/booleans.js +35 -0
- package/dist/esm/utils/booleans.js.map +1 -0
- package/dist/esm/utils/browser-compat.d.ts +10 -0
- package/dist/esm/utils/browser-compat.d.ts.map +1 -0
- package/dist/esm/utils/browser-compat.js +21 -0
- package/dist/esm/utils/browser-compat.js.map +1 -0
- package/dist/esm/utils/bytes.d.ts +17 -0
- package/dist/esm/utils/bytes.d.ts.map +1 -0
- package/dist/esm/utils/bytes.js +290 -0
- package/dist/esm/utils/bytes.js.map +1 -0
- package/dist/esm/utils/caches.d.ts +102 -0
- package/dist/esm/utils/caches.d.ts.map +1 -0
- package/dist/esm/utils/caches.js +185 -0
- package/dist/esm/utils/caches.js.map +1 -0
- package/dist/esm/utils/cel-fields.d.ts +23 -0
- package/dist/esm/utils/cel-fields.d.ts.map +1 -0
- package/dist/esm/utils/cel-fields.js +99 -0
- package/dist/esm/utils/cel-fields.js.map +1 -0
- package/dist/esm/utils/compile-time.d.ts +10 -0
- package/dist/esm/utils/compile-time.d.ts.map +1 -0
- package/dist/esm/utils/compile-time.js +14 -0
- package/dist/esm/utils/compile-time.js.map +1 -0
- package/dist/esm/utils/country-codes.d.ts +11 -0
- package/dist/esm/utils/country-codes.d.ts.map +1 -0
- package/dist/esm/utils/country-codes.js +36 -0
- package/dist/esm/utils/country-codes.js.map +1 -0
- package/dist/esm/utils/crypto.d.ts +48 -0
- package/dist/esm/utils/crypto.d.ts.map +1 -0
- package/dist/esm/utils/crypto.js +208 -0
- package/dist/esm/utils/crypto.js.map +1 -0
- package/dist/esm/utils/currencies.d.ts +8 -0
- package/dist/esm/utils/currencies.d.ts.map +1 -0
- package/dist/esm/utils/currencies.js +50 -0
- package/dist/esm/utils/currencies.js.map +1 -0
- package/dist/esm/utils/currency-constants.d.ts +39 -0
- package/dist/esm/utils/currency-constants.d.ts.map +1 -0
- package/dist/esm/utils/currency-constants.js +42 -0
- package/dist/esm/utils/currency-constants.js.map +1 -0
- package/dist/esm/utils/dates.d.ts +23 -0
- package/dist/esm/utils/dates.d.ts.map +1 -0
- package/dist/esm/utils/dates.js +167 -0
- package/dist/esm/utils/dates.js.map +1 -0
- package/dist/esm/utils/dev-env-state-path.d.ts +6 -0
- package/dist/esm/utils/dev-env-state-path.d.ts.map +1 -0
- package/dist/esm/utils/dev-env-state-path.js +15 -0
- package/dist/esm/utils/dev-env-state-path.js.map +1 -0
- package/dist/esm/utils/dom.d.ts +5 -0
- package/dist/esm/utils/dom.d.ts.map +1 -0
- package/dist/esm/utils/dom.js +11 -0
- package/dist/esm/utils/dom.js.map +1 -0
- package/dist/esm/utils/env.d.ts +25 -0
- package/dist/esm/utils/env.d.ts.map +1 -0
- package/dist/esm/utils/env.js +78 -0
- package/dist/esm/utils/env.js.map +1 -0
- package/dist/esm/utils/errors.d.ts +231 -0
- package/dist/esm/utils/errors.d.ts.map +1 -0
- package/dist/esm/utils/errors.js +385 -0
- package/dist/esm/utils/errors.js.map +1 -0
- package/dist/esm/utils/esbuild.d.ts +16 -0
- package/dist/esm/utils/esbuild.d.ts.map +1 -0
- package/dist/esm/utils/esbuild.js +182 -0
- package/dist/esm/utils/esbuild.js.map +1 -0
- package/dist/esm/utils/featurebase.d.ts +30 -0
- package/dist/esm/utils/featurebase.d.ts.map +1 -0
- package/dist/esm/utils/featurebase.js +166 -0
- package/dist/esm/utils/featurebase.js.map +1 -0
- package/dist/esm/utils/fs.d.ts +9 -0
- package/dist/esm/utils/fs.d.ts.map +1 -0
- package/dist/esm/utils/fs.js +25 -0
- package/dist/esm/utils/fs.js.map +1 -0
- package/dist/esm/utils/functions.d.ts +6 -0
- package/dist/esm/utils/functions.d.ts.map +1 -0
- package/dist/esm/utils/functions.js +34 -0
- package/dist/esm/utils/functions.js.map +1 -0
- package/dist/esm/utils/geo.d.ts +24 -0
- package/dist/esm/utils/geo.d.ts.map +1 -0
- package/dist/esm/utils/geo.js +16 -0
- package/dist/esm/utils/geo.js.map +1 -0
- package/dist/esm/utils/globals.d.ts +13 -0
- package/dist/esm/utils/globals.d.ts.map +1 -0
- package/dist/esm/utils/globals.js +34 -0
- package/dist/esm/utils/globals.js.map +1 -0
- package/dist/esm/utils/hashes.d.ts +9 -0
- package/dist/esm/utils/hashes.d.ts.map +1 -0
- package/dist/esm/utils/hashes.js +40 -0
- package/dist/esm/utils/hashes.js.map +1 -0
- package/dist/esm/utils/html.d.ts +7 -0
- package/dist/esm/utils/html.d.ts.map +1 -0
- package/dist/esm/utils/html.js +33 -0
- package/dist/esm/utils/html.js.map +1 -0
- package/dist/esm/utils/http.d.ts +45 -0
- package/dist/esm/utils/http.d.ts.map +1 -0
- package/dist/esm/utils/http.js +75 -0
- package/dist/esm/utils/http.js.map +1 -0
- package/dist/esm/utils/ips.d.ts +8 -0
- package/dist/esm/utils/ips.d.ts.map +1 -0
- package/dist/esm/utils/ips.js +36 -0
- package/dist/esm/utils/ips.js.map +1 -0
- package/dist/esm/utils/json.d.ts +15 -0
- package/dist/esm/utils/json.d.ts.map +1 -0
- package/dist/esm/utils/json.js +178 -0
- package/dist/esm/utils/json.js.map +1 -0
- package/dist/esm/utils/jsx-editable-transpiler.d.ts +68 -0
- package/dist/esm/utils/jsx-editable-transpiler.d.ts.map +1 -0
- package/dist/esm/utils/jsx-editable-transpiler.js +216 -0
- package/dist/esm/utils/jsx-editable-transpiler.js.map +1 -0
- package/dist/esm/utils/jsx-editable-transpiler.test.d.ts +1 -0
- package/dist/esm/utils/jsx-editable-transpiler.test.js +122 -0
- package/dist/esm/utils/jsx-editable-transpiler.test.js.map +1 -0
- package/dist/esm/utils/jwt.d.ts +79 -0
- package/dist/esm/utils/jwt.d.ts.map +1 -0
- package/dist/esm/utils/jwt.js +102 -0
- package/dist/esm/utils/jwt.js.map +1 -0
- package/dist/esm/utils/locks.d.ts +17 -0
- package/dist/esm/utils/locks.d.ts.map +1 -0
- package/dist/esm/utils/locks.js +54 -0
- package/dist/esm/utils/locks.js.map +1 -0
- package/dist/esm/utils/maps.d.ts +61 -0
- package/dist/esm/utils/maps.d.ts.map +1 -0
- package/dist/esm/utils/maps.js +297 -0
- package/dist/esm/utils/maps.js.map +1 -0
- package/dist/esm/utils/math.d.ts +8 -0
- package/dist/esm/utils/math.d.ts.map +1 -0
- package/dist/esm/utils/math.js +21 -0
- package/dist/esm/utils/math.js.map +1 -0
- package/dist/esm/utils/monkey-patch.d.ts +7 -0
- package/dist/esm/utils/monkey-patch.d.ts.map +1 -0
- package/dist/esm/utils/monkey-patch.js +21 -0
- package/dist/esm/utils/monkey-patch.js.map +1 -0
- package/dist/esm/utils/node-http.d.ts +17 -0
- package/dist/esm/utils/node-http.d.ts.map +1 -0
- package/dist/esm/utils/node-http.js +38 -0
- package/dist/esm/utils/node-http.js.map +1 -0
- package/dist/esm/utils/numbers.d.ts +7 -0
- package/dist/esm/utils/numbers.d.ts.map +1 -0
- package/dist/esm/utils/numbers.js +75 -0
- package/dist/esm/utils/numbers.js.map +1 -0
- package/dist/esm/utils/oauth.d.ts +11 -0
- package/dist/esm/utils/oauth.d.ts.map +1 -0
- package/dist/esm/utils/oauth.js +27 -0
- package/dist/esm/utils/oauth.js.map +1 -0
- package/dist/esm/utils/objects.d.ts +59 -0
- package/dist/esm/utils/objects.d.ts.map +1 -0
- package/dist/esm/utils/objects.js +818 -0
- package/dist/esm/utils/objects.js.map +1 -0
- package/dist/esm/utils/paginated-lists.d.ts +442 -0
- package/dist/esm/utils/paginated-lists.d.ts.map +1 -0
- package/dist/esm/utils/paginated-lists.js +411 -0
- package/dist/esm/utils/paginated-lists.js.map +1 -0
- package/dist/esm/utils/paginated-lists.test.d.ts +1 -0
- package/dist/esm/utils/paginated-lists.test.js +1304 -0
- package/dist/esm/utils/paginated-lists.test.js.map +1 -0
- package/dist/esm/utils/passkey.d.ts +2 -0
- package/dist/esm/utils/passkey.js +1 -0
- package/dist/esm/utils/promises.d.ts +80 -0
- package/dist/esm/utils/promises.d.ts.map +1 -0
- package/dist/esm/utils/promises.js +333 -0
- package/dist/esm/utils/promises.js.map +1 -0
- package/dist/esm/utils/proxies.d.ts +13 -0
- package/dist/esm/utils/proxies.d.ts.map +1 -0
- package/dist/esm/utils/proxies.js +197 -0
- package/dist/esm/utils/proxies.js.map +1 -0
- package/dist/esm/utils/react.d.ts +61 -0
- package/dist/esm/utils/react.d.ts.map +1 -0
- package/dist/esm/utils/react.js +229 -0
- package/dist/esm/utils/react.js.map +1 -0
- package/dist/esm/utils/redirect-urls.d.ts +30 -0
- package/dist/esm/utils/redirect-urls.d.ts.map +1 -0
- package/dist/esm/utils/redirect-urls.js +215 -0
- package/dist/esm/utils/redirect-urls.js.map +1 -0
- package/dist/esm/utils/regex.d.ts +5 -0
- package/dist/esm/utils/regex.d.ts.map +1 -0
- package/dist/esm/utils/regex.js +13 -0
- package/dist/esm/utils/regex.js.map +1 -0
- package/dist/esm/utils/results.d.ts +70 -0
- package/dist/esm/utils/results.d.ts.map +1 -0
- package/dist/esm/utils/results.js +339 -0
- package/dist/esm/utils/results.js.map +1 -0
- package/dist/esm/utils/sentry.d.ts +13 -0
- package/dist/esm/utils/sentry.d.ts.map +1 -0
- package/dist/esm/utils/sentry.js +14 -0
- package/dist/esm/utils/sentry.js.map +1 -0
- package/dist/esm/utils/stores.d.ts +104 -0
- package/dist/esm/utils/stores.d.ts.map +1 -0
- package/dist/esm/utils/stores.js +175 -0
- package/dist/esm/utils/stores.js.map +1 -0
- package/dist/esm/utils/strings.d.ts +76 -0
- package/dist/esm/utils/strings.d.ts.map +1 -0
- package/dist/esm/utils/strings.js +530 -0
- package/dist/esm/utils/strings.js.map +1 -0
- package/dist/esm/utils/strings.nicify.test.d.ts +1 -0
- package/dist/esm/utils/strings.nicify.test.js +243 -0
- package/dist/esm/utils/strings.nicify.test.js.map +1 -0
- package/dist/esm/utils/telemetry.d.ts +15 -0
- package/dist/esm/utils/telemetry.d.ts.map +1 -0
- package/dist/esm/utils/telemetry.js +31 -0
- package/dist/esm/utils/telemetry.js.map +1 -0
- package/dist/esm/utils/turnstile-browser.d.ts +32 -0
- package/dist/esm/utils/turnstile-browser.d.ts.map +1 -0
- package/dist/esm/utils/turnstile-browser.js +61 -0
- package/dist/esm/utils/turnstile-browser.js.map +1 -0
- package/dist/esm/utils/turnstile-flow.d.ts +29 -0
- package/dist/esm/utils/turnstile-flow.d.ts.map +1 -0
- package/dist/esm/utils/turnstile-flow.js +219 -0
- package/dist/esm/utils/turnstile-flow.js.map +1 -0
- package/dist/esm/utils/turnstile-flow.test.d.ts +1 -0
- package/dist/esm/utils/turnstile-flow.test.js +75 -0
- package/dist/esm/utils/turnstile-flow.test.js.map +1 -0
- package/dist/esm/utils/turnstile.d.ts +17 -0
- package/dist/esm/utils/turnstile.d.ts.map +1 -0
- package/dist/esm/utils/turnstile.js +25 -0
- package/dist/esm/utils/turnstile.js.map +1 -0
- package/dist/esm/utils/typed-arrays.d.ts +14 -0
- package/dist/esm/utils/typed-arrays.d.ts.map +1 -0
- package/dist/esm/utils/typed-arrays.js +20 -0
- package/dist/esm/utils/typed-arrays.js.map +1 -0
- package/dist/esm/utils/types.d.ts +77 -0
- package/dist/esm/utils/types.d.ts.map +1 -0
- package/dist/esm/utils/types.js +55 -0
- package/dist/esm/utils/types.js.map +1 -0
- package/dist/esm/utils/unicode.d.ts +5 -0
- package/dist/esm/utils/unicode.d.ts.map +1 -0
- package/dist/esm/utils/unicode.js +24 -0
- package/dist/esm/utils/unicode.js.map +1 -0
- package/dist/esm/utils/urls.d.ts +28 -0
- package/dist/esm/utils/urls.d.ts.map +1 -0
- package/dist/esm/utils/urls.js +259 -0
- package/dist/esm/utils/urls.js.map +1 -0
- package/dist/esm/utils/uuids.d.ts +6 -0
- package/dist/esm/utils/uuids.d.ts.map +1 -0
- package/dist/esm/utils/uuids.js +36 -0
- package/dist/esm/utils/uuids.js.map +1 -0
- package/dist/global.d.d.ts +0 -0
- package/dist/global.d.ts +1 -0
- package/dist/helpers/emails.d.ts +69 -0
- package/dist/helpers/emails.d.ts.map +1 -0
- package/dist/helpers/emails.js +252 -0
- package/dist/helpers/emails.js.map +1 -0
- package/dist/helpers/init-prompt.d.ts +5 -0
- package/dist/helpers/init-prompt.d.ts.map +1 -0
- package/dist/helpers/init-prompt.js +42 -0
- package/dist/helpers/init-prompt.js.map +1 -0
- package/dist/helpers/password.d.ts +6 -0
- package/dist/helpers/password.d.ts.map +1 -0
- package/dist/helpers/password.js +15 -0
- package/dist/helpers/password.js.map +1 -0
- package/dist/helpers/production-mode.d.ts +11 -0
- package/dist/helpers/production-mode.d.ts.map +1 -0
- package/dist/helpers/production-mode.js +48 -0
- package/dist/helpers/production-mode.js.map +1 -0
- package/dist/helpers/support-sla.d.ts +48 -0
- package/dist/helpers/support-sla.d.ts.map +1 -0
- package/dist/helpers/support-sla.js +72 -0
- package/dist/helpers/support-sla.js.map +1 -0
- package/dist/helpers/support-sla.test.d.ts +1 -0
- package/dist/helpers/support-sla.test.js +102 -0
- package/dist/helpers/support-sla.test.js.map +1 -0
- package/dist/helpers/vault/client-side.d.ts +16 -0
- package/dist/helpers/vault/client-side.d.ts.map +1 -0
- package/dist/helpers/vault/client-side.js +73 -0
- package/dist/helpers/vault/client-side.js.map +1 -0
- package/dist/helpers/vault/server-side.d.ts +9 -0
- package/dist/helpers/vault/server-side.d.ts.map +1 -0
- package/dist/helpers/vault/server-side.js +126 -0
- package/dist/helpers/vault/server-side.js.map +1 -0
- package/dist/hooks/use-async-callback.d.ts +8 -0
- package/dist/hooks/use-async-callback.d.ts.map +1 -0
- package/dist/hooks/use-async-callback.js +42 -0
- package/dist/hooks/use-async-callback.js.map +1 -0
- package/dist/hooks/use-async-external-store.d.ts +9 -0
- package/dist/hooks/use-async-external-store.d.ts.map +1 -0
- package/dist/hooks/use-async-external-store.js +22 -0
- package/dist/hooks/use-async-external-store.js.map +1 -0
- package/dist/hooks/use-hash.d.ts +5 -0
- package/dist/hooks/use-hash.d.ts.map +1 -0
- package/dist/hooks/use-hash.js +17 -0
- package/dist/hooks/use-hash.js.map +1 -0
- package/dist/hooks/use-hover.d.ts +8 -0
- package/dist/hooks/use-hover.d.ts.map +1 -0
- package/dist/hooks/use-hover.js +61 -0
- package/dist/hooks/use-hover.js.map +1 -0
- package/dist/hooks/use-strict-memo.d.ts +10 -0
- package/dist/hooks/use-strict-memo.d.ts.map +1 -0
- package/dist/hooks/use-strict-memo.js +121 -0
- package/dist/hooks/use-strict-memo.js.map +1 -0
- package/dist/index-D9ysacya.d.ts +153 -0
- package/dist/index-D9ysacya.d.ts.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +37 -0
- package/dist/interface/admin-interface.d.ts +308 -0
- package/dist/interface/admin-interface.d.ts.map +1 -0
- package/dist/interface/admin-interface.js +465 -0
- package/dist/interface/admin-interface.js.map +1 -0
- package/dist/interface/admin-metrics.d.ts +597 -0
- package/dist/interface/admin-metrics.d.ts.map +1 -0
- package/dist/interface/admin-metrics.js +153 -0
- package/dist/interface/admin-metrics.js.map +1 -0
- package/dist/interface/client-interface.d.ts +447 -0
- package/dist/interface/client-interface.d.ts.map +1 -0
- package/dist/interface/client-interface.js +1948 -0
- package/dist/interface/client-interface.js.map +1 -0
- package/dist/interface/client-interface.test.d.ts +1 -0
- package/dist/interface/client-interface.test.js +559 -0
- package/dist/interface/client-interface.test.js.map +1 -0
- package/dist/interface/conversations.d.ts +314 -0
- package/dist/interface/conversations.d.ts.map +1 -0
- package/dist/interface/conversations.js +121 -0
- package/dist/interface/conversations.js.map +1 -0
- package/dist/interface/crud/analytics.d.ts +14 -0
- package/dist/interface/crud/analytics.d.ts.map +1 -0
- package/dist/interface/crud/analytics.js +0 -0
- package/dist/interface/crud/connected-accounts.d.ts +68 -0
- package/dist/interface/crud/connected-accounts.d.ts.map +1 -0
- package/dist/interface/crud/connected-accounts.js +41 -0
- package/dist/interface/crud/connected-accounts.js.map +1 -0
- package/dist/interface/crud/contact-channels.d.ts +181 -0
- package/dist/interface/crud/contact-channels.d.ts.map +1 -0
- package/dist/interface/crud/contact-channels.js +76 -0
- package/dist/interface/crud/contact-channels.js.map +1 -0
- package/dist/interface/crud/current-user.d.ts +285 -0
- package/dist/interface/crud/current-user.d.ts.map +1 -0
- package/dist/interface/crud/current-user.js +71 -0
- package/dist/interface/crud/current-user.js.map +1 -0
- package/dist/interface/crud/email-outbox.d.ts +1465 -0
- package/dist/interface/crud/email-outbox.d.ts.map +1 -0
- package/dist/interface/crud/email-outbox.js +195 -0
- package/dist/interface/crud/email-outbox.js.map +1 -0
- package/dist/interface/crud/email-templates.d.ts +85 -0
- package/dist/interface/crud/email-templates.d.ts.map +1 -0
- package/dist/interface/crud/email-templates.js +53 -0
- package/dist/interface/crud/email-templates.js.map +1 -0
- package/dist/interface/crud/emails.d.ts +41 -0
- package/dist/interface/crud/emails.d.ts.map +1 -0
- package/dist/interface/crud/emails.js +23 -0
- package/dist/interface/crud/emails.js.map +1 -0
- package/dist/interface/crud/internal-api-keys.d.ts +140 -0
- package/dist/interface/crud/internal-api-keys.d.ts.map +1 -0
- package/dist/interface/crud/internal-api-keys.js +56 -0
- package/dist/interface/crud/internal-api-keys.js.map +1 -0
- package/dist/interface/crud/invoices.d.ts +43 -0
- package/dist/interface/crud/invoices.d.ts.map +1 -0
- package/dist/interface/crud/invoices.js +28 -0
- package/dist/interface/crud/invoices.js.map +1 -0
- package/dist/interface/crud/items.d.ts +30 -0
- package/dist/interface/crud/items.d.ts.map +1 -0
- package/dist/interface/crud/items.js +25 -0
- package/dist/interface/crud/items.js.map +1 -0
- package/dist/interface/crud/notification-preferences.d.ts +38 -0
- package/dist/interface/crud/notification-preferences.d.ts.map +1 -0
- package/dist/interface/crud/notification-preferences.js +33 -0
- package/dist/interface/crud/notification-preferences.js.map +1 -0
- package/dist/interface/crud/oauth-providers.d.ts +186 -0
- package/dist/interface/crud/oauth-providers.d.ts.map +1 -0
- package/dist/interface/crud/oauth-providers.js +83 -0
- package/dist/interface/crud/oauth-providers.js.map +1 -0
- package/dist/interface/crud/products.d.ts +182 -0
- package/dist/interface/crud/products.d.ts.map +1 -0
- package/dist/interface/crud/products.js +32 -0
- package/dist/interface/crud/products.js.map +1 -0
- package/dist/interface/crud/project-api-keys.d.ts +203 -0
- package/dist/interface/crud/project-api-keys.d.ts.map +1 -0
- package/dist/interface/crud/project-api-keys.js +79 -0
- package/dist/interface/crud/project-api-keys.js.map +1 -0
- package/dist/interface/crud/project-permissions.d.ts +161 -0
- package/dist/interface/crud/project-permissions.d.ts.map +1 -0
- package/dist/interface/crud/project-permissions.js +116 -0
- package/dist/interface/crud/project-permissions.js.map +1 -0
- package/dist/interface/crud/projects.d.ts +851 -0
- package/dist/interface/crud/projects.d.ts.map +1 -0
- package/dist/interface/crud/projects.js +204 -0
- package/dist/interface/crud/projects.js.map +1 -0
- package/dist/interface/crud/session-replays.d.ts +83 -0
- package/dist/interface/crud/session-replays.d.ts.map +1 -0
- package/dist/interface/crud/session-replays.js +0 -0
- package/dist/interface/crud/sessions.d.ts +150 -0
- package/dist/interface/crud/sessions.d.ts.map +1 -0
- package/dist/interface/crud/sessions.js +62 -0
- package/dist/interface/crud/sessions.js.map +1 -0
- package/dist/interface/crud/sign-up-rules.d.ts +15 -0
- package/dist/interface/crud/sign-up-rules.d.ts.map +1 -0
- package/dist/interface/crud/sign-up-rules.js +0 -0
- package/dist/interface/crud/svix-token.d.ts +31 -0
- package/dist/interface/crud/svix-token.d.ts.map +1 -0
- package/dist/interface/crud/svix-token.js +22 -0
- package/dist/interface/crud/svix-token.js.map +1 -0
- package/dist/interface/crud/team-invitation-details.d.ts +31 -0
- package/dist/interface/crud/team-invitation-details.d.ts.map +1 -0
- package/dist/interface/crud/team-invitation-details.js +24 -0
- package/dist/interface/crud/team-invitation-details.js.map +1 -0
- package/dist/interface/crud/team-invitation.d.ts +54 -0
- package/dist/interface/crud/team-invitation.d.ts.map +1 -0
- package/dist/interface/crud/team-invitation.js +40 -0
- package/dist/interface/crud/team-invitation.js.map +1 -0
- package/dist/interface/crud/team-member-profiles.d.ts +286 -0
- package/dist/interface/crud/team-member-profiles.d.ts.map +1 -0
- package/dist/interface/crud/team-member-profiles.js +63 -0
- package/dist/interface/crud/team-member-profiles.js.map +1 -0
- package/dist/interface/crud/team-memberships.d.ts +75 -0
- package/dist/interface/crud/team-memberships.d.ts.map +1 -0
- package/dist/interface/crud/team-memberships.js +61 -0
- package/dist/interface/crud/team-memberships.js.map +1 -0
- package/dist/interface/crud/team-permissions.d.ts +169 -0
- package/dist/interface/crud/team-permissions.d.ts.map +1 -0
- package/dist/interface/crud/team-permissions.js +117 -0
- package/dist/interface/crud/team-permissions.js.map +1 -0
- package/dist/interface/crud/teams.d.ts +299 -0
- package/dist/interface/crud/teams.d.ts.map +1 -0
- package/dist/interface/crud/teams.js +142 -0
- package/dist/interface/crud/teams.js.map +1 -0
- package/dist/interface/crud/transactions.d.ts +183 -0
- package/dist/interface/crud/transactions.d.ts.map +1 -0
- package/dist/interface/crud/transactions.js +89 -0
- package/dist/interface/crud/transactions.js.map +1 -0
- package/dist/interface/crud/users.d.ts +653 -0
- package/dist/interface/crud/users.d.ts.map +1 -0
- package/dist/interface/crud/users.js +193 -0
- package/dist/interface/crud/users.js.map +1 -0
- package/dist/interface/handler-urls.d.ts +51 -0
- package/dist/interface/handler-urls.d.ts.map +1 -0
- package/dist/interface/handler-urls.js +16 -0
- package/dist/interface/page-component-versions.d.ts +25 -0
- package/dist/interface/page-component-versions.d.ts.map +1 -0
- package/dist/interface/page-component-versions.js +1664 -0
- package/dist/interface/page-component-versions.js.map +1 -0
- package/dist/interface/server-interface.d.ts +255 -0
- package/dist/interface/server-interface.d.ts.map +1 -0
- package/dist/interface/server-interface.js +461 -0
- package/dist/interface/server-interface.js.map +1 -0
- package/dist/interface/webhooks.d.ts +326 -0
- package/dist/interface/webhooks.d.ts.map +1 -0
- package/dist/interface/webhooks.js +24 -0
- package/dist/interface/webhooks.js.map +1 -0
- package/dist/known-errors.d.ts +575 -0
- package/dist/known-errors.d.ts.map +1 -0
- package/dist/known-errors.js +794 -0
- package/dist/known-errors.js.map +1 -0
- package/dist/local-emulator.d.ts +6 -0
- package/dist/local-emulator.d.ts.map +1 -0
- package/dist/local-emulator.js +10 -0
- package/dist/local-emulator.js.map +1 -0
- package/dist/payments/payment-methods.d.ts +64 -0
- package/dist/payments/payment-methods.d.ts.map +1 -0
- package/dist/payments/payment-methods.js +216 -0
- package/dist/payments/payment-methods.js.map +1 -0
- package/dist/payments/stripe-limits.d.ts +17 -0
- package/dist/payments/stripe-limits.d.ts.map +1 -0
- package/dist/payments/stripe-limits.js +20 -0
- package/dist/payments/stripe-limits.js.map +1 -0
- package/dist/plans.d.ts +72 -0
- package/dist/plans.d.ts.map +1 -0
- package/dist/plans.js +88 -0
- package/dist/plans.js.map +1 -0
- package/dist/schema-fields.d.ts +472 -0
- package/dist/schema-fields.d.ts.map +1 -0
- package/dist/schema-fields.js +1188 -0
- package/dist/schema-fields.js.map +1 -0
- package/dist/sessions.d.ts +165 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +231 -0
- package/dist/sessions.js.map +1 -0
- package/dist/stack-config-file.d.ts +15 -0
- package/dist/stack-config-file.d.ts.map +1 -0
- package/dist/stack-config-file.js +82 -0
- package/dist/stack-config-file.js.map +1 -0
- package/dist/utils/api-keys.d.ts +26 -0
- package/dist/utils/api-keys.d.ts.map +1 -0
- package/dist/utils/api-keys.js +82 -0
- package/dist/utils/api-keys.js.map +1 -0
- package/dist/utils/arrays.d.ts +25 -0
- package/dist/utils/arrays.d.ts.map +1 -0
- package/dist/utils/arrays.js +569 -0
- package/dist/utils/arrays.js.map +1 -0
- package/dist/utils/auth-methods.d.ts +6 -0
- package/dist/utils/auth-methods.d.ts.map +1 -0
- package/dist/utils/auth-methods.js +13 -0
- package/dist/utils/auth-methods.js.map +1 -0
- package/dist/utils/base64.d.ts +6 -0
- package/dist/utils/base64.d.ts.map +1 -0
- package/dist/utils/base64.js +28 -0
- package/dist/utils/base64.js.map +1 -0
- package/dist/utils/booleans.d.ts +8 -0
- package/dist/utils/booleans.d.ts.map +1 -0
- package/dist/utils/booleans.js +38 -0
- package/dist/utils/booleans.js.map +1 -0
- package/dist/utils/browser-compat.d.ts +10 -0
- package/dist/utils/browser-compat.d.ts.map +1 -0
- package/dist/utils/browser-compat.js +23 -0
- package/dist/utils/browser-compat.js.map +1 -0
- package/dist/utils/bytes.d.ts +17 -0
- package/dist/utils/bytes.d.ts.map +1 -0
- package/dist/utils/bytes.js +304 -0
- package/dist/utils/bytes.js.map +1 -0
- package/dist/utils/caches.d.ts +102 -0
- package/dist/utils/caches.d.ts.map +1 -0
- package/dist/utils/caches.js +188 -0
- package/dist/utils/caches.js.map +1 -0
- package/dist/utils/cel-fields.d.ts +23 -0
- package/dist/utils/cel-fields.d.ts.map +1 -0
- package/dist/utils/cel-fields.js +108 -0
- package/dist/utils/cel-fields.js.map +1 -0
- package/dist/utils/compile-time.d.ts +10 -0
- package/dist/utils/compile-time.d.ts.map +1 -0
- package/dist/utils/compile-time.js +16 -0
- package/dist/utils/compile-time.js.map +1 -0
- package/dist/utils/country-codes.d.ts +11 -0
- package/dist/utils/country-codes.d.ts.map +1 -0
- package/dist/utils/country-codes.js +40 -0
- package/dist/utils/country-codes.js.map +1 -0
- package/dist/utils/crypto.d.ts +48 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +215 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/currencies.d.ts +8 -0
- package/dist/utils/currencies.d.ts.map +1 -0
- package/dist/utils/currencies.js +52 -0
- package/dist/utils/currencies.js.map +1 -0
- package/dist/utils/currency-constants.d.ts +39 -0
- package/dist/utils/currency-constants.d.ts.map +1 -0
- package/dist/utils/currency-constants.js +44 -0
- package/dist/utils/currency-constants.js.map +1 -0
- package/dist/utils/dates.d.ts +23 -0
- package/dist/utils/dates.d.ts.map +1 -0
- package/dist/utils/dates.js +176 -0
- package/dist/utils/dates.js.map +1 -0
- package/dist/utils/dev-env-state-path.d.ts +6 -0
- package/dist/utils/dev-env-state-path.d.ts.map +1 -0
- package/dist/utils/dev-env-state-path.js +18 -0
- package/dist/utils/dev-env-state-path.js.map +1 -0
- package/dist/utils/dom.d.ts +5 -0
- package/dist/utils/dom.d.ts.map +1 -0
- package/dist/utils/dom.js +13 -0
- package/dist/utils/dom.js.map +1 -0
- package/dist/utils/env.d.ts +25 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +85 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/errors.d.ts +231 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +393 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/esbuild.d.ts +16 -0
- package/dist/utils/esbuild.d.ts.map +1 -0
- package/dist/utils/esbuild.js +186 -0
- package/dist/utils/esbuild.js.map +1 -0
- package/dist/utils/featurebase.d.ts +30 -0
- package/dist/utils/featurebase.d.ts.map +1 -0
- package/dist/utils/featurebase.js +168 -0
- package/dist/utils/featurebase.js.map +1 -0
- package/dist/utils/fs.d.ts +9 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +31 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/functions.d.ts +6 -0
- package/dist/utils/functions.d.ts.map +1 -0
- package/dist/utils/functions.js +37 -0
- package/dist/utils/functions.js.map +1 -0
- package/dist/utils/geo.d.ts +24 -0
- package/dist/utils/geo.d.ts.map +1 -0
- package/dist/utils/geo.js +18 -0
- package/dist/utils/geo.js.map +1 -0
- package/dist/utils/globals.d.ts +13 -0
- package/dist/utils/globals.d.ts.map +1 -0
- package/dist/utils/globals.js +40 -0
- package/dist/utils/globals.js.map +1 -0
- package/dist/utils/hashes.d.ts +9 -0
- package/dist/utils/hashes.d.ts.map +1 -0
- package/dist/utils/hashes.js +47 -0
- package/dist/utils/hashes.js.map +1 -0
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +37 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/http.d.ts +45 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +79 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/ips.d.ts +8 -0
- package/dist/utils/ips.d.ts.map +1 -0
- package/dist/utils/ips.js +40 -0
- package/dist/utils/ips.js.map +1 -0
- package/dist/utils/json.d.ts +15 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +182 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/jsx-editable-transpiler.d.ts +68 -0
- package/dist/utils/jsx-editable-transpiler.d.ts.map +1 -0
- package/dist/utils/jsx-editable-transpiler.js +223 -0
- package/dist/utils/jsx-editable-transpiler.js.map +1 -0
- package/dist/utils/jsx-editable-transpiler.test.d.ts +1 -0
- package/dist/utils/jsx-editable-transpiler.test.js +122 -0
- package/dist/utils/jsx-editable-transpiler.test.js.map +1 -0
- package/dist/utils/jwt.d.ts +79 -0
- package/dist/utils/jwt.d.ts.map +1 -0
- package/dist/utils/jwt.js +112 -0
- package/dist/utils/jwt.js.map +1 -0
- package/dist/utils/locks.d.ts +17 -0
- package/dist/utils/locks.d.ts.map +1 -0
- package/dist/utils/locks.js +56 -0
- package/dist/utils/locks.js.map +1 -0
- package/dist/utils/maps.d.ts +61 -0
- package/dist/utils/maps.d.ts.map +1 -0
- package/dist/utils/maps.js +302 -0
- package/dist/utils/maps.js.map +1 -0
- package/dist/utils/math.d.ts +8 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/math.js +23 -0
- package/dist/utils/math.js.map +1 -0
- package/dist/utils/monkey-patch.d.ts +7 -0
- package/dist/utils/monkey-patch.d.ts.map +1 -0
- package/dist/utils/monkey-patch.js +25 -0
- package/dist/utils/monkey-patch.js.map +1 -0
- package/dist/utils/node-http.d.ts +17 -0
- package/dist/utils/node-http.d.ts.map +1 -0
- package/dist/utils/node-http.js +40 -0
- package/dist/utils/node-http.js.map +1 -0
- package/dist/utils/numbers.d.ts +7 -0
- package/dist/utils/numbers.d.ts.map +1 -0
- package/dist/utils/numbers.js +79 -0
- package/dist/utils/numbers.js.map +1 -0
- package/dist/utils/oauth.d.ts +11 -0
- package/dist/utils/oauth.d.ts.map +1 -0
- package/dist/utils/oauth.js +32 -0
- package/dist/utils/oauth.js.map +1 -0
- package/dist/utils/objects.d.ts +59 -0
- package/dist/utils/objects.d.ts.map +1 -0
- package/dist/utils/objects.js +846 -0
- package/dist/utils/objects.js.map +1 -0
- package/dist/utils/paginated-lists.d.ts +442 -0
- package/dist/utils/paginated-lists.d.ts.map +1 -0
- package/dist/utils/paginated-lists.js +414 -0
- package/dist/utils/paginated-lists.js.map +1 -0
- package/dist/utils/paginated-lists.test.d.ts +1 -0
- package/dist/utils/paginated-lists.test.js +1304 -0
- package/dist/utils/paginated-lists.test.js.map +1 -0
- package/dist/utils/passkey.d.ts +2 -0
- package/dist/utils/passkey.js +0 -0
- package/dist/utils/promises.d.ts +80 -0
- package/dist/utils/promises.d.ts.map +1 -0
- package/dist/utils/promises.js +349 -0
- package/dist/utils/promises.js.map +1 -0
- package/dist/utils/proxies.d.ts +13 -0
- package/dist/utils/proxies.d.ts.map +1 -0
- package/dist/utils/proxies.js +201 -0
- package/dist/utils/proxies.js.map +1 -0
- package/dist/utils/react.d.ts +61 -0
- package/dist/utils/react.d.ts.map +1 -0
- package/dist/utils/react.js +243 -0
- package/dist/utils/react.js.map +1 -0
- package/dist/utils/redirect-urls.d.ts +30 -0
- package/dist/utils/redirect-urls.d.ts.map +1 -0
- package/dist/utils/redirect-urls.js +222 -0
- package/dist/utils/redirect-urls.js.map +1 -0
- package/dist/utils/regex.d.ts +5 -0
- package/dist/utils/regex.d.ts.map +1 -0
- package/dist/utils/regex.js +15 -0
- package/dist/utils/regex.js.map +1 -0
- package/dist/utils/results.d.ts +70 -0
- package/dist/utils/results.d.ts.map +1 -0
- package/dist/utils/results.js +342 -0
- package/dist/utils/results.js.map +1 -0
- package/dist/utils/sentry.d.ts +13 -0
- package/dist/utils/sentry.d.ts.map +1 -0
- package/dist/utils/sentry.js +16 -0
- package/dist/utils/sentry.js.map +1 -0
- package/dist/utils/stores.d.ts +104 -0
- package/dist/utils/stores.d.ts.map +1 -0
- package/dist/utils/stores.js +179 -0
- package/dist/utils/stores.js.map +1 -0
- package/dist/utils/strings.d.ts +76 -0
- package/dist/utils/strings.d.ts.map +1 -0
- package/dist/utils/strings.js +549 -0
- package/dist/utils/strings.js.map +1 -0
- package/dist/utils/strings.nicify.test.d.ts +1 -0
- package/dist/utils/strings.nicify.test.js +243 -0
- package/dist/utils/strings.nicify.test.js.map +1 -0
- package/dist/utils/telemetry.d.ts +15 -0
- package/dist/utils/telemetry.d.ts.map +1 -0
- package/dist/utils/telemetry.js +35 -0
- package/dist/utils/telemetry.js.map +1 -0
- package/dist/utils/turnstile-browser.d.ts +32 -0
- package/dist/utils/turnstile-browser.d.ts.map +1 -0
- package/dist/utils/turnstile-browser.js +65 -0
- package/dist/utils/turnstile-browser.js.map +1 -0
- package/dist/utils/turnstile-flow.d.ts +29 -0
- package/dist/utils/turnstile-flow.d.ts.map +1 -0
- package/dist/utils/turnstile-flow.js +225 -0
- package/dist/utils/turnstile-flow.js.map +1 -0
- package/dist/utils/turnstile-flow.test.d.ts +1 -0
- package/dist/utils/turnstile-flow.test.js +75 -0
- package/dist/utils/turnstile-flow.test.js.map +1 -0
- package/dist/utils/turnstile.d.ts +17 -0
- package/dist/utils/turnstile.d.ts.map +1 -0
- package/dist/utils/turnstile.js +31 -0
- package/dist/utils/turnstile.js.map +1 -0
- package/dist/utils/typed-arrays.d.ts +14 -0
- package/dist/utils/typed-arrays.d.ts.map +1 -0
- package/dist/utils/typed-arrays.js +22 -0
- package/dist/utils/typed-arrays.js.map +1 -0
- package/dist/utils/types.d.ts +77 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +59 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/unicode.d.ts +5 -0
- package/dist/utils/unicode.d.ts.map +1 -0
- package/dist/utils/unicode.js +26 -0
- package/dist/utils/unicode.js.map +1 -0
- package/dist/utils/urls.d.ts +28 -0
- package/dist/utils/urls.d.ts.map +1 -0
- package/dist/utils/urls.js +274 -0
- package/dist/utils/urls.js.map +1 -0
- package/dist/utils/uuids.d.ts +6 -0
- package/dist/utils/uuids.d.ts.map +1 -0
- package/dist/utils/uuids.js +39 -0
- package/dist/utils/uuids.js.map +1 -0
- package/package.json +99 -0
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_chunk = require('../chunk-BE-pF4vm.js');
|
|
3
|
+
let __errors_js = require("./errors.js");
|
|
4
|
+
let __objects_js = require("./objects.js");
|
|
5
|
+
let __arrays_js = require("./arrays.js");
|
|
6
|
+
|
|
7
|
+
//#region src/utils/strings.tsx
|
|
8
|
+
function typedJoin(strings, separator) {
|
|
9
|
+
return strings.join(separator);
|
|
10
|
+
}
|
|
11
|
+
function typedToLowercase(s) {
|
|
12
|
+
if (typeof s !== "string") throw new __errors_js.HexclaveAssertionError("Expected a string for typedToLowercase", { s });
|
|
13
|
+
return s.toLowerCase();
|
|
14
|
+
}
|
|
15
|
+
(void 0)?.test("typedToLowercase", ({ expect }) => {
|
|
16
|
+
expect(typedToLowercase("")).toBe("");
|
|
17
|
+
expect(typedToLowercase("HELLO")).toBe("hello");
|
|
18
|
+
expect(typedToLowercase("Hello World")).toBe("hello world");
|
|
19
|
+
expect(typedToLowercase("hello")).toBe("hello");
|
|
20
|
+
expect(typedToLowercase("123")).toBe("123");
|
|
21
|
+
expect(typedToLowercase("MIXED123case")).toBe("mixed123case");
|
|
22
|
+
expect(typedToLowercase("Special@Chars!")).toBe("special@chars!");
|
|
23
|
+
expect(() => typedToLowercase(123)).toThrow("Expected a string for typedToLowercase");
|
|
24
|
+
});
|
|
25
|
+
function typedToUppercase(s) {
|
|
26
|
+
if (typeof s !== "string") throw new __errors_js.HexclaveAssertionError("Expected a string for typedToUppercase", { s });
|
|
27
|
+
return s.toUpperCase();
|
|
28
|
+
}
|
|
29
|
+
(void 0)?.test("typedToUppercase", ({ expect }) => {
|
|
30
|
+
expect(typedToUppercase("")).toBe("");
|
|
31
|
+
expect(typedToUppercase("hello")).toBe("HELLO");
|
|
32
|
+
expect(typedToUppercase("Hello World")).toBe("HELLO WORLD");
|
|
33
|
+
expect(typedToUppercase("HELLO")).toBe("HELLO");
|
|
34
|
+
expect(typedToUppercase("123")).toBe("123");
|
|
35
|
+
expect(typedToUppercase("mixed123Case")).toBe("MIXED123CASE");
|
|
36
|
+
expect(typedToUppercase("special@chars!")).toBe("SPECIAL@CHARS!");
|
|
37
|
+
expect(() => typedToUppercase(123)).toThrow("Expected a string for typedToUppercase");
|
|
38
|
+
});
|
|
39
|
+
function typedCapitalize(s) {
|
|
40
|
+
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
41
|
+
}
|
|
42
|
+
(void 0)?.test("typedCapitalize", ({ expect }) => {
|
|
43
|
+
expect(typedCapitalize("")).toBe("");
|
|
44
|
+
expect(typedCapitalize("hello")).toBe("Hello");
|
|
45
|
+
expect(typedCapitalize("hello world")).toBe("Hello world");
|
|
46
|
+
expect(typedCapitalize("HELLO")).toBe("HELLO");
|
|
47
|
+
expect(typedCapitalize("123test")).toBe("123test");
|
|
48
|
+
expect(typedCapitalize("already Capitalized")).toBe("Already Capitalized");
|
|
49
|
+
expect(typedCapitalize("h")).toBe("H");
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* Compares two strings in a way that is not dependent on the current locale.
|
|
53
|
+
*/
|
|
54
|
+
function stringCompare(a, b) {
|
|
55
|
+
if (typeof a !== "string" || typeof b !== "string") throw new __errors_js.HexclaveAssertionError(`Expected two strings for stringCompare, found ${typeof a} and ${typeof b}`, {
|
|
56
|
+
a,
|
|
57
|
+
b
|
|
58
|
+
});
|
|
59
|
+
const cmp = (a, b) => a < b ? -1 : a > b ? 1 : 0;
|
|
60
|
+
return cmp(a.toUpperCase(), b.toUpperCase()) || cmp(b, a);
|
|
61
|
+
}
|
|
62
|
+
(void 0)?.test("stringCompare", ({ expect }) => {
|
|
63
|
+
expect(stringCompare("a", "a")).toBe(0);
|
|
64
|
+
expect(stringCompare("", "")).toBe(0);
|
|
65
|
+
expect(stringCompare("a", "A")).toBe(-1);
|
|
66
|
+
expect(stringCompare("A", "a")).toBe(1);
|
|
67
|
+
expect(stringCompare("abc", "ABC")).toBe(-1);
|
|
68
|
+
expect(stringCompare("ABC", "abc")).toBe(1);
|
|
69
|
+
expect(stringCompare("a", "b")).toBe(-1);
|
|
70
|
+
expect(stringCompare("b", "a")).toBe(1);
|
|
71
|
+
expect(stringCompare("abc", "abcd")).toBe(-1);
|
|
72
|
+
expect(stringCompare("abcd", "abc")).toBe(1);
|
|
73
|
+
expect(stringCompare("a1", "a2")).toBe(-1);
|
|
74
|
+
expect(stringCompare("a10", "a2")).toBe(-1);
|
|
75
|
+
expect(stringCompare("a", "a!")).toBe(-1);
|
|
76
|
+
expect(stringCompare("a!", "a")).toBe(1);
|
|
77
|
+
});
|
|
78
|
+
/**
|
|
79
|
+
* Returns all whitespace character at the start of the string.
|
|
80
|
+
*
|
|
81
|
+
* Uses the same definition for whitespace as `String.prototype.trim()`.
|
|
82
|
+
*/
|
|
83
|
+
function getWhitespacePrefix(s) {
|
|
84
|
+
return s.substring(0, s.length - s.trimStart().length);
|
|
85
|
+
}
|
|
86
|
+
(void 0)?.test("getWhitespacePrefix", ({ expect }) => {
|
|
87
|
+
expect(getWhitespacePrefix("")).toBe("");
|
|
88
|
+
expect(getWhitespacePrefix("hello")).toBe("");
|
|
89
|
+
expect(getWhitespacePrefix(" hello")).toBe(" ");
|
|
90
|
+
expect(getWhitespacePrefix(" hello")).toBe(" ");
|
|
91
|
+
expect(getWhitespacePrefix(" hello")).toBe(" ");
|
|
92
|
+
expect(getWhitespacePrefix("\n hello")).toBe("\n ");
|
|
93
|
+
expect(getWhitespacePrefix(" ")).toBe(" ");
|
|
94
|
+
expect(getWhitespacePrefix(" \n\r")).toBe(" \n\r");
|
|
95
|
+
});
|
|
96
|
+
/**
|
|
97
|
+
* Returns all whitespace character at the end of the string.
|
|
98
|
+
*
|
|
99
|
+
* Uses the same definition for whitespace as `String.prototype.trim()`.
|
|
100
|
+
*/
|
|
101
|
+
function getWhitespaceSuffix(s) {
|
|
102
|
+
return s.substring(s.trimEnd().length);
|
|
103
|
+
}
|
|
104
|
+
(void 0)?.test("getWhitespaceSuffix", ({ expect }) => {
|
|
105
|
+
expect(getWhitespaceSuffix("")).toBe("");
|
|
106
|
+
expect(getWhitespaceSuffix("hello")).toBe("");
|
|
107
|
+
expect(getWhitespaceSuffix("hello ")).toBe(" ");
|
|
108
|
+
expect(getWhitespaceSuffix("hello ")).toBe(" ");
|
|
109
|
+
expect(getWhitespaceSuffix("hello ")).toBe(" ");
|
|
110
|
+
expect(getWhitespaceSuffix("hello \n")).toBe(" \n");
|
|
111
|
+
expect(getWhitespaceSuffix(" ")).toBe(" ");
|
|
112
|
+
expect(getWhitespaceSuffix(" \n\r")).toBe(" \n\r");
|
|
113
|
+
});
|
|
114
|
+
/**
|
|
115
|
+
* Returns a string with all empty or whitespace-only lines at the start removed.
|
|
116
|
+
*
|
|
117
|
+
* Uses the same definition for whitespace as `String.prototype.trim()`.
|
|
118
|
+
*/
|
|
119
|
+
function trimEmptyLinesStart(s) {
|
|
120
|
+
const lines = s.split("\n");
|
|
121
|
+
const firstNonEmptyLineIndex = lines.findIndex((line) => line.trim() !== "");
|
|
122
|
+
if (firstNonEmptyLineIndex === -1) return "";
|
|
123
|
+
return lines.slice(firstNonEmptyLineIndex).join("\n");
|
|
124
|
+
}
|
|
125
|
+
(void 0)?.test("trimEmptyLinesStart", ({ expect }) => {
|
|
126
|
+
expect(trimEmptyLinesStart("")).toBe("");
|
|
127
|
+
expect(trimEmptyLinesStart("hello")).toBe("hello");
|
|
128
|
+
expect(trimEmptyLinesStart("\nhello")).toBe("hello");
|
|
129
|
+
expect(trimEmptyLinesStart("\n\nhello")).toBe("hello");
|
|
130
|
+
expect(trimEmptyLinesStart(" \n \nhello")).toBe("hello");
|
|
131
|
+
expect(trimEmptyLinesStart("\n\nhello\nworld")).toBe("hello\nworld");
|
|
132
|
+
expect(trimEmptyLinesStart("hello\n\nworld")).toBe("hello\n\nworld");
|
|
133
|
+
expect(trimEmptyLinesStart("hello\nworld\n")).toBe("hello\nworld\n");
|
|
134
|
+
expect(trimEmptyLinesStart("\n \n\nhello\n \nworld")).toBe("hello\n \nworld");
|
|
135
|
+
expect(trimEmptyLinesStart("\n\n \n ")).toBe("");
|
|
136
|
+
});
|
|
137
|
+
/**
|
|
138
|
+
* Returns a string with all empty or whitespace-only lines at the end removed.
|
|
139
|
+
*
|
|
140
|
+
* Uses the same definition for whitespace as `String.prototype.trim()`.
|
|
141
|
+
*/
|
|
142
|
+
function trimEmptyLinesEnd(s) {
|
|
143
|
+
const lines = s.split("\n");
|
|
144
|
+
const lastNonEmptyLineIndex = (0, __arrays_js.findLastIndex)(lines, (line) => line.trim() !== "");
|
|
145
|
+
return lines.slice(0, lastNonEmptyLineIndex + 1).join("\n");
|
|
146
|
+
}
|
|
147
|
+
(void 0)?.test("trimEmptyLinesEnd", ({ expect }) => {
|
|
148
|
+
expect(trimEmptyLinesEnd("")).toBe("");
|
|
149
|
+
expect(trimEmptyLinesEnd("hello")).toBe("hello");
|
|
150
|
+
expect(trimEmptyLinesEnd("hello\n")).toBe("hello");
|
|
151
|
+
expect(trimEmptyLinesEnd("hello\n\n")).toBe("hello");
|
|
152
|
+
expect(trimEmptyLinesEnd("hello\n \n ")).toBe("hello");
|
|
153
|
+
expect(trimEmptyLinesEnd("hello\nworld\n\n")).toBe("hello\nworld");
|
|
154
|
+
expect(trimEmptyLinesEnd("hello\n\nworld")).toBe("hello\n\nworld");
|
|
155
|
+
expect(trimEmptyLinesEnd("\nhello\nworld")).toBe("\nhello\nworld");
|
|
156
|
+
expect(trimEmptyLinesEnd("hello\n \nworld\n\n ")).toBe("hello\n \nworld");
|
|
157
|
+
expect(trimEmptyLinesEnd("\n\n \n ")).toBe("");
|
|
158
|
+
});
|
|
159
|
+
/**
|
|
160
|
+
* Returns a string with all empty or whitespace-only lines trimmed at the start and end.
|
|
161
|
+
*
|
|
162
|
+
* Uses the same definition for whitespace as `String.prototype.trim()`.
|
|
163
|
+
*/
|
|
164
|
+
function trimLines(s) {
|
|
165
|
+
return trimEmptyLinesEnd(trimEmptyLinesStart(s));
|
|
166
|
+
}
|
|
167
|
+
(void 0)?.test("trimLines", ({ expect }) => {
|
|
168
|
+
expect(trimLines("")).toBe("");
|
|
169
|
+
expect(trimLines(" ")).toBe("");
|
|
170
|
+
expect(trimLines(" \n ")).toBe("");
|
|
171
|
+
expect(trimLines(" abc ")).toBe(" abc ");
|
|
172
|
+
expect(trimLines("\n \nLine1\nLine2\n \n")).toBe("Line1\nLine2");
|
|
173
|
+
expect(trimLines("Line1\n \nLine2")).toBe("Line1\n \nLine2");
|
|
174
|
+
expect(trimLines(" \n \n ")).toBe("");
|
|
175
|
+
expect(trimLines(" Hello World")).toBe(" Hello World");
|
|
176
|
+
expect(trimLines("\n")).toBe("");
|
|
177
|
+
expect(trimLines(" \n Line1 \n \nLine2 \n ")).toBe(" Line1 \n \nLine2 ");
|
|
178
|
+
});
|
|
179
|
+
/**
|
|
180
|
+
* A template literal tag that returns the same string as the template literal without a tag.
|
|
181
|
+
*
|
|
182
|
+
* Useful for implementing your own template literal tags.
|
|
183
|
+
*/
|
|
184
|
+
function templateIdentity(strings, ...values) {
|
|
185
|
+
if (values.length !== strings.length - 1) throw new __errors_js.HexclaveAssertionError("Invalid number of values; must be one less than strings", {
|
|
186
|
+
strings,
|
|
187
|
+
values
|
|
188
|
+
});
|
|
189
|
+
return strings.reduce((result, str, i) => result + str + (values[i] ?? ""), "");
|
|
190
|
+
}
|
|
191
|
+
(void 0)?.test("templateIdentity", ({ expect }) => {
|
|
192
|
+
expect(templateIdentity`Hello World`).toBe("Hello World");
|
|
193
|
+
expect(templateIdentity`${"Hello"}`).toBe("Hello");
|
|
194
|
+
expect(templateIdentity`${"Hello"}, ${"World"}!`).toBe("Hello, World!");
|
|
195
|
+
expect(templateIdentity`${"A"}${"B"}${"C"}`).toBe("ABC");
|
|
196
|
+
expect(templateIdentity`Start${""}Middle${""}End`).toBe("StartMiddleEnd");
|
|
197
|
+
expect(templateIdentity``).toBe("");
|
|
198
|
+
expect(templateIdentity`Line1
|
|
199
|
+
Line2`).toBe("Line1\nLine2");
|
|
200
|
+
expect(templateIdentity([
|
|
201
|
+
"a ",
|
|
202
|
+
" scientific ",
|
|
203
|
+
"gun"
|
|
204
|
+
], "certain", "rail")).toBe("a certain scientific railgun");
|
|
205
|
+
expect(templateIdentity(["only one part"])).toBe("only one part");
|
|
206
|
+
expect(() => templateIdentity([
|
|
207
|
+
"a ",
|
|
208
|
+
"b",
|
|
209
|
+
"c"
|
|
210
|
+
], "only one")).toThrow("Invalid number of values");
|
|
211
|
+
expect(() => templateIdentity(["a", "b"], "x", "y")).toThrow("Invalid number of values");
|
|
212
|
+
});
|
|
213
|
+
function deindent(strings, ...values) {
|
|
214
|
+
if (typeof strings === "string") return deindent([strings]);
|
|
215
|
+
return templateIdentity(...deindentTemplate(strings, ...values));
|
|
216
|
+
}
|
|
217
|
+
function deindentTemplate(strings, ...values) {
|
|
218
|
+
if (values.length !== strings.length - 1) throw new __errors_js.HexclaveAssertionError("Invalid number of values; must be one less than strings", {
|
|
219
|
+
strings,
|
|
220
|
+
values
|
|
221
|
+
});
|
|
222
|
+
const trimmedStrings = [...strings];
|
|
223
|
+
trimmedStrings[0] = trimEmptyLinesStart(trimmedStrings[0] + "+").slice(0, -1);
|
|
224
|
+
trimmedStrings[trimmedStrings.length - 1] = trimEmptyLinesEnd("+" + trimmedStrings[trimmedStrings.length - 1]).slice(1);
|
|
225
|
+
const indentation = trimmedStrings.join("${SOME_VALUE}").split("\n").filter((line) => line.trim() !== "").map((line) => getWhitespacePrefix(line).length).reduce((min, current) => Math.min(min, current), Infinity);
|
|
226
|
+
const deindentedStrings = trimmedStrings.map((string, stringIndex) => {
|
|
227
|
+
return string.split("\n").map((line, lineIndex) => stringIndex !== 0 && lineIndex === 0 ? line : line.substring(indentation)).join("\n");
|
|
228
|
+
});
|
|
229
|
+
return [deindentedStrings, ...values.map((value, i) => {
|
|
230
|
+
const firstLineIndentation = getWhitespacePrefix(deindentedStrings[i].split("\n").at(-1));
|
|
231
|
+
return `${value}`.replaceAll("\n", `\n${firstLineIndentation}`);
|
|
232
|
+
})];
|
|
233
|
+
}
|
|
234
|
+
(void 0)?.test("deindent", ({ expect }) => {
|
|
235
|
+
expect(deindent(" hello")).toBe("hello");
|
|
236
|
+
expect(deindent(" hello\n world")).toBe("hello\nworld");
|
|
237
|
+
expect(deindent(" hello\n world")).toBe("hello\n world");
|
|
238
|
+
expect(deindent("\n hello\n world\n")).toBe("hello\nworld");
|
|
239
|
+
expect(deindent("")).toBe("");
|
|
240
|
+
expect(deindent`
|
|
241
|
+
hello
|
|
242
|
+
world
|
|
243
|
+
`).toBe("hello\nworld");
|
|
244
|
+
expect(deindent`
|
|
245
|
+
hello
|
|
246
|
+
world
|
|
247
|
+
`).toBe("hello\n world");
|
|
248
|
+
const value = "test";
|
|
249
|
+
expect(deindent`
|
|
250
|
+
hello ${value}
|
|
251
|
+
world
|
|
252
|
+
`).toBe(`hello ${value}\nworld`);
|
|
253
|
+
expect(deindent`
|
|
254
|
+
hello
|
|
255
|
+
to ${"line1\n line2"}
|
|
256
|
+
world
|
|
257
|
+
`).toBe(`hello\n to line1\n line2\nworld`);
|
|
258
|
+
expect(deindent`
|
|
259
|
+
${" "}A
|
|
260
|
+
${" "}B
|
|
261
|
+
${" "}C
|
|
262
|
+
`).toBe(` A\n B\n C`);
|
|
263
|
+
expect(deindent`
|
|
264
|
+
A
|
|
265
|
+
B ${" "}
|
|
266
|
+
C
|
|
267
|
+
`).toBe(`A \nB \nC `);
|
|
268
|
+
expect(deindent`
|
|
269
|
+
hello
|
|
270
|
+
world
|
|
271
|
+
!
|
|
272
|
+
`).toBe("hello\n world\n !");
|
|
273
|
+
expect(() => deindent([
|
|
274
|
+
"a",
|
|
275
|
+
"b",
|
|
276
|
+
"c"
|
|
277
|
+
], "too", "many", "values")).toThrow("Invalid number of values");
|
|
278
|
+
});
|
|
279
|
+
function extractScopes(scope, removeDuplicates = true) {
|
|
280
|
+
const filtered = scope.trim().split(/\s+/).filter((scope) => scope.length > 0);
|
|
281
|
+
return removeDuplicates ? [...new Set(filtered)] : filtered;
|
|
282
|
+
}
|
|
283
|
+
(void 0)?.test("extractScopes", ({ expect }) => {
|
|
284
|
+
expect(extractScopes("")).toEqual([]);
|
|
285
|
+
expect(extractScopes("read")).toEqual(["read"]);
|
|
286
|
+
expect(extractScopes("read write")).toEqual(["read", "write"]);
|
|
287
|
+
expect(extractScopes(" read write ")).toEqual(["read", "write"]);
|
|
288
|
+
expect(extractScopes("read\nwrite delete")).toEqual([
|
|
289
|
+
"read",
|
|
290
|
+
"write",
|
|
291
|
+
"delete"
|
|
292
|
+
]);
|
|
293
|
+
expect(extractScopes("read write read")).toEqual(["read", "write"]);
|
|
294
|
+
expect(extractScopes("read write read", true)).toEqual(["read", "write"]);
|
|
295
|
+
expect(extractScopes("read write read", false)).toEqual([
|
|
296
|
+
"read",
|
|
297
|
+
"write",
|
|
298
|
+
"read"
|
|
299
|
+
]);
|
|
300
|
+
});
|
|
301
|
+
function mergeScopeStrings(...scopes) {
|
|
302
|
+
return extractScopes(scopes.map((s) => extractScopes(s)).flat().join(" ")).join(" ");
|
|
303
|
+
}
|
|
304
|
+
(void 0)?.test("mergeScopeStrings", ({ expect }) => {
|
|
305
|
+
expect(mergeScopeStrings()).toBe("");
|
|
306
|
+
expect(mergeScopeStrings("read write")).toBe("read write");
|
|
307
|
+
expect(mergeScopeStrings("read", "write")).toBe("read write");
|
|
308
|
+
expect(mergeScopeStrings("read write", "write delete")).toBe("read write delete");
|
|
309
|
+
expect(mergeScopeStrings(" read write ", " delete ")).toBe("read write delete");
|
|
310
|
+
expect(mergeScopeStrings("read write", "write delete", "read")).toBe("read write delete");
|
|
311
|
+
expect(mergeScopeStrings("read write", "", "delete")).toBe("read write delete");
|
|
312
|
+
});
|
|
313
|
+
function escapeTemplateLiteral(s) {
|
|
314
|
+
return s.replaceAll("\\", "\\\\").replaceAll("`", "\\`").replaceAll("${", "\\${");
|
|
315
|
+
}
|
|
316
|
+
(void 0)?.test("escapeTemplateLiteral", ({ expect }) => {
|
|
317
|
+
expect(escapeTemplateLiteral("")).toBe("");
|
|
318
|
+
expect(escapeTemplateLiteral("hello world")).toBe("hello world");
|
|
319
|
+
expect(escapeTemplateLiteral("hello `world`")).toBe("hello \\`world\\`");
|
|
320
|
+
expect(escapeTemplateLiteral("hello \\world")).toBe("hello \\\\world");
|
|
321
|
+
expect(escapeTemplateLiteral("hello $world")).toBe("hello $world");
|
|
322
|
+
expect(escapeTemplateLiteral("hello ${$world")).toBe("hello \\${$world");
|
|
323
|
+
expect(escapeTemplateLiteral("`hello` ${world\\")).toBe("\\`hello\\` \\${world\\\\");
|
|
324
|
+
expect(escapeTemplateLiteral("\\`hello\\`")).toBe("\\\\\\`hello\\\\\\`");
|
|
325
|
+
});
|
|
326
|
+
/**
|
|
327
|
+
* Some classes have different constructor names in different environments (eg. `Headers` is sometimes called `_Headers`,
|
|
328
|
+
* so we create an object of overrides to handle these cases.
|
|
329
|
+
*/
|
|
330
|
+
const nicifiableClassNameOverrides = new Map(Object.entries({ Headers }).map(([k, v]) => [v, k]));
|
|
331
|
+
function nicify(value, options = {}) {
|
|
332
|
+
const fullOptions = {
|
|
333
|
+
maxDepth: 5,
|
|
334
|
+
currentIndent: "",
|
|
335
|
+
lineIndent: " ",
|
|
336
|
+
multiline: true,
|
|
337
|
+
refs: /* @__PURE__ */ new Map(),
|
|
338
|
+
path: "value",
|
|
339
|
+
parent: null,
|
|
340
|
+
overrides: () => null,
|
|
341
|
+
keyInParent: null,
|
|
342
|
+
hideFields: [],
|
|
343
|
+
...(0, __objects_js.filterUndefined)(options)
|
|
344
|
+
};
|
|
345
|
+
const { maxDepth, currentIndent, lineIndent, multiline, refs, path, overrides, hideFields } = fullOptions;
|
|
346
|
+
const nl = `\n${currentIndent}`;
|
|
347
|
+
const overrideResult = overrides(value, options);
|
|
348
|
+
if (overrideResult !== null) return overrideResult;
|
|
349
|
+
if ([
|
|
350
|
+
"function",
|
|
351
|
+
"object",
|
|
352
|
+
"symbol"
|
|
353
|
+
].includes(typeof value) && value !== null) {
|
|
354
|
+
if (refs.has(value)) return `Ref<${refs.get(value)}>`;
|
|
355
|
+
refs.set(value, path);
|
|
356
|
+
}
|
|
357
|
+
const newOptions = {
|
|
358
|
+
maxDepth: maxDepth - 1,
|
|
359
|
+
currentIndent,
|
|
360
|
+
lineIndent,
|
|
361
|
+
multiline,
|
|
362
|
+
refs,
|
|
363
|
+
path: path + "->[unknown property]",
|
|
364
|
+
overrides,
|
|
365
|
+
parent: {
|
|
366
|
+
value,
|
|
367
|
+
options: fullOptions
|
|
368
|
+
},
|
|
369
|
+
keyInParent: null,
|
|
370
|
+
hideFields: []
|
|
371
|
+
};
|
|
372
|
+
const nestedNicify = (newValue, newPath, keyInParent, options = {}) => {
|
|
373
|
+
return nicify(newValue, {
|
|
374
|
+
...newOptions,
|
|
375
|
+
path: newPath,
|
|
376
|
+
currentIndent: currentIndent + lineIndent,
|
|
377
|
+
keyInParent,
|
|
378
|
+
...options
|
|
379
|
+
});
|
|
380
|
+
};
|
|
381
|
+
switch (typeof value) {
|
|
382
|
+
case "boolean":
|
|
383
|
+
case "number": return JSON.stringify(value);
|
|
384
|
+
case "string": {
|
|
385
|
+
const isDeindentable = (v) => deindent(v) === v && v.includes("\n");
|
|
386
|
+
const wrapInDeindent = (v) => deindent`
|
|
387
|
+
deindent\`
|
|
388
|
+
${currentIndent + lineIndent}${escapeTemplateLiteral(v).replaceAll("\n", nl + lineIndent)}
|
|
389
|
+
${currentIndent}\`
|
|
390
|
+
`;
|
|
391
|
+
if (isDeindentable(value)) return wrapInDeindent(value);
|
|
392
|
+
else if (value.endsWith("\n") && isDeindentable(value.slice(0, -1))) return wrapInDeindent(value.slice(0, -1)) + " + \"\\n\"";
|
|
393
|
+
else return JSON.stringify(value);
|
|
394
|
+
}
|
|
395
|
+
case "undefined": return "undefined";
|
|
396
|
+
case "symbol": return value.toString();
|
|
397
|
+
case "bigint": return `${value}n`;
|
|
398
|
+
case "function":
|
|
399
|
+
if (value.name) return `function ${value.name}(...) { ... }`;
|
|
400
|
+
return `(...) => { ... }`;
|
|
401
|
+
case "object": {
|
|
402
|
+
if (value === null) return "null";
|
|
403
|
+
if (Array.isArray(value)) {
|
|
404
|
+
const extraLines = getNicifiedObjectExtraLines(value);
|
|
405
|
+
const resValueLength = value.length + extraLines.length;
|
|
406
|
+
if (resValueLength === 0) return "[]";
|
|
407
|
+
if (maxDepth <= 0) return `[...]`;
|
|
408
|
+
const resValues = value.map((v, i) => nestedNicify(v, `${path}[${i}]`, i));
|
|
409
|
+
resValues.push(...extraLines);
|
|
410
|
+
if (resValues.length !== resValueLength) throw new __errors_js.HexclaveAssertionError("nicify of object: resValues.length !== resValueLength", {
|
|
411
|
+
value,
|
|
412
|
+
resValues,
|
|
413
|
+
resValueLength
|
|
414
|
+
});
|
|
415
|
+
if (resValues.length > 4 || resValues.some((x) => resValues.length > 1 && x.length > 4 || x.includes("\n"))) return `[${nl}${resValues.map((x) => `${lineIndent}${x},${nl}`).join("")}]`;
|
|
416
|
+
else return `[${resValues.join(", ")}]`;
|
|
417
|
+
}
|
|
418
|
+
if (value instanceof Date) return `Date(${nestedNicify(value.toISOString(), `${path}.toISOString()`, null)})`;
|
|
419
|
+
if (value instanceof URL) return `URL(${nestedNicify(value.toString(), `${path}.toString()`, null)})`;
|
|
420
|
+
if (ArrayBuffer.isView(value)) return `${value.constructor.name}([${value.toString()}])`;
|
|
421
|
+
if (value instanceof ArrayBuffer) return `ArrayBuffer [${new Uint8Array(value).toString()}]`;
|
|
422
|
+
if (value instanceof Error) {
|
|
423
|
+
let stack = value.stack ?? "";
|
|
424
|
+
const toString = value.toString();
|
|
425
|
+
if (!stack.startsWith(toString)) stack = `${toString}\n${stack}`;
|
|
426
|
+
stack = stack.trimEnd();
|
|
427
|
+
stack = stack.replace(/\n\s+/g, `\n${lineIndent}${lineIndent}`);
|
|
428
|
+
stack = stack.replace("\n", `\n${lineIndent}Stack:\n`);
|
|
429
|
+
if (Object.keys(value).length > 0) stack += `\n${lineIndent}Extra properties: ${nestedNicify(Object.fromEntries(Object.entries(value)), path, null)}`;
|
|
430
|
+
if (value.cause) stack += `\n${lineIndent}Cause:\n${lineIndent}${lineIndent}${nestedNicify(value.cause, path, null, { currentIndent: currentIndent + lineIndent + lineIndent })}`;
|
|
431
|
+
stack = stack.replaceAll("\n", `\n${currentIndent}`);
|
|
432
|
+
return stack;
|
|
433
|
+
}
|
|
434
|
+
const constructorName = [null, Object.prototype].includes(Object.getPrototypeOf(value)) ? null : nicifiableClassNameOverrides.get(value.constructor) ?? value.constructor.name;
|
|
435
|
+
const constructorString = constructorName ? `${constructorName} ` : "";
|
|
436
|
+
const entries = getNicifiableEntries(value).filter(([k]) => !hideFields.includes(k));
|
|
437
|
+
const extraLines = [...getNicifiedObjectExtraLines(value), ...hideFields.length > 0 ? [`<some fields may have been hidden>`] : []];
|
|
438
|
+
const resValueLength = entries.length + extraLines.length;
|
|
439
|
+
if (resValueLength === 0) return `${constructorString}{}`;
|
|
440
|
+
if (maxDepth <= 0) return `${constructorString}{ ... }`;
|
|
441
|
+
const resValues = entries.map(([k, v], keyIndex) => {
|
|
442
|
+
const keyNicified = nestedNicify(k, `Object.keys(${path})[${keyIndex}]`, null);
|
|
443
|
+
const keyInObjectLiteral = typeof k === "string" ? nicifyPropertyString(k) : `[${keyNicified}]`;
|
|
444
|
+
if (typeof v === "function" && v.name === k) return `${keyInObjectLiteral}(...): { ... }`;
|
|
445
|
+
else return `${keyInObjectLiteral}: ${nestedNicify(v, `${path}[${keyNicified}]`, k)}`;
|
|
446
|
+
});
|
|
447
|
+
resValues.push(...extraLines);
|
|
448
|
+
if (resValues.length !== resValueLength) throw new __errors_js.HexclaveAssertionError("nicify of object: resValues.length !== resValueLength", {
|
|
449
|
+
value,
|
|
450
|
+
resValues,
|
|
451
|
+
resValueLength
|
|
452
|
+
});
|
|
453
|
+
const shouldIndent = resValues.length > 1 || resValues.some((x) => x.includes("\n"));
|
|
454
|
+
if (resValues.length === 0) return `${constructorString}{}`;
|
|
455
|
+
if (shouldIndent) return `${constructorString}{${nl}${resValues.map((x) => `${lineIndent}${x},${nl}`).join("")}}`;
|
|
456
|
+
else return `${constructorString}{ ${resValues.join(", ")} }`;
|
|
457
|
+
}
|
|
458
|
+
default: return `${typeof value}<${value}>`;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
function replaceAll(input, searchValue, replaceValue) {
|
|
462
|
+
if (searchValue === "") throw new __errors_js.HexclaveAssertionError("replaceAll: searchValue is empty");
|
|
463
|
+
return input.split(searchValue).join(replaceValue);
|
|
464
|
+
}
|
|
465
|
+
(void 0)?.test("replaceAll", ({ expect }) => {
|
|
466
|
+
expect(replaceAll("hello world", "o", "x")).toBe("hellx wxrld");
|
|
467
|
+
expect(replaceAll("aaa", "a", "b")).toBe("bbb");
|
|
468
|
+
expect(replaceAll("", "a", "b")).toBe("");
|
|
469
|
+
expect(replaceAll("abc", "b", "")).toBe("ac");
|
|
470
|
+
expect(replaceAll("test.test.test", ".", "_")).toBe("test_test_test");
|
|
471
|
+
expect(replaceAll("a.b*c", ".", "x")).toBe("axb*c");
|
|
472
|
+
expect(replaceAll("a*b*c", "*", "x")).toBe("axbxc");
|
|
473
|
+
expect(replaceAll("hello hello", "hello", "hi")).toBe("hi hi");
|
|
474
|
+
});
|
|
475
|
+
function nicifyPropertyString(str) {
|
|
476
|
+
return JSON.stringify(str);
|
|
477
|
+
}
|
|
478
|
+
(void 0)?.test("nicifyPropertyString", ({ expect }) => {
|
|
479
|
+
expect(nicifyPropertyString("validName")).toBe("\"validName\"");
|
|
480
|
+
expect(nicifyPropertyString("_validName")).toBe("\"_validName\"");
|
|
481
|
+
expect(nicifyPropertyString("valid123Name")).toBe("\"valid123Name\"");
|
|
482
|
+
expect(nicifyPropertyString("123invalid")).toBe("\"123invalid\"");
|
|
483
|
+
expect(nicifyPropertyString("invalid-name")).toBe("\"invalid-name\"");
|
|
484
|
+
expect(nicifyPropertyString("invalid space")).toBe("\"invalid space\"");
|
|
485
|
+
expect(nicifyPropertyString("$invalid")).toBe("\"$invalid\"");
|
|
486
|
+
expect(nicifyPropertyString("")).toBe("\"\"");
|
|
487
|
+
expect(nicifyPropertyString("property!")).toBe("\"property!\"");
|
|
488
|
+
expect(nicifyPropertyString("property.name")).toBe("\"property.name\"");
|
|
489
|
+
expect(nicifyPropertyString("\\")).toBe("\"\\\\\"");
|
|
490
|
+
expect(nicifyPropertyString("\"")).toBe("\"\\\"\"");
|
|
491
|
+
});
|
|
492
|
+
function getNicifiableKeys(value) {
|
|
493
|
+
const overridden = ("getNicifiableKeys" in value ? value.getNicifiableKeys?.bind(value) : null)?.();
|
|
494
|
+
if (overridden != null) return overridden;
|
|
495
|
+
if (value instanceof Response) return ["status", "headers"];
|
|
496
|
+
return (0, __arrays_js.unique)(Object.keys(value).sort());
|
|
497
|
+
}
|
|
498
|
+
(void 0)?.test("getNicifiableKeys", ({ expect }) => {
|
|
499
|
+
expect(getNicifiableKeys({
|
|
500
|
+
b: 1,
|
|
501
|
+
a: 2,
|
|
502
|
+
c: 3
|
|
503
|
+
})).toEqual([
|
|
504
|
+
"a",
|
|
505
|
+
"b",
|
|
506
|
+
"c"
|
|
507
|
+
]);
|
|
508
|
+
expect(getNicifiableKeys({})).toEqual([]);
|
|
509
|
+
expect(getNicifiableKeys(new Response())).toEqual(["status", "headers"]);
|
|
510
|
+
expect(getNicifiableKeys({
|
|
511
|
+
a: 1,
|
|
512
|
+
b: 2,
|
|
513
|
+
getNicifiableKeys() {
|
|
514
|
+
return ["customKey1", "customKey2"];
|
|
515
|
+
}
|
|
516
|
+
})).toEqual(["customKey1", "customKey2"]);
|
|
517
|
+
});
|
|
518
|
+
function getNicifiableEntries(value) {
|
|
519
|
+
const recordLikes = [Headers];
|
|
520
|
+
function isRecordLike(value) {
|
|
521
|
+
return recordLikes.some((x) => value instanceof x);
|
|
522
|
+
}
|
|
523
|
+
if (isRecordLike(value)) return [...value.entries()].sort(([a], [b]) => stringCompare(`${a}`, `${b}`));
|
|
524
|
+
return getNicifiableKeys(value).map((k) => [k, value[k]]);
|
|
525
|
+
}
|
|
526
|
+
function getNicifiedObjectExtraLines(value) {
|
|
527
|
+
return ("getNicifiedObjectExtraLines" in value ? value.getNicifiedObjectExtraLines : null)?.() ?? [];
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
//#endregion
|
|
531
|
+
exports.deindent = deindent;
|
|
532
|
+
exports.deindentTemplate = deindentTemplate;
|
|
533
|
+
exports.escapeTemplateLiteral = escapeTemplateLiteral;
|
|
534
|
+
exports.extractScopes = extractScopes;
|
|
535
|
+
exports.getWhitespacePrefix = getWhitespacePrefix;
|
|
536
|
+
exports.getWhitespaceSuffix = getWhitespaceSuffix;
|
|
537
|
+
exports.mergeScopeStrings = mergeScopeStrings;
|
|
538
|
+
exports.nicify = nicify;
|
|
539
|
+
exports.replaceAll = replaceAll;
|
|
540
|
+
exports.stringCompare = stringCompare;
|
|
541
|
+
exports.templateIdentity = templateIdentity;
|
|
542
|
+
exports.trimEmptyLinesEnd = trimEmptyLinesEnd;
|
|
543
|
+
exports.trimEmptyLinesStart = trimEmptyLinesStart;
|
|
544
|
+
exports.trimLines = trimLines;
|
|
545
|
+
exports.typedCapitalize = typedCapitalize;
|
|
546
|
+
exports.typedJoin = typedJoin;
|
|
547
|
+
exports.typedToLowercase = typedToLowercase;
|
|
548
|
+
exports.typedToUppercase = typedToUppercase;
|
|
549
|
+
//# sourceMappingURL=strings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strings.js","names":[],"sources":["../../src/utils/strings.tsx"],"sourcesContent":["import { findLastIndex, unique } from \"./arrays\";\nimport { HexclaveAssertionError } from \"./errors\";\nimport { filterUndefined } from \"./objects\";\n\nexport type Join<T extends string[], Separator extends string> =\n T extends [] ? \"\"\n : T extends [infer U extends string, ...infer Rest extends string[]]\n ? `${U}${Rest extends [any, ...any[]] ? `${Separator}${Join<Rest, Separator>}` : \"\"}`\n : \"<error-joining-strings>\";\n\nexport function typedJoin<T extends string[], Separator extends string>(strings: T, separator: Separator): Join<T, Separator> {\n return strings.join(separator) as Join<T, Separator>;\n}\n\nexport function typedToLowercase<S extends string>(s: S): Lowercase<S> {\n if (typeof s !== \"string\") throw new HexclaveAssertionError(\"Expected a string for typedToLowercase\", { s });\n return s.toLowerCase() as Lowercase<S>;\n}\nimport.meta.vitest?.test(\"typedToLowercase\", ({ expect }) => {\n expect(typedToLowercase(\"\")).toBe(\"\");\n expect(typedToLowercase(\"HELLO\")).toBe(\"hello\");\n expect(typedToLowercase(\"Hello World\")).toBe(\"hello world\");\n expect(typedToLowercase(\"hello\")).toBe(\"hello\");\n expect(typedToLowercase(\"123\")).toBe(\"123\");\n expect(typedToLowercase(\"MIXED123case\")).toBe(\"mixed123case\");\n expect(typedToLowercase(\"Special@Chars!\")).toBe(\"special@chars!\");\n expect(() => typedToLowercase(123 as any)).toThrow(\"Expected a string for typedToLowercase\");\n});\n\nexport function typedToUppercase<S extends string>(s: S): Uppercase<S> {\n if (typeof s !== \"string\") throw new HexclaveAssertionError(\"Expected a string for typedToUppercase\", { s });\n return s.toUpperCase() as Uppercase<S>;\n}\nimport.meta.vitest?.test(\"typedToUppercase\", ({ expect }) => {\n expect(typedToUppercase(\"\")).toBe(\"\");\n expect(typedToUppercase(\"hello\")).toBe(\"HELLO\");\n expect(typedToUppercase(\"Hello World\")).toBe(\"HELLO WORLD\");\n expect(typedToUppercase(\"HELLO\")).toBe(\"HELLO\");\n expect(typedToUppercase(\"123\")).toBe(\"123\");\n expect(typedToUppercase(\"mixed123Case\")).toBe(\"MIXED123CASE\");\n expect(typedToUppercase(\"special@chars!\")).toBe(\"SPECIAL@CHARS!\");\n expect(() => typedToUppercase(123 as any)).toThrow(\"Expected a string for typedToUppercase\");\n});\n\nexport function typedCapitalize<S extends string>(s: S): Capitalize<S> {\n return s.charAt(0).toUpperCase() + s.slice(1) as Capitalize<S>;\n}\nimport.meta.vitest?.test(\"typedCapitalize\", ({ expect }) => {\n expect(typedCapitalize(\"\")).toBe(\"\");\n expect(typedCapitalize(\"hello\")).toBe(\"Hello\");\n expect(typedCapitalize(\"hello world\")).toBe(\"Hello world\");\n expect(typedCapitalize(\"HELLO\")).toBe(\"HELLO\");\n expect(typedCapitalize(\"123test\")).toBe(\"123test\");\n expect(typedCapitalize(\"already Capitalized\")).toBe(\"Already Capitalized\");\n expect(typedCapitalize(\"h\")).toBe(\"H\");\n});\n\n/**\n * Compares two strings in a way that is not dependent on the current locale.\n */\nexport function stringCompare(a: string, b: string): number {\n if (typeof a !== \"string\" || typeof b !== \"string\") throw new HexclaveAssertionError(`Expected two strings for stringCompare, found ${typeof a} and ${typeof b}`, { a, b });\n const cmp = (a: string, b: string) => a < b ? -1 : a > b ? 1 : 0;\n return cmp(a.toUpperCase(), b.toUpperCase()) || cmp(b, a);\n}\nimport.meta.vitest?.test(\"stringCompare\", ({ expect }) => {\n // Equal strings\n expect(stringCompare(\"a\", \"a\")).toBe(0);\n expect(stringCompare(\"\", \"\")).toBe(0);\n\n // Case comparison - note that this function is NOT case-insensitive\n // It compares uppercase versions first, then original strings\n expect(stringCompare(\"a\", \"A\")).toBe(-1); // lowercase comes after uppercase\n expect(stringCompare(\"A\", \"a\")).toBe(1); // uppercase comes before lowercase\n expect(stringCompare(\"abc\", \"ABC\")).toBe(-1);\n expect(stringCompare(\"ABC\", \"abc\")).toBe(1);\n\n // Different strings\n expect(stringCompare(\"a\", \"b\")).toBe(-1);\n expect(stringCompare(\"b\", \"a\")).toBe(1);\n\n // Strings with different lengths\n expect(stringCompare(\"abc\", \"abcd\")).toBe(-1);\n expect(stringCompare(\"abcd\", \"abc\")).toBe(1);\n\n // Strings with numbers\n expect(stringCompare(\"a1\", \"a2\")).toBe(-1);\n expect(stringCompare(\"a10\", \"a2\")).toBe(-1);\n\n // Strings with special characters\n expect(stringCompare(\"a\", \"a!\")).toBe(-1);\n expect(stringCompare(\"a!\", \"a\")).toBe(1);\n});\n\n/**\n * Returns all whitespace character at the start of the string.\n *\n * Uses the same definition for whitespace as `String.prototype.trim()`.\n */\nexport function getWhitespacePrefix(s: string): string {\n return s.substring(0, s.length - s.trimStart().length);\n}\nimport.meta.vitest?.test(\"getWhitespacePrefix\", ({ expect }) => {\n expect(getWhitespacePrefix(\"\")).toBe(\"\");\n expect(getWhitespacePrefix(\"hello\")).toBe(\"\");\n expect(getWhitespacePrefix(\" hello\")).toBe(\" \");\n expect(getWhitespacePrefix(\" hello\")).toBe(\" \");\n expect(getWhitespacePrefix(\"\\thello\")).toBe(\"\\t\");\n expect(getWhitespacePrefix(\"\\n hello\")).toBe(\"\\n \");\n expect(getWhitespacePrefix(\" \")).toBe(\" \");\n expect(getWhitespacePrefix(\" \\t\\n\\r\")).toBe(\" \\t\\n\\r\");\n});\n\n/**\n * Returns all whitespace character at the end of the string.\n *\n * Uses the same definition for whitespace as `String.prototype.trim()`.\n */\nexport function getWhitespaceSuffix(s: string): string {\n return s.substring(s.trimEnd().length);\n}\nimport.meta.vitest?.test(\"getWhitespaceSuffix\", ({ expect }) => {\n expect(getWhitespaceSuffix(\"\")).toBe(\"\");\n expect(getWhitespaceSuffix(\"hello\")).toBe(\"\");\n expect(getWhitespaceSuffix(\"hello \")).toBe(\" \");\n expect(getWhitespaceSuffix(\"hello \")).toBe(\" \");\n expect(getWhitespaceSuffix(\"hello\\t\")).toBe(\"\\t\");\n expect(getWhitespaceSuffix(\"hello \\n\")).toBe(\" \\n\");\n expect(getWhitespaceSuffix(\" \")).toBe(\" \");\n expect(getWhitespaceSuffix(\" \\t\\n\\r\")).toBe(\" \\t\\n\\r\");\n});\n\n/**\n * Returns a string with all empty or whitespace-only lines at the start removed.\n *\n * Uses the same definition for whitespace as `String.prototype.trim()`.\n */\nexport function trimEmptyLinesStart(s: string): string {\n const lines = s.split(\"\\n\");\n const firstNonEmptyLineIndex = lines.findIndex((line) => line.trim() !== \"\");\n // If all lines are empty or whitespace-only, return an empty string\n if (firstNonEmptyLineIndex === -1) return \"\";\n return lines.slice(firstNonEmptyLineIndex).join(\"\\n\");\n}\nimport.meta.vitest?.test(\"trimEmptyLinesStart\", ({ expect }) => {\n expect(trimEmptyLinesStart(\"\")).toBe(\"\");\n expect(trimEmptyLinesStart(\"hello\")).toBe(\"hello\");\n expect(trimEmptyLinesStart(\"\\nhello\")).toBe(\"hello\");\n expect(trimEmptyLinesStart(\"\\n\\nhello\")).toBe(\"hello\");\n expect(trimEmptyLinesStart(\" \\n\\t\\nhello\")).toBe(\"hello\");\n expect(trimEmptyLinesStart(\"\\n\\nhello\\nworld\")).toBe(\"hello\\nworld\");\n expect(trimEmptyLinesStart(\"hello\\n\\nworld\")).toBe(\"hello\\n\\nworld\");\n expect(trimEmptyLinesStart(\"hello\\nworld\\n\")).toBe(\"hello\\nworld\\n\");\n expect(trimEmptyLinesStart(\"\\n \\n\\nhello\\n \\nworld\")).toBe(\"hello\\n \\nworld\");\n // Edge case: all lines are empty\n expect(trimEmptyLinesStart(\"\\n\\n \\n\\t\")).toBe(\"\");\n});\n\n/**\n * Returns a string with all empty or whitespace-only lines at the end removed.\n *\n * Uses the same definition for whitespace as `String.prototype.trim()`.\n */\nexport function trimEmptyLinesEnd(s: string): string {\n const lines = s.split(\"\\n\");\n const lastNonEmptyLineIndex = findLastIndex(lines, (line) => line.trim() !== \"\");\n return lines.slice(0, lastNonEmptyLineIndex + 1).join(\"\\n\");\n}\nimport.meta.vitest?.test(\"trimEmptyLinesEnd\", ({ expect }) => {\n expect(trimEmptyLinesEnd(\"\")).toBe(\"\");\n expect(trimEmptyLinesEnd(\"hello\")).toBe(\"hello\");\n expect(trimEmptyLinesEnd(\"hello\\n\")).toBe(\"hello\");\n expect(trimEmptyLinesEnd(\"hello\\n\\n\")).toBe(\"hello\");\n expect(trimEmptyLinesEnd(\"hello\\n \\n\\t\")).toBe(\"hello\");\n expect(trimEmptyLinesEnd(\"hello\\nworld\\n\\n\")).toBe(\"hello\\nworld\");\n expect(trimEmptyLinesEnd(\"hello\\n\\nworld\")).toBe(\"hello\\n\\nworld\");\n expect(trimEmptyLinesEnd(\"\\nhello\\nworld\")).toBe(\"\\nhello\\nworld\");\n expect(trimEmptyLinesEnd(\"hello\\n \\nworld\\n\\n \")).toBe(\"hello\\n \\nworld\");\n // Edge case: all lines are empty\n expect(trimEmptyLinesEnd(\"\\n\\n \\n\\t\")).toBe(\"\");\n});\n\n/**\n * Returns a string with all empty or whitespace-only lines trimmed at the start and end.\n *\n * Uses the same definition for whitespace as `String.prototype.trim()`.\n */\nexport function trimLines(s: string): string {\n return trimEmptyLinesEnd(trimEmptyLinesStart(s));\n}\nimport.meta.vitest?.test(\"trimLines\", ({ expect }) => {\n expect(trimLines(\"\")).toBe(\"\");\n expect(trimLines(\" \")).toBe(\"\");\n expect(trimLines(\" \\n \")).toBe(\"\");\n expect(trimLines(\" abc \")).toBe(\" abc \");\n expect(trimLines(\"\\n \\nLine1\\nLine2\\n \\n\")).toBe(\"Line1\\nLine2\");\n expect(trimLines(\"Line1\\n \\nLine2\")).toBe(\"Line1\\n \\nLine2\");\n expect(trimLines(\" \\n \\n\\t\")).toBe(\"\");\n expect(trimLines(\" Hello World\")).toBe(\" Hello World\");\n expect(trimLines(\"\\n\")).toBe(\"\");\n expect(trimLines(\"\\t \\n\\t\\tLine1 \\n \\nLine2\\t\\t\\n\\t \")).toBe(\"\\t\\tLine1 \\n \\nLine2\\t\\t\");\n});\n\n\n/**\n * A template literal tag that returns the same string as the template literal without a tag.\n *\n * Useful for implementing your own template literal tags.\n */\nexport function templateIdentity(strings: TemplateStringsArray | readonly string[], ...values: string[]): string {\n if (values.length !== strings.length - 1) throw new HexclaveAssertionError(\"Invalid number of values; must be one less than strings\", { strings, values });\n\n return strings.reduce((result, str, i) => result + str + (values[i] ?? ''), '');\n}\nimport.meta.vitest?.test(\"templateIdentity\", ({ expect }) => {\n expect(templateIdentity`Hello World`).toBe(\"Hello World\");\n expect(templateIdentity`${\"Hello\"}`).toBe(\"Hello\");\n const greeting = \"Hello\";\n const subject = \"World\";\n expect(templateIdentity`${greeting}, ${subject}!`).toBe(\"Hello, World!\");\n expect(templateIdentity`${\"A\"}${\"B\"}${\"C\"}`).toBe(\"ABC\");\n expect(templateIdentity`Start${\"\"}Middle${\"\"}End`).toBe(\"StartMiddleEnd\");\n expect(templateIdentity``).toBe(\"\");\n expect(templateIdentity`Line1\nLine2`).toBe(\"Line1\\nLine2\");\n expect(templateIdentity([\"a \", \" scientific \", \"gun\"], \"certain\", \"rail\")).toBe(\"a certain scientific railgun\");\n expect(templateIdentity([\"only one part\"])).toBe(\"only one part\");\n expect(() => templateIdentity([\"a \", \"b\", \"c\"], \"only one\")).toThrow(\"Invalid number of values\");\n expect(() => templateIdentity([\"a\", \"b\"], \"x\", \"y\")).toThrow(\"Invalid number of values\");\n});\n\n\nexport function deindent(code: string): string;\nexport function deindent(strings: TemplateStringsArray | readonly string[], ...values: any[]): string;\nexport function deindent(strings: string | readonly string[], ...values: any[]): string {\n if (typeof strings === \"string\") return deindent([strings]);\n return templateIdentity(...deindentTemplate(strings, ...values));\n}\n\nexport function deindentTemplate(strings: TemplateStringsArray | readonly string[], ...values: any[]): [string[], ...string[]] {\n if (values.length !== strings.length - 1) throw new HexclaveAssertionError(\"Invalid number of values; must be one less than strings\", { strings, values });\n\n const trimmedStrings = [...strings];\n trimmedStrings[0] = trimEmptyLinesStart(trimmedStrings[0] + \"+\").slice(0, -1);\n trimmedStrings[trimmedStrings.length - 1] = trimEmptyLinesEnd(\"+\" + trimmedStrings[trimmedStrings.length - 1]).slice(1);\n\n const indentation = trimmedStrings\n .join(\"${SOME_VALUE}\")\n .split(\"\\n\")\n .filter((line) => line.trim() !== \"\")\n .map((line) => getWhitespacePrefix(line).length)\n .reduce((min, current) => Math.min(min, current), Infinity);\n\n const deindentedStrings = trimmedStrings\n .map((string, stringIndex) => {\n return string\n .split(\"\\n\")\n .map((line, lineIndex) => stringIndex !== 0 && lineIndex === 0 ? line : line.substring(indentation))\n .join(\"\\n\");\n });\n\n const indentedValues = values.map((value, i) => {\n const firstLineIndentation = getWhitespacePrefix(deindentedStrings[i].split(\"\\n\").at(-1)!);\n return `${value}`.replaceAll(\"\\n\", `\\n${firstLineIndentation}`);\n });\n\n return [deindentedStrings, ...indentedValues];\n}\nimport.meta.vitest?.test(\"deindent\", ({ expect }) => {\n // Test with string input\n expect(deindent(\" hello\")).toBe(\"hello\");\n expect(deindent(\" hello\\n world\")).toBe(\"hello\\nworld\");\n expect(deindent(\" hello\\n world\")).toBe(\"hello\\n world\");\n expect(deindent(\"\\n hello\\n world\\n\")).toBe(\"hello\\nworld\");\n\n // Test with empty input\n expect(deindent(\"\")).toBe(\"\");\n\n // Test with template literal\n expect(deindent`\n hello\n world\n `).toBe(\"hello\\nworld\");\n\n expect(deindent`\n hello\n world\n `).toBe(\"hello\\n world\");\n\n // Test with values\n const value = \"test\";\n expect(deindent`\n hello ${value}\n world\n `).toBe(`hello ${value}\\nworld`);\n\n // Test with multiline values\n expect(deindent`\n hello\n to ${\"line1\\n line2\"}\n world\n `).toBe(`hello\\n to line1\\n line2\\nworld`);\n\n // Leading whitespace values\n expect(deindent`\n ${\" \"}A\n ${\" \"}B\n ${\" \"}C\n `).toBe(` A\\n B\\n C`);\n\n // Trailing whitespaces (note: there are two whitespaces each after A and after C)\n expect(deindent`\n A \n B ${\" \"}\n C \n `).toBe(`A \\nB \\nC `);\n\n // Test with mixed indentation\n expect(deindent`\n hello\n world\n !\n `).toBe(\"hello\\n world\\n !\");\n\n // Test error cases\n expect(() => deindent([\"a\", \"b\", \"c\"], \"too\", \"many\", \"values\")).toThrow(\"Invalid number of values\");\n});\n\nexport function extractScopes(scope: string, removeDuplicates=true): string[] {\n // TODO what is this for? can we move this into the OAuth code in the backend?\n const trimmedString = scope.trim();\n const scopesArray = trimmedString.split(/\\s+/);\n const filtered = scopesArray.filter(scope => scope.length > 0);\n return removeDuplicates ? [...new Set(filtered)] : filtered;\n}\nimport.meta.vitest?.test(\"extractScopes\", ({ expect }) => {\n // Test with empty string\n expect(extractScopes(\"\")).toEqual([]);\n\n // Test with single scope\n expect(extractScopes(\"read\")).toEqual([\"read\"]);\n\n // Test with multiple scopes\n expect(extractScopes(\"read write\")).toEqual([\"read\", \"write\"]);\n\n // Test with extra whitespace\n expect(extractScopes(\" read write \")).toEqual([\"read\", \"write\"]);\n\n // Test with newlines and tabs\n expect(extractScopes(\"read\\nwrite\\tdelete\")).toEqual([\"read\", \"write\", \"delete\"]);\n\n // Test with duplicates (default behavior)\n expect(extractScopes(\"read write read\")).toEqual([\"read\", \"write\"]);\n\n // Test with duplicates (explicitly set to remove)\n expect(extractScopes(\"read write read\", true)).toEqual([\"read\", \"write\"]);\n\n // Test with duplicates (explicitly set to keep)\n expect(extractScopes(\"read write read\", false)).toEqual([\"read\", \"write\", \"read\"]);\n});\n\nexport function mergeScopeStrings(...scopes: string[]): string {\n // TODO what is this for? can we move this into the OAuth code in the backend?\n const allScope = scopes.map((s) => extractScopes(s)).flat().join(\" \");\n return extractScopes(allScope).join(\" \");\n}\nimport.meta.vitest?.test(\"mergeScopeStrings\", ({ expect }) => {\n // Test with empty input\n expect(mergeScopeStrings()).toBe(\"\");\n\n // Test with single scope string\n expect(mergeScopeStrings(\"read write\")).toBe(\"read write\");\n\n // Test with multiple scope strings\n expect(mergeScopeStrings(\"read\", \"write\")).toBe(\"read write\");\n\n // Test with overlapping scopes\n expect(mergeScopeStrings(\"read write\", \"write delete\")).toBe(\"read write delete\");\n\n // Test with extra whitespace\n expect(mergeScopeStrings(\" read write \", \" delete \")).toBe(\"read write delete\");\n\n // Test with duplicates across strings\n expect(mergeScopeStrings(\"read write\", \"write delete\", \"read\")).toBe(\"read write delete\");\n\n // Test with empty strings\n expect(mergeScopeStrings(\"read write\", \"\", \"delete\")).toBe(\"read write delete\");\n});\n\nexport function escapeTemplateLiteral(s: string): string {\n return s.replaceAll(\"\\\\\", \"\\\\\\\\\").replaceAll(\"`\", \"\\\\`\").replaceAll(\"${\", \"\\\\${\");\n}\nimport.meta.vitest?.test(\"escapeTemplateLiteral\", ({ expect }) => {\n // Test with empty string\n expect(escapeTemplateLiteral(\"\")).toBe(\"\");\n\n // Test with normal string (no special characters)\n expect(escapeTemplateLiteral(\"hello world\")).toBe(\"hello world\");\n\n // Test with backtick\n const input1 = \"hello `world`\";\n const output1 = escapeTemplateLiteral(input1);\n // Verify backticks are escaped\n expect(output1).toBe(\"hello \\\\`world\\\\`\");\n\n // Test with backslash\n const input2 = \"hello \\\\world\";\n const output2 = escapeTemplateLiteral(input2);\n // Verify backslashes are escaped\n expect(output2).toBe(\"hello \\\\\\\\world\");\n\n // Test with dollar sign\n const input3 = \"hello $world\";\n const output3 = escapeTemplateLiteral(input3);\n // Verify dollar signs are escaped\n expect(output3).toBe(\"hello $world\");\n\n // Test with dollar sign in interpolation\n const input4 = \"hello ${$world\";\n const output4 = escapeTemplateLiteral(input4);\n // Verify dollar signs are escaped\n expect(output4).toBe(\"hello \\\\${$world\");\n\n // Test with multiple special characters\n const input5 = \"`hello` ${world\\\\\";\n const output5 = escapeTemplateLiteral(input5);\n // Verify all special characters are escaped\n expect(output5).toBe(\"\\\\`hello\\\\` \\\\${world\\\\\\\\\");\n\n // Test with already escaped characters\n const input6 = \"\\\\`hello\\\\`\";\n const output6 = escapeTemplateLiteral(input6);\n expect(output6).toBe(\"\\\\\\\\\\\\`hello\\\\\\\\\\\\`\");\n});\n\n/**\n * Some classes have different constructor names in different environments (eg. `Headers` is sometimes called `_Headers`,\n * so we create an object of overrides to handle these cases.\n */\nconst nicifiableClassNameOverrides = new Map(Object.entries({\n Headers,\n} as Record<string, unknown>).map(([k, v]) => [v, k]));\nexport type Nicifiable = {\n getNicifiableKeys?(): PropertyKey[],\n getNicifiedObjectExtraLines?(): string[],\n};\nexport type NicifyOptions = {\n maxDepth: number,\n currentIndent: string,\n lineIndent: string,\n multiline: boolean,\n refs: Map<unknown, string>,\n path: string,\n parent: null | {\n options: NicifyOptions,\n value: unknown,\n },\n keyInParent: PropertyKey | null,\n hideFields: PropertyKey[],\n overrides: (...args: Parameters<typeof nicify>) => string | null,\n};\nexport function nicify(\n value: unknown,\n options: Partial<NicifyOptions> = {},\n): string {\n const fullOptions: NicifyOptions = {\n maxDepth: 5,\n currentIndent: \"\",\n lineIndent: \" \",\n multiline: true,\n refs: new Map(),\n path: \"value\",\n parent: null,\n overrides: () => null,\n keyInParent: null,\n hideFields: [],\n ...filterUndefined(options),\n };\n const {\n maxDepth,\n currentIndent,\n lineIndent,\n multiline,\n refs,\n path,\n overrides,\n hideFields,\n } = fullOptions;\n const nl = `\\n${currentIndent}`;\n\n const overrideResult = overrides(value, options);\n if (overrideResult !== null) return overrideResult;\n\n if ([\"function\", \"object\", \"symbol\"].includes(typeof value) && value !== null) {\n if (refs.has(value)) {\n return `Ref<${refs.get(value)}>`;\n }\n refs.set(value, path);\n }\n\n const newOptions: NicifyOptions = {\n maxDepth: maxDepth - 1,\n currentIndent,\n lineIndent,\n multiline,\n refs,\n path: path + \"->[unknown property]\",\n overrides,\n parent: { value, options: fullOptions },\n keyInParent: null,\n hideFields: [],\n };\n const nestedNicify = (newValue: unknown, newPath: string, keyInParent: PropertyKey | null, options: Partial<NicifyOptions> = {}) => {\n return nicify(newValue, {\n ...newOptions,\n path: newPath,\n currentIndent: currentIndent + lineIndent,\n keyInParent,\n ...options,\n });\n };\n\n switch (typeof value) {\n case \"boolean\": case \"number\": {\n return JSON.stringify(value);\n }\n case \"string\": {\n const isDeindentable = (v: string) => deindent(v) === v && v.includes(\"\\n\");\n const wrapInDeindent = (v: string) => deindent`\n deindent\\`\n ${currentIndent + lineIndent}${escapeTemplateLiteral(v).replaceAll(\"\\n\", nl + lineIndent)}\n ${currentIndent}\\`\n `;\n if (isDeindentable(value)) {\n return wrapInDeindent(value);\n } else if (value.endsWith(\"\\n\") && isDeindentable(value.slice(0, -1))) {\n return wrapInDeindent(value.slice(0, -1)) + ' + \"\\\\n\"';\n } else {\n return JSON.stringify(value);\n }\n }\n case \"undefined\": {\n return \"undefined\";\n }\n case \"symbol\": {\n return value.toString();\n }\n case \"bigint\": {\n return `${value}n`;\n }\n case \"function\": {\n if (value.name) return `function ${value.name}(...) { ... }`;\n return `(...) => { ... }`;\n }\n case \"object\": {\n if (value === null) return \"null\";\n if (Array.isArray(value)) {\n const extraLines = getNicifiedObjectExtraLines(value);\n const resValueLength = value.length + extraLines.length;\n if (resValueLength === 0) return \"[]\"; // early return in case maxDepth <= 0\n if (maxDepth <= 0) return `[...]`;\n const resValues = value.map((v, i) => nestedNicify(v, `${path}[${i}]`, i));\n resValues.push(...extraLines);\n if (resValues.length !== resValueLength) throw new HexclaveAssertionError(\"nicify of object: resValues.length !== resValueLength\", { value, resValues, resValueLength });\n const shouldIndent = resValues.length > 4 || resValues.some(x => (resValues.length > 1 && x.length > 4) || x.includes(\"\\n\"));\n if (shouldIndent) {\n return `[${nl}${resValues.map(x => `${lineIndent}${x},${nl}`).join(\"\")}]`;\n } else {\n return `[${resValues.join(\", \")}]`;\n }\n }\n if (value instanceof Date) {\n return `Date(${nestedNicify(value.toISOString(), `${path}.toISOString()`, null)})`;\n }\n if (value instanceof URL) {\n return `URL(${nestedNicify(value.toString(), `${path}.toString()`, null)})`;\n }\n if (ArrayBuffer.isView(value)) {\n return `${value.constructor.name}([${value.toString()}])`;\n }\n if (value instanceof ArrayBuffer) {\n return `ArrayBuffer [${new Uint8Array(value).toString()}]`;\n }\n if (value instanceof Error) {\n let stack = value.stack ?? \"\";\n const toString = value.toString();\n if (!stack.startsWith(toString)) stack = `${toString}\\n${stack}`; // some browsers don't include the error message in the stack, some do\n stack = stack.trimEnd();\n stack = stack.replace(/\\n\\s+/g, `\\n${lineIndent}${lineIndent}`);\n stack = stack.replace(\"\\n\", `\\n${lineIndent}Stack:\\n`);\n if (Object.keys(value).length > 0) {\n stack += `\\n${lineIndent}Extra properties: ${nestedNicify(Object.fromEntries(Object.entries(value)), path, null)}`;\n }\n if (value.cause) {\n stack += `\\n${lineIndent}Cause:\\n${lineIndent}${lineIndent}${nestedNicify(value.cause, path, null, { currentIndent: currentIndent + lineIndent + lineIndent })}`;\n }\n stack = stack.replaceAll(\"\\n\", `\\n${currentIndent}`);\n return stack;\n }\n\n const constructorName = [null, Object.prototype].includes(Object.getPrototypeOf(value)) ? null : (nicifiableClassNameOverrides.get(value.constructor) ?? value.constructor.name);\n const constructorString = constructorName ? `${constructorName} ` : \"\";\n\n const entries = getNicifiableEntries(value).filter(([k]) => !hideFields.includes(k));\n const extraLines = [\n ...getNicifiedObjectExtraLines(value),\n ...hideFields.length > 0 ? [`<some fields may have been hidden>`] : [],\n ];\n const resValueLength = entries.length + extraLines.length;\n if (resValueLength === 0) return `${constructorString}{}`;\n if (maxDepth <= 0) return `${constructorString}{ ... }`;\n const resValues = entries.map(([k, v], keyIndex) => {\n const keyNicified = nestedNicify(k, `Object.keys(${path})[${keyIndex}]`, null);\n const keyInObjectLiteral = typeof k === \"string\" ? nicifyPropertyString(k) : `[${keyNicified}]`;\n if (typeof v === \"function\" && v.name === k) {\n return `${keyInObjectLiteral}(...): { ... }`;\n } else {\n return `${keyInObjectLiteral}: ${nestedNicify(v, `${path}[${keyNicified}]`, k)}`;\n }\n });\n resValues.push(...extraLines);\n if (resValues.length !== resValueLength) throw new HexclaveAssertionError(\"nicify of object: resValues.length !== resValueLength\", { value, resValues, resValueLength });\n const shouldIndent = resValues.length > 1 || resValues.some(x => x.includes(\"\\n\"));\n\n if (resValues.length === 0) return `${constructorString}{}`;\n if (shouldIndent) {\n return `${constructorString}{${nl}${resValues.map(x => `${lineIndent}${x},${nl}`).join(\"\")}}`;\n } else {\n return `${constructorString}{ ${resValues.join(\", \")} }`;\n }\n }\n default: {\n return `${typeof value}<${value}>`;\n }\n }\n}\n\nexport function replaceAll(input: string, searchValue: string, replaceValue: string): string {\n if (searchValue === \"\") throw new HexclaveAssertionError(\"replaceAll: searchValue is empty\");\n return input.split(searchValue).join(replaceValue);\n}\nimport.meta.vitest?.test(\"replaceAll\", ({ expect }) => {\n expect(replaceAll(\"hello world\", \"o\", \"x\")).toBe(\"hellx wxrld\");\n expect(replaceAll(\"aaa\", \"a\", \"b\")).toBe(\"bbb\");\n expect(replaceAll(\"\", \"a\", \"b\")).toBe(\"\");\n expect(replaceAll(\"abc\", \"b\", \"\")).toBe(\"ac\");\n expect(replaceAll(\"test.test.test\", \".\", \"_\")).toBe(\"test_test_test\");\n expect(replaceAll(\"a.b*c\", \".\", \"x\")).toBe(\"axb*c\");\n expect(replaceAll(\"a*b*c\", \"*\", \"x\")).toBe(\"axbxc\");\n expect(replaceAll(\"hello hello\", \"hello\", \"hi\")).toBe(\"hi hi\");\n});\n\nfunction nicifyPropertyString(str: string) {\n return JSON.stringify(str);\n}\nimport.meta.vitest?.test(\"nicifyPropertyString\", ({ expect }) => {\n // Test valid identifiers\n expect(nicifyPropertyString(\"validName\")).toBe('\"validName\"');\n expect(nicifyPropertyString(\"_validName\")).toBe('\"_validName\"');\n expect(nicifyPropertyString(\"valid123Name\")).toBe('\"valid123Name\"');\n\n // Test invalid identifiers\n expect(nicifyPropertyString(\"123invalid\")).toBe('\"123invalid\"');\n expect(nicifyPropertyString(\"invalid-name\")).toBe('\"invalid-name\"');\n expect(nicifyPropertyString(\"invalid space\")).toBe('\"invalid space\"');\n expect(nicifyPropertyString(\"$invalid\")).toBe('\"$invalid\"');\n expect(nicifyPropertyString(\"\")).toBe('\"\"');\n\n // Test with special characters\n expect(nicifyPropertyString(\"property!\")).toBe('\"property!\"');\n expect(nicifyPropertyString(\"property.name\")).toBe('\"property.name\"');\n\n // Test with escaped characters\n expect(nicifyPropertyString(\"\\\\\")).toBe('\"\\\\\\\\\"');\n expect(nicifyPropertyString('\"')).toBe('\"\\\\\"\"');\n});\n\nfunction getNicifiableKeys(value: Nicifiable | object) {\n const overridden = (\"getNicifiableKeys\" in value ? value.getNicifiableKeys?.bind(value) : null)?.();\n if (overridden != null) return overridden;\n if (value instanceof Response) {\n return ['status', 'headers'];\n }\n const keys = Object.keys(value).sort();\n return unique(keys);\n}\nimport.meta.vitest?.test(\"getNicifiableKeys\", ({ expect }) => {\n // Test regular object\n expect(getNicifiableKeys({ b: 1, a: 2, c: 3 })).toEqual([\"a\", \"b\", \"c\"]);\n\n // Test empty object\n expect(getNicifiableKeys({})).toEqual([]);\n\n\n expect(getNicifiableKeys(new Response())).toEqual([\"status\", \"headers\"]);\n\n // Test object with custom getNicifiableKeys\n const customObject = {\n a: 1,\n b: 2,\n getNicifiableKeys() {\n return [\"customKey1\", \"customKey2\"];\n }\n };\n expect(getNicifiableKeys(customObject)).toEqual([\"customKey1\", \"customKey2\"]);\n});\n\nfunction getNicifiableEntries(value: Nicifiable | object): [PropertyKey, unknown][] {\n const recordLikes = [Headers];\n function isRecordLike(value: unknown): value is InstanceType<typeof recordLikes[number]> {\n return recordLikes.some(x => value instanceof x);\n }\n\n if (isRecordLike(value)) {\n return [...value.entries()].sort(([a], [b]) => stringCompare(`${a}`, `${b}`));\n }\n const keys = getNicifiableKeys(value);\n return keys.map((k) => [k, value[k as never]] as [PropertyKey, unknown]);\n}\n\nfunction getNicifiedObjectExtraLines(value: Nicifiable | object) {\n return (\"getNicifiedObjectExtraLines\" in value ? value.getNicifiedObjectExtraLines : null)?.() ?? [];\n}\n"],"mappings":"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"}
|