@nextsparkjs/core 0.1.0-beta.188 → 0.1.0-beta.189
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/api/keys/ApiKeyDisplay.js +19 -19
- package/dist/components/api/keys/CreateApiKeyDialog.js +21 -21
- package/dist/components/app/layouts/PublicNavbar.d.ts.map +1 -1
- package/dist/components/app/layouts/PublicNavbar.js +34 -16
- package/dist/components/app/misc/ThemeToggle.d.ts.map +1 -1
- package/dist/components/app/misc/ThemeToggle.js +3 -4
- package/dist/components/auth/SessionCookieRefresher.d.ts +5 -0
- package/dist/components/auth/SessionCookieRefresher.d.ts.map +1 -1
- package/dist/components/auth/SessionCookieRefresher.js +7 -1
- package/dist/components/auth/forms/LoginForm.d.ts.map +1 -1
- package/dist/components/auth/forms/LoginForm.js +49 -12
- package/dist/components/auth/forms/SignupForm.d.ts.map +1 -1
- package/dist/components/auth/forms/SignupForm.js +4 -3
- package/dist/components/dashboard/block-editor/block-settings-panel.js +1 -1
- package/dist/components/dashboard/block-editor/floating-block-toolbar.js +1 -1
- package/dist/components/dashboard/block-editor/sortable-block.js +1 -1
- package/dist/components/dashboard/layouts/Sidebar.d.ts.map +1 -1
- package/dist/components/dashboard/layouts/Sidebar.js +8 -6
- package/dist/components/dashboard/layouts/TopNavbar.d.ts.map +1 -1
- package/dist/components/dashboard/layouts/TopNavbar.js +51 -54
- package/dist/components/dashboard/misc/NotificationsDropdown.d.ts.map +1 -1
- package/dist/components/dashboard/misc/NotificationsDropdown.js +17 -15
- package/dist/components/dashboard/misc/SearchDropdown.d.ts.map +1 -1
- package/dist/components/dashboard/misc/SearchDropdown.js +19 -22
- package/dist/components/dashboard/mobile/MobileBottomNav.js +1 -1
- package/dist/components/dashboard/mobile/MobileTopBar.js +2 -2
- package/dist/components/dashboard/navigation/DynamicNavigation.js +5 -5
- package/dist/components/devtools/BlockDetailViewer.js +1 -1
- package/dist/components/devtools/BlocksViewer.js +1 -1
- package/dist/components/entities/EntityChildManager.js +5 -5
- package/dist/components/entities/EntityDetailPage.d.ts.map +1 -1
- package/dist/components/entities/EntityDetailPage.js +16 -15
- package/dist/components/entities/EntityFieldRenderer.d.ts.map +1 -1
- package/dist/components/entities/EntityFieldRenderer.js +12 -7
- package/dist/components/entities/EntityPageHeader.js +5 -5
- package/dist/components/entities/ErrorBoundary.d.ts.map +1 -1
- package/dist/components/entities/ErrorBoundary.js +20 -21
- package/dist/components/entities/wrappers/EntityDetailWrapper.js +5 -5
- package/dist/components/entities/wrappers/EntityFormWrapper.js +2 -2
- package/dist/components/entities/wrappers/EntityListWrapper.js +3 -3
- package/dist/components/permissions/NoPermission.js +10 -10
- package/dist/components/public/pageBuilder/PageRenderer.d.ts.map +1 -1
- package/dist/components/public/pageBuilder/PageRenderer.js +2 -1
- package/dist/components/settings/SettingsPageSkeleton.js +4 -4
- package/dist/components/settings/layouts/SettingsSidebar.js +6 -6
- package/dist/components/shared/MultiSelectFilter.d.ts +3 -1
- package/dist/components/shared/MultiSelectFilter.d.ts.map +1 -1
- package/dist/components/shared/MultiSelectFilter.js +7 -3
- package/dist/components/shared/SearchInput.d.ts +2 -0
- package/dist/components/shared/SearchInput.d.ts.map +1 -1
- package/dist/components/shared/SearchInput.js +64 -6
- package/dist/components/ui/address-input.js +18 -18
- package/dist/components/ui/audio-upload.js +9 -9
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/combobox.js +4 -4
- package/dist/components/ui/country-select.d.ts.map +1 -1
- package/dist/components/ui/country-select.js +3 -3
- package/dist/components/ui/currency-select.d.ts.map +1 -1
- package/dist/components/ui/currency-select.js +3 -3
- package/dist/components/ui/dynamic-icon.d.ts.map +1 -1
- package/dist/components/ui/dynamic-icon.js +3 -2
- package/dist/components/ui/file-upload.js +7 -7
- package/dist/components/ui/image-upload.js +8 -8
- package/dist/components/ui/multi-select.d.ts +2 -1
- package/dist/components/ui/multi-select.d.ts.map +1 -1
- package/dist/components/ui/multi-select.js +4 -3
- package/dist/components/ui/phone-input.d.ts.map +1 -1
- package/dist/components/ui/phone-input.js +3 -3
- package/dist/components/ui/relation-display.js +1 -1
- package/dist/components/ui/simple-relation-select.d.ts +2 -1
- package/dist/components/ui/simple-relation-select.d.ts.map +1 -1
- package/dist/components/ui/simple-relation-select.js +7 -6
- package/dist/components/ui/tags-input.d.ts.map +1 -1
- package/dist/components/ui/tags-input.js +1 -1
- package/dist/components/ui/timezone-select.d.ts.map +1 -1
- package/dist/components/ui/timezone-select.js +3 -3
- package/dist/components/ui/user-display.js +4 -4
- package/dist/components/ui/user-select.d.ts.map +1 -1
- package/dist/components/ui/user-select.js +9 -9
- package/dist/components/ui/video-upload.js +9 -9
- package/dist/contexts/SubscriptionContext.d.ts.map +1 -1
- package/dist/contexts/SubscriptionContext.js +5 -1
- package/dist/contexts/TeamContext.d.ts.map +1 -1
- package/dist/contexts/TeamContext.js +83 -26
- package/dist/emails/otp-verification.d.ts.map +1 -1
- package/dist/emails/otp-verification.js +3 -2
- package/dist/hooks/useAccountPreferencesSync.d.ts +13 -0
- package/dist/hooks/useAccountPreferencesSync.d.ts.map +1 -0
- package/dist/hooks/useAccountPreferencesSync.js +95 -0
- package/dist/hooks/useAuth.d.ts +202 -15
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +49 -13
- package/dist/hooks/useEntityConfig.js +2 -2
- package/dist/hooks/useEntitySearch.js +10 -10
- package/dist/hooks/useNotifications.js +12 -12
- package/dist/hooks/usePrefetch.d.ts.map +1 -1
- package/dist/hooks/usePrefetch.js +6 -2
- package/dist/hooks/useSearch.js +15 -15
- package/dist/hooks/useSessionCookieRefresh.d.ts +18 -1
- package/dist/hooks/useSessionCookieRefresh.d.ts.map +1 -1
- package/dist/hooks/useSessionCookieRefresh.js +17 -4
- package/dist/hooks/useSessionHint.d.ts +12 -0
- package/dist/hooks/useSessionHint.d.ts.map +1 -0
- package/dist/hooks/useSessionHint.js +15 -0
- package/dist/hooks/useTranslationPreload.js +6 -6
- package/dist/i18n.d.ts +13 -0
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +2 -27
- package/dist/lib/actions/entity.actions.d.ts.map +1 -1
- package/dist/lib/actions/entity.actions.js +3 -2
- package/dist/lib/api/auth/dual-auth.d.ts +4 -1
- package/dist/lib/api/auth/dual-auth.d.ts.map +1 -1
- package/dist/lib/api/auth/dual-auth.js +5 -16
- package/dist/lib/api/entities.js +33 -33
- package/dist/lib/api/keys.d.ts +27 -27
- package/dist/lib/api/keys.js +27 -27
- package/dist/lib/auth/callback-url.d.ts +11 -0
- package/dist/lib/auth/callback-url.d.ts.map +1 -0
- package/dist/lib/auth/callback-url.js +14 -0
- package/dist/lib/auth/otp-config.d.ts +55 -0
- package/dist/lib/auth/otp-config.d.ts.map +1 -0
- package/dist/lib/auth/otp-config.js +48 -0
- package/dist/lib/auth/registration-helpers.d.ts.map +1 -1
- package/dist/lib/auth/registration-helpers.js +3 -1
- package/dist/lib/auth/session-hint.d.ts +31 -0
- package/dist/lib/auth/session-hint.d.ts.map +1 -0
- package/dist/lib/auth/session-hint.js +37 -0
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +6 -4
- package/dist/lib/blocks/loader.d.ts +3 -11
- package/dist/lib/blocks/loader.d.ts.map +1 -1
- package/dist/lib/blocks/loader.js +1 -9
- package/dist/lib/blocks/loader.server.d.ts +18 -0
- package/dist/lib/blocks/loader.server.d.ts.map +1 -0
- package/dist/lib/blocks/loader.server.js +11 -0
- package/dist/lib/blocks/sanitize-html.d.ts +31 -0
- package/dist/lib/blocks/sanitize-html.d.ts.map +1 -0
- package/dist/lib/blocks/sanitize-html.js +60 -0
- package/dist/lib/config/config-sync.d.ts +1 -0
- package/dist/lib/config/config-sync.d.ts.map +1 -1
- package/dist/lib/config/config-sync.js +4 -1
- package/dist/lib/config/types.d.ts +48 -0
- package/dist/lib/config/types.d.ts.map +1 -1
- package/dist/lib/email/types.d.ts +6 -0
- package/dist/lib/email/types.d.ts.map +1 -1
- package/dist/lib/entities/serialization.d.ts.map +1 -1
- package/dist/lib/entities/serialization.js +3 -6
- package/dist/lib/icons.d.ts +12 -0
- package/dist/lib/icons.d.ts.map +1 -0
- package/dist/lib/icons.js +30 -0
- package/dist/lib/locale.d.ts +25 -1
- package/dist/lib/locale.d.ts.map +1 -1
- package/dist/lib/locale.js +49 -35
- package/dist/lib/mcp/engine.js +1 -1
- package/dist/lib/mcp/errors.js +17 -17
- package/dist/lib/mcp/schema-builder.js +16 -16
- package/dist/lib/mcp/tool-generator.js +18 -18
- package/dist/lib/search-highlighting.d.ts +7 -0
- package/dist/lib/search-highlighting.d.ts.map +1 -1
- package/dist/lib/search-highlighting.js +6 -2
- package/dist/lib/selectors/core-selectors.d.ts +2 -0
- package/dist/lib/selectors/core-selectors.d.ts.map +1 -1
- package/dist/lib/selectors/domains/auth.selectors.d.ts +1 -0
- package/dist/lib/selectors/domains/auth.selectors.d.ts.map +1 -1
- package/dist/lib/selectors/domains/auth.selectors.js +1 -0
- package/dist/lib/selectors/domains/entities.selectors.d.ts +2 -0
- package/dist/lib/selectors/domains/entities.selectors.d.ts.map +1 -1
- package/dist/lib/selectors/domains/entities.selectors.js +2 -0
- package/dist/lib/selectors/selectors.d.ts +4 -0
- package/dist/lib/selectors/selectors.d.ts.map +1 -1
- package/dist/lib/services/block.service.js +1 -1
- package/dist/lib/teams/active-team-cookie.d.ts +24 -0
- package/dist/lib/teams/active-team-cookie.d.ts.map +1 -0
- package/dist/lib/teams/active-team-cookie.js +17 -0
- package/dist/lib/teams/dashboard-team.d.ts +20 -0
- package/dist/lib/teams/dashboard-team.d.ts.map +1 -0
- package/dist/lib/teams/dashboard-team.js +38 -0
- package/dist/lib/teams/schema.d.ts.map +1 -1
- package/dist/lib/teams/schema.js +1 -1
- package/dist/lib/template-resolver.d.ts.map +1 -1
- package/dist/lib/template-resolver.js +0 -1
- package/dist/lib/theme/get-default-theme-mode.d.ts +7 -4
- package/dist/lib/theme/get-default-theme-mode.d.ts.map +1 -1
- package/dist/lib/theme/get-default-theme-mode.js +2 -44
- package/dist/messages/de/auth.json +4 -2
- package/dist/messages/de/common.json +83 -3
- package/dist/messages/de/email.json +1 -1
- package/dist/messages/de/index.d.ts +87 -0
- package/dist/messages/de/index.d.ts.map +1 -1
- package/dist/messages/de/settings.json +5 -0
- package/dist/messages/en/auth.json +4 -2
- package/dist/messages/en/common.json +83 -3
- package/dist/messages/en/email.json +1 -1
- package/dist/messages/en/index.d.ts +86 -0
- package/dist/messages/en/index.d.ts.map +1 -1
- package/dist/messages/en/settings.json +4 -0
- package/dist/messages/es/auth.json +4 -2
- package/dist/messages/es/common.json +83 -3
- package/dist/messages/es/email.json +1 -1
- package/dist/messages/es/index.d.ts +86 -0
- package/dist/messages/es/index.d.ts.map +1 -1
- package/dist/messages/es/settings.json +4 -0
- package/dist/messages/fr/auth.json +4 -2
- package/dist/messages/fr/common.json +83 -3
- package/dist/messages/fr/email.json +1 -1
- package/dist/messages/fr/index.d.ts +87 -0
- package/dist/messages/fr/index.d.ts.map +1 -1
- package/dist/messages/fr/settings.json +5 -0
- package/dist/messages/it/auth.json +4 -2
- package/dist/messages/it/common.json +83 -3
- package/dist/messages/it/email.json +1 -1
- package/dist/messages/it/index.d.ts +87 -0
- package/dist/messages/it/index.d.ts.map +1 -1
- package/dist/messages/it/settings.json +5 -0
- package/dist/messages/pt/auth.json +4 -2
- package/dist/messages/pt/common.json +83 -3
- package/dist/messages/pt/email.json +1 -1
- package/dist/messages/pt/index.d.ts +87 -0
- package/dist/messages/pt/index.d.ts.map +1 -1
- package/dist/messages/pt/settings.json +5 -0
- package/dist/nextspark-registries.d.ts +54 -0
- package/dist/providers/DashboardProviders.d.ts +13 -10
- package/dist/providers/DashboardProviders.d.ts.map +1 -1
- package/dist/providers/DashboardProviders.js +7 -1
- package/dist/templates/app/(auth)/forgot-password/page.tsx +2 -2
- package/dist/templates/app/(auth)/reset-password/page.tsx +6 -6
- package/dist/templates/app/403/page.tsx +6 -6
- package/dist/templates/app/api/v1/teams/switch/route.ts +24 -5
- package/dist/templates/app/dashboard/(main)/[entity]/layout.tsx +9 -7
- package/dist/templates/app/dashboard/(main)/layout.tsx +4 -3
- package/dist/templates/app/dashboard/settings/api-keys/page.tsx +36 -34
- package/dist/templates/app/dashboard/settings/profile/page.tsx +7 -6
- package/dist/templates/app/dashboard/settings/security/page.tsx +5 -4
- package/dist/templates/app/layout.ppr.tsx +8 -8
- package/dist/templates/app/layout.tsx +12 -17
- package/dist/templates/blocks/cta-section/component.tsx +5 -2
- package/dist/templates/blocks/cta-section/config.ts +3 -2
- package/dist/templates/blocks/cta-section/fields.ts +2 -2
- package/dist/templates/blocks/cta-section/schema.ts +2 -2
- package/dist/templates/blocks/features-grid/component.tsx +10 -2
- package/dist/templates/blocks/features-grid/config.ts +3 -2
- package/dist/templates/blocks/features-grid/fields.ts +2 -2
- package/dist/templates/blocks/features-grid/schema.ts +2 -2
- package/dist/templates/blocks/hero/component.tsx +6 -3
- package/dist/templates/blocks/hero/config.ts +3 -2
- package/dist/templates/blocks/hero/fields.ts +2 -2
- package/dist/templates/blocks/hero/schema.ts +2 -2
- package/dist/templates/blocks/testimonials/component.tsx +6 -3
- package/dist/templates/blocks/testimonials/config.ts +3 -2
- package/dist/templates/blocks/testimonials/fields.ts +2 -2
- package/dist/templates/blocks/testimonials/schema.ts +2 -2
- package/dist/templates/blocks/text-content/component.tsx +7 -3
- package/dist/templates/blocks/text-content/config.ts +3 -2
- package/dist/templates/blocks/text-content/fields.ts +2 -2
- package/dist/templates/blocks/text-content/schema.ts +2 -2
- package/dist/templates/contents/themes/starter/blocks/cta-section/component.tsx +102 -0
- package/dist/templates/contents/themes/starter/blocks/cta-section/config.ts +11 -0
- package/dist/templates/contents/themes/starter/blocks/cta-section/fields.ts +89 -0
- package/dist/templates/contents/themes/starter/blocks/cta-section/index.ts +6 -0
- package/dist/templates/contents/themes/starter/blocks/cta-section/schema.ts +32 -0
- package/dist/templates/contents/themes/starter/blocks/cta-section/thumbnail.png +0 -0
- package/dist/templates/contents/themes/starter/blocks/features-grid/component.tsx +119 -0
- package/dist/templates/contents/themes/starter/blocks/features-grid/config.ts +11 -0
- package/dist/templates/contents/themes/starter/blocks/features-grid/fields.ts +97 -0
- package/dist/templates/contents/themes/starter/blocks/features-grid/index.ts +6 -0
- package/dist/templates/contents/themes/starter/blocks/features-grid/schema.ts +40 -0
- package/dist/templates/contents/themes/starter/blocks/features-grid/thumbnail.png +0 -0
- package/dist/templates/contents/themes/starter/blocks/hero/component.tsx +105 -0
- package/dist/templates/contents/themes/starter/blocks/hero/config.ts +11 -0
- package/dist/templates/contents/themes/starter/blocks/hero/fields.ts +60 -0
- package/dist/templates/contents/themes/starter/blocks/hero/index.ts +6 -0
- package/dist/templates/contents/themes/starter/blocks/hero/schema.ts +33 -0
- package/dist/templates/contents/themes/starter/blocks/hero/thumbnail.png +0 -0
- package/dist/templates/contents/themes/starter/blocks/testimonials/component.tsx +116 -0
- package/dist/templates/contents/themes/starter/blocks/testimonials/config.ts +11 -0
- package/dist/templates/contents/themes/starter/blocks/testimonials/fields.ts +105 -0
- package/dist/templates/contents/themes/starter/blocks/testimonials/index.ts +6 -0
- package/dist/templates/contents/themes/starter/blocks/testimonials/schema.ts +41 -0
- package/dist/templates/contents/themes/starter/blocks/testimonials/thumbnail.png +0 -0
- package/dist/templates/contents/themes/starter/blocks/text-content/component.tsx +100 -0
- package/dist/templates/contents/themes/starter/blocks/text-content/config.ts +11 -0
- package/dist/templates/contents/themes/starter/blocks/text-content/fields.ts +88 -0
- package/dist/templates/contents/themes/starter/blocks/text-content/index.ts +6 -0
- package/dist/templates/contents/themes/starter/blocks/text-content/schema.ts +30 -0
- package/dist/templates/contents/themes/starter/blocks/text-content/thumbnail.png +0 -0
- package/dist/templates/contents/themes/starter/config/app.config.ts +8 -0
- package/dist/templates/contents/themes/starter/entities/tasks/tasks.config.ts +7 -0
- package/dist/templates/contents/themes/starter/tests/cypress/e2e/_utils/devtools/access.cy.ts +9 -1
- package/dist/templates/contents/themes/starter/tests/cypress/e2e/api/entities/tasks/TaskAPIController.js +2 -2
- package/dist/templates/contents/themes/starter/tests/cypress/e2e/uat/entities/tasks/tasks-crud.cy.ts +45 -38
- package/dist/templates/contents/themes/starter/tests/cypress/fixtures/entities.json +16 -0
- package/dist/templates/contents/themes/starter/tests/cypress/src/components/DevKeyringPOM.ts +3 -1
- package/dist/templates/contents/themes/starter/tests/cypress/src/core/BlockEditorBasePOM.ts +3 -3
- package/dist/templates/contents/themes/starter/tests/cypress/src/entities/PagesPOM.ts +137 -0
- package/dist/templates/contents/themes/starter/tests/cypress/src/entities/index.ts +2 -0
- package/dist/templates/contents/themes/starter/tests/cypress/src/index.ts +1 -0
- package/dist/templates/contents/themes/starter/tests/cypress/src/session-helpers.ts +42 -11
- package/dist/templates/contents/themes/starter/tests/cypress/support/commands.ts +29 -18
- package/dist/templates/features/blog/blocks/post-content/component.tsx +5 -1
- package/dist/templates/features/blog/blocks/post-content/schema.ts +1 -1
- package/dist/templates/features/pages/blocks/hero/component.tsx +3 -0
- package/dist/templates/features/pages/blocks/hero/schema.ts +1 -1
- package/dist/templates/proxy.ts +138 -53
- package/dist/types/blocks.d.ts.map +1 -1
- package/dist/types/blocks.js +1 -1
- package/dist/types/task.types.d.ts +1 -1
- package/dist/types/task.types.js +7 -7
- package/dist/utils/dev/TranslationDebugger.js +2 -2
- package/package.json +14 -5
- package/scripts/build/registry/__tests__/block-registry.test.mjs +73 -0
- package/scripts/build/registry/__tests__/icons-discovery.test.mjs +130 -0
- package/scripts/build/registry/__tests__/identifier.test.mjs +65 -0
- package/scripts/build/registry/__tests__/page-generator.test.mjs +430 -0
- package/scripts/build/registry/__tests__/scheduled-actions-registry.test.mjs +41 -0
- package/scripts/build/registry/__tests__/template-registry.test.mjs +89 -0
- package/scripts/build/registry/discovery/icons.mjs +275 -0
- package/scripts/build/registry/discovery/index.mjs +1 -0
- package/scripts/build/registry/generators/block-registry.mjs +203 -55
- package/scripts/build/registry/generators/feature-registry.mjs +9 -2
- package/scripts/build/registry/generators/icon-registry.mjs +56 -0
- package/scripts/build/registry/generators/identifier.mjs +28 -0
- package/scripts/build/registry/generators/index.mjs +1 -0
- package/scripts/build/registry/generators/plugin-registry.mjs +4 -3
- package/scripts/build/registry/generators/scheduled-actions-registry.mjs +4 -2
- package/scripts/build/registry/generators/template-registry.mjs +49 -41
- package/scripts/build/registry/generators/theme-registry.mjs +6 -7
- package/scripts/build/registry/post-build/page-generator.mjs +380 -59
- package/scripts/build/registry.mjs +9 -1
- package/templates/app/(auth)/forgot-password/page.tsx +2 -2
- package/templates/app/(auth)/reset-password/page.tsx +6 -6
- package/templates/app/403/page.tsx +6 -6
- package/templates/app/api/v1/teams/switch/route.ts +24 -5
- package/templates/app/dashboard/(main)/[entity]/layout.tsx +9 -7
- package/templates/app/dashboard/(main)/layout.tsx +4 -3
- package/templates/app/dashboard/settings/api-keys/page.tsx +36 -34
- package/templates/app/dashboard/settings/profile/page.tsx +7 -6
- package/templates/app/dashboard/settings/security/page.tsx +5 -4
- package/templates/app/layout.ppr.tsx +8 -8
- package/templates/app/layout.tsx +12 -17
- package/templates/blocks/cta-section/component.tsx +5 -2
- package/templates/blocks/cta-section/config.ts +3 -2
- package/templates/blocks/cta-section/fields.ts +2 -2
- package/templates/blocks/cta-section/schema.ts +2 -2
- package/templates/blocks/features-grid/component.tsx +10 -2
- package/templates/blocks/features-grid/config.ts +3 -2
- package/templates/blocks/features-grid/fields.ts +2 -2
- package/templates/blocks/features-grid/schema.ts +2 -2
- package/templates/blocks/hero/component.tsx +6 -3
- package/templates/blocks/hero/config.ts +3 -2
- package/templates/blocks/hero/fields.ts +2 -2
- package/templates/blocks/hero/schema.ts +2 -2
- package/templates/blocks/testimonials/component.tsx +6 -3
- package/templates/blocks/testimonials/config.ts +3 -2
- package/templates/blocks/testimonials/fields.ts +2 -2
- package/templates/blocks/testimonials/schema.ts +2 -2
- package/templates/blocks/text-content/component.tsx +7 -3
- package/templates/blocks/text-content/config.ts +3 -2
- package/templates/blocks/text-content/fields.ts +2 -2
- package/templates/blocks/text-content/schema.ts +2 -2
- package/templates/contents/themes/starter/blocks/cta-section/component.tsx +102 -0
- package/templates/contents/themes/starter/blocks/cta-section/config.ts +11 -0
- package/templates/contents/themes/starter/blocks/cta-section/fields.ts +89 -0
- package/templates/contents/themes/starter/blocks/cta-section/index.ts +6 -0
- package/templates/contents/themes/starter/blocks/cta-section/schema.ts +32 -0
- package/templates/contents/themes/starter/blocks/cta-section/thumbnail.png +0 -0
- package/templates/contents/themes/starter/blocks/features-grid/component.tsx +119 -0
- package/templates/contents/themes/starter/blocks/features-grid/config.ts +11 -0
- package/templates/contents/themes/starter/blocks/features-grid/fields.ts +97 -0
- package/templates/contents/themes/starter/blocks/features-grid/index.ts +6 -0
- package/templates/contents/themes/starter/blocks/features-grid/schema.ts +40 -0
- package/templates/contents/themes/starter/blocks/features-grid/thumbnail.png +0 -0
- package/templates/contents/themes/starter/blocks/hero/component.tsx +105 -0
- package/templates/contents/themes/starter/blocks/hero/config.ts +11 -0
- package/templates/contents/themes/starter/blocks/hero/fields.ts +60 -0
- package/templates/contents/themes/starter/blocks/hero/index.ts +6 -0
- package/templates/contents/themes/starter/blocks/hero/schema.ts +33 -0
- package/templates/contents/themes/starter/blocks/hero/thumbnail.png +0 -0
- package/templates/contents/themes/starter/blocks/testimonials/component.tsx +116 -0
- package/templates/contents/themes/starter/blocks/testimonials/config.ts +11 -0
- package/templates/contents/themes/starter/blocks/testimonials/fields.ts +105 -0
- package/templates/contents/themes/starter/blocks/testimonials/index.ts +6 -0
- package/templates/contents/themes/starter/blocks/testimonials/schema.ts +41 -0
- package/templates/contents/themes/starter/blocks/testimonials/thumbnail.png +0 -0
- package/templates/contents/themes/starter/blocks/text-content/component.tsx +100 -0
- package/templates/contents/themes/starter/blocks/text-content/config.ts +11 -0
- package/templates/contents/themes/starter/blocks/text-content/fields.ts +88 -0
- package/templates/contents/themes/starter/blocks/text-content/index.ts +6 -0
- package/templates/contents/themes/starter/blocks/text-content/schema.ts +30 -0
- package/templates/contents/themes/starter/blocks/text-content/thumbnail.png +0 -0
- package/templates/contents/themes/starter/config/app.config.ts +8 -0
- package/templates/contents/themes/starter/entities/tasks/tasks.config.ts +7 -0
- package/templates/contents/themes/starter/tests/cypress/e2e/_utils/devtools/access.cy.ts +9 -1
- package/templates/contents/themes/starter/tests/cypress/e2e/api/entities/tasks/TaskAPIController.js +2 -2
- package/templates/contents/themes/starter/tests/cypress/e2e/uat/entities/tasks/tasks-crud.cy.ts +45 -38
- package/templates/contents/themes/starter/tests/cypress/fixtures/entities.json +16 -0
- package/templates/contents/themes/starter/tests/cypress/src/components/DevKeyringPOM.ts +3 -1
- package/templates/contents/themes/starter/tests/cypress/src/core/BlockEditorBasePOM.ts +3 -3
- package/templates/contents/themes/starter/tests/cypress/src/entities/PagesPOM.ts +137 -0
- package/templates/contents/themes/starter/tests/cypress/src/entities/index.ts +2 -0
- package/templates/contents/themes/starter/tests/cypress/src/index.ts +1 -0
- package/templates/contents/themes/starter/tests/cypress/src/session-helpers.ts +42 -11
- package/templates/contents/themes/starter/tests/cypress/support/commands.ts +29 -18
- package/templates/features/blog/blocks/post-content/component.tsx +5 -1
- package/templates/features/blog/blocks/post-content/schema.ts +1 -1
- package/templates/features/pages/blocks/hero/component.tsx +3 -0
- package/templates/features/pages/blocks/hero/schema.ts +1 -1
- package/templates/proxy.ts +138 -53
- package/tests/jest/__mocks__/@nextsparkjs/registries/block-registry.client.ts +9 -0
- package/tests/jest/__mocks__/@nextsparkjs/registries/block-registry.lazy.ts +5 -0
- package/tests/jest/__mocks__/@nextsparkjs/registries/icon-registry.ts +42 -0
- package/tests/jest/__mocks__/next-intl-server.js +85 -5
- package/tests/jest/__mocks__/next-server.js +32 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Block Loader Utility
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Block components behind React.lazy, from the lazy half of the generated
|
|
5
|
+
* registry, which imports none of them statically. Client components render
|
|
6
|
+
* blocks through here; server rendering goes through loader.server.ts.
|
|
6
7
|
*
|
|
7
8
|
* @module core/lib/blocks/loader
|
|
8
9
|
*/
|
|
@@ -22,15 +23,6 @@ export declare function getBlockComponents(): Record<string, BlockComponent>;
|
|
|
22
23
|
* @returns The block component or undefined if not found
|
|
23
24
|
*/
|
|
24
25
|
export declare function getBlockComponent(slug: string): BlockComponent | undefined;
|
|
25
|
-
/**
|
|
26
|
-
* Get all SSR block components (direct imports, no React.lazy)
|
|
27
|
-
* Use for public page rendering where no-JS SSR is required
|
|
28
|
-
*/
|
|
29
|
-
export declare function getBlockComponentsSSR(): Record<string, BlockComponent>;
|
|
30
|
-
/**
|
|
31
|
-
* Get a specific SSR block component by slug (direct import, no React.lazy)
|
|
32
|
-
*/
|
|
33
|
-
export declare function getBlockComponentSSR(slug: string): BlockComponent | undefined;
|
|
34
26
|
/**
|
|
35
27
|
* Check if a block exists in the registry
|
|
36
28
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/lib/blocks/loader.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/lib/blocks/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAIrC,KAAK,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;AAExC;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE1E;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgD3F"}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import { BLOCK_COMPONENTS
|
|
1
|
+
import { BLOCK_COMPONENTS } from "@nextsparkjs/registries/block-registry.lazy";
|
|
2
2
|
function getBlockComponents() {
|
|
3
3
|
return BLOCK_COMPONENTS;
|
|
4
4
|
}
|
|
5
5
|
function getBlockComponent(slug) {
|
|
6
6
|
return BLOCK_COMPONENTS[slug];
|
|
7
7
|
}
|
|
8
|
-
function getBlockComponentsSSR() {
|
|
9
|
-
return BLOCK_COMPONENTS_SSR;
|
|
10
|
-
}
|
|
11
|
-
function getBlockComponentSSR(slug) {
|
|
12
|
-
return BLOCK_COMPONENTS_SSR[slug];
|
|
13
|
-
}
|
|
14
8
|
function hasBlock(slug) {
|
|
15
9
|
return slug in BLOCK_COMPONENTS;
|
|
16
10
|
}
|
|
@@ -54,9 +48,7 @@ function normalizeBlockProps(props) {
|
|
|
54
48
|
}
|
|
55
49
|
export {
|
|
56
50
|
getBlockComponent,
|
|
57
|
-
getBlockComponentSSR,
|
|
58
51
|
getBlockComponents,
|
|
59
|
-
getBlockComponentsSSR,
|
|
60
52
|
hasBlock,
|
|
61
53
|
normalizeBlockProps
|
|
62
54
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block components for server rendering: direct imports, no React.lazy, so a
|
|
3
|
+
* public page renders its blocks in the HTML without waiting on client JS.
|
|
4
|
+
*
|
|
5
|
+
* They come from block-registry.ts, which imports every block component
|
|
6
|
+
* statically. A client component that imports this module carries every block
|
|
7
|
+
* into its bundle, so only server code imports it; client code uses loader.ts.
|
|
8
|
+
*
|
|
9
|
+
* @module core/lib/blocks/loader.server
|
|
10
|
+
*/
|
|
11
|
+
import { ComponentType } from 'react';
|
|
12
|
+
type BlockComponent = ComponentType<any>;
|
|
13
|
+
/** Every block component for server rendering, by slug. */
|
|
14
|
+
export declare function getBlockComponentsSSR(): Record<string, BlockComponent>;
|
|
15
|
+
/** A block component for server rendering, or undefined when the slug has none. */
|
|
16
|
+
export declare function getBlockComponentSSR(slug: string): BlockComponent | undefined;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=loader.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.server.d.ts","sourceRoot":"","sources":["../../../src/lib/blocks/loader.server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAIrC,KAAK,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;AAExC,2DAA2D;AAC3D,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAEtE;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE7E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BLOCK_COMPONENTS_SSR } from "@nextsparkjs/registries/block-registry";
|
|
2
|
+
function getBlockComponentsSSR() {
|
|
3
|
+
return BLOCK_COMPONENTS_SSR;
|
|
4
|
+
}
|
|
5
|
+
function getBlockComponentSSR(slug) {
|
|
6
|
+
return BLOCK_COMPONENTS_SSR[slug];
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
getBlockComponentSSR,
|
|
10
|
+
getBlockComponentsSSR
|
|
11
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitising for the HTML a block renders through dangerouslySetInnerHTML.
|
|
3
|
+
*
|
|
4
|
+
* Rich-text block fields hold markup on purpose — that is what the editor is
|
|
5
|
+
* for — so the value cannot simply be escaped. What it can be is restricted to
|
|
6
|
+
* markup that only formats: an allowlist of tags and attributes, with no event
|
|
7
|
+
* handlers and no `javascript:` URLs.
|
|
8
|
+
*
|
|
9
|
+
* This runs at render, which is where every path meets. Content reaches the
|
|
10
|
+
* database through the dashboard, the v1 API with an API key, sample data and
|
|
11
|
+
* whatever a project imports; sanitising at one of those leaves the others, and
|
|
12
|
+
* leaves whatever is already stored. Note the flip side: what is stored is
|
|
13
|
+
* still the raw input, so a consumer reading the API directly gets what was
|
|
14
|
+
* written, not this.
|
|
15
|
+
*
|
|
16
|
+
* Not marked server-only, though blocks are server components: devtools
|
|
17
|
+
* previews a block in the browser, through the lazy half of the block registry,
|
|
18
|
+
* so this module has to survive being bundled for the client. It does —
|
|
19
|
+
* sanitize-html parses with htmlparser2, not a DOM — and that preview is the
|
|
20
|
+
* only route that pays for it.
|
|
21
|
+
*
|
|
22
|
+
* @module core/lib/blocks/sanitize-html
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* The HTML of a rich-text block field, reduced to markup that only formats.
|
|
26
|
+
*
|
|
27
|
+
* @param html - The stored field value.
|
|
28
|
+
* @returns Markup safe to hand to dangerouslySetInnerHTML; '' for no input.
|
|
29
|
+
*/
|
|
30
|
+
export declare function sanitizeBlockHtml(html: string | null | undefined): string;
|
|
31
|
+
//# sourceMappingURL=sanitize-html.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize-html.d.ts","sourceRoot":"","sources":["../../../src/lib/blocks/sanitize-html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAmEH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGzE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import sanitizeHtmlLib from "sanitize-html";
|
|
2
|
+
const OPTIONS = {
|
|
3
|
+
allowedTags: [
|
|
4
|
+
...sanitizeHtmlLib.defaults.allowedTags,
|
|
5
|
+
"img",
|
|
6
|
+
"h1",
|
|
7
|
+
"h2",
|
|
8
|
+
"figure",
|
|
9
|
+
"figcaption",
|
|
10
|
+
"picture",
|
|
11
|
+
"source",
|
|
12
|
+
"del",
|
|
13
|
+
"ins",
|
|
14
|
+
"mark",
|
|
15
|
+
"small",
|
|
16
|
+
"u"
|
|
17
|
+
],
|
|
18
|
+
allowedAttributes: {
|
|
19
|
+
...sanitizeHtmlLib.defaults.allowedAttributes,
|
|
20
|
+
img: ["src", "srcset", "alt", "title", "width", "height", "loading", "decoding"],
|
|
21
|
+
source: ["src", "srcset", "type", "media"],
|
|
22
|
+
a: ["href", "name", "target", "rel", "title"],
|
|
23
|
+
// The editor writes Tailwind classes into the markup, and dropping them
|
|
24
|
+
// would strip the formatting the author applied rather than secure it.
|
|
25
|
+
"*": ["class", "id", "dir", "lang", "style"]
|
|
26
|
+
},
|
|
27
|
+
// No `javascript:`, and no `data:` either: an `<a href="data:text/html,…">`
|
|
28
|
+
// navigates to attacker-authored markup on this origin.
|
|
29
|
+
allowedSchemes: ["http", "https", "mailto", "tel"],
|
|
30
|
+
allowedSchemesByTag: { img: ["http", "https", "data"] },
|
|
31
|
+
// Inline styles survive, but only declarations that cannot script or reach
|
|
32
|
+
// out: no `url()`, no `expression()`, no `-moz-binding`.
|
|
33
|
+
allowedStyles: {
|
|
34
|
+
"*": {
|
|
35
|
+
color: [/^[^;{}()]*$/],
|
|
36
|
+
"background-color": [/^[^;{}()]*$/],
|
|
37
|
+
"text-align": [/^(left|right|center|justify)$/],
|
|
38
|
+
"font-size": [/^[\d.]+(px|em|rem|%|pt)$/],
|
|
39
|
+
"font-weight": [/^(normal|bold|lighter|bolder|[1-9]00)$/],
|
|
40
|
+
"font-style": [/^(normal|italic|oblique)$/],
|
|
41
|
+
"text-decoration": [/^[a-z\s-]+$/],
|
|
42
|
+
margin: [/^[\d.\s]+(px|em|rem|%)?$/],
|
|
43
|
+
padding: [/^[\d.\s]+(px|em|rem|%)?$/],
|
|
44
|
+
width: [/^[\d.]+(px|em|rem|%)$/],
|
|
45
|
+
height: [/^[\d.]+(px|em|rem|%)$/]
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
// A link that opens a new tab hands the opener to the destination without
|
|
49
|
+
// this; the editor has no way to set it, so it is added here.
|
|
50
|
+
transformTags: {
|
|
51
|
+
a: (tagName, attribs) => attribs.target === "_blank" ? { tagName, attribs: { ...attribs, rel: "noopener noreferrer" } } : { tagName, attribs }
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
function sanitizeBlockHtml(html) {
|
|
55
|
+
if (!html) return "";
|
|
56
|
+
return sanitizeHtmlLib(html, OPTIONS);
|
|
57
|
+
}
|
|
58
|
+
export {
|
|
59
|
+
sanitizeBlockHtml
|
|
60
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-sync.d.ts","sourceRoot":"","sources":["../../../src/lib/config/config-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"config-sync.d.ts","sourceRoot":"","sources":["../../../src/lib/config/config-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgOH,eAAO,MAAM,iBAAiB,KAAkB,CAAA;AAChD,eAAO,MAAM,gBAAgB,KAAwB,CAAA;AACrD,eAAO,MAAM,UAAU,6BAAkB,CAAA;AAGzC,eAAO,MAAM,iBAAiB,KAA0C,CAAA;AACxE,eAAO,MAAM,cAAc,KAAuC,CAAA;AAClE,eAAO,MAAM,eAAe,KAA6C,CAAA;AACzE,eAAO,MAAM,YAAY,KAA0C,CAAA;AACnE,eAAO,MAAM,QAAQ,KAA6B,CAAA;AAClD,eAAO,MAAM,WAAW,KAAgC,CAAA;AAGxD,eAAO,MAAM,WAAW,KAAyB,CAAA;AACjD,eAAO,MAAM,UAAU,KAAwB,CAAA;AAC/C,eAAO,MAAM,iBAAiB,KAA8B,CAAA;AAC5D,eAAO,MAAM,UAAU,KAAwB,CAAA;AAC/C,eAAO,MAAM,iBAAiB,KAA8B,CAAA;AAC5D,eAAO,MAAM,YAAY,KAA0B,CAAA;AACnD,eAAO,MAAM,YAAY,KAA0B,CAAA;AACnD,eAAO,MAAM,WAAW,KAAyB,CAAA;AAcjD,eAAO,MAAM,kBAAkB;;cAEqC,OAAO,SAAS,EAAE,gBAAgB;;;;;;;;;CAaxD,CAAA;AAI9C,eAAO,MAAM,aAAa,KAA0B,CAAA;AACpD,eAAO,MAAM,cAAc,KAA2B,CAAA;AACtD,eAAO,MAAM,eAAe,KAA4B,CAAA;AACxD,eAAO,MAAM,eAAe,KAA4B,CAAA;AACxD,eAAO,MAAM,eAAe,KAA4B,CAAA;AACxD,eAAO,MAAM,kBAAkB,KAA+B,CAAA;AAC9D,eAAO,MAAM,oBAAoB,KAAiC,CAAA;AAIlE,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,OAExD,CAAA;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,uBAAuB,QAAO,mBAAmB,EAE7D,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,KAAG,OAExD,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,KAAG,CAAC,GAAG,SAGzF,CAAA;AAGD,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;AACpF,MAAM,MAAM,oBAAoB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACnF,MAAM,MAAM,QAAQ,GAAG,OAAO,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA"}
|
|
@@ -5,6 +5,7 @@ import { ThemeService } from "../services/theme.service.js";
|
|
|
5
5
|
import { mergeConfigs } from "../utils/config-merge.js";
|
|
6
6
|
import { mergeRolesConfig } from "./roles-merge.js";
|
|
7
7
|
import { resolveAuthMethods } from "../auth/auth-methods.js";
|
|
8
|
+
import { resolveOtpConfig } from "../auth/otp-config.js";
|
|
8
9
|
import {
|
|
9
10
|
AVAILABLE_ROLES as REGISTRY_AVAILABLE_ROLES,
|
|
10
11
|
ROLE_HIERARCHY as REGISTRY_ROLE_HIERARCHY,
|
|
@@ -143,6 +144,7 @@ const TEAMS_CONFIG = APP_CONFIG_MERGED.teams;
|
|
|
143
144
|
const MEDIA_CONFIG = APP_CONFIG_MERGED.media;
|
|
144
145
|
const AUTH_CONFIG = APP_CONFIG_MERGED.auth;
|
|
145
146
|
const RESOLVED_AUTH_METHODS = resolveAuthMethods(APP_CONFIG_MERGED.auth);
|
|
147
|
+
const RESOLVED_OTP_CONFIG = resolveOtpConfig(APP_CONFIG_MERGED.auth);
|
|
146
148
|
const PUBLIC_AUTH_CONFIG = {
|
|
147
149
|
registration: {
|
|
148
150
|
mode: ((_b = (_a = APP_CONFIG_MERGED.auth) == null ? void 0 : _a.registration) == null ? void 0 : _b.mode) ?? "open"
|
|
@@ -154,7 +156,8 @@ const PUBLIC_AUTH_CONFIG = {
|
|
|
154
156
|
enabled: ((_e = (_d = (_c = APP_CONFIG_MERGED.auth) == null ? void 0 : _c.providers) == null ? void 0 : _d.google) == null ? void 0 : _e.enabled) !== false && RESOLVED_AUTH_METHODS.includes("google")
|
|
155
157
|
}
|
|
156
158
|
},
|
|
157
|
-
methods: RESOLVED_AUTH_METHODS
|
|
159
|
+
methods: RESOLVED_AUTH_METHODS,
|
|
160
|
+
otp: RESOLVED_OTP_CONFIG
|
|
158
161
|
};
|
|
159
162
|
const TOPBAR_CONFIG = DASHBOARD_CONFIG.topbar;
|
|
160
163
|
const SIDEBAR_CONFIG = DASHBOARD_CONFIG.sidebar;
|
|
@@ -456,6 +456,23 @@ export interface AuthSessionConfig {
|
|
|
456
456
|
maxAge?: number;
|
|
457
457
|
};
|
|
458
458
|
}
|
|
459
|
+
/**
|
|
460
|
+
* Email OTP settings (`auth.otp`).
|
|
461
|
+
*
|
|
462
|
+
* Both values reach the client through `PUBLIC_AUTH_CONFIG.otp`: the login
|
|
463
|
+
* form counts the code down and sizes its input from them, so they stay a
|
|
464
|
+
* single source of truth rather than a literal repeated in the UI and in six
|
|
465
|
+
* translation files.
|
|
466
|
+
*
|
|
467
|
+
* Invalid values (non-positive, NaN, out-of-range length) fall back to the
|
|
468
|
+
* core defaults with a warning. See `lib/auth/otp-config.ts`.
|
|
469
|
+
*/
|
|
470
|
+
export interface AuthOtpConfig {
|
|
471
|
+
/** Lifetime of an emailed code, in seconds. Default: 300 (5 minutes). */
|
|
472
|
+
expiresIn?: number;
|
|
473
|
+
/** Digits per code, between 4 and 10. Default: 6. */
|
|
474
|
+
otpLength?: number;
|
|
475
|
+
}
|
|
459
476
|
/**
|
|
460
477
|
* Login methods an app can offer.
|
|
461
478
|
*
|
|
@@ -516,6 +533,11 @@ export interface AuthConfig {
|
|
|
516
533
|
* defaults (7 days, renewed daily, 5-minute cookie cache).
|
|
517
534
|
*/
|
|
518
535
|
session?: AuthSessionConfig;
|
|
536
|
+
/**
|
|
537
|
+
* Email OTP code lifetime / length. Optional — every field falls back to the
|
|
538
|
+
* core defaults (5 minutes, 6 digits).
|
|
539
|
+
*/
|
|
540
|
+
otp?: AuthOtpConfig;
|
|
519
541
|
/** OAuth provider settings */
|
|
520
542
|
providers?: AuthProvidersConfig;
|
|
521
543
|
/** Built-in security email notifications (new-device / password / email changed). */
|
|
@@ -557,6 +579,20 @@ export interface PublicAuthConfig {
|
|
|
557
579
|
};
|
|
558
580
|
/** Resolved login methods, in priority order (see `AuthConfig.methods`). */
|
|
559
581
|
methods: AuthLoginMethod[];
|
|
582
|
+
/**
|
|
583
|
+
* Resolved email-OTP settings. The login form needs both: the deadline it
|
|
584
|
+
* counts down to, and the number of digits its input accepts.
|
|
585
|
+
*
|
|
586
|
+
* Optional because this is a published type: a config written against an
|
|
587
|
+
* earlier release still type-checks, and a reader without it falls back to
|
|
588
|
+
* DEFAULT_OTP_CONFIG.
|
|
589
|
+
*/
|
|
590
|
+
otp?: {
|
|
591
|
+
/** Lifetime of an emailed code, in seconds. */
|
|
592
|
+
expiresIn: number;
|
|
593
|
+
/** Digits per code. */
|
|
594
|
+
otpLength: number;
|
|
595
|
+
};
|
|
560
596
|
}
|
|
561
597
|
/**
|
|
562
598
|
* Complete Application Configuration
|
|
@@ -574,9 +610,21 @@ export interface AppConfig {
|
|
|
574
610
|
i18n: {
|
|
575
611
|
supportedLocales: string[];
|
|
576
612
|
defaultLocale: string;
|
|
613
|
+
/**
|
|
614
|
+
* Pick each request's locale from the locale cookie, the signed-in user's
|
|
615
|
+
* language and the Accept-Language header. Default: true. With `false`, or
|
|
616
|
+
* with a single supported locale, every page renders `defaultLocale` and
|
|
617
|
+
* nothing is read from the request, so pages can be prerendered.
|
|
618
|
+
*/
|
|
619
|
+
localeDetection?: boolean;
|
|
577
620
|
cookie: {
|
|
578
621
|
name: string;
|
|
579
622
|
maxAge: number;
|
|
623
|
+
/**
|
|
624
|
+
* Not applied: the locale cookie is always written readable, since client
|
|
625
|
+
* code rewrites it (a language switch, a sign-in, the account's language)
|
|
626
|
+
* and a script cannot replace a cookie written HttpOnly.
|
|
627
|
+
*/
|
|
580
628
|
httpOnly: boolean;
|
|
581
629
|
secure: string | boolean;
|
|
582
630
|
sameSite: 'lax' | 'strict' | 'none';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/config/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,5 +89,11 @@ export interface OtpVerificationEmailData extends EmailTemplateData {
|
|
|
89
89
|
otp: string;
|
|
90
90
|
type: string;
|
|
91
91
|
appName: string;
|
|
92
|
+
/**
|
|
93
|
+
* Code lifetime in seconds, from the same `resolveOtpConfig` result the
|
|
94
|
+
* emailOTP plugin runs with. Falls back to `DEFAULT_OTP_CONFIG.expiresIn`
|
|
95
|
+
* when omitted, so callers that predate this field keep working.
|
|
96
|
+
*/
|
|
97
|
+
expiresIn?: number;
|
|
92
98
|
}
|
|
93
99
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/email/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,iBAAiB,IAAI,CAC7D,IAAI,EAAE,KAAK,EACX,MAAM,CAAC,EAAE,MAAM,KACZ,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAE1C,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/email/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,iBAAiB,IAAI,CAC7D,IAAI,EAAE,KAAK,EACX,MAAM,CAAC,EAAE,MAAM,KACZ,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAE1C,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../../src/lib/entities/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAsC,MAAM,SAAS,CAAA;AAatG,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7F,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,6BAA8B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3G,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG,6BAA6B,CAAA;AAUzF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,wBAAwB,
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../../src/lib/entities/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAsC,MAAM,SAAS,CAAA;AAatG,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7F,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,6BAA8B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3G,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG,6BAA6B,CAAA;AAUzF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,wBAAwB,CAUpF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,qBAAqB,GAAG,6BAA6B,CAUvG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,qBAAqB,GAAG,kBAAkB,CAMhG;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,GAAG,YAAY,CAYtF;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,6BAA6B,GAAG,qBAAqB,CAQzG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,CAAC,YAAY,GAAG,qBAAqB,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAE1G;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,CAAC,YAAY,GAAG,qBAAqB,CAAC,EAAE,CAQ5G"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { getIconName, resolveIcon } from "../icons.js";
|
|
2
2
|
function isEntityConfig(config) {
|
|
3
3
|
return "ui" in config && typeof config.ui === "object" && config.ui !== null && "dashboard" in config.ui;
|
|
4
4
|
}
|
|
@@ -6,10 +6,7 @@ function isChildEntityConfig(config) {
|
|
|
6
6
|
return "parent" in config && typeof config.parent === "string";
|
|
7
7
|
}
|
|
8
8
|
function serializeEntityConfig(config) {
|
|
9
|
-
|
|
10
|
-
const iconName = ((_a = Object.entries(Icons).find(
|
|
11
|
-
([, icon2]) => icon2 === config.icon
|
|
12
|
-
)) == null ? void 0 : _a[0]) || "Box";
|
|
9
|
+
const iconName = getIconName(config.icon);
|
|
13
10
|
const { icon, i18n, hooks, ...rest } = config;
|
|
14
11
|
return {
|
|
15
12
|
...rest,
|
|
@@ -35,7 +32,7 @@ function serializeConfig(config) {
|
|
|
35
32
|
}
|
|
36
33
|
}
|
|
37
34
|
function deserializeEntityConfig(config) {
|
|
38
|
-
const icon =
|
|
35
|
+
const icon = resolveIcon(config.iconName);
|
|
39
36
|
const { iconName, i18nFallbackLocale, ...rest } = config;
|
|
40
37
|
return {
|
|
41
38
|
...rest,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LucideIcon } from 'lucide-react';
|
|
2
|
+
export declare function resolveIcon(name: string | undefined | null, fallback?: LucideIcon): LucideIcon;
|
|
3
|
+
/**
|
|
4
|
+
* The registry name of an icon component, for crossing a server -> client
|
|
5
|
+
* boundary where the component itself can't travel.
|
|
6
|
+
*
|
|
7
|
+
* Falls back to lucide's own `displayName`, which is the canonical name of the
|
|
8
|
+
* icon: an icon imported under an alias (`import { Home }`, canonically
|
|
9
|
+
* `House`) still round-trips, because both names resolve to the same component.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getIconName(icon: unknown, fallback?: string): string;
|
|
12
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/lib/icons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AA2C9C,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAC/B,QAAQ,GAAE,UAAgB,GACzB,UAAU,CAKZ;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,SAAQ,GAAG,MAAM,CAanE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Box } from "lucide-react";
|
|
2
|
+
import { ICON_REGISTRY } from "@nextsparkjs/registries/icon-registry";
|
|
3
|
+
function toPascalCase(name) {
|
|
4
|
+
return name.split(/[-_\s]+/).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("");
|
|
5
|
+
}
|
|
6
|
+
function lookupIcon(name) {
|
|
7
|
+
return Object.prototype.hasOwnProperty.call(ICON_REGISTRY, name) ? ICON_REGISTRY[name] : void 0;
|
|
8
|
+
}
|
|
9
|
+
function resolveIcon(name, fallback = Box) {
|
|
10
|
+
if (!name) {
|
|
11
|
+
return fallback;
|
|
12
|
+
}
|
|
13
|
+
return lookupIcon(name) ?? lookupIcon(toPascalCase(name)) ?? fallback;
|
|
14
|
+
}
|
|
15
|
+
function getIconName(icon, fallback = "Box") {
|
|
16
|
+
if (!icon) {
|
|
17
|
+
return fallback;
|
|
18
|
+
}
|
|
19
|
+
for (const [name, candidate] of Object.entries(ICON_REGISTRY)) {
|
|
20
|
+
if (candidate === icon) {
|
|
21
|
+
return name;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const displayName = icon.displayName;
|
|
25
|
+
return displayName || fallback;
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
getIconName,
|
|
29
|
+
resolveIcon
|
|
30
|
+
};
|
package/dist/lib/locale.d.ts
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
import { type SupportedLocale } from './config';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Whether an app renders a single locale: it has only one, or turned detection
|
|
4
|
+
* off with `i18n.localeDetection: false`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isLocaleFixed(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* The supported locale an Accept-Language header prefers most: by quality, then
|
|
9
|
+
* by order, taking a full tag (`pt-BR`) before its language (`pt`).
|
|
10
|
+
*/
|
|
11
|
+
export declare function preferredLocaleFromHeader(header: string | null | undefined): SupportedLocale | null;
|
|
12
|
+
/**
|
|
13
|
+
* The locale to render the current request in. It is resolved once per request:
|
|
14
|
+
* the root layout, the i18n request config and every server translation ask.
|
|
15
|
+
*
|
|
16
|
+
* 1. An app whose locale is fixed (see isLocaleFixed) renders its default locale
|
|
17
|
+
* and reads nothing from the request, so its pages can be prerendered.
|
|
18
|
+
* 2. The locale cookie, written when the language changes and kept in line with
|
|
19
|
+
* a signed-in user's account by SessionCookieRefresher.
|
|
20
|
+
* 3. The signed-in user's language, from the session. The session is read only
|
|
21
|
+
* when the request carries a session cookie, so a page an anonymous visitor
|
|
22
|
+
* opens makes no session read and no database query.
|
|
23
|
+
* 4. The Accept-Language header.
|
|
24
|
+
* 5. The default locale.
|
|
25
|
+
*/
|
|
26
|
+
export declare const getUserLocale: () => Promise<SupportedLocale>;
|
|
3
27
|
export declare function setUserLocale(locale: string): Promise<void>;
|
|
4
28
|
export declare const SUPPORTED_LOCALES: any;
|
|
5
29
|
export type { SupportedLocale };
|
package/dist/lib/locale.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/lib/locale.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/lib/locale.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,UAAU,CAAA;AAQ5D;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAmBnG;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,QAAmB,OAAO,CAAC,eAAe,CAoClE,CAAA;AAEF,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,iBAuBjD;AAGD,eAAO,MAAM,iBAAiB,KAA+B,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,CAAA"}
|
package/dist/lib/locale.js
CHANGED
|
@@ -1,47 +1,56 @@
|
|
|
1
|
+
import { cache } from "react";
|
|
1
2
|
import { cookies, headers } from "next/headers";
|
|
2
3
|
import { I18N_CONFIG } from "./config/index.js";
|
|
3
4
|
import { auth } from "./auth.js";
|
|
4
|
-
import {
|
|
5
|
-
|
|
5
|
+
import { hasSessionCookie } from "./auth/session-hint.js";
|
|
6
|
+
function isSupportedLocale(value) {
|
|
7
|
+
return typeof value === "string" && I18N_CONFIG.supportedLocales.includes(value);
|
|
8
|
+
}
|
|
9
|
+
function isLocaleFixed() {
|
|
10
|
+
return I18N_CONFIG.supportedLocales.length <= 1 || I18N_CONFIG.localeDetection === false;
|
|
11
|
+
}
|
|
12
|
+
function preferredLocaleFromHeader(header) {
|
|
13
|
+
if (!header) return null;
|
|
14
|
+
const ranges = header.split(",").map((part, index) => {
|
|
15
|
+
const [tag, ...params] = part.trim().split(";");
|
|
16
|
+
const quality = params.map((param) => param.trim()).find((param) => param.startsWith("q="));
|
|
17
|
+
return { tag: tag.trim(), quality: quality ? Number(quality.slice(2)) : 1, index };
|
|
18
|
+
}).filter((range) => range.tag && range.tag !== "*" && range.quality > 0).sort((a, b) => b.quality - a.quality || a.index - b.index);
|
|
19
|
+
for (const { tag } of ranges) {
|
|
20
|
+
const exact = I18N_CONFIG.supportedLocales.find((locale) => locale.toLowerCase() === tag.toLowerCase());
|
|
21
|
+
if (exact) return exact;
|
|
22
|
+
const language = tag.split("-")[0].toLowerCase();
|
|
23
|
+
if (isSupportedLocale(language)) return language;
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const getUserLocale = cache(async () => {
|
|
6
28
|
var _a, _b;
|
|
29
|
+
if (isLocaleFixed()) return I18N_CONFIG.defaultLocale;
|
|
7
30
|
try {
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
query: { disableRefresh: true }
|
|
12
|
-
});
|
|
13
|
-
if ((_a = session == null ? void 0 : session.user) == null ? void 0 : _a.id) {
|
|
14
|
-
const user = await queryOne(
|
|
15
|
-
'SELECT language FROM "users" WHERE id = $1',
|
|
16
|
-
[session.user.id]
|
|
17
|
-
);
|
|
18
|
-
if ((user == null ? void 0 : user.language) && I18N_CONFIG.supportedLocales.includes(user.language)) {
|
|
19
|
-
return user.language;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
} catch (error) {
|
|
31
|
+
const cookieLocale = (_a = (await cookies()).get(I18N_CONFIG.cookie.name)) == null ? void 0 : _a.value;
|
|
32
|
+
if (isSupportedLocale(cookieLocale)) return cookieLocale;
|
|
33
|
+
} catch {
|
|
23
34
|
}
|
|
35
|
+
let requestHeaders = null;
|
|
24
36
|
try {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return cookieLocale;
|
|
29
|
-
}
|
|
30
|
-
} catch (error) {
|
|
37
|
+
requestHeaders = await headers();
|
|
38
|
+
} catch {
|
|
39
|
+
return I18N_CONFIG.defaultLocale;
|
|
31
40
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
if (hasSessionCookie(requestHeaders.get("cookie"))) {
|
|
42
|
+
try {
|
|
43
|
+
const session = await auth.api.getSession({
|
|
44
|
+
headers: requestHeaders,
|
|
45
|
+
query: { disableRefresh: true }
|
|
46
|
+
});
|
|
47
|
+
const language = (_b = session == null ? void 0 : session.user) == null ? void 0 : _b.language;
|
|
48
|
+
if (isSupportedLocale(language)) return language;
|
|
49
|
+
} catch {
|
|
40
50
|
}
|
|
41
|
-
} catch (error) {
|
|
42
51
|
}
|
|
43
|
-
return I18N_CONFIG.defaultLocale;
|
|
44
|
-
}
|
|
52
|
+
return preferredLocaleFromHeader(requestHeaders.get("accept-language")) ?? I18N_CONFIG.defaultLocale;
|
|
53
|
+
});
|
|
45
54
|
async function setUserLocale(locale) {
|
|
46
55
|
if (!I18N_CONFIG.supportedLocales.includes(locale)) {
|
|
47
56
|
throw new Error(
|
|
@@ -52,7 +61,10 @@ async function setUserLocale(locale) {
|
|
|
52
61
|
const cookieConfig = I18N_CONFIG.cookie;
|
|
53
62
|
cookieStore.set(cookieConfig.name, locale, {
|
|
54
63
|
expires: new Date(Date.now() + cookieConfig.maxAge),
|
|
55
|
-
|
|
64
|
+
// Always readable: client code rewrites this cookie (a language switch, a
|
|
65
|
+
// sign-in, the account's language read with each session), and a script
|
|
66
|
+
// cannot replace a cookie written HttpOnly.
|
|
67
|
+
httpOnly: false,
|
|
56
68
|
secure: cookieConfig.secure === "auto" ? process.env.NODE_ENV === "production" : cookieConfig.secure,
|
|
57
69
|
sameSite: cookieConfig.sameSite,
|
|
58
70
|
path: cookieConfig.path
|
|
@@ -62,5 +74,7 @@ const SUPPORTED_LOCALES = I18N_CONFIG.supportedLocales;
|
|
|
62
74
|
export {
|
|
63
75
|
SUPPORTED_LOCALES,
|
|
64
76
|
getUserLocale,
|
|
77
|
+
isLocaleFixed,
|
|
78
|
+
preferredLocaleFromHeader,
|
|
65
79
|
setUserLocale
|
|
66
80
|
};
|
package/dist/lib/mcp/engine.js
CHANGED
|
@@ -104,7 +104,7 @@ function createMcpEngine(registry, options) {
|
|
|
104
104
|
content: [
|
|
105
105
|
{
|
|
106
106
|
type: "text",
|
|
107
|
-
text: `
|
|
107
|
+
text: `Unexpected error: ${error instanceof Error ? error.message : String(error)}`
|
|
108
108
|
}
|
|
109
109
|
],
|
|
110
110
|
isError: true
|