@vitnode/core 2.0.0-canary.3 → 2.0.0-canary.5
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/scripts/scripts.js +23 -27
- package/dist/src/api/adapters/events/local.d.ts.map +1 -1
- package/dist/src/api/adapters/search/postgres.d.ts.map +1 -1
- package/dist/src/api/adapters/search/postgres.js +1 -1
- package/dist/src/api/adapters/sso/discord.d.ts.map +1 -1
- package/dist/src/api/adapters/sso/discord.js +1 -1
- package/dist/src/api/adapters/storage/local.d.ts.map +1 -1
- package/dist/src/api/config.d.ts.map +1 -1
- package/dist/src/api/config.js +1 -1
- package/dist/src/api/lib/auth-cookie.d.ts.map +1 -1
- package/dist/src/api/lib/auth-cookie.js +1 -1
- package/dist/src/api/lib/cache.d.ts.map +1 -1
- package/dist/src/api/lib/check-staff-permission.d.ts.map +1 -1
- package/dist/src/api/lib/client-ip.d.ts +4 -0
- package/dist/src/api/lib/client-ip.d.ts.map +1 -0
- package/dist/src/api/lib/client-ip.js +1 -0
- package/dist/src/api/lib/module.d.ts.map +1 -1
- package/dist/src/api/lib/openapi-tags.d.ts.map +1 -1
- package/dist/src/api/lib/pagination-cursor.d.ts +7 -3
- package/dist/src/api/lib/pagination-cursor.d.ts.map +1 -1
- package/dist/src/api/lib/pagination-cursor.js +1 -1
- package/dist/src/api/lib/permission-staff.d.ts.map +1 -1
- package/dist/src/api/lib/plugin.d.ts.map +1 -1
- package/dist/src/api/lib/staff-permission-cache.d.ts.map +1 -1
- package/dist/src/api/lib/user-email-lookup.d.ts +6 -0
- package/dist/src/api/lib/user-email-lookup.d.ts.map +1 -0
- package/dist/src/api/lib/user-email-lookup.js +1 -0
- package/dist/src/api/lib/websocket.d.ts.map +1 -1
- package/dist/src/api/lib/with-pagination.d.ts +4 -2
- package/dist/src/api/lib/with-pagination.d.ts.map +1 -1
- package/dist/src/api/lib/with-pagination.js +1 -1
- package/dist/src/api/middlewares/captcha.middleware.d.ts.map +1 -1
- package/dist/src/api/middlewares/captcha.middleware.js +1 -1
- package/dist/src/api/middlewares/cron-auth.middleware.d.ts.map +1 -1
- package/dist/src/api/middlewares/cron-auth.middleware.js +1 -1
- package/dist/src/api/middlewares/global.middleware.d.ts.map +1 -1
- package/dist/src/api/middlewares/global.middleware.js +1 -1
- package/dist/src/api/middlewares/storage-static.middleware.d.ts +3 -0
- package/dist/src/api/middlewares/storage-static.middleware.d.ts.map +1 -0
- package/dist/src/api/middlewares/storage-static.middleware.js +1 -0
- package/dist/src/api/middlewares/websocket-origin.middleware.d.ts +5 -0
- package/dist/src/api/middlewares/websocket-origin.middleware.d.ts.map +1 -0
- package/dist/src/api/middlewares/websocket-origin.middleware.js +1 -0
- package/dist/src/api/models/ai.d.ts.map +1 -1
- package/dist/src/api/models/device.d.ts +5 -1
- package/dist/src/api/models/device.d.ts.map +1 -1
- package/dist/src/api/models/device.js +1 -1
- package/dist/src/api/models/events.d.ts.map +1 -1
- package/dist/src/api/models/i18n.d.ts.map +1 -1
- package/dist/src/api/models/password.d.ts +1 -0
- package/dist/src/api/models/password.d.ts.map +1 -1
- package/dist/src/api/models/password.js +1 -1
- package/dist/src/api/models/queue.d.ts.map +1 -1
- package/dist/src/api/models/search.d.ts.map +1 -1
- package/dist/src/api/models/session-admin.d.ts.map +1 -1
- package/dist/src/api/models/session-admin.js +1 -1
- package/dist/src/api/models/session-revoke.d.ts +4 -0
- package/dist/src/api/models/session-revoke.d.ts.map +1 -0
- package/dist/src/api/models/session-revoke.js +1 -0
- package/dist/src/api/models/session.js +1 -1
- package/dist/src/api/models/sso.d.ts.map +1 -1
- package/dist/src/api/models/sso.js +1 -1
- package/dist/src/api/models/storage.d.ts.map +1 -1
- package/dist/src/api/models/storage.js +1 -1
- package/dist/src/api/models/user/sign-in-with-passwords.d.ts.map +1 -1
- package/dist/src/api/models/user/sign-in-with-passwords.js +1 -1
- package/dist/src/api/models/user/sign-up.d.ts +1 -1
- package/dist/src/api/models/user/sign-up.d.ts.map +1 -1
- package/dist/src/api/models/user/sign-up.js +1 -1
- package/dist/src/api/models/user.d.ts +1 -1
- package/dist/src/api/models/user.d.ts.map +1 -1
- package/dist/src/api/modules/admin/advanced/queue/routes/get.route.d.ts.map +1 -1
- package/dist/src/api/modules/admin/advanced/queue/routes/get.route.js +1 -1
- package/dist/src/api/modules/admin/debug/routes/clear-search.route.d.ts.map +1 -1
- package/dist/src/api/modules/admin/debug/routes/content-status.route.d.ts.map +1 -1
- package/dist/src/api/modules/admin/debug/routes/search-status.route.d.ts.map +1 -1
- package/dist/src/api/modules/admin/files/routes/delete.route.d.ts.map +1 -1
- package/dist/src/api/modules/admin/roles/lib/assert-manage-admin-role.d.ts.map +1 -1
- package/dist/src/api/modules/admin/roles/routes/show.route.d.ts.map +1 -1
- package/dist/src/api/modules/admin/roles/routes/show.route.js +1 -1
- package/dist/src/api/modules/admin/routes/notifications.route.d.ts.map +1 -1
- package/dist/src/api/modules/admin/routes/notifications.route.js +1 -1
- package/dist/src/api/modules/admin/users/lib/assert-edit-user-permission.d.ts +1 -0
- package/dist/src/api/modules/admin/users/lib/assert-edit-user-permission.d.ts.map +1 -1
- package/dist/src/api/modules/admin/users/lib/assert-edit-user-permission.js +1 -1
- package/dist/src/api/modules/admin/users/routes/update.route.d.ts.map +1 -1
- package/dist/src/api/modules/admin/users/routes/update.route.js +1 -1
- package/dist/src/api/modules/content/content.module.d.ts.map +1 -1
- package/dist/src/api/modules/content/cron/content-editorial-cleanup.cron.d.ts.map +1 -1
- package/dist/src/api/modules/content/helpers/execute-content-schedule.d.ts.map +1 -1
- package/dist/src/api/modules/content/tasks/content-schedule-effects.task.d.ts.map +1 -1
- package/dist/src/api/modules/content/tasks/content-schedule.task.d.ts.map +1 -1
- package/dist/src/api/modules/queue/helpers/process-queue-tasks.d.ts.map +1 -1
- package/dist/src/api/modules/search/routes/search.route.d.ts.map +1 -1
- package/dist/src/api/modules/search/routes/search.route.js +1 -1
- package/dist/src/api/modules/users/routes/change-password.route.d.ts.map +1 -1
- package/dist/src/api/modules/users/routes/change-password.route.js +1 -1
- package/dist/src/api/modules/users/routes/reset-passowrd.route.d.ts.map +1 -1
- package/dist/src/api/modules/users/routes/reset-passowrd.route.js +1 -1
- package/dist/src/api/modules/users/users.module.d.ts +0 -24
- package/dist/src/api/modules/users/users.module.d.ts.map +1 -1
- package/dist/src/api/modules/users/users.module.js +1 -1
- package/dist/src/api/modules.client.d.ts +0 -24
- package/dist/src/api/modules.client.d.ts.map +1 -1
- package/dist/src/components/confirm-action/confirm-action-alert-dialog.d.ts.map +1 -1
- package/dist/src/components/confirm-action/confirm-action-alert-dialog.js +1 -1
- package/dist/src/components/date-format.d.ts.map +1 -1
- package/dist/src/components/date-format.js +1 -1
- package/dist/src/components/editor-provider.d.ts +19 -0
- package/dist/src/components/editor-provider.d.ts.map +1 -0
- package/dist/src/components/editor-provider.js +1 -0
- package/dist/src/components/files/file-preview.d.ts.map +1 -1
- package/dist/src/components/files/file-preview.js +1 -1
- package/dist/src/components/files/metadata-cell.d.ts.map +1 -1
- package/dist/src/components/files/metadata-cell.js +1 -1
- package/dist/src/components/form/auto-form.d.ts.map +1 -1
- package/dist/src/components/form/auto-form.js +1 -1
- package/dist/src/components/form/common/async-picker.d.ts.map +1 -1
- package/dist/src/components/form/common/async-picker.js +1 -1
- package/dist/src/components/form/fields/array.d.ts.map +1 -1
- package/dist/src/components/form/fields/array.js +1 -1
- package/dist/src/components/form/fields/combobox.d.ts.map +1 -1
- package/dist/src/components/form/fields/file-gallery.d.ts.map +1 -1
- package/dist/src/components/form/fields/file-gallery.js +1 -1
- package/dist/src/components/form/fields/file-order.d.ts.map +1 -1
- package/dist/src/components/form/fields/file-shared.d.ts.map +1 -1
- package/dist/src/components/form/fields/file-shared.js +1 -1
- package/dist/src/components/form/fields/file-upload-queue.d.ts.map +1 -1
- package/dist/src/components/form/fields/file.d.ts.map +1 -1
- package/dist/src/components/form/fields/file.js +1 -1
- package/dist/src/components/form/fields/files.d.ts.map +1 -1
- package/dist/src/components/form/fields/files.js +1 -1
- package/dist/src/components/form/fields/input-roles.d.ts.map +1 -1
- package/dist/src/components/form/fields/input-roles.js +1 -1
- package/dist/src/components/form/fields/input-users.d.ts.map +1 -1
- package/dist/src/components/form/fields/input-users.js +1 -1
- package/dist/src/components/form/fields/multi-lang.d.ts.map +1 -1
- package/dist/src/components/form/fields/multi-lang.js +1 -1
- package/dist/src/components/form/fields/roles.d.ts.map +1 -1
- package/dist/src/components/languages-provider.d.ts.map +1 -1
- package/dist/src/components/languages-provider.js +1 -1
- package/dist/src/components/logo-vitnode.d.ts.map +1 -1
- package/dist/src/components/role-format-content.d.ts.map +1 -1
- package/dist/src/components/role-format-content.js +1 -1
- package/dist/src/components/role-name.d.ts.map +1 -1
- package/dist/src/components/staff-permission/provider.d.ts.map +1 -1
- package/dist/src/components/staff-permission/provider.js +1 -1
- package/dist/src/components/switchers/langs/language-switcher-content.d.ts.map +1 -1
- package/dist/src/components/switchers/langs/language-switcher-content.js +1 -1
- package/dist/src/components/switchers/themes/theme-switcher.d.ts.map +1 -1
- package/dist/src/components/switchers/themes/theme-switcher.js +1 -1
- package/dist/src/components/table/content.js +1 -1
- package/dist/src/components/table/data-table-content.d.ts.map +1 -1
- package/dist/src/components/table/data-table-content.js +1 -1
- package/dist/src/components/table/filters.d.ts.map +1 -1
- package/dist/src/components/table/filters.js +1 -1
- package/dist/src/components/table/navigation.d.ts.map +1 -1
- package/dist/src/components/table/navigation.js +1 -1
- package/dist/src/components/table/no-results.d.ts.map +1 -1
- package/dist/src/components/table/no-results.js +1 -1
- package/dist/src/components/table/order-table-head.d.ts.map +1 -1
- package/dist/src/components/table/order-table-head.js +1 -1
- package/dist/src/components/table/pagination.d.ts.map +1 -1
- package/dist/src/components/table/pagination.js +1 -1
- package/dist/src/components/table/search.d.ts.map +1 -1
- package/dist/src/components/table/search.js +1 -1
- package/dist/src/components/table/selection.d.ts.map +1 -1
- package/dist/src/components/table/selection.js +1 -1
- package/dist/src/components/table/url-state.d.ts.map +1 -1
- package/dist/src/components/theme-provider.d.ts.map +1 -1
- package/dist/src/components/theme-provider.js +1 -1
- package/dist/src/components/theme-script.d.ts.map +1 -1
- package/dist/src/components/tiptap/drag-handle.d.ts +5 -0
- package/dist/src/components/tiptap/drag-handle.d.ts.map +1 -0
- package/dist/src/components/tiptap/drag-handle.js +1 -0
- package/dist/src/components/tiptap/emoji/custom-emoji.d.ts +7 -0
- package/dist/src/components/tiptap/emoji/custom-emoji.d.ts.map +1 -0
- package/dist/src/components/tiptap/emoji/custom-emoji.js +1 -0
- package/dist/src/components/tiptap/emoji/emoji-suggestion-list.d.ts +10 -0
- package/dist/src/components/tiptap/emoji/emoji-suggestion-list.d.ts.map +1 -0
- package/dist/src/components/tiptap/emoji/emoji-suggestion-list.js +1 -0
- package/dist/src/components/tiptap/emoji/emoji-suggestion.d.ts +6 -0
- package/dist/src/components/tiptap/emoji/emoji-suggestion.d.ts.map +1 -0
- package/dist/src/components/tiptap/emoji/emoji-suggestion.js +1 -0
- package/dist/src/components/tiptap/emoji/match-emojis.d.ts +4 -0
- package/dist/src/components/tiptap/emoji/match-emojis.d.ts.map +1 -0
- package/dist/src/components/tiptap/emoji/match-emojis.js +1 -0
- package/dist/src/components/tiptap/extension.d.ts +6 -1
- package/dist/src/components/tiptap/extension.d.ts.map +1 -1
- package/dist/src/components/tiptap/extension.js +1 -1
- package/dist/src/components/tiptap/tiptap-editor.d.ts +8 -0
- package/dist/src/components/tiptap/tiptap-editor.d.ts.map +1 -0
- package/dist/src/components/tiptap/tiptap-editor.js +1 -0
- package/dist/src/components/tiptap/toolbar/actions/audio/audio-form.d.ts +2 -0
- package/dist/src/components/tiptap/toolbar/actions/audio/audio-form.d.ts.map +1 -0
- package/dist/src/components/tiptap/toolbar/actions/audio/audio-form.js +1 -0
- package/dist/src/components/tiptap/toolbar/actions/audio-action.d.ts +3 -0
- package/dist/src/components/tiptap/toolbar/actions/audio-action.d.ts.map +1 -0
- package/dist/src/components/tiptap/toolbar/actions/audio-action.js +1 -0
- package/dist/src/components/tiptap/toolbar/actions/blocks-action.d.ts +2 -0
- package/dist/src/components/tiptap/toolbar/actions/blocks-action.d.ts.map +1 -0
- package/dist/src/components/tiptap/toolbar/actions/blocks-action.js +1 -0
- package/dist/src/components/tiptap/toolbar/actions/color-action.d.ts +3 -0
- package/dist/src/components/tiptap/toolbar/actions/color-action.d.ts.map +1 -0
- package/dist/src/components/tiptap/toolbar/actions/color-action.js +1 -0
- package/dist/src/components/tiptap/toolbar/actions/emoji/emoji-picker.d.ts +5 -0
- package/dist/src/components/tiptap/toolbar/actions/emoji/emoji-picker.d.ts.map +1 -0
- package/dist/src/components/tiptap/toolbar/actions/emoji/emoji-picker.js +1 -0
- package/dist/src/components/tiptap/toolbar/actions/emoji-action.d.ts +3 -0
- package/dist/src/components/tiptap/toolbar/actions/emoji-action.d.ts.map +1 -0
- package/dist/src/components/tiptap/toolbar/actions/emoji-action.js +1 -0
- package/dist/src/components/tiptap/toolbar/actions/font-size-action.d.ts +2 -0
- package/dist/src/components/tiptap/toolbar/actions/font-size-action.d.ts.map +1 -0
- package/dist/src/components/tiptap/toolbar/actions/font-size-action.js +1 -0
- package/dist/src/components/tiptap/toolbar/actions/table-action.d.ts +2 -0
- package/dist/src/components/tiptap/toolbar/actions/table-action.d.ts.map +1 -0
- package/dist/src/components/tiptap/toolbar/actions/table-action.js +1 -0
- package/dist/src/components/tiptap/toolbar/actions/text-format-more/text-format-more.d.ts.map +1 -1
- package/dist/src/components/tiptap/toolbar/actions/text-format-more/text-format-more.js +1 -1
- package/dist/src/components/tiptap/toolbar/tiptap-toolbar.d.ts.map +1 -1
- package/dist/src/components/tiptap/toolbar/tiptap-toolbar.js +1 -1
- package/dist/src/components/ui/accordion.d.ts.map +1 -1
- package/dist/src/components/ui/accordion.js +1 -1
- package/dist/src/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/src/components/ui/alert-dialog.js +1 -1
- package/dist/src/components/ui/avatar.d.ts.map +1 -1
- package/dist/src/components/ui/avatar.js +1 -1
- package/dist/src/components/ui/button-client.d.ts.map +1 -1
- package/dist/src/components/ui/button-client.js +1 -1
- package/dist/src/components/ui/button.js +1 -1
- package/dist/src/components/ui/carousel.d.ts.map +1 -1
- package/dist/src/components/ui/carousel.js +1 -1
- package/dist/src/components/ui/chart.d.ts.map +1 -1
- package/dist/src/components/ui/chart.js +1 -1
- package/dist/src/components/ui/checkbox.d.ts.map +1 -1
- package/dist/src/components/ui/checkbox.js +1 -1
- package/dist/src/components/ui/collapsible.d.ts.map +1 -1
- package/dist/src/components/ui/collapsible.js +1 -1
- package/dist/src/components/ui/color-picker.d.ts.map +1 -1
- package/dist/src/components/ui/color-picker.js +1 -1
- package/dist/src/components/ui/combobox.d.ts.map +1 -1
- package/dist/src/components/ui/combobox.js +1 -1
- package/dist/src/components/ui/command.d.ts.map +1 -1
- package/dist/src/components/ui/command.js +1 -1
- package/dist/src/components/ui/context-menu.d.ts.map +1 -1
- package/dist/src/components/ui/context-menu.js +1 -1
- package/dist/src/components/ui/dialog.d.ts.map +1 -1
- package/dist/src/components/ui/dialog.js +1 -1
- package/dist/src/components/ui/direction.d.ts.map +1 -1
- package/dist/src/components/ui/direction.js +1 -1
- package/dist/src/components/ui/drawer.d.ts.map +1 -1
- package/dist/src/components/ui/drawer.js +1 -1
- package/dist/src/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/src/components/ui/dropdown-menu.js +1 -1
- package/dist/src/components/ui/editor.d.ts +2 -7
- package/dist/src/components/ui/editor.d.ts.map +1 -1
- package/dist/src/components/ui/editor.js +1 -1
- package/dist/src/components/ui/field.d.ts.map +1 -1
- package/dist/src/components/ui/field.js +1 -1
- package/dist/src/components/ui/form.d.ts.map +1 -1
- package/dist/src/components/ui/form.js +1 -1
- package/dist/src/components/ui/header-content.d.ts.map +1 -1
- package/dist/src/components/ui/hover-card.d.ts.map +1 -1
- package/dist/src/components/ui/hover-card.js +1 -1
- package/dist/src/components/ui/input-group.d.ts.map +1 -1
- package/dist/src/components/ui/input-group.js +1 -1
- package/dist/src/components/ui/input-otp.d.ts.map +1 -1
- package/dist/src/components/ui/input-otp.js +1 -1
- package/dist/src/components/ui/input.js +1 -1
- package/dist/src/components/ui/kbd.js +1 -1
- package/dist/src/components/ui/menubar.d.ts.map +1 -1
- package/dist/src/components/ui/menubar.js +1 -1
- package/dist/src/components/ui/native-select.js +1 -1
- package/dist/src/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/src/components/ui/navigation-menu.js +1 -1
- package/dist/src/components/ui/popover.d.ts.map +1 -1
- package/dist/src/components/ui/popover.js +1 -1
- package/dist/src/components/ui/progress.d.ts.map +1 -1
- package/dist/src/components/ui/progress.js +1 -1
- package/dist/src/components/ui/radio-group.d.ts.map +1 -1
- package/dist/src/components/ui/radio-group.js +1 -1
- package/dist/src/components/ui/resizable.d.ts.map +1 -1
- package/dist/src/components/ui/resizable.js +1 -1
- package/dist/src/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/src/components/ui/scroll-area.js +1 -1
- package/dist/src/components/ui/select.d.ts.map +1 -1
- package/dist/src/components/ui/select.js +1 -1
- package/dist/src/components/ui/separator.d.ts.map +1 -1
- package/dist/src/components/ui/separator.js +1 -1
- package/dist/src/components/ui/sheet.d.ts.map +1 -1
- package/dist/src/components/ui/sheet.js +1 -1
- package/dist/src/components/ui/sidebar.d.ts.map +1 -1
- package/dist/src/components/ui/sidebar.js +1 -1
- package/dist/src/components/ui/slider.d.ts.map +1 -1
- package/dist/src/components/ui/slider.js +1 -1
- package/dist/src/components/ui/sonner.d.ts.map +1 -1
- package/dist/src/components/ui/sonner.js +1 -1
- package/dist/src/components/ui/switch.d.ts.map +1 -1
- package/dist/src/components/ui/switch.js +1 -1
- package/dist/src/components/ui/table.d.ts.map +1 -1
- package/dist/src/components/ui/table.js +1 -1
- package/dist/src/components/ui/tabs.d.ts.map +1 -1
- package/dist/src/components/ui/tabs.js +1 -1
- package/dist/src/components/ui/textarea.js +1 -1
- package/dist/src/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/src/components/ui/toggle-group.js +1 -1
- package/dist/src/components/ui/toggle.d.ts.map +1 -1
- package/dist/src/components/ui/toggle.js +1 -1
- package/dist/src/components/ui/tooltip.d.ts.map +1 -1
- package/dist/src/components/ui/tooltip.js +1 -1
- package/dist/src/config.js +1 -1
- package/dist/src/content/admin/labels.d.ts.map +1 -1
- package/dist/src/content/admin/registry.d.ts.map +1 -1
- package/dist/src/content/admin/route.d.ts.map +1 -1
- package/dist/src/content/admin/spec.d.ts.map +1 -1
- package/dist/src/content/admin/upload.d.ts.map +1 -1
- package/dist/src/content/advanced.d.ts.map +1 -1
- package/dist/src/content/cache.d.ts.map +1 -1
- package/dist/src/content/conflicts.d.ts.map +1 -1
- package/dist/src/content/const.d.ts.map +1 -1
- package/dist/src/content/define-admin.d.ts.map +1 -1
- package/dist/src/content/define-editorial.d.ts.map +1 -1
- package/dist/src/content/define-fields.d.ts.map +1 -1
- package/dist/src/content/define-public-api.d.ts.map +1 -1
- package/dist/src/content/define-search.d.ts.map +1 -1
- package/dist/src/content/define-shared.d.ts.map +1 -1
- package/dist/src/content/define.d.ts.map +1 -1
- package/dist/src/content/delivery.d.ts.map +1 -1
- package/dist/src/content/errors.d.ts.map +1 -1
- package/dist/src/content/events.d.ts.map +1 -1
- package/dist/src/content/fields.d.ts.map +1 -1
- package/dist/src/content/files.d.ts.map +1 -1
- package/dist/src/content/hash.d.ts.map +1 -1
- package/dist/src/content/index.d.ts.map +1 -1
- package/dist/src/content/locale.d.ts.map +1 -1
- package/dist/src/content/localization.d.ts.map +1 -1
- package/dist/src/content/paths.d.ts.map +1 -1
- package/dist/src/content/publication.d.ts.map +1 -1
- package/dist/src/content/registry.d.ts.map +1 -1
- package/dist/src/content/revisions.d.ts.map +1 -1
- package/dist/src/content/schedules.d.ts.map +1 -1
- package/dist/src/content/schemas.d.ts.map +1 -1
- package/dist/src/content/search.d.ts.map +1 -1
- package/dist/src/content/server/actor.d.ts.map +1 -1
- package/dist/src/content/server/advanced-store.d.ts.map +1 -1
- package/dist/src/content/server/advanced-tables.d.ts.map +1 -1
- package/dist/src/content/server/collection-api.d.ts.map +1 -1
- package/dist/src/content/server/column-builders.d.ts.map +1 -1
- package/dist/src/content/server/delivery-alternates.d.ts.map +1 -1
- package/dist/src/content/server/delivery-effects.d.ts.map +1 -1
- package/dist/src/content/server/delivery-routes.d.ts.map +1 -1
- package/dist/src/content/server/delivery-service.d.ts.map +1 -1
- package/dist/src/content/server/delivery-sitemap.d.ts.map +1 -1
- package/dist/src/content/server/delivery-writes.d.ts.map +1 -1
- package/dist/src/content/server/diagnostics.d.ts.map +1 -1
- package/dist/src/content/server/editorial-effects.d.ts.map +1 -1
- package/dist/src/content/server/editorial-service.d.ts.map +1 -1
- package/dist/src/content/server/effects-log.d.ts.map +1 -1
- package/dist/src/content/server/emit.d.ts.map +1 -1
- package/dist/src/content/server/files.d.ts.map +1 -1
- package/dist/src/content/server/http-errors.d.ts.map +1 -1
- package/dist/src/content/server/index.d.ts.map +1 -1
- package/dist/src/content/server/language-resolver.d.ts.map +1 -1
- package/dist/src/content/server/localized-admin-routes.d.ts.map +1 -1
- package/dist/src/content/server/localized-public-service.d.ts.map +1 -1
- package/dist/src/content/server/localized-service.d.ts.map +1 -1
- package/dist/src/content/server/model.d.ts.map +1 -1
- package/dist/src/content/server/module.d.ts.map +1 -1
- package/dist/src/content/server/preview-config.js +1 -1
- package/dist/src/content/server/preview-link.d.ts.map +1 -1
- package/dist/src/content/server/preview-secret.d.ts.map +1 -1
- package/dist/src/content/server/preview-target.d.ts.map +1 -1
- package/dist/src/content/server/preview-token.d.ts.map +1 -1
- package/dist/src/content/server/public-locales.d.ts.map +1 -1
- package/dist/src/content/server/public-module.d.ts.map +1 -1
- package/dist/src/content/server/public-routes.d.ts.map +1 -1
- package/dist/src/content/server/public-service.d.ts.map +1 -1
- package/dist/src/content/server/publication.d.ts.map +1 -1
- package/dist/src/content/server/query.d.ts.map +1 -1
- package/dist/src/content/server/references.d.ts.map +1 -1
- package/dist/src/content/server/revalidate-bridge.d.ts.map +1 -1
- package/dist/src/content/server/revision-snapshot.d.ts.map +1 -1
- package/dist/src/content/server/revisions-model.d.ts.map +1 -1
- package/dist/src/content/server/routes.d.ts.map +1 -1
- package/dist/src/content/server/schedule-effects.d.ts.map +1 -1
- package/dist/src/content/server/schedules-model.d.ts.map +1 -1
- package/dist/src/content/server/search-document.d.ts.map +1 -1
- package/dist/src/content/server/search-indexer.d.ts.map +1 -1
- package/dist/src/content/server/search-sync.d.ts.map +1 -1
- package/dist/src/content/server/service.d.ts.map +1 -1
- package/dist/src/content/server/slug-history-model.d.ts.map +1 -1
- package/dist/src/content/server/slugs.d.ts.map +1 -1
- package/dist/src/content/server/table.d.ts.map +1 -1
- package/dist/src/content/server/translation-editorial-service.d.ts.map +1 -1
- package/dist/src/content/server/translation-effects.d.ts.map +1 -1
- package/dist/src/content/server/translation-http-errors.d.ts.map +1 -1
- package/dist/src/content/server/translation-model.d.ts.map +1 -1
- package/dist/src/content/server/translation-routes.d.ts.map +1 -1
- package/dist/src/content/server/translation-table.d.ts.map +1 -1
- package/dist/src/content/server/types.d.ts.map +1 -1
- package/dist/src/content/sitemap.d.ts.map +1 -1
- package/dist/src/content/slug.d.ts.map +1 -1
- package/dist/src/content/types.d.ts.map +1 -1
- package/dist/src/database/content.d.ts.map +1 -1
- package/dist/src/database/relations.d.ts.map +1 -1
- package/dist/src/database/secrets.d.ts.map +1 -1
- package/dist/src/emoji-picker.css +104 -0
- package/dist/src/framework/admin-nav/generate.d.ts.map +1 -1
- package/dist/src/framework/admin-nav/generate.js +1 -20
- package/dist/src/framework/admin-nav/index.d.ts.map +1 -1
- package/dist/src/framework/admin-nav/types.d.ts.map +1 -1
- package/dist/src/framework/content-registry/generate.d.ts.map +1 -1
- package/dist/src/framework/content-registry/generate.js +1 -25
- package/dist/src/framework/content-registry/index.d.ts.map +1 -1
- package/dist/src/framework/content-registry/types.d.ts.map +1 -1
- package/dist/src/framework/plugin-routes/compile.d.ts.map +1 -1
- package/dist/src/framework/plugin-routes/component-source.d.ts.map +1 -1
- package/dist/src/framework/plugin-routes/diagnostics.d.ts.map +1 -1
- package/dist/src/framework/plugin-routes/generate.d.ts.map +1 -1
- package/dist/src/framework/plugin-routes/generate.js +1 -12
- package/dist/src/framework/plugin-routes/host-routes.d.ts.map +1 -1
- package/dist/src/framework/plugin-routes/index.d.ts.map +1 -1
- package/dist/src/framework/plugin-routes/resolve.d.ts.map +1 -1
- package/dist/src/framework/plugin-routes/types.d.ts.map +1 -1
- package/dist/src/framework/vite/env.d.ts.map +1 -1
- package/dist/src/framework/vite/env.js +1 -1
- package/dist/src/framework/vite/generation-queue.d.ts.map +1 -1
- package/dist/src/framework/vite/index.d.ts +2 -0
- package/dist/src/framework/vite/index.d.ts.map +1 -1
- package/dist/src/framework/vite/index.js +1 -1
- package/dist/src/framework/vite/module-version.d.ts.map +1 -1
- package/dist/src/framework/vite/optimize-deps.d.ts +2 -1
- package/dist/src/framework/vite/optimize-deps.d.ts.map +1 -1
- package/dist/src/framework/vite/optimize-deps.js +1 -1
- package/dist/src/framework/vite/plugin-routes.d.ts +1 -0
- package/dist/src/framework/vite/plugin-routes.d.ts.map +1 -1
- package/dist/src/framework/vite/plugin-routes.js +1 -1
- package/dist/src/framework/vite/ssr-externals.d.ts +7 -0
- package/dist/src/framework/vite/ssr-externals.d.ts.map +1 -0
- package/dist/src/framework/vite/ssr-externals.js +1 -0
- package/dist/src/framework/vite/vitnode.d.ts.map +1 -1
- package/dist/src/framework/vite/vitnode.js +1 -1
- package/dist/src/hooks/use-captcha.d.ts.map +1 -1
- package/dist/src/lib/api/get-queue-backoff-date.d.ts.map +1 -1
- package/dist/src/lib/api/pg-error.d.ts.map +1 -1
- package/dist/src/lib/api/resolve-queue-task-outcome.d.ts.map +1 -1
- package/dist/src/lib/api/signed-token.d.ts.map +1 -1
- package/dist/src/lib/api/upload.d.ts +2 -1
- package/dist/src/lib/api/upload.d.ts.map +1 -1
- package/dist/src/lib/api/upload.js +1 -1
- package/dist/src/lib/api/validate-cron-schedule.d.ts.map +1 -1
- package/dist/src/lib/config.d.ts +1 -0
- package/dist/src/lib/config.d.ts.map +1 -1
- package/dist/src/lib/config.js +1 -1
- package/dist/src/lib/email-canonical.d.ts +3 -0
- package/dist/src/lib/email-canonical.d.ts.map +1 -0
- package/dist/src/lib/email-canonical.js +1 -0
- package/dist/src/lib/fetcher/rate-limit.d.ts.map +1 -1
- package/dist/src/lib/fetcher/raw.d.ts.map +1 -1
- package/dist/src/lib/fetcher/request-context.d.ts.map +1 -1
- package/dist/src/lib/fetcher/set-cookie.d.ts.map +1 -1
- package/dist/src/lib/fetcher-client.d.ts +5 -0
- package/dist/src/lib/fetcher-client.d.ts.map +1 -1
- package/dist/src/lib/fetcher-client.js +1 -1
- package/dist/src/lib/file-constraints.d.ts.map +1 -1
- package/dist/src/lib/file-extension.d.ts.map +1 -1
- package/dist/src/lib/files/bulk-delete.d.ts.map +1 -1
- package/dist/src/lib/files/in-use.d.ts.map +1 -1
- package/dist/src/lib/i18n/deep-merge.d.ts.map +1 -1
- package/dist/src/lib/i18n/locale-cookie.d.ts.map +1 -1
- package/dist/src/lib/i18n/locale-routing.d.ts.map +1 -1
- package/dist/src/lib/i18n/negotiate-locale.d.ts.map +1 -1
- package/dist/src/lib/i18n/pick-messages.d.ts.map +1 -1
- package/dist/src/lib/i18n/provider.d.ts.map +1 -1
- package/dist/src/lib/i18n/provider.js +1 -1
- package/dist/src/lib/i18n/types.d.ts.map +1 -1
- package/dist/src/lib/metadata.d.ts.map +1 -1
- package/dist/src/lib/plugin.d.ts +3 -0
- package/dist/src/lib/plugin.d.ts.map +1 -1
- package/dist/src/lib/query-client.d.ts.map +1 -1
- package/dist/src/lib/query-freshness.d.ts.map +1 -1
- package/dist/src/lib/task-pool.d.ts.map +1 -1
- package/dist/src/locales/api/index.d.ts.map +1 -1
- package/dist/src/locales/en.json +45 -2
- package/dist/src/locales/index.d.ts.map +1 -1
- package/dist/src/locales/pl.json +44 -1
- package/dist/src/routing/authoring.d.ts.map +1 -1
- package/dist/src/routing/errors.d.ts.map +1 -1
- package/dist/src/routing/graph.d.ts.map +1 -1
- package/dist/src/routing/index.d.ts.map +1 -1
- package/dist/src/routing/manifest.d.ts.map +1 -1
- package/dist/src/routing/module.d.ts.map +1 -1
- package/dist/src/routing/namespaces.d.ts.map +1 -1
- package/dist/src/routing/order.d.ts.map +1 -1
- package/dist/src/routing/path.d.ts.map +1 -1
- package/dist/src/routing/path.js +1 -1
- package/dist/src/routing/tree.d.ts.map +1 -1
- package/dist/src/routing/types.d.ts.map +1 -1
- package/dist/src/tanstack/admin/actions.d.ts.map +1 -1
- package/dist/src/tanstack/admin/breadcrumb.d.ts.map +1 -1
- package/dist/src/tanstack/admin/breadcrumb.js +1 -1
- package/dist/src/tanstack/admin/content/breadcrumb-model.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/breadcrumb.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/breadcrumb.js +1 -1
- package/dist/src/tanstack/admin/content/create-action.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/create-action.js +1 -1
- package/dist/src/tanstack/admin/content/editorial/host.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/editorial/host.js +1 -1
- package/dist/src/tanstack/admin/content/editorial/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/editorial/panels.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/editorial/panels.js +1 -1
- package/dist/src/tanstack/admin/content/editorial/transport.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/dialog.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/dialog.js +1 -1
- package/dist/src/tanstack/admin/content/form/form-body.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/form-body.js +1 -1
- package/dist/src/tanstack/admin/content/form/host.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/host.js +1 -1
- package/dist/src/tanstack/admin/content/form/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/page-body.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/page-body.js +1 -1
- package/dist/src/tanstack/admin/content/form/page-skeleton.d.ts +9 -0
- package/dist/src/tanstack/admin/content/form/page-skeleton.d.ts.map +1 -0
- package/dist/src/tanstack/admin/content/form/page-skeleton.js +1 -0
- package/dist/src/tanstack/admin/content/form/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/screen.js +1 -1
- package/dist/src/tanstack/admin/content/form/spec.d.ts +2 -0
- package/dist/src/tanstack/admin/content/form/spec.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/spec.js +1 -1
- package/dist/src/tanstack/admin/content/form/transport.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/form/transport.js +1 -1
- package/dist/src/tanstack/admin/content/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/list.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/list.js +1 -1
- package/dist/src/tanstack/admin/content/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/query.js +1 -1
- package/dist/src/tanstack/admin/content/route-screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/route-screen.js +1 -1
- package/dist/src/tanstack/admin/content/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/row-actions.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/row-actions.js +1 -1
- package/dist/src/tanstack/admin/content/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/screen.js +1 -1
- package/dist/src/tanstack/admin/content/slot-render.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/slots.d.ts.map +1 -1
- package/dist/src/tanstack/admin/content/transport.d.ts +3 -0
- package/dist/src/tanstack/admin/content/transport.d.ts.map +1 -0
- package/dist/src/tanstack/admin/content/transport.js +1 -0
- package/dist/src/tanstack/admin/cron/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/cron/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/cron/query.js +1 -1
- package/dist/src/tanstack/admin/cron/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/cron/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/cron/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/cron/screen.js +1 -1
- package/dist/src/tanstack/admin/dashboard/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/dashboard/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/dashboard/query.js +1 -1
- package/dist/src/tanstack/admin/dashboard/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/dashboard/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/dashboard/screen.js +1 -1
- package/dist/src/tanstack/admin/dashboard/widgets.d.ts.map +1 -1
- package/dist/src/tanstack/admin/dashboard/widgets.js +1 -1
- package/dist/src/tanstack/admin/debug/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/debug/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/debug/query.js +1 -1
- package/dist/src/tanstack/admin/debug/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/debug/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/debug/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/debug/screen.js +1 -1
- package/dist/src/tanstack/admin/files/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/files/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/files/query.js +1 -1
- package/dist/src/tanstack/admin/files/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/files/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/files/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/files/screen.js +1 -1
- package/dist/src/tanstack/admin/identity.d.ts.map +1 -1
- package/dist/src/tanstack/admin/index.d.ts +0 -1
- package/dist/src/tanstack/admin/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/index.js +1 -1
- package/dist/src/tanstack/admin/integrations/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/integrations/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/integrations/query.js +1 -1
- package/dist/src/tanstack/admin/integrations/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/integrations/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/integrations/screen.js +1 -1
- package/dist/src/tanstack/admin/intl.d.ts.map +1 -1
- package/dist/src/tanstack/admin/nav.d.ts.map +1 -1
- package/dist/src/tanstack/admin/nav.js +1 -1
- package/dist/src/tanstack/admin/permissions.d.ts.map +1 -1
- package/dist/src/tanstack/admin/permissions.js +1 -1
- package/dist/src/tanstack/admin/queries.d.ts.map +1 -1
- package/dist/src/tanstack/admin/queue/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/queue/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/queue/query.js +1 -1
- package/dist/src/tanstack/admin/queue/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/queue/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/queue/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/queue/screen.js +1 -1
- package/dist/src/tanstack/admin/return-to.d.ts.map +1 -1
- package/dist/src/tanstack/admin/roles/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/roles/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/roles/query.js +1 -1
- package/dist/src/tanstack/admin/roles/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/roles/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/roles/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/roles/screen.js +1 -1
- package/dist/src/tanstack/admin/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/search-index/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/search-index/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/search-index/query.js +1 -1
- package/dist/src/tanstack/admin/search-index/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/search-index/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/search-index/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/search-index/screen.js +1 -1
- package/dist/src/tanstack/admin/search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/search.js +1 -1
- package/dist/src/tanstack/admin/session-api.d.ts.map +1 -1
- package/dist/src/tanstack/admin/session-query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/shell.d.ts.map +1 -1
- package/dist/src/tanstack/admin/shell.js +1 -1
- package/dist/src/tanstack/admin/sign-in-route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/sign-in-screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/sign-in-screen.js +1 -1
- package/dist/src/tanstack/admin/staff/breadcrumbs.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/breadcrumbs.js +1 -1
- package/dist/src/tanstack/admin/staff/create-route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/create-screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/create-screen.js +1 -1
- package/dist/src/tanstack/admin/staff/edit-route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/edit-screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/edit-screen.js +1 -1
- package/dist/src/tanstack/admin/staff/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/query.js +1 -1
- package/dist/src/tanstack/admin/staff/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/staff/screen.js +1 -1
- package/dist/src/tanstack/admin/state.d.ts.map +1 -1
- package/dist/src/tanstack/admin/table-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/transport.d.ts.map +1 -1
- package/dist/src/tanstack/admin/user-bar.d.ts.map +1 -1
- package/dist/src/tanstack/admin/user-bar.js +1 -1
- package/dist/src/tanstack/admin/users/detail-breadcrumb.d.ts.map +1 -1
- package/dist/src/tanstack/admin/users/detail-breadcrumb.js +1 -1
- package/dist/src/tanstack/admin/users/detail-route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/users/detail-screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/users/detail-screen.js +1 -1
- package/dist/src/tanstack/admin/users/index.d.ts.map +1 -1
- package/dist/src/tanstack/admin/users/query.d.ts.map +1 -1
- package/dist/src/tanstack/admin/users/query.js +1 -1
- package/dist/src/tanstack/admin/users/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/admin/users/route.d.ts.map +1 -1
- package/dist/src/tanstack/admin/users/screen.d.ts.map +1 -1
- package/dist/src/tanstack/admin/users/screen.js +1 -1
- package/dist/src/tanstack/auth/actions.d.ts.map +1 -1
- package/dist/src/tanstack/auth/contract.d.ts.map +1 -1
- package/dist/src/tanstack/auth/index.d.ts.map +1 -1
- package/dist/src/tanstack/auth/login-route.d.ts.map +1 -1
- package/dist/src/tanstack/auth/login-screen.d.ts.map +1 -1
- package/dist/src/tanstack/auth/login-screen.js +1 -1
- package/dist/src/tanstack/auth/middleware-config.d.ts.map +1 -1
- package/dist/src/tanstack/auth/middleware-config.js +1 -1
- package/dist/src/tanstack/auth/queries.d.ts.map +1 -1
- package/dist/src/tanstack/auth/recovery-route.d.ts.map +1 -1
- package/dist/src/tanstack/auth/recovery-screen.d.ts.map +1 -1
- package/dist/src/tanstack/auth/recovery-screen.js +1 -1
- package/dist/src/tanstack/auth/recovery.d.ts.map +1 -1
- package/dist/src/tanstack/auth/redirects.d.ts.map +1 -1
- package/dist/src/tanstack/auth/register-route.d.ts.map +1 -1
- package/dist/src/tanstack/auth/register-screen.d.ts.map +1 -1
- package/dist/src/tanstack/auth/register-screen.js +1 -1
- package/dist/src/tanstack/auth/return-to.d.ts.map +1 -1
- package/dist/src/tanstack/auth/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/auth/screens.d.ts.map +1 -1
- package/dist/src/tanstack/auth/session-api.d.ts.map +1 -1
- package/dist/src/tanstack/auth/session-query.d.ts.map +1 -1
- package/dist/src/tanstack/auth/sign-up-session.d.ts.map +1 -1
- package/dist/src/tanstack/auth/sso-route.d.ts.map +1 -1
- package/dist/src/tanstack/auth/sso-screen.d.ts.map +1 -1
- package/dist/src/tanstack/auth/sso-screen.js +1 -1
- package/dist/src/tanstack/auth/state.d.ts.map +1 -1
- package/dist/src/tanstack/auth/transport.d.ts.map +1 -1
- package/dist/src/tanstack/breadcrumb/index.d.ts.map +1 -1
- package/dist/src/tanstack/breadcrumb/main-breadcrumb.d.ts.map +1 -1
- package/dist/src/tanstack/breadcrumb/main-breadcrumb.js +1 -1
- package/dist/src/tanstack/breadcrumb/model.d.ts.map +1 -1
- package/dist/src/tanstack/devices/index.d.ts.map +1 -1
- package/dist/src/tanstack/devices/panel.d.ts.map +1 -1
- package/dist/src/tanstack/devices/panel.js +1 -1
- package/dist/src/tanstack/devices/query.d.ts.map +1 -1
- package/dist/src/tanstack/devices/query.js +1 -1
- package/dist/src/tanstack/fetcher/index.d.ts +15 -0
- package/dist/src/tanstack/fetcher/index.d.ts.map +1 -0
- package/dist/src/tanstack/fetcher/index.js +1 -0
- package/dist/src/tanstack/fetcher/server.d.ts.map +1 -1
- package/dist/src/tanstack/fetcher/server.js +1 -1
- package/dist/src/tanstack/files/index.d.ts.map +1 -1
- package/dist/src/tanstack/files/query.d.ts.map +1 -1
- package/dist/src/tanstack/files/query.js +1 -1
- package/dist/src/tanstack/files/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/files/route.d.ts.map +1 -1
- package/dist/src/tanstack/files/screen.d.ts.map +1 -1
- package/dist/src/tanstack/files/screen.js +1 -1
- package/dist/src/tanstack/i18n/index.d.ts.map +1 -1
- package/dist/src/tanstack/i18n/locale.d.ts.map +1 -1
- package/dist/src/tanstack/i18n/messages.d.ts.map +1 -1
- package/dist/src/tanstack/i18n/query.d.ts.map +1 -1
- package/dist/src/tanstack/i18n/request.d.ts.map +1 -1
- package/dist/src/tanstack/i18n/request.js +1 -1
- package/dist/src/tanstack/i18n/route-messages.d.ts.map +1 -1
- package/dist/src/tanstack/i18n/route-messages.js +1 -1
- package/dist/src/tanstack/i18n/runtime.d.ts.map +1 -1
- package/dist/src/tanstack/i18n/server.d.ts.map +1 -1
- package/dist/src/tanstack/i18n/switch-locale.d.ts.map +1 -1
- package/dist/src/tanstack/layout/error-actions.d.ts.map +1 -1
- package/dist/src/tanstack/layout/error-actions.js +1 -1
- package/dist/src/tanstack/layout/header.d.ts.map +1 -1
- package/dist/src/tanstack/layout/header.js +1 -1
- package/dist/src/tanstack/layout/index.d.ts +1 -1
- package/dist/src/tanstack/layout/index.d.ts.map +1 -1
- package/dist/src/tanstack/layout/index.js +1 -1
- package/dist/src/tanstack/layout/language-switcher.d.ts.map +1 -1
- package/dist/src/tanstack/layout/language-switcher.js +1 -1
- package/dist/src/tanstack/layout/main-header.d.ts.map +1 -1
- package/dist/src/tanstack/layout/main-header.js +1 -1
- package/dist/src/tanstack/layout/not-found.d.ts +3 -0
- package/dist/src/tanstack/layout/not-found.d.ts.map +1 -1
- package/dist/src/tanstack/layout/not-found.js +1 -1
- package/dist/src/tanstack/layout/root-providers.d.ts.map +1 -1
- package/dist/src/tanstack/layout/root-providers.js +1 -1
- package/dist/src/tanstack/layout/router-link.d.ts.map +1 -1
- package/dist/src/tanstack/layout/router-link.js +1 -1
- package/dist/src/tanstack/layout/user-header.d.ts.map +1 -1
- package/dist/src/tanstack/layout/user-header.js +1 -1
- package/dist/src/tanstack/metadata/index.d.ts.map +1 -1
- package/dist/src/tanstack/pending/guard-pending.d.ts.map +1 -1
- package/dist/src/tanstack/pending/guard-pending.js +1 -1
- package/dist/src/tanstack/pending/navigation-pending.d.ts.map +1 -1
- package/dist/src/tanstack/pending/navigation-pending.js +1 -1
- package/dist/src/tanstack/pending/route-pending-skeleton.d.ts.map +1 -1
- package/dist/src/tanstack/pending/route-pending-skeleton.js +1 -1
- package/dist/src/tanstack/pending/shapes.d.ts.map +1 -1
- package/dist/src/tanstack/pending/shapes.js +1 -1
- package/dist/src/tanstack/plugin-routes/collision.d.ts.map +1 -1
- package/dist/src/tanstack/plugin-routes/components.d.ts.map +1 -1
- package/dist/src/tanstack/plugin-routes/components.js +1 -1
- package/dist/src/tanstack/plugin-routes/container.d.ts.map +1 -1
- package/dist/src/tanstack/plugin-routes/guard.d.ts.map +1 -1
- package/dist/src/tanstack/plugin-routes/head.d.ts.map +1 -1
- package/dist/src/tanstack/plugin-routes/index.d.ts.map +1 -1
- package/dist/src/tanstack/plugin-routes/loader-data.d.ts.map +1 -1
- package/dist/src/tanstack/plugin-routes/module-ref.d.ts.map +1 -1
- package/dist/src/tanstack/plugin-routes/mount.d.ts.map +1 -1
- package/dist/src/tanstack/plugin-routes/specs.d.ts.map +1 -1
- package/dist/src/tanstack/realtime/index.d.ts.map +1 -1
- package/dist/src/tanstack/realtime/realtime-listeners.d.ts.map +1 -1
- package/dist/src/tanstack/realtime/realtime-listeners.js +1 -1
- package/dist/src/tanstack/realtime/session.d.ts.map +1 -1
- package/dist/src/tanstack/routes/admin/advanced.d.ts.map +1 -1
- package/dist/src/tanstack/routes/admin/content.d.ts.map +1 -1
- package/dist/src/tanstack/routes/admin/index.d.ts.map +1 -1
- package/dist/src/tanstack/routes/admin/staff.d.ts.map +1 -1
- package/dist/src/tanstack/routes/admin/system.d.ts.map +1 -1
- package/dist/src/tanstack/routes/admin/users.d.ts.map +1 -1
- package/dist/src/tanstack/routes/index.d.ts +1 -1
- package/dist/src/tanstack/routes/index.d.ts.map +1 -1
- package/dist/src/tanstack/routes/main/auth.d.ts +3 -0
- package/dist/src/tanstack/routes/main/auth.d.ts.map +1 -0
- package/dist/src/tanstack/routes/main/discovery.d.ts.map +1 -1
- package/dist/src/tanstack/routes/main/files.d.ts.map +1 -1
- package/dist/src/tanstack/routes/main/index.d.ts +4 -3
- package/dist/src/tanstack/routes/main/index.d.ts.map +1 -1
- package/dist/src/tanstack/routes/main/index.js +1 -1
- package/dist/src/tanstack/routes/main/settings.d.ts.map +1 -1
- package/dist/src/tanstack/routes/main/sso.d.ts +3 -0
- package/dist/src/tanstack/routes/main/sso.d.ts.map +1 -0
- package/dist/src/tanstack/routes/root/admin-sign-in.d.ts.map +1 -1
- package/dist/src/tanstack/routes/root/index.d.ts.map +1 -1
- package/dist/src/tanstack/routes/root/index.js +1 -1
- package/dist/src/tanstack/routes/root/types.d.ts +2 -5
- package/dist/src/tanstack/routes/root/types.d.ts.map +1 -1
- package/dist/src/tanstack/routes/types.d.ts +5 -0
- package/dist/src/tanstack/routes/types.d.ts.map +1 -1
- package/dist/src/tanstack/search/discover-route.d.ts.map +1 -1
- package/dist/src/tanstack/search/discover-screen.d.ts.map +1 -1
- package/dist/src/tanstack/search/discover-screen.js +1 -1
- package/dist/src/tanstack/search/discover.d.ts.map +1 -1
- package/dist/src/tanstack/search/feed.d.ts.map +1 -1
- package/dist/src/tanstack/search/feed.js +1 -1
- package/dist/src/tanstack/search/index.d.ts.map +1 -1
- package/dist/src/tanstack/search/route-search.d.ts.map +1 -1
- package/dist/src/tanstack/search/search-route.d.ts.map +1 -1
- package/dist/src/tanstack/search/search-screen.d.ts.map +1 -1
- package/dist/src/tanstack/search/search-screen.js +1 -1
- package/dist/src/tanstack/settings/index.d.ts.map +1 -1
- package/dist/src/tanstack/settings/layout.d.ts.map +1 -1
- package/dist/src/tanstack/settings/layout.js +1 -1
- package/dist/src/tanstack/settings/route.d.ts.map +1 -1
- package/dist/src/tanstack/start/create-start.d.ts.map +1 -1
- package/dist/src/tanstack/start/document-headers.d.ts.map +1 -1
- package/dist/src/tanstack/start/index.d.ts.map +1 -1
- package/dist/src/tiptap.css +103 -6
- package/dist/src/views/admin/admin-request.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/admin-link.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-admin-content.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/normalize-url.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/search/search-content.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/search/search-content.js +1 -1
- package/dist/src/views/admin/layouts/search/search-dialog-content.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/search/search-dialog-content.js +1 -1
- package/dist/src/views/admin/layouts/search/search-only-pages.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/search/search-users.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/sidebar/nav/item-content.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/sidebar/nav/item-content.js +1 -1
- package/dist/src/views/admin/layouts/sidebar/nav/nav-active.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/sidebar/nav/nav-content.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/sidebar/nav/nav-model.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/sidebar/sidebar-content.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/user-bar/user-bar-content.d.ts.map +1 -1
- package/dist/src/views/admin/layouts/user-bar/user-bar-content.js +1 -1
- package/dist/src/views/admin/sign-in/sign-in-admin-content.d.ts.map +1 -1
- package/dist/src/views/admin/table/params.d.ts.map +1 -1
- package/dist/src/views/admin/table/query.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/conflict-notice.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/content-form.d.ts +3 -1
- package/dist/src/views/admin/views/content/actions/content-form.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/content-form.js +1 -1
- package/dist/src/views/admin/views/content/actions/content-panel.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/content-panel.js +1 -1
- package/dist/src/views/admin/views/content/actions/delivery/delivery-panel.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/delivery-action.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/delivery-action.js +1 -1
- package/dist/src/views/admin/views/content/actions/delivery-model.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/editorial-api.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/editorial-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/editorial-transport.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/form-dialog.d.ts +2 -1
- package/dist/src/views/admin/views/content/actions/form-dialog.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/form-dialog.js +1 -1
- package/dist/src/views/admin/views/content/actions/history/revision-actor.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/history/revision-diff.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/history/revision-history.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/history/revision-row.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/history-action.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/history-action.js +1 -1
- package/dist/src/views/admin/views/content/actions/preview-action.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/preview-action.js +1 -1
- package/dist/src/views/admin/views/content/actions/row-actions-model.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/schedule/schedule-panel.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/schedule-action.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/actions/schedule-action.js +1 -1
- package/dist/src/views/admin/views/content/content-labels.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/content-mutation.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/content-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/content-request.d.ts +4 -1
- package/dist/src/views/admin/views/content/content-request.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/content-request.js +1 -1
- package/dist/src/views/admin/views/content/form/context.d.ts +1 -0
- package/dist/src/views/admin/views/content/form/context.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/form/context.js +1 -1
- package/dist/src/views/admin/views/content/form/diff.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/form/index.d.ts +3 -1
- package/dist/src/views/admin/views/content/form/index.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/form/index.js +1 -1
- package/dist/src/views/admin/views/content/form/item-query.d.ts +3 -1
- package/dist/src/views/admin/views/content/form/item-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/form/item-query.js +1 -1
- package/dist/src/views/admin/views/content/form/layout-primitives.d.ts +13 -0
- package/dist/src/views/admin/views/content/form/layout-primitives.d.ts.map +1 -0
- package/dist/src/views/admin/views/content/form/layout-primitives.js +1 -0
- package/dist/src/views/admin/views/content/form/mutations-api.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/form/navigation.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/form/primitives.d.ts +0 -11
- package/dist/src/views/admin/views/content/form/primitives.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/form/primitives.js +1 -1
- package/dist/src/views/admin/views/content/form/publication-status.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/form/sections.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/form/sections.js +1 -1
- package/dist/src/views/admin/views/content/form/skeleton.d.ts +46 -0
- package/dist/src/views/admin/views/content/form/skeleton.d.ts.map +1 -0
- package/dist/src/views/admin/views/content/form/skeleton.js +1 -0
- package/dist/src/views/admin/views/content/form/transport.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/lib/api-result.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/lib/field-component.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/lib/invalidate.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/lib/mutation-feedback.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/lib/options-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/lib/reference-options.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/lib/user-option.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/page/content-form-page.d.ts +2 -0
- package/dist/src/views/admin/views/content/page/content-form-page.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/page/content-form-page.js +1 -1
- package/dist/src/views/admin/views/content/table/cells.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/table/columns.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/table/list-mutations.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/table/list-query.d.ts +2 -1
- package/dist/src/views/admin/views/content/table/list-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/content/table/list-query.js +1 -1
- package/dist/src/views/admin/views/core/advanced/cron/cron-query.d.ts +2 -0
- package/dist/src/views/admin/views/core/advanced/cron/cron-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/cron/cron-query.js +1 -1
- package/dist/src/views/admin/views/core/advanced/cron/cron-table-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/cron/cron-table-content.js +1 -1
- package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.js +1 -1
- package/dist/src/views/admin/views/core/advanced/queue/queue-query.d.ts +2 -0
- package/dist/src/views/admin/views/core/advanced/queue/queue-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/queue/queue-query.js +1 -1
- package/dist/src/views/admin/views/core/advanced/queue/queue-table-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/queue/queue-table-content.js +1 -1
- package/dist/src/views/admin/views/core/advanced/search/collection-status.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/collections-table-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/collections-table-content.js +1 -1
- package/dist/src/views/admin/views/core/advanced/search/cron-warning.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/cron-warning.js +1 -1
- package/dist/src/views/admin/views/core/advanced/search/reindex-action.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/reindex-action.js +1 -1
- package/dist/src/views/admin/views/core/advanced/search/remove-documents-action.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/remove-documents-action.js +1 -1
- package/dist/src/views/admin/views/core/advanced/search/search-header-actions.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/search-header-actions.js +1 -1
- package/dist/src/views/admin/views/core/advanced/search/search-index-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/search-index-content.js +1 -1
- package/dist/src/views/admin/views/core/advanced/search/search-index-mutations.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/search-index-query.d.ts +2 -0
- package/dist/src/views/admin/views/core/advanced/search/search-index-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/search-index-query.js +1 -1
- package/dist/src/views/admin/views/core/advanced/search/sync-errors-card-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/advanced/search/sync-errors-card-content.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/board-provider.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/board-provider.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/dashboard-grid.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/dashboard-grid.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/drop-placeholder.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/drop-placeholder.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/edit-actions.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/edit-actions.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/widget-card.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/widget-card.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/widget-panel.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/widget-panel.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/widget-settings-dialog.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/widget-settings-dialog.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/widget-skeleton.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/grid/widget-skeleton.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/build-board.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/dashboard-actions.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/layout-query.d.ts +2 -0
- package/dist/src/views/admin/views/core/dashboard/widgets/layout-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/layout-query.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/normalize-layout.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/notes/notes-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/notes/notes-content.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/resolve-widgets.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/send-notification/send-notification-settings-form.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/send-notification/send-notification-settings-form.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/send-notification/send-notification.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/send-notification/send-notification.js +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/types.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/dashboard/widgets/widget-mutations.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/debug/actions/clear-cache/clear-cache.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/debug/actions/clear-cache/clear-cache.js +1 -1
- package/dist/src/views/admin/views/core/debug/debug-query.d.ts +3 -0
- package/dist/src/views/admin/views/core/debug/debug-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/debug/debug-query.js +1 -1
- package/dist/src/views/admin/views/core/debug/queue/queue-view-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/debug/queue/queue-view-content.js +1 -1
- package/dist/src/views/admin/views/core/debug/system-logs/actions/more/content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/debug/system-logs/actions/more/more.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/debug/system-logs/actions/more/more.js +1 -1
- package/dist/src/views/admin/views/core/debug/system-logs/system-logs-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/debug/system-logs/system-logs-content.js +1 -1
- package/dist/src/views/admin/views/core/shared/admin-mutation.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/shared/admin-permissions.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/shared/admin-scope.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/staff/create/create-staff-form-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/staff/create/create-staff-form-content.js +1 -1
- package/dist/src/views/admin/views/core/staff/edit/edit-staff-form-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/staff/edit/edit-staff-form-content.js +1 -1
- package/dist/src/views/admin/views/core/staff/selectable-card.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/staff/selectable-card.js +1 -1
- package/dist/src/views/admin/views/core/staff/staff-model.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/staff/staff-mutations.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/staff/staff-query.d.ts +4 -0
- package/dist/src/views/admin/views/core/staff/staff-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/staff/staff-query.js +1 -1
- package/dist/src/views/admin/views/core/staff/table/staff-table-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/staff/table/staff-table-content.js +1 -1
- package/dist/src/views/admin/views/core/staff/table/staff-user-format-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/staff/table/staff-user-format-content.js +1 -1
- package/dist/src/views/admin/views/core/system/files/actions/file-row-actions.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/files/actions/file-row-actions.js +1 -1
- package/dist/src/views/admin/views/core/system/files/actions/files-bulk-actions.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/files/actions/files-bulk-actions.js +1 -1
- package/dist/src/views/admin/views/core/system/files/files-delete.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/files/files-query.d.ts +2 -0
- package/dist/src/views/admin/views/core/system/files/files-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/files/files-query.js +1 -1
- package/dist/src/views/admin/views/core/system/files/files-table-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/files/files-table-content.js +1 -1
- package/dist/src/views/admin/views/core/system/integrations/integrations-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/integrations-content.js +1 -1
- package/dist/src/views/admin/views/core/system/integrations/integrations-query.d.ts +2 -0
- package/dist/src/views/admin/views/core/system/integrations/integrations-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/integrations-query.js +1 -1
- package/dist/src/views/admin/views/core/system/integrations/send-test-email/content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/send-test-email/content.js +1 -1
- package/dist/src/views/admin/views/core/system/integrations/send-test-email/send-test-email-mutation.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/send-test-email/send-test-email.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/send-test-email/send-test-email.js +1 -1
- package/dist/src/views/admin/views/core/system/integrations/send-test-email/use-form.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/test-ai/content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/test-ai/content.js +1 -1
- package/dist/src/views/admin/views/core/system/integrations/test-ai/test-ai.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/test-ai/test-ai.js +1 -1
- package/dist/src/views/admin/views/core/system/integrations/test-storage/content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/test-storage/content.js +1 -1
- package/dist/src/views/admin/views/core/system/integrations/test-storage/test-storage.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/system/integrations/test-storage/test-storage.js +1 -1
- package/dist/src/views/admin/views/core/test.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/test.js +1 -1
- package/dist/src/views/admin/views/core/users/detail/user-detail-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/detail/user-detail-content.js +1 -1
- package/dist/src/views/admin/views/core/users/detail/user-fields-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/detail/user-fields-content.js +1 -1
- package/dist/src/views/admin/views/core/users/detail/user-query.d.ts +2 -0
- package/dist/src/views/admin/views/core/users/detail/user-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/detail/user-query.js +1 -1
- package/dist/src/views/admin/views/core/users/detail/user-roles-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/detail/user-roles-content.js +1 -1
- package/dist/src/views/admin/views/core/users/list/create-user-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/list/create-user-content.js +1 -1
- package/dist/src/views/admin/views/core/users/list/create-user-form.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/list/create-user-form.js +1 -1
- package/dist/src/views/admin/views/core/users/list/users-query.d.ts +2 -0
- package/dist/src/views/admin/views/core/users/list/users-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/list/users-query.js +1 -1
- package/dist/src/views/admin/views/core/users/list/users-table-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/list/users-table-content.js +1 -1
- package/dist/src/views/admin/views/core/users/roles/role-form-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/roles/role-form-content.js +1 -1
- package/dist/src/views/admin/views/core/users/roles/roles-mutations.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/roles/roles-query.d.ts +2 -0
- package/dist/src/views/admin/views/core/users/roles/roles-query.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/roles/roles-query.js +1 -1
- package/dist/src/views/admin/views/core/users/roles/roles-table-content.d.ts.map +1 -1
- package/dist/src/views/admin/views/core/users/roles/roles-table-content.js +1 -1
- package/dist/src/views/admin/views/core/users/users-mutations.d.ts.map +1 -1
- package/dist/src/views/auth/auth-link.d.ts.map +1 -1
- package/dist/src/views/auth/password-reset/change-password-form/change-password-form-content.d.ts.map +1 -1
- package/dist/src/views/auth/password-reset/change-password-form/change-password-form-content.js +1 -1
- package/dist/src/views/auth/password-reset/change-password-form/schema.d.ts.map +1 -1
- package/dist/src/views/auth/password-reset/change-password-form/use-change-password-form.d.ts.map +1 -1
- package/dist/src/views/auth/password-reset/change-password-form/use-change-password-form.js +1 -1
- package/dist/src/views/auth/password-reset/form/password-reset-form-content.d.ts.map +1 -1
- package/dist/src/views/auth/password-reset/form/password-reset-form-content.js +1 -1
- package/dist/src/views/auth/password-reset/form/schema.d.ts.map +1 -1
- package/dist/src/views/auth/password-reset/form/use-password-reset-form.d.ts.map +1 -1
- package/dist/src/views/auth/password-reset/form/use-password-reset-form.js +1 -1
- package/dist/src/views/auth/password-reset/password-reset-content.d.ts.map +1 -1
- package/dist/src/views/auth/password-reset/recovery-link.d.ts.map +1 -1
- package/dist/src/views/auth/settings/devices/device-item.d.ts.map +1 -1
- package/dist/src/views/auth/settings/devices/device-item.js +1 -1
- package/dist/src/views/auth/settings/devices/devices-content.d.ts.map +1 -1
- package/dist/src/views/auth/settings/devices/devices-content.js +1 -1
- package/dist/src/views/auth/settings/devices/devices-query.d.ts +2 -24
- package/dist/src/views/auth/settings/devices/devices-query.d.ts.map +1 -1
- package/dist/src/views/auth/settings/devices/devices-query.js +1 -1
- package/dist/src/views/auth/settings/devices/devices-revoke.d.ts.map +1 -1
- package/dist/src/views/auth/settings/devices/revoke-device-button.d.ts.map +1 -1
- package/dist/src/views/auth/settings/devices/revoke-device-button.js +1 -1
- package/dist/src/views/auth/settings/nav-content.d.ts.map +1 -1
- package/dist/src/views/auth/settings/nav-content.js +1 -1
- package/dist/src/views/auth/settings/overview/overview.d.ts.map +1 -1
- package/dist/src/views/auth/settings/overview/overview.js +1 -1
- package/dist/src/views/auth/settings/security/security.d.ts.map +1 -1
- package/dist/src/views/auth/settings/security/security.js +1 -1
- package/dist/src/views/auth/settings/settings-breadcrumb-content.d.ts.map +1 -1
- package/dist/src/views/auth/settings/settings-nav.d.ts.map +1 -1
- package/dist/src/views/auth/settings/shell-content.d.ts.map +1 -1
- package/dist/src/views/auth/settings/shell-content.js +1 -1
- package/dist/src/views/auth/sign-in/form/schema.d.ts.map +1 -1
- package/dist/src/views/auth/sign-in/form/sign-in-form-content.d.ts.map +1 -1
- package/dist/src/views/auth/sign-in/form/sign-in-form-content.js +1 -1
- package/dist/src/views/auth/sign-in/form/use-sign-in-form.d.ts.map +1 -1
- package/dist/src/views/auth/sign-in/form/use-sign-in-form.js +1 -1
- package/dist/src/views/auth/sign-in/sign-in-content.d.ts.map +1 -1
- package/dist/src/views/auth/sign-in/sign-in-content.js +1 -1
- package/dist/src/views/auth/sign-up/form/schema.d.ts.map +1 -1
- package/dist/src/views/auth/sign-up/form/sign-up-form-content.d.ts.map +1 -1
- package/dist/src/views/auth/sign-up/form/sign-up-form-content.js +1 -1
- package/dist/src/views/auth/sign-up/form/use-sign-up-form.d.ts.map +1 -1
- package/dist/src/views/auth/sign-up/form/use-sign-up-form.js +1 -1
- package/dist/src/views/auth/sign-up/sign-up-content.d.ts.map +1 -1
- package/dist/src/views/auth/sign-up/sign-up-content.js +1 -1
- package/dist/src/views/auth/sign-up/wrapper.d.ts.map +1 -1
- package/dist/src/views/auth/sign-up/wrapper.js +1 -1
- package/dist/src/views/auth/sso/buttons/sso-buttons-content.d.ts.map +1 -1
- package/dist/src/views/auth/sso/buttons/sso-buttons-content.js +1 -1
- package/dist/src/views/auth/sso/callback/sso-callback-content.d.ts.map +1 -1
- package/dist/src/views/auth/sso/callback/sso-callback-content.js +1 -1
- package/dist/src/views/auth/sso/callback/sso-callback-result.d.ts.map +1 -1
- package/dist/src/views/auth/sso/callback/use-sso-callback.d.ts.map +1 -1
- package/dist/src/views/auth/sso/callback/use-sso-callback.js +1 -1
- package/dist/src/views/auth/sso/providers.d.ts.map +1 -1
- package/dist/src/views/breadcrumb/breadcrumb-render-content.d.ts.map +1 -1
- package/dist/src/views/breadcrumb/breadcrumb-trail-content.d.ts.map +1 -1
- package/dist/src/views/error/error-content.d.ts.map +1 -1
- package/dist/src/views/files/actions/file-row-actions.d.ts.map +1 -1
- package/dist/src/views/files/actions/file-row-actions.js +1 -1
- package/dist/src/views/files/actions/files-bulk-actions.d.ts.map +1 -1
- package/dist/src/views/files/actions/files-bulk-actions.js +1 -1
- package/dist/src/views/files/my-files-query.d.ts +2 -0
- package/dist/src/views/files/my-files-query.d.ts.map +1 -1
- package/dist/src/views/files/my-files-query.js +1 -1
- package/dist/src/views/files/my-files-table-content.d.ts.map +1 -1
- package/dist/src/views/files/my-files-table-content.js +1 -1
- package/dist/src/views/layouts/providers.d.ts +2 -2
- package/dist/src/views/layouts/providers.d.ts.map +1 -1
- package/dist/src/views/layouts/providers.js +1 -1
- package/dist/src/views/layouts/rate-limit-listener.d.ts.map +1 -1
- package/dist/src/views/layouts/rate-limit-listener.js +1 -1
- package/dist/src/views/layouts/theme/header/header-content.d.ts.map +1 -1
- package/dist/src/views/layouts/theme/header/header-content.js +1 -1
- package/dist/src/views/layouts/theme/header/header-nav.d.ts.map +1 -1
- package/dist/src/views/layouts/theme/header/user/user-header-content.d.ts.map +1 -1
- package/dist/src/views/layouts/theme/header/user/user-header-content.js +1 -1
- package/dist/src/views/layouts/theme/header/user/user-header-model.d.ts.map +1 -1
- package/dist/src/views/layouts/theme/layout-content.d.ts.map +1 -1
- package/dist/src/views/layouts/theme/notification-listener.d.ts.map +1 -1
- package/dist/src/views/layouts/theme/notification-listener.js +1 -1
- package/dist/src/views/layouts/theme/web-socket-auth-sync.d.ts.map +1 -1
- package/dist/src/views/layouts/theme/web-socket-auth-sync.js +1 -1
- package/dist/src/views/search/search-controls-content.d.ts.map +1 -1
- package/dist/src/views/search/search-controls-content.js +1 -1
- package/dist/src/views/search/search-feed-content.d.ts.map +1 -1
- package/dist/src/views/search/search-feed-content.js +1 -1
- package/dist/src/views/search/search-feed-query.d.ts +2 -0
- package/dist/src/views/search/search-feed-query.d.ts.map +1 -1
- package/dist/src/views/search/search-feed-query.js +1 -1
- package/dist/src/views/search/search-params.d.ts.map +1 -1
- package/dist/src/vitnode.config.d.ts +6 -0
- package/dist/src/vitnode.config.d.ts.map +1 -1
- package/dist/src/ws/auth-sync.d.ts.map +1 -1
- package/dist/src/ws/handle.d.ts.map +1 -1
- package/dist/src/ws/manager.d.ts.map +1 -1
- package/dist/src/ws/notifications.d.ts.map +1 -1
- package/dist/src/ws/provider.d.ts.map +1 -1
- package/dist/src/ws/provider.js +1 -1
- package/dist/src/ws/registry.d.ts.map +1 -1
- package/dist/src/ws/types.d.ts.map +1 -1
- package/dist/src/ws/use-websocket.d.ts.map +1 -1
- package/dist/src/ws/use-websocket.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/eslint.config.mjs +4 -11
- package/package.json +12 -2
- package/src/locales/api/index.ts +0 -9
- package/src/locales/en.json +45 -2
- package/src/locales/index.ts +0 -21
- package/src/locales/pl.json +44 -1
- package/src/tiptap.css +103 -6
- package/test-fixtures/config-split/vitnode.config.ts +1 -9
- package/test-fixtures/config-split/vitnode.server.config.ts +1 -10
- package/dist/src/api/modules/users/routes/test.route.d.ts +0 -27
- package/dist/src/api/modules/users/routes/test.route.d.ts.map +0 -1
- package/dist/src/api/modules/users/routes/test.route.js +0 -1
- package/dist/src/tanstack/admin/content/form/server.d.ts +0 -10
- package/dist/src/tanstack/admin/content/form/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/content/form/server.js +0 -1
- package/dist/src/tanstack/admin/content/server.d.ts +0 -26
- package/dist/src/tanstack/admin/content/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/content/server.js +0 -1
- package/dist/src/tanstack/admin/cron/server.d.ts +0 -24
- package/dist/src/tanstack/admin/cron/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/cron/server.js +0 -1
- package/dist/src/tanstack/admin/dashboard/server.d.ts +0 -9
- package/dist/src/tanstack/admin/dashboard/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/dashboard/server.js +0 -1
- package/dist/src/tanstack/admin/debug/server.d.ts +0 -49
- package/dist/src/tanstack/admin/debug/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/debug/server.js +0 -1
- package/dist/src/tanstack/admin/files/server.d.ts +0 -40
- package/dist/src/tanstack/admin/files/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/files/server.js +0 -1
- package/dist/src/tanstack/admin/integrations/server.d.ts +0 -47
- package/dist/src/tanstack/admin/integrations/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/integrations/server.js +0 -1
- package/dist/src/tanstack/admin/not-found.d.ts +0 -4
- package/dist/src/tanstack/admin/not-found.d.ts.map +0 -1
- package/dist/src/tanstack/admin/not-found.js +0 -1
- package/dist/src/tanstack/admin/queue/server.d.ts +0 -28
- package/dist/src/tanstack/admin/queue/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/queue/server.js +0 -1
- package/dist/src/tanstack/admin/roles/server.d.ts +0 -32
- package/dist/src/tanstack/admin/roles/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/roles/server.js +0 -1
- package/dist/src/tanstack/admin/search-index/server.d.ts +0 -29
- package/dist/src/tanstack/admin/search-index/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/search-index/server.js +0 -1
- package/dist/src/tanstack/admin/staff/server.d.ts +0 -90
- package/dist/src/tanstack/admin/staff/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/staff/server.js +0 -1
- package/dist/src/tanstack/admin/users/server.d.ts +0 -72
- package/dist/src/tanstack/admin/users/server.d.ts.map +0 -1
- package/dist/src/tanstack/admin/users/server.js +0 -1
- package/dist/src/tanstack/auth/middleware-config-server.d.ts +0 -4
- package/dist/src/tanstack/auth/middleware-config-server.d.ts.map +0 -1
- package/dist/src/tanstack/auth/middleware-config-server.js +0 -1
- package/dist/src/tanstack/devices/server.d.ts +0 -14
- package/dist/src/tanstack/devices/server.d.ts.map +0 -1
- package/dist/src/tanstack/devices/server.js +0 -1
- package/dist/src/tanstack/files/server.d.ts +0 -27
- package/dist/src/tanstack/files/server.d.ts.map +0 -1
- package/dist/src/tanstack/files/server.js +0 -1
- package/dist/src/tanstack/routes/root/auth.d.ts +0 -3
- package/dist/src/tanstack/routes/root/auth.d.ts.map +0 -1
- package/dist/src/tanstack/routes/root/sso.d.ts +0 -3
- package/dist/src/tanstack/routes/root/sso.d.ts.map +0 -1
- package/dist/src/tanstack/search/server.d.ts +0 -35
- package/dist/src/tanstack/search/server.d.ts.map +0 -1
- package/dist/src/tanstack/search/server.js +0 -1
- package/test-fixtures/next-specimen/entry.ts +0 -21
- package/test-fixtures/next-specimen/hop.ts +0 -14
- /package/dist/src/tanstack/routes/{root → main}/auth.js +0 -0
- /package/dist/src/tanstack/routes/{root → main}/sso.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-pagination.d.ts","sourceRoot":"","sources":["../../../../src/api/lib/with-pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"with-pagination.d.ts","sourceRoot":"","sources":["../../../../src/api/lib/with-pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,WAAW,EACX,GAAG,EACJ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAElB,kBAAkB,EAClB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAkCtC,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAGvD,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAC5C,OAAO,uBAAuB,EAC9B,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CACvB,CAAC;AAkJF,KAAK,4BAA4B,GAC7B,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,UAAU,0BAA0B,EAAE,GACtC,UAAU,0BAA0B,EAAE,CAAC;AAE3C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAE3C,GAAG,EACH,kBAAkB,CAAC,4BAA4B,CAAC,CACjD,CAAC;AAEF,wBAAsB,cAAc,CAClC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,CAAC,SAAS,WAAW,EACrB,EACA,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,OAAO,EAAE,iBAAiB,EAC1B,CAAC,GACF,EAAE;IACD,CAAC,EAAE,OAAO,CAAC;IACX,OAAO,EAAE;QACP,MAAM,EAAE,QAAQ,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,MAAM,EAAE;QACN,KAAK,EAAE;YACL,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;IACF,aAAa,EAAE,sBAAsB,CAAC;IACtC,KAAK,EAAE,CAAC,IAAI,EAAE;QAQZ,eAAe,EAAE,yBAAyB,CAAC;QAC3C,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,EAAE,GAAG,CAAC;QACb,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC;KACxB,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IAC5C,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,GAAG,OAAO,CAAC;IACV,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,uBAAuB,CAAC,EAAE,CAAC;IACxD,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QAEd,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;QACzB,WAAW,EAAE,OAAO,CAAC;QACrB,eAAe,EAAE,OAAO,CAAC;QACzB,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC,CAmHD;AA6FD,eAAO,MAAM,qBAAqB;;;;;;;iBAWhC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;iBAe5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z}from"@hono/zod-openapi";import{and,asc,count,desc,eq,gt,ilike,isNotNull,isNull,lt,or,sql}from"drizzle-orm";import{HTTPException}from"hono/http-exception";import{cursorValueForColumn,cursorValueIsCanonicalText,cursorValueOf,decodePaginationCursor,encodePaginationCursor,isCursorSortableColumn}from"./pagination-cursor.js";const MAX_PAGE_SIZE=100;export const PAGINATION_CURSOR_FIELD="__cursorValue";function parsePaginationParams(params){const size=(raw,name)=>{if(raw===undefined||raw==="")return undefined;const parsed=Number(raw);if(!Number.isSafeInteger(parsed)||parsed<1){throw new HTTPException(400,{message:`"${name}" must be a whole number greater than zero.`})}return Math.min(parsed,MAX_PAGE_SIZE)};const first=size(params.query.first,"first");const last=size(params.query.last,"last");if(first!==undefined&&last!==undefined){throw new HTTPException(400,{message:'Use either "first" or "last", not both.'})}const cursor=params.query.cursor?.trim();return{cursor:cursor===""?undefined:cursor,first,last}}function effectiveDirection(isForward,order){if(isForward)return order;return order==="asc"?"desc":"asc"}function required(value){if(!value)throw new Error("Expected a pagination condition.");return value}function buildCursorCondition({column,cursor,direction,isPrimaryOrder,primary}){const after=direction==="asc"?gt:lt;if(isPrimaryOrder)return after(primary,
|
|
1
|
+
import{z}from"@hono/zod-openapi";import{and,asc,count,desc,eq,gt,ilike,isNotNull,isNull,lt,or,sql}from"drizzle-orm";import{HTTPException}from"hono/http-exception";import{cursorIdentifierForColumn,cursorIdentifierOf,cursorValueForColumn,cursorValueIsCanonicalText,cursorValueOf,decodePaginationCursor,encodePaginationCursor,isCursorSortableColumn,isPaginationIdentifierColumn}from"./pagination-cursor.js";const MAX_PAGE_SIZE=100;export const PAGINATION_CURSOR_FIELD="__cursorValue";function parsePaginationParams(params){const size=(raw,name)=>{if(raw===undefined||raw==="")return undefined;const parsed=Number(raw);if(!Number.isSafeInteger(parsed)||parsed<1){throw new HTTPException(400,{message:`"${name}" must be a whole number greater than zero.`})}return Math.min(parsed,MAX_PAGE_SIZE)};const first=size(params.query.first,"first");const last=size(params.query.last,"last");if(first!==undefined&&last!==undefined){throw new HTTPException(400,{message:'Use either "first" or "last", not both.'})}const cursor=params.query.cursor?.trim();return{cursor:cursor===""?undefined:cursor,first,last}}function effectiveDirection(isForward,order){if(isForward)return order;return order==="asc"?"desc":"asc"}function required(value){if(!value)throw new Error("Expected a pagination condition.");return value}function buildCursorCondition({column,cursor,direction,isPrimaryOrder,primary}){const after=direction==="asc"?gt:lt;const identifier=sql`${sql.param(cursorIdentifierForColumn(primary,cursor.id),primary)}`;if(isPrimaryOrder)return after(primary,identifier);const boundary=boundaryValue(column,cursor);if(direction==="asc"){if(cursor.value===null){return required(and(isNull(column),gt(primary,identifier)))}return required(or(gt(column,boundary),and(eq(column,boundary),gt(primary,identifier)),isNull(column)))}if(cursor.value===null){return required(or(and(isNull(column),lt(primary,identifier)),isNotNull(column)))}return required(or(lt(column,boundary),and(eq(column,boundary),lt(primary,identifier))))}function boundaryValue(column,cursor){const value=cursorValueForColumn(column,cursor.value);if(cursorValueIsCanonicalText(column)){return sql`${String(value)}::${sql.raw(column.getSQLType())}`}return sql`${sql.param(value,column)}`}function buildSearchWhere(search,term){const trimmed=term?.trim();if(!search?.length||!trimmed)return undefined;return or(...search.map(column=>ilike(column,`%${trimmed}%`)))}async function fetchTotalCount(c,table,where){const[{count:totalCount}]=await c.get("db").select({count:count()}).from(table).where(where);return totalCount}export async function withPagination({query,table,params,search,where:whereFromParams,primaryCursor,orderBy:orderByFromParams,c}){const{cursor:rawCursor,first,last}=parsePaginationParams(params);const isForward=last===undefined;const direction=effectiveDirection(isForward,orderByFromParams.order);const orderFn=direction==="asc"?asc:desc;const primary=table[primaryCursor.name];const orderName=orderByFromParams.column.name;const orderColumn=table[orderName];const isPrimaryOrder=orderName===primaryCursor.name;if(!isPaginationIdentifierColumn(primary)){throw new HTTPException(400,{message:`The "${primaryCursor.name}" primary cursor must be an integer, bigint or UUID column.`})}if(!isCursorSortableColumn(orderColumn)){throw new HTTPException(400,{message:`Results cannot be ordered by "${orderName}".`})}const orderBy=isPrimaryOrder?orderFn(primary):sql`${orderFn(orderColumn)}, ${orderFn(primary)}`;const cursor=rawCursor===undefined?undefined:decodePaginationCursor(rawCursor,{column:orderName,primary});const searchWhere=buildSearchWhere(search,params.query.search);const baseWhere=whereFromParams&&searchWhere?and(whereFromParams,searchWhere):whereFromParams??searchWhere;const cursorWhere=cursor?buildCursorCondition({column:orderColumn,cursor,direction,isPrimaryOrder,primary}):undefined;const where=baseWhere&&cursorWhere?and(baseWhere,cursorWhere):baseWhere??cursorWhere;const totalCount=await fetchTotalCount(c,table,baseWhere);const cursorSelection={[PAGINATION_CURSOR_FIELD]:cursorValueIsCanonicalText(orderColumn)?sql`${orderColumn}::text`:orderColumn};const limit=(first??last??50)+1;const edges=await query({cursorSelection,limit,where,orderBy});const requested=first??last??edges.length;const hasMore=edges.length>requested;const slicedEdges=edges.slice(0,requested);const finalEdges=isForward?slicedEdges:slicedEdges.reverse();const boundaries=cursorsFrom({edges:finalEdges,orderColumn,orderName,primaryColumn:primary,primaryName:primaryCursor.name});return{pageInfo:{totalCount,count:finalEdges.length,hasNextPage:finalEdges.length===0?false:isForward?hasMore:Boolean(cursor),hasPreviousPage:finalEdges.length===0?false:isForward?Boolean(cursor):hasMore,...boundaries},edges:finalEdges.map(withoutCursorField)}}function withoutCursorField(row){if(!(PAGINATION_CURSOR_FIELD in row))return row;const rest={...row};delete rest[PAGINATION_CURSOR_FIELD];return rest}function cursorsFrom({edges,orderColumn,orderName,primaryColumn,primaryName}){const first=edges[0];const last=edges.at(-1);if(!first||!last)return{endCursor:null,startCursor:null};const valueOf=row=>{if(PAGINATION_CURSOR_FIELD in row)return row[PAGINATION_CURSOR_FIELD];if(!cursorValueIsCanonicalText(orderColumn)&&orderName in row){return row[orderName]}throw new Error(`The page query for "${orderName}" must spread \`cursorSelection\` into its projection, so the cursor value is read from the same statement as the row.`)};const mint=row=>encodePaginationCursor({column:orderName,id:cursorIdentifierOf(primaryColumn,row[primaryName]),value:cursorValueOf(orderColumn,valueOf(row))});return{endCursor:mint(last),startCursor:mint(first)}}const zodPageSize=z.string().regex(/^\d+$/,"Must be a whole number.").refine(value=>Number(value)>=1,"Must be greater than zero.").refine(value=>Number.isSafeInteger(Number(value)),"Too large.");export const zodPaginationPageInfo=z.object({totalCount:z.number(),count:z.number(),hasNextPage:z.boolean(),hasPreviousPage:z.boolean(),startCursor:z.string().nullable(),endCursor:z.string().nullable()});export const zodPaginationQuery=z.object({cursor:z.string().min(1).max(512).regex(/^[A-Za-z0-9_-]+$/,"Invalid cursor.").optional(),first:zodPageSize.optional(),last:zodPageSize.optional()}).refine(query=>query.first===undefined||query.last===undefined,'Use either "first" or "last", not both.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/middlewares/captcha.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"captcha.middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/middlewares/captcha.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAwF1C,eAAO,MAAM,iBAAiB,SACd,GAAG,OAAO,EAAE,MAAM,IAAI,kBA6BrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{HTTPException}from"hono/http-exception";const getResFromReCaptcha=async({token,userIp,captchaConfig})=>{if(captchaConfig.type==="cloudflare_turnstile"){const res=await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify",{method:"POST",body:JSON.stringify({secret:
|
|
1
|
+
import{HTTPException}from"hono/http-exception";const getResFromReCaptcha=async({token,userIp,captchaConfig})=>{const{secretKey}=captchaConfig;if(!secretKey){return{success:false,score:0,"error-codes":["missing-secret-key"]}}if(captchaConfig.type==="cloudflare_turnstile"){const res=await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify",{method:"POST",body:JSON.stringify({secret:secretKey,response:token,remoteip:userIp}),headers:{"Content-Type":"application/json"}});const data=await res.json();return{success:data.success,score:data.success?1:0,"error-codes":data["error-codes"]}}if(captchaConfig.type==="recaptcha_v3"){const res=await fetch("https://www.google.com/recaptcha/api/siteverify",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({secret:secretKey,response:token,remoteip:userIp})});const data=await res.json();return{success:data.success,score:data.score??0,"error-codes":data["error-codes"]}}return{success:false,score:0}};export const captchaMiddleware=()=>{return async(c,next)=>{const token=c.req.header("x-vitnode-captcha-token");const captchaConfig=c.get("core").captcha;if(!captchaConfig){await next();return}if(!token){throw new HTTPException(400,{message:"Captcha token is required"})}const res=await getResFromReCaptcha({token,userIp:c.get("ipAddress"),captchaConfig});if(!res.success||res.score<.5){throw new HTTPException(400,{message:"Captcha validation failed"})}await next()}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-auth.middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/middlewares/cron-auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cron-auth.middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/middlewares/cron-auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA0C1C,eAAO,MAAM,kBAAkB,SACf,GAAG,OAAO,EAAE,MAAM,IAAI,kBA8BrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{HTTPException}from"hono/http-exception";export const cronAuthMiddleware=()=>{return async(c,next)=>{const cronSecret=c.get("core").cronSecret;if(!cronSecret){throw new HTTPException(403,{message:"Cron access not configured"})}
|
|
1
|
+
import{HTTPException}from"hono/http-exception";import{timingSafeEqual}from"node:crypto";import{CONFIG,INSECURE_CRON_SECRETS}from"../../lib/config.js";const secretsMatch=(provided,expected)=>{const a=Buffer.from(provided,"utf8");const b=Buffer.from(expected,"utf8");if(a.length!==b.length){timingSafeEqual(b,b);return false}return timingSafeEqual(a,b)};const bearerToken=header=>{if(!header)return undefined;const match=/^Bearer (.+)$/.exec(header);return match?.[1]};export const cronAuthMiddleware=()=>{return async(c,next)=>{const cronSecret=c.get("core").cronSecret;if(!cronSecret){throw new HTTPException(403,{message:"Cron access not configured"})}if(INSECURE_CRON_SECRETS.includes(cronSecret)&&!CONFIG.node_development){throw new HTTPException(403,{message:"Cron access is disabled because CRON_SECRET is still the built-in default. Set CRON_SECRET to a random value."})}const providedSecret=bearerToken(c.req.header("authorization"));if(!providedSecret||!secretsMatch(providedSecret,cronSecret)){throw new HTTPException(403,{message:"Invalid cron authorization"})}await next()}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/middlewares/global.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAEL,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAUpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"global.middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/middlewares/global.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{HTTPException}from"hono/http-exception";import{LocalEventsAdapter}from"../adapters/events/local.js";import{PostgresSearchAdapter}from"../adapters/search/postgres.js";import{CacheModel}from"../lib/cache.js";import{AIModel}from"../models/ai.js";import{EmailModel}from"../models/email.js";import{EventsModel}from"../models/events.js";import{I18nModel}from"../models/i18n.js";import{QueueModel}from"../models/queue.js";import{assertSearchProviderCapabilities,SearchModel,validateSearchIndexers}from"../models/search.js";import{SessionModel}from"../models/session.js";import{SessionAdminModel}from"../models/session-admin.js";import{StorageModel}from"../models/storage.js";import{validateContentTypes}from"../../content/registry.js";import{ensureContentLocalizationLanguages}from"../../content/server/language-resolver.js";import{warnAboutContentPreviewConfig}from"../../content/server/preview-config.js";import{ensureContentPreviewSecret}from"../../content/server/preview-secret.js";import{CONFIG}from"../../lib/config.js";import{collectLocaleCodes}from"../../lib/i18n/load-messages.js";import{buildApiMessagesSources}from"../../lib/i18n/sources.js";import{realtime}from"../../ws/registry.js";import{collectCronJobs}from"../lib/cron.js";import{loggerMiddleware}from"../lib/logger-middleware.js";import{normalizePermissionStaffModules}from"../lib/permission-staff.js";export const globalMiddleware=({ai,authorization,content,metadata,email,dbProvider,captcha,cron,events,plugins,i18n,search,storage,cacheClient})=>{const pluginsMetadata=plugins.map(plugin=>({id:plugin.pluginId}));const messagesSources=buildApiMessagesSources({appMessages:i18n?.messages,plugins});const i18nMetadata={defaultLocale:i18n?.defaultLocale??"en",locales:i18n?.locales??collectLocaleCodes(messagesSources).map(code=>({code,name:code})),sources:messagesSources};const cronMetadata=collectCronJobs(plugins);const eventsMetadata=plugins.flatMap(plugin=>(plugin.events??[]).map(listener=>({...listener,pluginId:plugin.pluginId})));const queueMetadata=plugins.flatMap(plugin=>(plugin.queueTasks??[]).map(task=>({pluginId:plugin.pluginId,module:task.module,name:task.name,handler:task.handler,description:task.description,maxAttempts:task.maxAttempts})));const webSocketsMetadata=plugins.flatMap(plugin=>(plugin.webSockets??[]).map(webSocket=>({...webSocket,pluginId:plugin.pluginId})));const searchIndexersMetadata=validateSearchIndexers(plugins.flatMap(plugin=>(plugin.searchIndexers??[]).map(indexer=>({...indexer,pluginId:plugin.pluginId}))));const contentTypesMetadata=validateContentTypes(plugins.flatMap(plugin=>(plugin.contentTypes??[]).map(definition=>({definition,pluginId:plugin.pluginId}))));warnAboutContentPreviewConfig({contentTypes:contentTypesMetadata});const hasPreviewableContentTypes=contentTypesMetadata.some(entry=>entry.definition.editorial.preview.enabled);const contentModelsMetadata=plugins.flatMap(plugin=>(plugin.contentModels??[]).map(model=>({model,pluginId:plugin.pluginId})));const hasLocalizedContentTypes=contentTypesMetadata.some(entry=>entry.definition.localization.enabled);const searchAdapter=search?.adapter??PostgresSearchAdapter();assertSearchProviderCapabilities(searchAdapter,{localizedSearchContentTypes:contentTypesMetadata.filter(entry=>entry.definition.localization.enabled&&entry.definition.search.enabled).map(entry=>entry.definition.id)});const permissionStaffMetadata=plugins.map(plugin=>({pluginId:plugin.pluginId,admin:normalizePermissionStaffModules(plugin.permissionStaff?.admin),moderator:normalizePermissionStaffModules(plugin.permissionStaff?.moderator)}));
|
|
1
|
+
import{HTTPException}from"hono/http-exception";import{LocalEventsAdapter}from"../adapters/events/local.js";import{PostgresSearchAdapter}from"../adapters/search/postgres.js";import{CacheModel}from"../lib/cache.js";import{AIModel}from"../models/ai.js";import{EmailModel}from"../models/email.js";import{EventsModel}from"../models/events.js";import{I18nModel}from"../models/i18n.js";import{QueueModel}from"../models/queue.js";import{assertSearchProviderCapabilities,SearchModel,validateSearchIndexers}from"../models/search.js";import{SessionModel}from"../models/session.js";import{SessionAdminModel}from"../models/session-admin.js";import{StorageModel}from"../models/storage.js";import{validateContentTypes}from"../../content/registry.js";import{ensureContentLocalizationLanguages}from"../../content/server/language-resolver.js";import{warnAboutContentPreviewConfig}from"../../content/server/preview-config.js";import{ensureContentPreviewSecret}from"../../content/server/preview-secret.js";import{CONFIG}from"../../lib/config.js";import{collectLocaleCodes}from"../../lib/i18n/load-messages.js";import{buildApiMessagesSources}from"../../lib/i18n/sources.js";import{realtime}from"../../ws/registry.js";import{resolveClientIp}from"../lib/client-ip.js";import{collectCronJobs}from"../lib/cron.js";import{loggerMiddleware}from"../lib/logger-middleware.js";import{normalizePermissionStaffModules}from"../lib/permission-staff.js";export const globalMiddleware=({ai,authorization,content,metadata,email,dbProvider,captcha,cron,events,plugins,i18n,search,storage,cacheClient})=>{const pluginsMetadata=plugins.map(plugin=>({id:plugin.pluginId}));const messagesSources=buildApiMessagesSources({appMessages:i18n?.messages,plugins});const i18nMetadata={defaultLocale:i18n?.defaultLocale??"en",locales:i18n?.locales??collectLocaleCodes(messagesSources).map(code=>({code,name:code})),sources:messagesSources};const cronMetadata=collectCronJobs(plugins);const eventsMetadata=plugins.flatMap(plugin=>(plugin.events??[]).map(listener=>({...listener,pluginId:plugin.pluginId})));const queueMetadata=plugins.flatMap(plugin=>(plugin.queueTasks??[]).map(task=>({pluginId:plugin.pluginId,module:task.module,name:task.name,handler:task.handler,description:task.description,maxAttempts:task.maxAttempts})));const webSocketsMetadata=plugins.flatMap(plugin=>(plugin.webSockets??[]).map(webSocket=>({...webSocket,pluginId:plugin.pluginId})));const searchIndexersMetadata=validateSearchIndexers(plugins.flatMap(plugin=>(plugin.searchIndexers??[]).map(indexer=>({...indexer,pluginId:plugin.pluginId}))));const contentTypesMetadata=validateContentTypes(plugins.flatMap(plugin=>(plugin.contentTypes??[]).map(definition=>({definition,pluginId:plugin.pluginId}))));warnAboutContentPreviewConfig({contentTypes:contentTypesMetadata});const hasPreviewableContentTypes=contentTypesMetadata.some(entry=>entry.definition.editorial.preview.enabled);const contentModelsMetadata=plugins.flatMap(plugin=>(plugin.contentModels??[]).map(model=>({model,pluginId:plugin.pluginId})));const hasLocalizedContentTypes=contentTypesMetadata.some(entry=>entry.definition.localization.enabled);const searchAdapter=search?.adapter??PostgresSearchAdapter();assertSearchProviderCapabilities(searchAdapter,{localizedSearchContentTypes:contentTypesMetadata.filter(entry=>entry.definition.localization.enabled&&entry.definition.search.enabled).map(entry=>entry.definition.id)});const permissionStaffMetadata=plugins.map(plugin=>({pluginId:plugin.pluginId,admin:normalizePermissionStaffModules(plugin.permissionStaff?.admin),moderator:normalizePermissionStaffModules(plugin.permissionStaff?.moderator)}));return async(c,next)=>{if(!c.get("ipAddress")){c.set("ipAddress",resolveClientIp(c))}c.set("db",dbProvider);c.set("ai",new AIModel(c));c.set("cache",new CacheModel(cacheClient,c));c.set("email",new EmailModel(c));c.set("events",new EventsModel(c));c.set("i18n",new I18nModel(c));c.set("queue",new QueueModel(c));c.set("search",new SearchModel(c));c.set("storage",new StorageModel(c));c.set("realtime",realtime);const contentPreviewSecret=hasPreviewableContentTypes?await ensureContentPreviewSecret(dbProvider):undefined;c.set("core",{ai,i18n:i18nMetadata,metadata,email,events:{adapter:events?.adapter??LocalEventsAdapter(),listeners:eventsMetadata},search:{adapter:searchAdapter},searchIndexers:searchIndexersMetadata,storage,authorization:{cookieName:authorization?.cookieName??"vitnode_auth",cookie_expires:authorization?.cookieExpires??1e3*60*60*24*90,ssoAdapters:authorization?.ssoAdapters??[],deviceCookieName:authorization?.deviceCookieName??"vitnode_device",deviceCookieExpires:authorization?.deviceCookieExpires??1e3*60*60*24*365,adminCookieName:authorization?.adminCookieName??"vitnode_auth_admin",adminCookieExpires:authorization?.adminCookieExpires??1e3*60*60*24*1,cookieSecure:authorization?.cookieSecure??true,cookieDomain:authorization?.cookieDomain},captcha,contentPreviewSecret,cronSecret:CONFIG.cronJobSecret,hasCronAdapter:!!cron,plugins:pluginsMetadata,cron:cronMetadata,queue:queueMetadata,webSockets:webSocketsMetadata,permissionStaff:permissionStaffMetadata,contentModels:contentModelsMetadata,contentRevalidateOrigins:content?.revalidateOrigins,contentTypes:contentTypesMetadata});if(hasLocalizedContentTypes){await ensureContentLocalizationLanguages(c,contentTypesMetadata)}const user=await new SessionModel(c).getUser();c.set("user",user);c.set("admin",null);c.set("log",loggerMiddleware(c));await next()}};export const globalAdminMiddleware=()=>{return async(c,next)=>{const user=await new SessionAdminModel(c).getUser();if(!user)throw new HTTPException(403);c.set("admin",{user});await next()}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-static.middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/middlewares/storage-static.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAyB1C,eAAO,MAAM,8BAA8B,SAC3B,GAAG,OAAO,EAAE,MAAM,IAAI,kBAMrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const storageStaticHeadersMiddleware=()=>{return async(c,next)=>{await next();c.header("Content-Security-Policy","sandbox");c.header("X-Content-Type-Options","nosniff")}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-origin.middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/middlewares/websocket-origin.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA0C1C,eAAO,MAAM,yBAAyB,GAAI,cAEvC;IAKD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACd,MASU,GAAG,OAAO,EAAE,MAAM,IAAI,kBAarC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{HTTPException}from"hono/http-exception";import{CONFIG}from"../../lib/config.js";const originOf=value=>{if(!value)return undefined;try{return new URL(value).origin}catch{return undefined}};export const websocketOriginMiddleware=({origin}={})=>{const allowed=new Set([originOf(CONFIG.web.href),originOf(CONFIG.api.origin),...(origin??[]).map(entry=>originOf(entry)??entry)].filter(entry=>Boolean(entry)));return async(c,next)=>{const requestOrigin=c.req.header("origin");if(requestOrigin&&!allowed.has(requestOrigin)){throw new HTTPException(403,{message:"WebSocket connections are not allowed from this origin."})}await next()}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../../src/api/models/ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../../src/api/models/ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IAEvB,eAAe,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAE/C,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAEvC,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAMD,qBAAa,OAAO;gBACN,CAAC,EAAE,OAAO;IAItB,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IAE9B,OAAO,CAAC,MAAM;IAgBd,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,cAAc;IAsB3C,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAsBnC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa;IAYjC,MAAM,IAAI,aAAa,EAAE;CAS1B"}
|
|
@@ -5,7 +5,11 @@ export declare class DeviceModel {
|
|
|
5
5
|
private createDevice;
|
|
6
6
|
private getUserAgent;
|
|
7
7
|
private setCookieDevice;
|
|
8
|
-
|
|
8
|
+
getExistingDeviceId(): Promise<null | {
|
|
9
|
+
id: number;
|
|
10
|
+
publicId: string;
|
|
11
|
+
}>;
|
|
12
|
+
getOrCreateDeviceId(): Promise<{
|
|
9
13
|
id: number;
|
|
10
14
|
publicId: string;
|
|
11
15
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../../src/api/models/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AASpC,qBAAa,WAAW;gBACV,CAAC,EAAE,OAAO;IAGtB,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;YAEhB,YAAY;IAkB1B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../../src/api/models/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AASpC,qBAAa,WAAW;gBACV,CAAC,EAAE,OAAO;IAGtB,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;YAEhB,YAAY;IAkB1B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,eAAe;IAwBjB,mBAAmB,IAAI,OAAO,CAAC,IAAI,GAAG;QAC1C,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAsCI,mBAAmB;;;;CAG1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{eq}from"drizzle-orm";import{getCookie}from"hono/cookie";import{randomBytes}from"node:crypto";import{setAuthCookie}from"../lib/auth-cookie.js";import{core_sessions_known_devices}from"../../database/sessions.js";export class DeviceModel{constructor(c){this.c=c}c;async createDevice(){const publicId=randomBytes(16).toString("hex");const[device]=await this.c.get("db").insert(core_sessions_known_devices).values({publicId,ipAddress:this.c.get("ipAddress"),userAgent:this.getUserAgent()}).returning({id:core_sessions_known_devices.id});this.setCookieDevice(publicId);return{id:device.id,publicId}}getUserAgent(){return this.c.req.header("User-Agent")??"node"}setCookieDevice(publicDeviceId){setAuthCookie(this.c,this.c.get("core").authorization.deviceCookieName,publicDeviceId,{expires:new Date(Date.now()+this.c.get("core").authorization.deviceCookieExpires)})}async
|
|
1
|
+
import{eq}from"drizzle-orm";import{getCookie}from"hono/cookie";import{randomBytes}from"node:crypto";import{setAuthCookie}from"../lib/auth-cookie.js";import{core_sessions_known_devices}from"../../database/sessions.js";export class DeviceModel{constructor(c){this.c=c}c;async createDevice(){const publicId=randomBytes(16).toString("hex");const[device]=await this.c.get("db").insert(core_sessions_known_devices).values({publicId,ipAddress:this.c.get("ipAddress"),userAgent:this.getUserAgent()}).returning({id:core_sessions_known_devices.id});this.setCookieDevice(publicId);return{id:device.id,publicId}}getUserAgent(){return this.c.req.header("User-Agent")??"node"}setCookieDevice(publicDeviceId){setAuthCookie(this.c,this.c.get("core").authorization.deviceCookieName,publicDeviceId,{expires:new Date(Date.now()+this.c.get("core").authorization.deviceCookieExpires)})}async getExistingDeviceId(){const deviceIdFromCookie=getCookie(this.c,this.c.get("core").authorization.deviceCookieName);if(!deviceIdFromCookie)return null;try{const[device]=await this.c.get("db").select({id:core_sessions_known_devices.id}).from(core_sessions_known_devices).where(eq(core_sessions_known_devices.publicId,deviceIdFromCookie));if(!device)return null;await this.c.get("db").update(core_sessions_known_devices).set({ipAddress:this.c.get("ipAddress"),userAgent:this.getUserAgent(),lastSeen:new Date}).where(eq(core_sessions_known_devices.publicId,deviceIdFromCookie));return{id:device.id,publicId:deviceIdFromCookie}}catch{return null}}async getOrCreateDeviceId(){return await this.getExistingDeviceId()??await this.createDevice()}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/api/models/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/api/models/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,OAAO,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAKF,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IAC1E,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAE1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAE9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAE7B,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;gBACV,CAAC,EAAE,OAAO;IAItB,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IAE9B,OAAO,CAAC,OAAO;IAIT,IAAI,CAAC,CAAC,SAAS,gBAAgB,EACnC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC;IA4C3B,IAAI,IAAI,MAAM;CAGf;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/api/models/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK/D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/api/models/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK/D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D,qBAAa,SAAS;gBACR,CAAC,EAAE,OAAO;IAItB,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IAExB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU/C,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IASzD,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAcxC,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAQlD,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,OAAO,IAAI,YAAY,EAAE,CAE5B;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare class PasswordModel {
|
|
2
2
|
encryptPassword(password: string): Promise<string>;
|
|
3
|
+
verifyDummyPassword(password: string): Promise<boolean>;
|
|
3
4
|
verifyPassword(password: string, hash: string): Promise<boolean>;
|
|
4
5
|
}
|
|
5
6
|
export declare class ForgotPasswordTokenModel {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../../src/api/models/password.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../../src/api/models/password.ts"],"names":[],"mappings":"AA6BA,qBAAa,aAAa;IAClB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBlD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAsBvE;AAED,qBAAa,wBAAwB;IACnC,kBAAkB;IAIlB,cAAc,CAAC,KAAK,EAAE,MAAM;CAG7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import crypto from"node:crypto";
|
|
1
|
+
import crypto from"node:crypto";const SALT_BYTES=16;const KEY_BYTES=64;const DUMMY_HASH=`${"0".repeat(SALT_BYTES*2)}:${"0".repeat(KEY_BYTES*2)}`;const scrypt=async(password,salt)=>await new Promise((resolve,reject)=>{crypto.scrypt(password,salt,KEY_BYTES,(err,derivedKey)=>{if(err){reject(err);return}resolve(derivedKey)})});export class PasswordModel{async encryptPassword(password){const salt=crypto.randomBytes(SALT_BYTES).toString("hex");const derivedKey=await scrypt(password,salt);return`${salt}:${derivedKey.toString("hex")}`}async verifyDummyPassword(password){return await this.verifyPassword(password,DUMMY_HASH)}async verifyPassword(password,hash){const[salt,key]=hash.split(":");if(!salt||!key)return false;const keyBuffer=Buffer.from(key,"hex");const derivedKey=await scrypt(password,salt);if(keyBuffer.length!==derivedKey.length){crypto.timingSafeEqual(derivedKey,derivedKey);return false}return crypto.timingSafeEqual(keyBuffer,derivedKey)}}export class ForgotPasswordTokenModel{generateResetToken(){return crypto.randomBytes(32).toString("base64url")}hashResetToken(token){return crypto.createHash("sha256").update(token).digest("hex")}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../src/api/models/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../src/api/models/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;CAC5C;AAED,qBAAa,UAAU;gBACT,CAAC,EAAE,OAAO;IAItB,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IAExB,QAAQ,CAAC,EACb,IAAI,EACJ,OAAY,EACZ,QAAQ,EAAE,gBAAgB,EAC1B,KAAiB,EACjB,QAAY,EACZ,WAAW,EACX,WAAW,EACX,EAAE,GACH,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAuB/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/api/models/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAQpC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAGrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,IAAI,GAAG,eAAe,CAAC;IAC/B,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC;IAC3B,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/api/models/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-admin.d.ts","sourceRoot":"","sources":["../../../../src/api/models/session-admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAkBpC,qBAAa,iBAAiB;gBAChB,CAAC,EAAE,OAAO;IAGtB,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;YAEhB,SAAS;IAcjB,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAmBjC,qBAAqB,CAAC,MAAM,EAAE,MAAM;;;IA2CpC,aAAa;
|
|
1
|
+
{"version":3,"file":"session-admin.d.ts","sourceRoot":"","sources":["../../../../src/api/models/session-admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAkBpC,qBAAa,iBAAiB;gBAChB,CAAC,EAAE,OAAO;IAGtB,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;YAEhB,SAAS;IAcjB,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAmBjC,qBAAqB,CAAC,MAAM,EAAE,MAAM;;;IA2CpC,aAAa;IA2Bb,OAAO;;;;;;;;;;;;;CAwEd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{and,eq,gt,or}from"drizzle-orm";import{getCookie}from"hono/cookie";import{HTTPException}from"hono/http-exception";import{deleteAuthCookie,setAuthCookie}from"../lib/auth-cookie.js";import{core_admin_permissions,core_admin_sessions}from"../../database/admins.js";import{DeviceModel}from"./device.js";import{adminSessionCacheKey,reviveSessionUser,sessionCacheTtl}from"./session-cache.js";import{UserModel}from"./user.js";export class SessionAdminModel{constructor(c){this.c=c}c;async hashToken(token){const encoder=new TextEncoder;const data=encoder.encode(token);const hashBuffer=await crypto.subtle.digest("SHA-256",data);const bytes=new Uint8Array(hashBuffer);let result="";for(const byte of bytes){result+=byte.toString(16).padStart(2,"0")}return result}async checkIfUserIsAdmin(userId){const user=await new UserModel().getUserById({id:userId,c:this.c});if(!user)return false;const[permission]=await this.c.get("db").select().from(core_admin_permissions).where(or(eq(core_admin_permissions.userId,user.id),eq(core_admin_permissions.roleId,user.roleId))).limit(1);return!!permission}async createSessionByUserId(userId){const isAdmin=await this.checkIfUserIsAdmin(userId);if(!isAdmin){throw new HTTPException(403,{message:"Forbidden"})}const randomBytes=new Uint8Array(64);crypto.getRandomValues(randomBytes);let token="";for(const byte of randomBytes){token+=byte.toString(16).padStart(2,"0")}const hashedToken=await this.hashToken(token);const device=await new DeviceModel(this.c).
|
|
1
|
+
import{and,eq,gt,or}from"drizzle-orm";import{getCookie}from"hono/cookie";import{HTTPException}from"hono/http-exception";import{deleteAuthCookie,setAuthCookie}from"../lib/auth-cookie.js";import{core_admin_permissions,core_admin_sessions}from"../../database/admins.js";import{DeviceModel}from"./device.js";import{adminSessionCacheKey,reviveSessionUser,sessionCacheTtl}from"./session-cache.js";import{UserModel}from"./user.js";export class SessionAdminModel{constructor(c){this.c=c}c;async hashToken(token){const encoder=new TextEncoder;const data=encoder.encode(token);const hashBuffer=await crypto.subtle.digest("SHA-256",data);const bytes=new Uint8Array(hashBuffer);let result="";for(const byte of bytes){result+=byte.toString(16).padStart(2,"0")}return result}async checkIfUserIsAdmin(userId){const user=await new UserModel().getUserById({id:userId,c:this.c});if(!user)return false;const[permission]=await this.c.get("db").select().from(core_admin_permissions).where(or(eq(core_admin_permissions.userId,user.id),eq(core_admin_permissions.roleId,user.roleId))).limit(1);return!!permission}async createSessionByUserId(userId){const isAdmin=await this.checkIfUserIsAdmin(userId);if(!isAdmin){throw new HTTPException(403,{message:"Forbidden"})}const randomBytes=new Uint8Array(64);crypto.getRandomValues(randomBytes);let token="";for(const byte of randomBytes){token+=byte.toString(16).padStart(2,"0")}const hashedToken=await this.hashToken(token);const device=await new DeviceModel(this.c).getOrCreateDeviceId();await this.c.get("db").insert(core_admin_sessions).values({token:hashedToken,userId,expiresAt:new Date(Date.now()+this.c.get("core").authorization.adminCookieExpires),deviceId:device.id});setAuthCookie(this.c,this.c.get("core").authorization.adminCookieName,token,{expires:new Date(Date.now()+this.c.get("core").authorization.adminCookieExpires)});return{token}}async deleteSession(){const token=getCookie(this.c,this.c.get("core").authorization.adminCookieName);if(!token)return;const hashedToken=await this.hashToken(token);const device=await new DeviceModel(this.c).getExistingDeviceId();await this.c.get("db").delete(core_admin_sessions).where(eq(core_admin_sessions.token,hashedToken));if(device){await this.c.get("cache").deleteSystem(adminSessionCacheKey(hashedToken,device.id))}deleteAuthCookie(this.c,this.c.get("core").authorization.adminCookieName)}async getUser(){const{authorization}=this.c.get("core");const token=getCookie(this.c,authorization.adminCookieName);if(!token)return null;const device=await new DeviceModel(this.c).getExistingDeviceId();if(!device)return null;const hashedToken=await this.hashToken(token);const cache=this.c.get("cache");const cacheKey=adminSessionCacheKey(hashedToken,device.id);const cached=await cache.getSystem(cacheKey);if(cached){const user=reviveSessionUser(cached);if(!await this.checkIfUserIsAdmin(user.id)){await this.deleteSession();return null}return user}const[session]=await this.c.get("db").select({userId:core_admin_sessions.userId,expiresAt:core_admin_sessions.expiresAt}).from(core_admin_sessions).where(and(eq(core_admin_sessions.token,hashedToken),eq(core_admin_sessions.deviceId,device.id),gt(core_admin_sessions.expiresAt,new Date))).limit(1);if(!session){deleteAuthCookie(this.c,this.c.get("core").authorization.adminCookieName);return null}const user=await new UserModel().getUserById({id:session.userId,c:this.c});if(!user)return null;const isStillAdmin=await this.checkIfUserIsAdmin(user.id);if(!isStillAdmin){await this.deleteSession();return null}const ttl=sessionCacheTtl(session.expiresAt);if(ttl>0)await cache.setSystem(cacheKey,user,ttl);return user}}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Context } from "hono";
|
|
2
|
+
export declare const invalidateSessionCacheForUser: (c: Context, userId: number) => Promise<void>;
|
|
3
|
+
export declare const revokeAllSessionsForUser: (c: Context, userId: number) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=session-revoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-revoke.d.ts","sourceRoot":"","sources":["../../../../src/api/models/session-revoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AA8DpC,eAAO,MAAM,6BAA6B,GACxC,GAAG,OAAO,EACV,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CAMd,CAAC;AAiBF,eAAO,MAAM,wBAAwB,GACnC,GAAG,OAAO,EACV,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CAcd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{eq}from"drizzle-orm";import{core_admin_sessions}from"../../database/admins.js";import{core_sessions}from"../../database/sessions.js";import{adminSessionCacheKey,sessionCacheKey}from"./session-cache.js";const sessionCacheKeysForUser=async(c,userId)=>{const db=c.get("db");const[sessions,adminSessions]=await Promise.all([db.select({token:core_sessions.token,deviceId:core_sessions.deviceId}).from(core_sessions).where(eq(core_sessions.userId,userId)),db.select({token:core_admin_sessions.token,deviceId:core_admin_sessions.deviceId}).from(core_admin_sessions).where(eq(core_admin_sessions.userId,userId))]);return[...sessions.map(({token,deviceId})=>sessionCacheKey(token,deviceId)),...adminSessions.map(({token,deviceId})=>adminSessionCacheKey(token,deviceId))]};export const invalidateSessionCacheForUser=async(c,userId)=>{const keys=await sessionCacheKeysForUser(c,userId);if(keys.length>0){await c.get("cache").deleteSystem(keys)}};export const revokeAllSessionsForUser=async(c,userId)=>{const db=c.get("db");const keys=await sessionCacheKeysForUser(c,userId);await Promise.all([db.delete(core_sessions).where(eq(core_sessions.userId,userId)),db.delete(core_admin_sessions).where(eq(core_admin_sessions.userId,userId))]);if(keys.length>0){await c.get("cache").deleteSystem(keys)}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{and,eq,gt}from"drizzle-orm";import{getCookie}from"hono/cookie";import{deleteAuthCookie,setAuthCookie}from"../lib/auth-cookie.js";import{core_sessions}from"../../database/sessions.js";import{DeviceModel}from"./device.js";import{reviveSessionUser,sessionCacheKey,sessionCacheTtl}from"./session-cache.js";import{UserModel}from"./user.js";export class SessionModel{constructor(c){this.c=c}c;async hashToken(token){const encoder=new TextEncoder;const data=encoder.encode(token);const hashBuffer=await crypto.subtle.digest("SHA-256",data);const bytes=new Uint8Array(hashBuffer);let result="";for(const byte of bytes){result+=byte.toString(16).padStart(2,"0")}return result}async createSessionByUserId(userId){const randomBytes=new Uint8Array(64);crypto.getRandomValues(randomBytes);let token="";for(const byte of randomBytes){token+=byte.toString(16).padStart(2,"0")}const device=await new DeviceModel(this.c).
|
|
1
|
+
import{and,eq,gt}from"drizzle-orm";import{getCookie}from"hono/cookie";import{deleteAuthCookie,setAuthCookie}from"../lib/auth-cookie.js";import{core_sessions}from"../../database/sessions.js";import{DeviceModel}from"./device.js";import{reviveSessionUser,sessionCacheKey,sessionCacheTtl}from"./session-cache.js";import{UserModel}from"./user.js";export class SessionModel{constructor(c){this.c=c}c;async hashToken(token){const encoder=new TextEncoder;const data=encoder.encode(token);const hashBuffer=await crypto.subtle.digest("SHA-256",data);const bytes=new Uint8Array(hashBuffer);let result="";for(const byte of bytes){result+=byte.toString(16).padStart(2,"0")}return result}async createSessionByUserId(userId){const randomBytes=new Uint8Array(64);crypto.getRandomValues(randomBytes);let token="";for(const byte of randomBytes){token+=byte.toString(16).padStart(2,"0")}const device=await new DeviceModel(this.c).getOrCreateDeviceId();const hashedToken=await this.hashToken(token);await this.c.get("db").insert(core_sessions).values({token:hashedToken,userId,expiresAt:new Date(Date.now()+this.c.get("core").authorization.cookie_expires),deviceId:device.id});setAuthCookie(this.c,this.c.get("core").authorization.cookieName,token,{expires:this.c.get("core").authorization.cookie_expires>0?new Date(Date.now()+this.c.get("core").authorization.cookie_expires):undefined});return{token}}async deleteSession(){const token=getCookie(this.c,this.c.get("core").authorization.cookieName);const device=await new DeviceModel(this.c).getExistingDeviceId();if(!(token&&device?.id)){deleteAuthCookie(this.c,this.c.get("core").authorization.cookieName);return}const hashedToken=await this.hashToken(token);await this.c.get("db").delete(core_sessions).where(and(eq(core_sessions.token,hashedToken),eq(core_sessions.deviceId,device.id)));await this.c.get("cache").deleteSystem(sessionCacheKey(hashedToken,device.id));deleteAuthCookie(this.c,this.c.get("core").authorization.cookieName)}async getUser(){const token=getCookie(this.c,this.c.get("core").authorization.cookieName);if(!token)return null;const device=await new DeviceModel(this.c).getExistingDeviceId();if(!device)return null;const hashedToken=await this.hashToken(token);const cache=this.c.get("cache");const cacheKey=sessionCacheKey(hashedToken,device.id);const cached=await cache.getSystem(cacheKey);if(cached)return reviveSessionUser(cached);const[session]=await this.c.get("db").select({userId:core_sessions.userId,expiresAt:core_sessions.expiresAt}).from(core_sessions).where(and(eq(core_sessions.token,hashedToken),eq(core_sessions.deviceId,device.id),gt(core_sessions.expiresAt,new Date))).limit(1);if(!session){deleteAuthCookie(this.c,this.c.get("core").authorization.cookieName);return null}const user=await new UserModel().getUserById({id:session.userId,c:this.c});if(!user)return null;const ttl=sessionCacheTtl(session.expiresAt);if(ttl>0)await cache.setSystem(cacheKey,user,ttl);return user}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sso.d.ts","sourceRoot":"","sources":["../../../../src/api/models/sso.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sso.d.ts","sourceRoot":"","sources":["../../../../src/api/models/sso.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAgBpC,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,KACT,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,SAAS,EAAE,CAAC,IAAI,EAAE;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,KAAK,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,WACgB,CAAC;AAE5D,qBAAa,QAAQ;gBACP,CAAC,EAAE,OAAO;IAKtB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAU;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CA6BzB;IAEI,QAAQ,CAAC,EACb,IAAI,EACJ,UAAU,EACV,KAAK,GACN,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAgEI,YAAY;IAuBZ,MAAM,CAAC,UAAU,EAAE,MAAM;IASzB,WAAW,CAAC,KAAK,EAAE,MAAM;CA+BhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{and,eq}from"drizzle-orm";import{getCookie}from"hono/cookie";import{HTTPException}from"hono/http-exception";import crypto from"node:crypto";import{deleteAuthCookie,setAuthCookie}from"../lib/auth-cookie.js";import{core_users,core_users_sso}from"../../database/users.js";import{CONFIG}from"../../lib/config.js";import{removeSpecialCharacters}from"../../lib/special-characters.js";import{UserModel}from"./user.js";export const getRedirectUri=code=>new URL(`${CONFIG.web.href}login/sso/${code}`).toString();export class SSOModel{constructor(c){this.c=c;this.plugins=c.get("core").authorization.ssoAdapters}c;plugins;signUpUser=async({providerId,user,c})=>{const data=await new UserModel().signUp({email:user.email,name:removeSpecialCharacters(user.username,false),newsletter:false,hashedPassword:undefined},c);await c.get("db").insert(core_users_sso).values({userId:data.id,providerId:providerId,providerAccountId:user.id});return{userId:data.id}};async callback({code,providerId,state}){await this.verifyState(state);const provider=this.plugins.find(p=>p.id===providerId);if(!provider){throw new HTTPException(404)}const ssoToken=await provider.fetchToken(code);const
|
|
1
|
+
import{and,eq}from"drizzle-orm";import{getCookie}from"hono/cookie";import{HTTPException}from"hono/http-exception";import crypto from"node:crypto";import{deleteAuthCookie,setAuthCookie}from"../lib/auth-cookie.js";import{matchesEmail,pickAccountForEmail}from"../lib/user-email-lookup.js";import{core_users,core_users_sso}from"../../database/users.js";import{CONFIG}from"../../lib/config.js";import{normalizeEmailAddress}from"../../lib/email-canonical.js";import{removeSpecialCharacters}from"../../lib/special-characters.js";import{UserModel}from"./user.js";export const getRedirectUri=code=>new URL(`${CONFIG.web.href}login/sso/${code}`).toString();export class SSOModel{constructor(c){this.c=c;this.plugins=c.get("core").authorization.ssoAdapters}c;plugins;signUpUser=async({providerId,user,c})=>{const data=await new UserModel().signUp({email:user.email,name:removeSpecialCharacters(user.username,false),newsletter:false,hashedPassword:undefined},c);await c.get("db").insert(core_users_sso).values({userId:data.id,providerId:providerId,providerAccountId:user.id});return{userId:data.id}};async callback({code,providerId,state}){await this.verifyState(state);const provider=this.plugins.find(p=>p.id===providerId);if(!provider){throw new HTTPException(404)}const ssoToken=await provider.fetchToken(code);const userFromProvider=await provider.fetchUser(ssoToken);const userFromSSO={...userFromProvider,email:normalizeEmailAddress(userFromProvider.email)};return await this.c.get("db").transaction(async tx=>{const[dataSSOFromDb]=await tx.select({userId:core_users_sso.userId}).from(core_users_sso).leftJoin(core_users,eq(core_users.id,core_users_sso.userId)).where(and(eq(core_users_sso.providerId,providerId),eq(core_users_sso.providerAccountId,userFromSSO.id))).limit(1);if(!dataSSOFromDb){const accountsWithEmail=await tx.select({id:core_users.id,email:core_users.email}).from(core_users).where(matchesEmail(userFromSSO.email)).limit(2);const userWithEmail=pickAccountForEmail(accountsWithEmail,userFromSSO.email);if(!userWithEmail){const signUpUser=await this.signUpUser({providerId,user:userFromSSO,c:this.c});return signUpUser}throw new HTTPException(409,{message:"Email already exists"})}return{userId:dataSSOFromDb.userId}})}async encryptState(){const state=crypto.randomBytes(8).toString("hex");const encryptedState=await new Promise((resolve,reject)=>{const salt=crypto.randomBytes(4).toString("hex");crypto.scrypt(state,salt,16,(err,derivedKey)=>{if(err)reject(err);resolve(`${salt}:${derivedKey.toString("hex")}`)})});setAuthCookie(this.c,`${this.c.get("core").authorization.cookieName}--state-sso`,encryptedState);return state}async getUrl(providerId){const provider=this.plugins.find(p=>p.id===providerId);if(!provider){throw new HTTPException(404)}return provider.getUrl({state:await this.encryptState()})}async verifyState(state){const storedState=getCookie(this.c,`${this.c.get("core").authorization.cookieName}--state-sso`);if(!storedState){throw new HTTPException(400,{message:"Invalid state"})}const isValid=await new Promise((resolve,reject)=>{const[salt,storedHash]=storedState.split(":");crypto.scrypt(state,salt,16,(err,derivedKey)=>{if(err)reject(err);resolve(storedHash===derivedKey.toString("hex"))})});if(!isValid){throw new HTTPException(400,{message:"Invalid state"})}deleteAuthCookie(this.c,`${this.c.get("core").authorization.cookieName}--state-sso`)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/api/models/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA2BpD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/api/models/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA2BpD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,UAAU,EAAE,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IAExB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAcD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,oBAAoB;IAEnC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC;IAEX,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CACxB;AAYD,qBAAa,8BAA+B,SAAQ,aAAa;gBACnD,OAAO,EAAE,MAAM;CAK5B;AA8ED,qBAAa,YAAY;gBACX,CAAC,EAAE,OAAO;IAItB,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;YAMhB,YAAY;IA6F1B,OAAO,CAAC,eAAe;IAYjB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwClC,UAAU,CACd,EAAE,EAAE,MAAM,EACV,EAAE,KAAa,EAAE,OAAO,EAAE,GAAE,wBAA6B,GACxD,OAAO,CAAC,IAAI,CAAC;IAyDhB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIrB,MAAM,CAAC,EACX,gBAAgB,EAChB,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAgG3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{and,eq}from"drizzle-orm";import{HTTPException}from"hono/http-exception";import{core_content_file_refs}from"../../database/content.js";import{core_files}from"../../database/files.js";import{isPgReferenceViolation}from"../../lib/api/pg-error.js";import{buildStorageKey,generateStorageFileName,replaceFileExtension}from"../../lib/api/upload.js";import{STORAGE_FILE_IN_USE}from"../../lib/files/in-use.js";import{formatBytes}from"../../lib/format-bytes.js";const DEFAULT_IMAGE_QUALITY=85;const PROCESSABLE_IMAGE_MIME_TYPES=new Set(["image/avif","image/jpeg","image/png","image/tiff","image/webp"]);export{STORAGE_FILE_IN_USE}from"../../lib/files/in-use.js";const storageFileInUse=body=>new HTTPException(409,{res:Response.json({code:STORAGE_FILE_IN_USE,...body},{status:409})});export class StorageImageUnprocessableError extends HTTPException{constructor(message){super(400,{message});this.name="StorageImageUnprocessableError"}}const WEBP_MAX_SIDE=16383;const SKIPPED_WEBP_DIMENSIONS="webp-dimension-limit";const exceedsWebpLimit=dimensions=>dimensions!==null&&(dimensions.width>WEBP_MAX_SIDE||dimensions.height>WEBP_MAX_SIDE);const imageFormatName=mimeType=>(mimeType.split("/")[1]??mimeType).toUpperCase();const reasonSuffix=error=>{const first=error instanceof Error?error.message.split("\n")[0]?.trim().replace(/[.:]+$/,"")??"":"";return first===""?"":`: ${first.slice(0,160)}`};const imageEncodeFailure=({dimensions,error,mimeType,targetFormat})=>{const size=dimensions?`${dimensions.width}\u00d7${dimensions.height} pixels`:"this size";const target=targetFormat.toUpperCase();const tooLarge=error instanceof Error&&/too large for the .* format/i.test(error.message);if(tooLarge){const limit=targetFormat==="webp"?` ${target} allows at most ${WEBP_MAX_SIDE} pixels per side.`:"";return new StorageImageUnprocessableError(`This image is ${size}, which is too large to convert to ${target}.${limit} Resize it and upload it again.`)}return new HTTPException(400,{message:`This ${imageFormatName(mimeType)} file is damaged${reasonSuffix(error)}. Its header reads as ${size}, but the image data could not be decoded - the file is most likely truncated or was cut short in transfer.`})};export class StorageModel{constructor(c){this.c=c}c;async processImage(body,mimeType){const image=this.c.get("core")?.storage?.image;if(!image||!PROCESSABLE_IMAGE_MIME_TYPES.has(mimeType)){return{body,mimeType,extension:null,dimensions:null,skippedConversion:null}}const quality=image.quality??DEFAULT_IMAGE_QUALITY;const toWebp=image.webp!==false;let sharp;try{const{default:s}=await import("sharp");sharp=s}catch(err){throw new HTTPException(500,{message:"The image optimization library (sharp) failed to load, so images cannot be processed. Install `sharp` on the API server, or remove `storage.image` from the API config to store images as they are uploaded."})}let metadata;try{metadata=await sharp(body).metadata()}catch(error){throw new HTTPException(400,{message:`Could not read this ${imageFormatName(mimeType)} file${reasonSuffix(error)}. It may be truncated, or another format saved under the wrong extension.`})}if(!metadata.format){return{body,mimeType,extension:null,dimensions:null,skippedConversion:null}}const dimensions=metadata.width&&metadata.height?{width:metadata.width,height:metadata.height}:null;const asWebp=toWebp&&!exceedsWebpLimit(dimensions);const targetFormat=asWebp?"webp":metadata.format;let output;try{output=await sharp(body).toFormat(targetFormat,{quality}).toBuffer()}catch(error){throw imageEncodeFailure({dimensions,error,mimeType,targetFormat})}return{body:output,mimeType:asWebp?"image/webp":mimeType,extension:asWebp?".webp":null,dimensions,skippedConversion:toWebp&&!asWebp?SKIPPED_WEBP_DIMENSIONS:null}}requireProvider(){const provider=this.c.get("core").storage?.adapter;if(!provider){throw new HTTPException(500,{message:"No storage adapter is configured, so there is nowhere to put this file. Set `storage.adapter` in the API config."})}return provider}async delete(key){await this.requireProvider().delete(key)}async deleteFile(id,{force=false,ownerId}={}){const db=this.c.get("db");const where=ownerId===undefined?eq(core_files.id,id):and(eq(core_files.id,id),eq(core_files.userId,ownerId));const deleted=await db.transaction(async tx=>{const pins=await tx.delete(core_content_file_refs).where(eq(core_content_file_refs.fileId,id)).returning({id:core_content_file_refs.id});let row;try{[row]=await tx.delete(core_files).where(where).returning({key:core_files.key})}catch(error){if(!isPgReferenceViolation(error))throw error;throw storageFileInUse({content:true,id,revisions:pins.length})}if(!row){throw new HTTPException(404,{message:"File not found"})}if(!force&&pins.length>0){throw storageFileInUse({content:false,id,revisions:pins.length})}return row});const provider=this.c.get("core").storage?.adapter;if(provider){await provider.delete(deleted.key).catch(()=>undefined)}}getUrl(key){return this.requireProvider().getUrl(key)}async upload({allowedMimeTypes,file,folder,maxBytes,metadata,userId}){const provider=this.requireProvider();if(maxBytes!==undefined&&file.size>maxBytes){throw new HTTPException(400,{message:`This file is ${formatBytes(file.size)}. The maximum is ${formatBytes(maxBytes)}.`})}if(allowedMimeTypes&&!allowedMimeTypes.includes(file.type)){throw new HTTPException(400,{message:`"${file.type||"unknown"}" is not an accepted file type here. Accepted: ${allowedMimeTypes.join(", ")}.`})}const processed=await this.processImage(Buffer.from(await file.arrayBuffer()),file.type);const displayName=processed.extension?replaceFileExtension(file.name,processed.extension):file.name;const key=buildStorageKey({folder,fileName:generateStorageFileName(file.name,processed.extension??undefined)});const result=await provider.upload({key,body:processed.body,contentType:processed.mimeType||undefined});const ownerId=userId!==undefined?userId:this.c.get("admin")?.user.id??this.c.get("user")?.id??null;const mimeType=processed.mimeType||null;const size=processed.body.length;let created;try{[created]=await this.c.get("db").insert(core_files).values({name:displayName,key:result.key,folder,mimeType,size,userId:ownerId,pluginId:this.c.get("plugin")?.id??null,metadata:{...metadata??{},...processed.dimensions?{dimensions:processed.dimensions}:{},...processed.skippedConversion?{skippedConversion:processed.skippedConversion}:{}}}).returning({id:core_files.id})}catch(error){await provider.delete(result.key).catch(()=>undefined);throw error}if(!created){await provider.delete(result.key).catch(()=>undefined);throw new HTTPException(500,{message:"The file was stored but could not be recorded in the database, so it cannot be referenced. Nothing was kept - try again."})}return{...result,dimensions:processed.dimensions,id:created.id,mimeType,name:displayName,size}}}
|
|
1
|
+
import{and,eq}from"drizzle-orm";import{HTTPException}from"hono/http-exception";import{core_content_file_refs}from"../../database/content.js";import{core_files}from"../../database/files.js";import{isPgReferenceViolation}from"../../lib/api/pg-error.js";import{buildStorageKey,generateStorageFileName,replaceFileExtension}from"../../lib/api/upload.js";import{STORAGE_FILE_IN_USE}from"../../lib/files/in-use.js";import{formatBytes}from"../../lib/format-bytes.js";const DEFAULT_IMAGE_QUALITY=85;const PROCESSABLE_IMAGE_MIME_TYPES=new Set(["image/avif","image/jpeg","image/png","image/tiff","image/webp"]);export{STORAGE_FILE_IN_USE}from"../../lib/files/in-use.js";const storageFileInUse=body=>new HTTPException(409,{res:Response.json({code:STORAGE_FILE_IN_USE,...body},{status:409})});export class StorageImageUnprocessableError extends HTTPException{constructor(message){super(400,{message});this.name="StorageImageUnprocessableError"}}const WEBP_MAX_SIDE=16383;const SKIPPED_WEBP_DIMENSIONS="webp-dimension-limit";const exceedsWebpLimit=dimensions=>dimensions!==null&&(dimensions.width>WEBP_MAX_SIDE||dimensions.height>WEBP_MAX_SIDE);const imageFormatName=mimeType=>(mimeType.split("/")[1]??mimeType).toUpperCase();const reasonSuffix=error=>{const first=error instanceof Error?error.message.split("\n")[0]?.trim().replace(/[.:]+$/,"")??"":"";return first===""?"":`: ${first.slice(0,160)}`};const imageEncodeFailure=({dimensions,error,mimeType,targetFormat})=>{const size=dimensions?`${dimensions.width}\u00d7${dimensions.height} pixels`:"this size";const target=targetFormat.toUpperCase();const tooLarge=error instanceof Error&&/too large for the .* format/i.test(error.message);if(tooLarge){const limit=targetFormat==="webp"?` ${target} allows at most ${WEBP_MAX_SIDE} pixels per side.`:"";return new StorageImageUnprocessableError(`This image is ${size}, which is too large to convert to ${target}.${limit} Resize it and upload it again.`)}return new HTTPException(400,{message:`This ${imageFormatName(mimeType)} file is damaged${reasonSuffix(error)}. Its header reads as ${size}, but the image data could not be decoded - the file is most likely truncated or was cut short in transfer.`})};export class StorageModel{constructor(c){this.c=c}c;async processImage(body,mimeType){const image=this.c.get("core")?.storage?.image;if(!image||!PROCESSABLE_IMAGE_MIME_TYPES.has(mimeType)){return{body,mimeType,extension:null,dimensions:null,skippedConversion:null}}const quality=image.quality??DEFAULT_IMAGE_QUALITY;const toWebp=image.webp!==false;let sharp;try{const{default:s}=await import("sharp");sharp=s}catch(err){throw new HTTPException(500,{message:"The image optimization library (sharp) failed to load, so images cannot be processed. Install `sharp` on the API server, or remove `storage.image` from the API config to store images as they are uploaded."})}let metadata;try{metadata=await sharp(body).metadata()}catch(error){throw new HTTPException(400,{message:`Could not read this ${imageFormatName(mimeType)} file${reasonSuffix(error)}. It may be truncated, or another format saved under the wrong extension.`})}if(!metadata.format){return{body,mimeType,extension:null,dimensions:null,skippedConversion:null}}const dimensions=metadata.width&&metadata.height?{width:metadata.width,height:metadata.height}:null;const asWebp=toWebp&&!exceedsWebpLimit(dimensions);const targetFormat=asWebp?"webp":metadata.format;let output;try{output=await sharp(body).toFormat(targetFormat,{quality}).toBuffer()}catch(error){throw imageEncodeFailure({dimensions,error,mimeType,targetFormat})}return{body:output,mimeType:asWebp?"image/webp":mimeType,extension:asWebp?".webp":null,dimensions,skippedConversion:toWebp&&!asWebp?SKIPPED_WEBP_DIMENSIONS:null}}requireProvider(){const provider=this.c.get("core").storage?.adapter;if(!provider){throw new HTTPException(500,{message:"No storage adapter is configured, so there is nowhere to put this file. Set `storage.adapter` in the API config."})}return provider}async delete(key){await this.requireProvider().delete(key)}async deleteFile(id,{force=false,ownerId}={}){const db=this.c.get("db");const where=ownerId===undefined?eq(core_files.id,id):and(eq(core_files.id,id),eq(core_files.userId,ownerId));const deleted=await db.transaction(async tx=>{const pins=await tx.delete(core_content_file_refs).where(eq(core_content_file_refs.fileId,id)).returning({id:core_content_file_refs.id});let row;try{[row]=await tx.delete(core_files).where(where).returning({key:core_files.key})}catch(error){if(!isPgReferenceViolation(error))throw error;throw storageFileInUse({content:true,id,revisions:pins.length})}if(!row){throw new HTTPException(404,{message:"File not found"})}if(!force&&pins.length>0){throw storageFileInUse({content:false,id,revisions:pins.length})}return row});const provider=this.c.get("core").storage?.adapter;if(provider){await provider.delete(deleted.key).catch(()=>undefined)}}getUrl(key){return this.requireProvider().getUrl(key)}async upload({allowedMimeTypes,file,folder,maxBytes,metadata,userId}){const provider=this.requireProvider();if(maxBytes!==undefined&&file.size>maxBytes){throw new HTTPException(400,{message:`This file is ${formatBytes(file.size)}. The maximum is ${formatBytes(maxBytes)}.`})}if(allowedMimeTypes&&!allowedMimeTypes.includes(file.type)){throw new HTTPException(400,{message:`"${file.type||"unknown"}" is not an accepted file type here. Accepted: ${allowedMimeTypes.join(", ")}.`})}const processed=await this.processImage(Buffer.from(await file.arrayBuffer()),file.type);const displayName=processed.extension?replaceFileExtension(file.name,processed.extension):file.name;const key=buildStorageKey({folder,fileName:generateStorageFileName(file.name,processed.extension??undefined,processed.mimeType)});const result=await provider.upload({key,body:processed.body,contentType:processed.mimeType||undefined});const ownerId=userId!==undefined?userId:this.c.get("admin")?.user.id??this.c.get("user")?.id??null;const mimeType=processed.mimeType||null;const size=processed.body.length;let created;try{[created]=await this.c.get("db").insert(core_files).values({name:displayName,key:result.key,folder,mimeType,size,userId:ownerId,pluginId:this.c.get("plugin")?.id??null,metadata:{...metadata??{},...processed.dimensions?{dimensions:processed.dimensions}:{},...processed.skippedConversion?{skippedConversion:processed.skippedConversion}:{}}}).returning({id:core_files.id})}catch(error){await provider.delete(result.key).catch(()=>undefined);throw error}if(!created){await provider.delete(result.key).catch(()=>undefined);throw new HTTPException(500,{message:"The file was stored but could not be recorded in the database, so it cannot be referenced. Nothing was kept - try again."})}return{...result,dimensions:processed.dimensions,id:created.id,mimeType,name:displayName,size}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-in-with-passwords.d.ts","sourceRoot":"","sources":["../../../../../src/api/models/user/sign-in-with-passwords.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AASpC,eAAO,MAAM,kBAAkB,GAAU,yBAItC;IACD,CAAC,EAAE,OAAO,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;;;
|
|
1
|
+
{"version":3,"file":"sign-in-with-passwords.d.ts","sourceRoot":"","sources":["../../../../../src/api/models/user/sign-in-with-passwords.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AASpC,eAAO,MAAM,kBAAkB,GAAU,yBAItC;IACD,CAAC,EAAE,OAAO,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;;;EAgCA,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{HTTPException}from"hono/http-exception";import{matchesEmail,pickAccountForEmail}from"../../lib/user-email-lookup.js";import{core_users}from"../../../database/users.js";import{PasswordModel}from"../password.js";export const signInWithPassword=async({email,password,c})=>{const candidates=await c.get("db").select({id:core_users.id,email:core_users.email,password:core_users.password}).from(core_users).where(matchesEmail(email)).limit(2);const user=pickAccountForEmail(candidates,email);const passwords=new PasswordModel;if(!user?.password){await passwords.verifyDummyPassword(password);throw new HTTPException(403)}const validPassword=await passwords.verifyPassword(password,user.password);if(!validPassword){throw new HTTPException(403)}return{id:user.id,email:user.email}};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Context } from "hono";
|
|
2
|
-
export declare const signUp: ({ email, name, newsletter, hashedPassword, }: {
|
|
2
|
+
export declare const signUp: ({ email: typedEmail, name, newsletter, hashedPassword, }: {
|
|
3
3
|
email: string;
|
|
4
4
|
hashedPassword: string | undefined;
|
|
5
5
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-up.d.ts","sourceRoot":"","sources":["../../../../../src/api/models/user/sign-up.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sign-up.d.ts","sourceRoot":"","sources":["../../../../../src/api/models/user/sign-up.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAmEpC,eAAO,MAAM,MAAM,GACjB,0DAKG;IACD,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,EACD,GAAG,OAAO;;;;;;;;;;;;;EAmEX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{and,count,eq,or}from"drizzle-orm";import{HTTPException}from"hono/http-exception";import{generateAvatarColor}from"../../modules/users/avatar-color.js";import{core_roles}from"../../../database/roles.js";import{core_users}from"../../../database/users.js";import{removeSpecialCharacters}from"../../../lib/special-characters.js";const getDefaultData=async c=>{const[countUsers]=await c.get("db").select({count:count()}).from(core_users);if(countUsers.count===0){const[defaultRole]=await c.get("db").select({id:core_roles.id}).from(core_roles).where(and(eq(core_roles.default,false),eq(core_roles.root,true))).limit(1);if(!defaultRole){throw new HTTPException(400,{message:"Default group not found."})}return{roleId:defaultRole.id,emailVerified:true}}const[defaultRole]=await c.get("db").select({id:core_roles.id}).from(core_roles).where(and(eq(core_roles.default,true),eq(core_roles.root,false))).limit(1);if(!defaultRole){throw new HTTPException(400,{message:"Default role not found."})}return{roleId:defaultRole.id,emailVerified:!c.get("core").email?.adapter}};export const signUp=async({email,name,newsletter,hashedPassword},c)=>{const convertToNameSEO=removeSpecialCharacters(name);const checkIfUserExist=await c.get("db").select({email:core_users.email,name_code:core_users.nameCode}).from(core_users).where(or(
|
|
1
|
+
import{and,count,eq,or}from"drizzle-orm";import{HTTPException}from"hono/http-exception";import{emailAliases,matchesEmail}from"../../lib/user-email-lookup.js";import{generateAvatarColor}from"../../modules/users/avatar-color.js";import{core_roles}from"../../../database/roles.js";import{core_users}from"../../../database/users.js";import{canonicalizeEmail}from"../../../lib/email-canonical.js";import{removeSpecialCharacters}from"../../../lib/special-characters.js";const getDefaultData=async c=>{const[countUsers]=await c.get("db").select({count:count()}).from(core_users);if(countUsers.count===0){const[defaultRole]=await c.get("db").select({id:core_roles.id}).from(core_roles).where(and(eq(core_roles.default,false),eq(core_roles.root,true))).limit(1);if(!defaultRole){throw new HTTPException(400,{message:"Default group not found."})}return{roleId:defaultRole.id,emailVerified:true}}const[defaultRole]=await c.get("db").select({id:core_roles.id}).from(core_roles).where(and(eq(core_roles.default,true),eq(core_roles.root,false))).limit(1);if(!defaultRole){throw new HTTPException(400,{message:"Default role not found."})}return{roleId:defaultRole.id,emailVerified:!c.get("core").email?.adapter}};export const signUp=async({email:typedEmail,name,newsletter,hashedPassword},c)=>{const convertToNameSEO=removeSpecialCharacters(name);const email=canonicalizeEmail(typedEmail);const takenAddresses=new Set(emailAliases(typedEmail));const checkIfUserExist=await c.get("db").select({email:core_users.email,name_code:core_users.nameCode}).from(core_users).where(or(matchesEmail(typedEmail),eq(core_users.nameCode,convertToNameSEO)));const findEmail=checkIfUserExist.find(user=>takenAddresses.has(user.email));if(findEmail){throw new HTTPException(409,{message:"Email already exists"})}const findName=checkIfUserExist.find(user=>user.name_code===convertToNameSEO);if(findName){throw new HTTPException(409,{message:"Name already exists"})}const{roleId,emailVerified}=await getDefaultData(c);const[data]=await c.get("db").insert(core_users).values({email,name,nameCode:convertToNameSEO,newsletter,password:hashedPassword,avatarColor:generateAvatarColor(name),roleId,emailVerified,ipAddress:c.get("ipAddress")}).returning();const{password:_,...user}=data;await c.get("events").emit("user.created",{userId:data.id,email:data.email,name:data.name,emailVerified:data.emailVerified});return user};
|
|
@@ -39,7 +39,7 @@ export declare class UserModel {
|
|
|
39
39
|
id: number;
|
|
40
40
|
email: string;
|
|
41
41
|
}>;
|
|
42
|
-
signUp: ({ email, name, newsletter, hashedPassword, }: {
|
|
42
|
+
signUp: ({ email: typedEmail, name, newsletter, hashedPassword, }: {
|
|
43
43
|
email: string;
|
|
44
44
|
hashedPassword: string | undefined;
|
|
45
45
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/api/models/user.ts"],"names":[],"mappings":"AAKA,qBAAa,SAAS;IACpB,WAAW;;;;;;;;;;;;;;;cAAe;IAC1B,iBAAiB;;;;;;;;;;;;;;;cAAqB;IACtC,kBAAkB;;;;;;;OAAsB;IACxC,MAAM;;;;
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/api/models/user.ts"],"names":[],"mappings":"AAKA,qBAAa,SAAS;IACpB,WAAW;;;;;;;;;;;;;;;cAAe;IAC1B,iBAAiB;;;;;;;;;;;;;;;cAAqB;IACtC,kBAAkB;;;;;;;OAAsB;IACxC,MAAM;;;;kBAE45C,CAAC;;;;;;;;;;;;;;OAFn5C;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.route.d.ts","sourceRoot":"","sources":["../../../../../../../../src/api/modules/admin/advanced/queue/routes/get.route.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAkBpB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"get.route.d.ts","sourceRoot":"","sources":["../../../../../../../../src/api/modules/admin/advanced/queue/routes/get.route.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAkBpB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiG7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{inArray}from"drizzle-orm";import z from"zod";import{buildRoute}from"../../../../../lib/route.js";import{withPagination,zodPaginationPageInfo,zodPaginationQuery}from"../../../../../lib/with-pagination.js";import{CONFIG_PLUGIN}from"../../../../../../config.js";import{core_queue}from"../../../../../../database/queue.js";const QUEUE_STATUSES=["pending","processing","completed","failed"];export const getQueueTasksRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,adminStaffPermission:{module:"queue",permission:"can_view"},route:{method:"get",description:"Get Admin Queue Tasks",path:"/",request:{query:zodPaginationQuery.extend({order:z.enum(["asc","desc"]).optional(),orderBy:z.enum(["createdAt","availableAt","status"]).optional(),status:z.string().optional()})},responses:{200:{content:{"application/json":{schema:z.object({edges:z.array(z.object({id:z.number(),pluginId:z.string(),name:z.string(),queue:z.string(),status:z.enum(QUEUE_STATUSES),priority:z.number(),attempts:z.number(),maxAttempts:z.number(),availableAt:z.date(),reservedAt:z.date().nullable(),lastError:z.string().nullable(),createdAt:z.date(),completedAt:z.date().nullable()})),pageInfo:zodPaginationPageInfo})}},description:"List of queue tasks"}}},handler:async c=>{const query=c.req.valid("query");const statuses=(query.status?.split(",")??[]).filter(status=>QUEUE_STATUSES.includes(status));const data=await withPagination({params:{query},c,primaryCursor:core_queue.id,where:statuses.length?inArray(core_queue.status,statuses):undefined,query:async({cursorSelection,limit,where,orderBy})=>await c.get("db").select({...cursorSelection,id:core_queue.id,pluginId:core_queue.pluginId,name:core_queue.name,queue:core_queue.queue,status:core_queue.status,priority:core_queue.priority,attempts:core_queue.attempts,maxAttempts:core_queue.maxAttempts,availableAt:core_queue.availableAt,reservedAt:core_queue.reservedAt,lastError:core_queue.lastError,createdAt:core_queue.createdAt,completedAt:core_queue.completedAt}).from(core_queue).where(where).orderBy(orderBy).limit(limit),table:core_queue,orderBy:{column:query.orderBy?core_queue[query.orderBy]:core_queue.createdAt,order:query.order??"desc"}});return c.json(data)}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-search.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/debug/routes/clear-search.route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;
|
|
1
|
+
{"version":3,"file":"clear-search.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/debug/routes/clear-search.route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-status.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/debug/routes/content-status.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"content-status.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/debug/routes/content-status.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiExB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-status.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/debug/routes/search-status.route.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"search-status.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/debug/routes/search-status.route.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuCxB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoKtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/files/routes/delete.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAKtC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"delete.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/files/routes/delete.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAKtC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4D/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-manage-admin-role.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/roles/lib/assert-manage-admin-role.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"assert-manage-admin-role.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/roles/lib/assert-manage-admin-role.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAQpC,eAAO,MAAM,wBAAwB,GACnC,GAAG,OAAO,EACV,yBAGG;IACD,UAAU,EAAE,kBAAkB,GAAG,gBAAgB,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB,KACA,OAAO,CAAC,IAAI,CAgBd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/roles/routes/show.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AA8BtC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"show.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/roles/routes/show.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AA8BtC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiG7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z}from"@hono/zod-openapi";import{and,eq}from"drizzle-orm";import{buildRoute}from"../../../../lib/route.js";import{CONFIG_PLUGIN}from"../../../../../config.js";import{core_languages_words}from"../../../../../database/languages.js";import{core_roles}from"../../../../../database/roles.js";const roleAdminSchema=z.object({id:z.number(),name:z.array(z.object({name:z.string(),languageCode:z.string()})),color:z.string().nullable(),protected:z.boolean(),default:z.boolean(),root:z.boolean(),guest:z.boolean(),allowUploadFiles:z.boolean(),totalMaxStorage:z.number().nullable(),maxStorageForSubmit:z.number().nullable(),createdAt:z.date(),updatedAt:z.date()});export const showRoleAdminRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,route:{method:"get",description:"Get a single role by id (Admin only)",path:"/{id}",request:{params:z.object({id:z.string().openapi({example:"1"})})},responses:{200:{content:{"application/json":{schema:roleAdminSchema}},description:"Role found"},403:{description:"Access Denied"},404:{content:{"application/json":{schema:z.object({error:z.string()})}},description:"Role not found"}}},handler:async c=>{const{id}=c.req.valid("param");const roleId=Number(id);if(!Number.isInteger(roleId)){return c.json({error:"Role not found"},404)}const[role]=await c.get("db").select({id:core_roles.id,color:core_roles.color,protected:core_roles.protected,default:core_roles.default,root:core_roles.root,guest:core_roles.guest,allowUploadFiles:core_roles.allowUploadFiles,totalMaxStorage:core_roles.totalMaxStorage,maxStorageForSubmit:core_roles.maxStorageForSubmit,createdAt:core_roles.createdAt}).from(core_roles).where(eq(core_roles.id,roleId)).limit(1);if(!role){return c.json({error:"Role not found"},404)}const names=await c.get("db").select({languageCode:core_languages_words.languageCode,value:core_languages_words.value}).from(core_languages_words).where(and(eq(core_languages_words.tableName,"core_roles"),eq(core_languages_words.variable,"name"),eq(core_languages_words.pluginCode,"core"),eq(core_languages_words.itemId,roleId)));return c.json({...role,name:names.map(word=>({name:word.value,languageCode:word.languageCode}))},200)}});
|
|
1
|
+
import{z}from"@hono/zod-openapi";import{and,eq}from"drizzle-orm";import{buildRoute}from"../../../../lib/route.js";import{CONFIG_PLUGIN}from"../../../../../config.js";import{core_languages_words}from"../../../../../database/languages.js";import{core_roles}from"../../../../../database/roles.js";const roleAdminSchema=z.object({id:z.number(),name:z.array(z.object({name:z.string(),languageCode:z.string()})),color:z.string().nullable(),protected:z.boolean(),default:z.boolean(),root:z.boolean(),guest:z.boolean(),allowUploadFiles:z.boolean(),totalMaxStorage:z.number().nullable(),maxStorageForSubmit:z.number().nullable(),createdAt:z.date(),updatedAt:z.date()});export const showRoleAdminRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,adminStaffPermission:{module:"roles",permission:"can_view"},route:{method:"get",description:"Get a single role by id (Admin only)",path:"/{id}",request:{params:z.object({id:z.string().openapi({example:"1"})})},responses:{200:{content:{"application/json":{schema:roleAdminSchema}},description:"Role found"},403:{description:"Access Denied"},404:{content:{"application/json":{schema:z.object({error:z.string()})}},description:"Role not found"}}},handler:async c=>{const{id}=c.req.valid("param");const roleId=Number(id);if(!Number.isInteger(roleId)){return c.json({error:"Role not found"},404)}const[role]=await c.get("db").select({id:core_roles.id,color:core_roles.color,protected:core_roles.protected,default:core_roles.default,root:core_roles.root,guest:core_roles.guest,allowUploadFiles:core_roles.allowUploadFiles,totalMaxStorage:core_roles.totalMaxStorage,maxStorageForSubmit:core_roles.maxStorageForSubmit,createdAt:core_roles.createdAt}).from(core_roles).where(eq(core_roles.id,roleId)).limit(1);if(!role){return c.json({error:"Role not found"},404)}const names=await c.get("db").select({languageCode:core_languages_words.languageCode,value:core_languages_words.value}).from(core_languages_words).where(and(eq(core_languages_words.tableName,"core_roles"),eq(core_languages_words.variable,"name"),eq(core_languages_words.pluginCode,"core"),eq(core_languages_words.itemId,roleId)));return c.json({...role,name:names.map(word=>({name:word.value,languageCode:word.languageCode}))},200)}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/modules/admin/routes/notifications.route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,yBAAyB;;;;;;;;;;iBAKpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"notifications.route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/modules/admin/routes/notifications.route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,yBAAyB;;;;;;;;;;iBAKpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDhC,CAAC"}
|