rimecms 0.31.5 → 0.32.1
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/adapter-sqlite/area.server.d.ts +10 -46
- package/dist/adapter-sqlite/area.server.js +31 -309
- package/dist/adapter-sqlite/auth.server.d.ts +11 -19
- package/dist/adapter-sqlite/auth.server.js +20 -77
- package/dist/adapter-sqlite/blocks.server.d.ts +7 -8
- package/dist/adapter-sqlite/blocks.server.js +17 -12
- package/dist/adapter-sqlite/collection.server.d.ts +10 -67
- package/dist/adapter-sqlite/collection.server.js +22 -418
- package/dist/adapter-sqlite/columns.server.d.ts +140 -0
- package/dist/adapter-sqlite/columns.server.js +307 -0
- package/dist/adapter-sqlite/generate-schema/column.server.js +1 -1
- package/dist/adapter-sqlite/generate-schema/index.server.d.ts +3 -3
- package/dist/adapter-sqlite/generate-schema/index.server.js +64 -139
- package/dist/adapter-sqlite/generate-schema/relations/junction.server.d.ts +3 -2
- package/dist/adapter-sqlite/generate-schema/relations/junction.server.js +14 -7
- package/dist/adapter-sqlite/generate-schema/root.server.d.ts +31 -7
- package/dist/adapter-sqlite/generate-schema/root.server.js +35 -19
- package/dist/adapter-sqlite/generate-schema/templates.server.d.ts +62 -65
- package/dist/adapter-sqlite/generate-schema/templates.server.js +119 -175
- package/dist/adapter-sqlite/generate-schema/write.server.js +19 -6
- package/dist/adapter-sqlite/index.server.d.ts +17 -23
- package/dist/adapter-sqlite/index.server.js +33 -36
- package/dist/adapter-sqlite/locales.server.d.ts +31 -0
- package/dist/adapter-sqlite/locales.server.js +57 -0
- package/dist/adapter-sqlite/naming.server.d.ts +134 -0
- package/dist/adapter-sqlite/naming.server.js +98 -0
- package/dist/adapter-sqlite/order-by.server.d.ts +29 -0
- package/dist/adapter-sqlite/order-by.server.js +115 -0
- package/dist/adapter-sqlite/read.server.d.ts +78 -0
- package/dist/adapter-sqlite/read.server.js +188 -0
- package/dist/adapter-sqlite/registry.server.d.ts +45 -0
- package/dist/adapter-sqlite/registry.server.js +63 -0
- package/dist/adapter-sqlite/relations.server.d.ts +10 -12
- package/dist/adapter-sqlite/relations.server.js +24 -8
- package/dist/adapter-sqlite/rows.server.d.ts +36 -0
- package/dist/adapter-sqlite/rows.server.js +6 -0
- package/dist/adapter-sqlite/select.server.d.ts +25 -0
- package/dist/adapter-sqlite/select.server.js +274 -0
- package/dist/adapter-sqlite/table.server.d.ts +18 -0
- package/dist/adapter-sqlite/table.server.js +63 -0
- package/dist/adapter-sqlite/transform.server.d.ts +13 -12
- package/dist/adapter-sqlite/transform.server.js +118 -197
- package/dist/adapter-sqlite/tree.server.d.ts +7 -8
- package/dist/adapter-sqlite/tree.server.js +13 -12
- package/dist/adapter-sqlite/types.server.d.ts +6 -5
- package/dist/adapter-sqlite/where.server.d.ts +25 -3
- package/dist/adapter-sqlite/where.server.js +46 -36
- package/dist/adapter-sqlite/write.server.d.ts +166 -0
- package/dist/adapter-sqlite/write.server.js +272 -0
- package/dist/core/adapter.d.ts +456 -0
- package/dist/core/adapter.js +13 -0
- package/dist/core/auth/access.d.ts +73 -0
- package/dist/core/auth/augment.d.ts +18 -0
- package/dist/core/auth/augment.js +110 -0
- package/dist/core/auth/augment.server.d.ts +3 -0
- package/dist/core/auth/augment.server.js +23 -0
- package/dist/core/auth/better-auth/config.server.d.ts +2122 -0
- package/dist/core/auth/better-auth/config.server.js +81 -0
- package/dist/core/auth/better-auth/hooks.server.js +132 -0
- package/dist/core/auth/better-auth/instance.server.d.ts +4215 -0
- package/dist/core/auth/better-auth/instance.server.js +26 -0
- package/dist/core/auth/better-auth-tables.server.d.ts +33 -0
- package/dist/core/auth/better-auth-tables.server.js +50 -0
- package/dist/core/auth/configure.d.ts +21 -0
- package/dist/core/auth/configure.js +21 -0
- package/dist/core/auth/constant.server.d.ts +28 -0
- package/dist/core/auth/constant.server.js +43 -0
- package/dist/core/auth/enabled.d.ts +10 -0
- package/dist/core/auth/enabled.js +10 -0
- package/dist/core/auth/handler/index.server.js +159 -0
- package/dist/core/auth/hooks/augment-fields-password.server.d.ts +20 -0
- package/dist/core/auth/hooks/augment-fields-password.server.js +44 -0
- package/dist/core/auth/hooks/create-better-auth-user.server.d.ts +4 -0
- package/dist/core/auth/hooks/create-better-auth-user.server.js +212 -0
- package/dist/core/auth/hooks/delete-better-auth-user.server.d.ts +4 -0
- package/dist/core/auth/hooks/delete-better-auth-user.server.js +25 -0
- package/dist/core/auth/hooks/forward-roles.server.d.ts +12 -0
- package/dist/core/auth/hooks/forward-roles.server.js +58 -0
- package/dist/core/auth/hooks/index.server.d.ts +18 -0
- package/dist/core/auth/hooks/index.server.js +18 -0
- package/dist/core/auth/hooks/populate-api-key.server.d.ts +5 -0
- package/dist/core/auth/hooks/populate-api-key.server.js +22 -0
- package/dist/core/auth/hooks/prevent-superadmin-deletion.server.d.ts +6 -0
- package/dist/core/auth/hooks/prevent-superadmin-deletion.server.js +16 -0
- package/dist/core/auth/hooks/prevent-superadmin-mutation.server.d.ts +5 -0
- package/dist/core/auth/hooks/prevent-superadmin-mutation.server.js +28 -0
- package/dist/core/auth/hooks/prevent-user-mutations.server.d.ts +5 -0
- package/dist/core/auth/hooks/prevent-user-mutations.server.js +13 -0
- package/dist/core/auth/hooks/remove-private-fields.server.d.ts +7 -0
- package/dist/core/auth/hooks/remove-private-fields.server.js +11 -0
- package/dist/core/auth/hooks/sign-in-new-user.server.d.ts +12 -0
- package/dist/core/auth/hooks/sign-in-new-user.server.js +29 -0
- package/dist/core/auth/module.d.ts +2 -0
- package/dist/core/auth/module.js +2 -0
- package/dist/core/auth/module.server.d.ts +2 -0
- package/dist/core/auth/module.server.js +2 -0
- package/dist/core/auth/staff/configure.d.ts +7 -0
- package/dist/core/auth/staff/configure.js +13 -0
- package/dist/core/auth/staff/configure.server.d.ts +7 -0
- package/dist/core/auth/staff/configure.server.js +14 -0
- package/dist/core/auth/staff/derive.d.ts +23 -0
- package/dist/core/auth/staff/derive.js +58 -0
- package/dist/core/auth/tables.d.ts +38 -0
- package/dist/core/auth/tables.js +157 -0
- package/dist/core/auth/types.d.ts +47 -0
- package/dist/core/auth/user.server.d.ts +43 -0
- package/dist/core/auth/user.server.js +73 -0
- package/dist/core/auth/util.d.ts +13 -0
- package/dist/core/auth/validate-config.d.ts +13 -0
- package/dist/core/auth/validate-config.js +42 -0
- package/dist/core/boot.server.d.ts +4227 -0
- package/dist/core/boot.server.js +61 -0
- package/dist/core/codegen.server.d.ts +22 -0
- package/dist/core/codegen.server.js +58 -0
- package/dist/core/config/build.d.ts +23 -0
- package/dist/core/config/build.js +22 -0
- package/dist/core/config/build.server.d.ts +70 -0
- package/dist/core/config/build.server.js +33 -0
- package/dist/core/config/configure.d.ts +26 -0
- package/dist/core/config/configure.js +40 -0
- package/dist/core/config/context.server.d.ts +82 -0
- package/dist/core/config/context.server.js +118 -0
- package/dist/core/config/index.d.ts +4 -0
- package/dist/core/config/index.js +4 -0
- package/dist/core/config/index.server.d.ts +9 -0
- package/dist/core/config/index.server.js +11 -0
- package/dist/core/config/types.d.ts +88 -170
- package/dist/core/config/validate.server.d.ts +3 -0
- package/dist/core/config/validate.server.js +259 -0
- package/dist/core/constants.d.ts +69 -0
- package/dist/core/constants.js +69 -0
- package/dist/core/constants.server.d.ts +5 -0
- package/dist/core/constants.server.js +6 -0
- package/dist/core/cors/configure.server.d.ts +11 -0
- package/dist/core/cors/configure.server.js +14 -0
- package/dist/core/cors/handler.server.js +75 -0
- package/dist/core/cors/module.browser.js +1 -0
- package/dist/core/cors/module.server.d.ts +1 -0
- package/dist/core/cors/module.server.js +7 -0
- package/dist/core/dev/cache.server.d.ts +17 -0
- package/dist/core/dev/cache.server.js +65 -0
- package/dist/core/dev/cli/commands/build.js +70 -0
- package/dist/core/dev/cli/commands/clear.server.js +42 -0
- package/dist/core/dev/cli/commands/generate-exports.server.d.ts +26 -0
- package/dist/core/dev/cli/commands/generate-exports.server.js +155 -0
- package/dist/core/dev/cli/commands/generate.server.js +98 -0
- package/dist/core/dev/cli/commands/init.server.js +242 -0
- package/dist/core/dev/cli/index.js +16 -16
- package/dist/core/dev/cli/templates/build.js +45 -0
- package/dist/core/dev/cli/templates/init.js +117 -0
- package/dist/core/dev/cli/util/package-manager.server.js +7 -3
- package/dist/core/dev/cli/util/package.server.d.ts +0 -8
- package/dist/core/dev/cli/util/package.server.js +0 -10
- package/dist/core/dev/codegen/routes/common.server.d.ts +35 -0
- package/dist/core/dev/codegen/routes/common.server.js +437 -0
- package/dist/core/dev/codegen/routes/custom-css.server.js +86 -0
- package/dist/core/dev/codegen/routes/index.server.d.ts +17 -0
- package/dist/core/dev/codegen/routes/index.server.js +110 -0
- package/dist/core/dev/codegen/routes/util.server.d.ts +52 -0
- package/dist/core/dev/codegen/routes/util.server.js +118 -0
- package/dist/core/dev/codegen/runtime/index.server.d.ts +78 -0
- package/dist/core/dev/codegen/runtime/index.server.js +92 -0
- package/dist/core/dev/codegen/runtime/parse-exports.server.d.ts +16 -0
- package/dist/core/dev/codegen/runtime/parse-exports.server.js +60 -0
- package/dist/core/dev/codegen/sanitize/index.server.js +834 -0
- package/dist/core/dev/codegen/types/contributions.server.d.ts +37 -0
- package/dist/core/dev/codegen/types/contributions.server.js +25 -0
- package/dist/core/dev/codegen/types/index.server.js +132 -0
- package/dist/core/dev/codegen/types/templates.server.d.ts +13 -0
- package/dist/core/dev/codegen/types/templates.server.js +134 -0
- package/dist/core/dev/config-memo.server.js +85 -0
- package/dist/core/dev/constants.server.d.ts +20 -0
- package/dist/core/dev/constants.server.js +63 -0
- package/dist/core/dev/ensure.server.d.ts +30 -0
- package/dist/core/dev/ensure.server.js +82 -0
- package/dist/core/dev/prototype-routes.server.d.ts +16 -0
- package/dist/core/dev/prototype-routes.server.js +23 -0
- package/dist/core/dev/version.server.d.ts +12 -0
- package/dist/core/dev/version.server.js +27 -0
- package/dist/core/dev/vite.server.js +242 -0
- package/dist/core/errors/handler.server.d.ts +17 -1
- package/dist/core/errors/handler.server.js +4 -23
- package/dist/core/fields/builders/boolean-builder.d.ts +1 -1
- package/dist/core/fields/builders/field-builder.d.ts +12 -1
- package/dist/core/fields/builders/form-field-builder.d.ts +16 -5
- package/dist/core/fields/builders/form-field-builder.js +19 -8
- package/dist/core/fields/builders/select-builder.d.ts +1 -1
- package/dist/core/fields/types.d.ts +16 -0
- package/dist/core/fields/util.d.ts +60 -0
- package/dist/core/fields/util.js +84 -1
- package/dist/core/fields/validate.js +171 -0
- package/dist/core/handler.server.d.ts +4 -0
- package/dist/core/handler.server.js +25 -0
- package/dist/core/i18n/en/common.d.ts +18 -0
- package/dist/core/i18n/en/common.js +20 -1
- package/dist/core/i18n/fr/common.d.ts +18 -0
- package/dist/core/i18n/fr/common.js +20 -1
- package/dist/core/i18n/index.d.ts +0 -1
- package/dist/core/i18n/index.js +0 -1
- package/dist/core/locale/copy.server.d.ts +35 -0
- package/dist/core/locale/copy.server.js +93 -0
- package/dist/core/locale/types.d.ts +20 -0
- package/dist/core/panel/configure.d.ts +63 -0
- package/dist/core/panel/configure.js +56 -0
- package/dist/core/panel/types.d.ts +61 -0
- package/dist/core/pipeline/build-document.server.d.ts +26 -0
- package/dist/core/pipeline/build-document.server.js +83 -0
- package/dist/core/pipeline/build.server.d.ts +23 -0
- package/dist/core/pipeline/build.server.js +76 -0
- package/dist/core/pipeline/config-map/build-tree-map.d.ts +4 -0
- package/dist/core/pipeline/config-map/index.d.ts +6 -0
- package/dist/core/pipeline/config-map/index.js +54 -0
- package/dist/core/pipeline/define-hook.d.ts +42 -0
- package/dist/core/pipeline/define-hook.js +40 -0
- package/dist/core/pipeline/extract-data.server.d.ts +18 -0
- package/dist/core/pipeline/extract-data.server.js +78 -0
- package/dist/core/pipeline/hook-name.server.d.ts +11 -0
- package/dist/core/pipeline/hook-name.server.js +14 -0
- package/dist/core/pipeline/hooks/authorize.server.d.ts +6 -0
- package/dist/core/pipeline/hooks/authorize.server.js +37 -0
- package/dist/core/pipeline/hooks/data-config-map.server.d.ts +8 -0
- package/dist/core/pipeline/hooks/data-config-map.server.js +19 -0
- package/dist/core/pipeline/hooks/get-original-document.server.d.ts +9 -0
- package/dist/core/pipeline/hooks/get-original-document.server.js +34 -0
- package/dist/core/pipeline/hooks/normalize-resolved-references.server.d.ts +16 -0
- package/dist/core/pipeline/hooks/normalize-resolved-references.server.js +40 -0
- package/dist/core/pipeline/hooks/original-config-map.server.d.ts +8 -0
- package/dist/core/pipeline/hooks/original-config-map.server.js +23 -0
- package/dist/core/pipeline/hooks/process-document-fields.server.d.ts +5 -0
- package/dist/core/pipeline/hooks/process-document-fields.server.js +62 -0
- package/dist/core/pipeline/hooks/resolve-content-owner.server.d.ts +17 -0
- package/dist/core/pipeline/hooks/resolve-content-owner.server.js +24 -0
- package/dist/core/pipeline/hooks/set-default-values.server.d.ts +16 -0
- package/dist/core/pipeline/hooks/set-default-values.server.js +79 -0
- package/dist/core/pipeline/hooks/set-document-locale.server.d.ts +5 -0
- package/dist/core/pipeline/hooks/set-document-locale.server.js +19 -0
- package/dist/core/pipeline/hooks/set-document-type.server.d.ts +6 -0
- package/dist/core/pipeline/hooks/set-document-type.server.js +19 -0
- package/dist/core/pipeline/hooks/sort-document-props.server.d.ts +7 -0
- package/dist/core/pipeline/hooks/sort-document-props.server.js +71 -0
- package/dist/core/pipeline/hooks/validate-fields.server.d.ts +12 -0
- package/dist/core/pipeline/hooks/validate-fields.server.js +170 -0
- package/dist/core/pipeline/persist/blocks/diff.server.d.ts +15 -0
- package/dist/core/pipeline/persist/blocks/diff.server.js +69 -0
- package/dist/core/pipeline/persist/blocks/extract.server.d.ts +9 -0
- package/dist/core/pipeline/persist/blocks/extract.server.js +33 -0
- package/dist/core/pipeline/persist/blocks/index.server.d.ts +27 -0
- package/dist/core/pipeline/persist/blocks/index.server.js +68 -0
- package/dist/core/pipeline/persist/relations/diff.server.d.ts +14 -0
- package/dist/core/pipeline/persist/relations/diff.server.js +47 -0
- package/dist/core/pipeline/persist/relations/extract.server.d.ts +11 -0
- package/dist/core/pipeline/persist/relations/extract.server.js +59 -0
- package/dist/core/pipeline/persist/relations/index.server.d.ts +26 -0
- package/dist/core/pipeline/persist/relations/index.server.js +66 -0
- package/dist/core/pipeline/persist/tree/diff.server.d.ts +20 -0
- package/dist/core/pipeline/persist/tree/diff.server.js +51 -0
- package/dist/core/pipeline/persist/tree/extract.server.d.ts +9 -0
- package/dist/core/pipeline/persist/tree/extract.server.js +34 -0
- package/dist/core/pipeline/persist/tree/index.server.d.ts +14 -0
- package/dist/core/pipeline/persist/tree/index.server.js +50 -0
- package/dist/core/pipeline/query.d.ts +14 -0
- package/dist/core/pipeline/query.js +36 -0
- package/dist/core/pipeline/run.server.d.ts +146 -0
- package/dist/core/pipeline/run.server.js +256 -0
- package/dist/core/pipeline/types.d.ts +140 -0
- package/dist/core/pipeline/types.js +10 -0
- package/dist/core/plugins/api-init/index.server.js +84 -0
- package/dist/core/plugins/cache/cache.server.js +1 -1
- package/dist/core/plugins/cache/index.d.ts +1 -2
- package/dist/core/plugins/cache/index.js +3 -1
- package/dist/core/plugins/cache/types.d.ts +5 -0
- package/dist/core/plugins/configure.d.ts +12 -0
- package/dist/core/plugins/configure.js +26 -0
- package/dist/core/plugins/defaults/index.d.ts +1 -0
- package/dist/core/plugins/defaults/index.js +3 -0
- package/dist/core/plugins/defaults/module.d.ts +12 -0
- package/dist/core/plugins/defaults/module.js +14 -0
- package/dist/core/plugins/defaults/module.server.d.ts +4 -0
- package/dist/core/plugins/defaults/module.server.js +15 -0
- package/dist/core/plugins/defaults/types.d.ts +18 -0
- package/dist/core/plugins/defaults/types.js +1 -0
- package/dist/core/plugins/mailer/index.server.js +29 -0
- package/dist/core/plugins/plugins.server.js +10 -0
- package/dist/core/plugins/sse/bus.server.d.ts +16 -0
- package/dist/core/plugins/sse/bus.server.js +69 -0
- package/dist/core/plugins/sse/client.d.ts +14 -16
- package/dist/core/plugins/sse/client.js +42 -34
- package/dist/core/plugins/sse/index.d.ts +10 -2
- package/dist/core/plugins/sse/index.js +9 -1
- package/dist/core/plugins/sse/index.server.d.ts +29 -0
- package/dist/core/plugins/sse/index.server.js +18 -0
- package/dist/core/plugins/sse/types.d.ts +15 -7
- package/dist/core/prototype/area/api.server.d.ts +91 -0
- package/dist/core/prototype/area/api.server.js +117 -0
- package/dist/core/prototype/area/augment-label.d.ts +16 -0
- package/dist/core/prototype/area/augment-label.js +13 -0
- package/dist/core/prototype/area/definition.d.ts +18 -0
- package/dist/core/prototype/area/definition.js +44 -0
- package/dist/core/prototype/area/definition.server.d.ts +9 -0
- package/dist/core/prototype/area/definition.server.js +40 -0
- package/dist/core/prototype/area/hooks.server.d.ts +17 -0
- package/dist/core/prototype/area/hooks.server.js +61 -0
- package/dist/core/prototype/area/index.d.ts +1 -0
- package/dist/core/prototype/area/index.js +1 -0
- package/dist/core/prototype/area/operations/find.d.ts +18 -0
- package/dist/core/prototype/area/operations/find.js +43 -0
- package/dist/core/prototype/area/operations/update.d.ts +29 -0
- package/dist/core/prototype/area/operations/update.js +44 -0
- package/dist/core/prototype/area/rest/endpoint.server.d.ts +14 -0
- package/dist/core/prototype/area/rest/endpoint.server.js +15 -0
- package/dist/core/prototype/area/rest/get.server.d.ts +4 -0
- package/dist/core/prototype/area/rest/get.server.js +31 -0
- package/dist/core/prototype/area/rest/index.server.d.ts +9 -0
- package/dist/core/prototype/area/rest/index.server.js +14 -0
- package/dist/core/prototype/area/rest/lock.server.d.ts +2 -0
- package/dist/core/prototype/area/rest/lock.server.js +38 -0
- package/dist/core/prototype/area/rest/update.server.d.ts +4 -0
- package/dist/core/prototype/area/rest/update.server.js +38 -0
- package/dist/core/prototype/area/types.js +1 -0
- package/dist/core/prototype/collection/api.server.d.ts +173 -0
- package/dist/core/prototype/collection/api.server.js +224 -0
- package/dist/core/prototype/collection/augment-label.d.ts +6 -0
- package/dist/core/prototype/collection/definition.d.ts +26 -0
- package/dist/core/prototype/collection/definition.js +74 -0
- package/dist/core/prototype/collection/definition.server.d.ts +8 -0
- package/dist/core/prototype/collection/definition.server.js +24 -0
- package/dist/core/prototype/collection/hooks/merge-with-blank.server.d.ts +5 -0
- package/dist/core/prototype/collection/hooks/merge-with-blank.server.js +28 -0
- package/dist/core/prototype/collection/hooks.server.d.ts +28 -0
- package/dist/core/prototype/collection/hooks.server.js +133 -0
- package/dist/core/prototype/collection/index.d.ts +1 -0
- package/dist/core/prototype/collection/index.js +1 -0
- package/dist/core/prototype/collection/nested/enabled.d.ts +8 -0
- package/dist/core/prototype/collection/nested/enabled.js +7 -0
- package/dist/core/prototype/collection/nested/hooks/add-children.server.d.ts +4 -0
- package/dist/core/prototype/collection/nested/hooks/add-children.server.js +40 -0
- package/dist/core/prototype/collection/nested/hooks/index.server.d.ts +9 -0
- package/dist/core/prototype/collection/nested/hooks/index.server.js +9 -0
- package/dist/core/prototype/collection/nested/module.d.ts +15 -0
- package/dist/core/prototype/collection/nested/module.js +17 -0
- package/dist/core/prototype/collection/nested/module.server.d.ts +16 -0
- package/dist/core/prototype/collection/nested/module.server.js +21 -0
- package/dist/core/prototype/collection/operations/create.d.ts +18 -0
- package/dist/core/prototype/collection/operations/create.js +68 -0
- package/dist/core/prototype/collection/operations/delete-by-id.d.ts +11 -0
- package/dist/core/prototype/collection/operations/delete-by-id.js +44 -0
- package/dist/core/prototype/collection/operations/delete.d.ts +15 -0
- package/dist/core/prototype/collection/operations/delete.js +34 -0
- package/dist/core/prototype/collection/operations/duplicate.d.ts +12 -0
- package/dist/core/prototype/collection/operations/duplicate.js +112 -0
- package/dist/core/prototype/collection/operations/find-by-id.d.ts +22 -0
- package/dist/core/prototype/collection/operations/find-by-id.js +47 -0
- package/dist/core/prototype/collection/operations/find.d.ts +22 -0
- package/dist/core/prototype/collection/operations/find.js +65 -0
- package/dist/core/prototype/collection/operations/update-by-id.d.ts +30 -0
- package/dist/core/prototype/collection/operations/update-by-id.js +52 -0
- package/dist/core/prototype/collection/rest/create.server.d.ts +4 -0
- package/dist/core/prototype/collection/rest/create.server.js +26 -0
- package/dist/core/prototype/collection/rest/delete-by-id.server.d.ts +4 -0
- package/dist/core/prototype/collection/rest/delete-by-id.server.js +16 -0
- package/dist/core/prototype/collection/rest/delete.server.d.ts +4 -0
- package/dist/core/prototype/collection/rest/delete.server.js +33 -0
- package/dist/core/prototype/collection/rest/duplicate.server.d.ts +1 -0
- package/dist/core/prototype/collection/rest/duplicate.server.js +17 -0
- package/dist/core/prototype/collection/rest/endpoint.server.d.ts +27 -0
- package/dist/core/prototype/collection/rest/endpoint.server.js +23 -0
- package/dist/core/prototype/collection/rest/get-by-id.server.d.ts +4 -0
- package/dist/core/prototype/collection/rest/get-by-id.server.js +40 -0
- package/dist/core/prototype/collection/rest/get.server.d.ts +4 -0
- package/dist/core/prototype/collection/rest/get.server.js +38 -0
- package/dist/core/prototype/collection/rest/index.server.d.ts +12 -0
- package/dist/core/prototype/collection/rest/index.server.js +24 -0
- package/dist/core/prototype/collection/rest/lock.server.d.ts +2 -0
- package/dist/core/prototype/collection/rest/lock.server.js +59 -0
- package/dist/core/prototype/collection/rest/update-by-id.server.d.ts +4 -0
- package/dist/core/prototype/collection/rest/update-by-id.server.js +44 -0
- package/dist/core/prototype/collection/thumbnail/augment.d.ts +13 -0
- package/dist/core/prototype/collection/thumbnail/augment.js +15 -0
- package/dist/core/prototype/collection/thumbnail/find-thumbnail.d.ts +9 -0
- package/dist/core/prototype/collection/thumbnail/find-thumbnail.js +34 -0
- package/dist/core/prototype/collection/thumbnail/hooks/index.server.d.ts +9 -0
- package/dist/core/prototype/collection/thumbnail/hooks/index.server.js +9 -0
- package/dist/core/prototype/collection/thumbnail/hooks/set-document-thumbnail.server.d.ts +7 -0
- package/dist/core/prototype/collection/thumbnail/hooks/set-document-thumbnail.server.js +40 -0
- package/dist/core/prototype/collection/types.d.ts +14 -0
- package/dist/core/prototype/collection/types.js +1 -0
- package/dist/core/prototype/collection/upload/boot/index.server.d.ts +13 -0
- package/dist/core/prototype/collection/upload/boot/index.server.js +11 -0
- package/dist/core/prototype/collection/upload/constant.d.ts +10 -0
- package/dist/core/prototype/collection/upload/constant.js +10 -0
- package/dist/core/prototype/collection/upload/directories/configure.d.ts +14 -0
- package/dist/core/prototype/collection/upload/directories/configure.js +19 -0
- package/dist/core/prototype/collection/upload/directories/configure.server.d.ts +12 -0
- package/dist/core/prototype/collection/upload/directories/configure.server.js +35 -0
- package/dist/core/prototype/collection/upload/directories/derive.d.ts +7 -0
- package/dist/core/prototype/collection/upload/directories/derive.js +56 -0
- package/dist/core/prototype/collection/upload/directories/pipeline.server.d.ts +10 -0
- package/dist/core/prototype/collection/upload/directories/pipeline.server.js +22 -0
- package/dist/core/prototype/collection/upload/disk/delete.server.d.ts +9 -0
- package/dist/core/prototype/collection/upload/disk/delete.server.js +106 -0
- package/dist/core/prototype/collection/upload/disk/save.server.d.ts +32 -0
- package/dist/core/prototype/collection/upload/disk/save.server.js +190 -0
- package/dist/core/prototype/collection/upload/doc-type.d.ts +14 -0
- package/dist/core/prototype/collection/upload/doc-type.js +28 -0
- package/dist/core/prototype/collection/upload/enabled.d.ts +8 -0
- package/dist/core/prototype/collection/upload/enabled.js +7 -0
- package/dist/core/prototype/collection/upload/ensure.server.d.ts +12 -0
- package/dist/core/prototype/collection/upload/ensure.server.js +19 -0
- package/dist/core/prototype/collection/upload/hooks/clean-up-files.server.d.ts +10 -0
- package/dist/core/prototype/collection/upload/hooks/clean-up-files.server.js +17 -0
- package/dist/core/prototype/collection/upload/hooks/convert-base64.server.d.ts +13 -0
- package/dist/core/prototype/collection/upload/hooks/convert-base64.server.js +36 -0
- package/dist/core/prototype/collection/upload/hooks/extract-path.server.d.ts +6 -0
- package/dist/core/prototype/collection/upload/hooks/extract-path.server.js +25 -0
- package/dist/core/prototype/collection/upload/hooks/handle-path-creation.server.d.ts +6 -0
- package/dist/core/prototype/collection/upload/hooks/handle-path-creation.server.js +82 -0
- package/dist/core/prototype/collection/upload/hooks/index.server.d.ts +13 -0
- package/dist/core/prototype/collection/upload/hooks/index.server.js +13 -0
- package/dist/core/prototype/collection/upload/hooks/populate-sizes.server.d.ts +4 -0
- package/dist/core/prototype/collection/upload/hooks/populate-sizes.server.js +48 -0
- package/dist/core/prototype/collection/upload/hooks/process-file-upload.server.d.ts +20 -0
- package/dist/core/prototype/collection/upload/hooks/process-file-upload.server.js +60 -0
- package/dist/core/prototype/collection/upload/hooks/update-directory-children.server.d.ts +10 -0
- package/dist/core/prototype/collection/upload/hooks/update-directory-children.server.js +47 -0
- package/dist/core/prototype/collection/upload/module.d.ts +15 -0
- package/dist/core/prototype/collection/upload/module.js +92 -0
- package/dist/core/prototype/collection/upload/module.server.d.ts +24 -0
- package/dist/core/prototype/collection/upload/module.server.js +36 -0
- package/dist/core/prototype/collection/upload/naming.d.ts +23 -0
- package/dist/core/prototype/collection/upload/naming.js +37 -0
- package/dist/core/prototype/collection/upload/types.d.ts +102 -0
- package/dist/core/prototype/collection/upload/types.js +1 -0
- package/dist/core/prototype/collection/upload/util/config.d.ts +16 -0
- package/dist/core/prototype/collection/upload/util/converter.server.d.ts +29 -0
- package/dist/core/prototype/collection/upload/util/converter.server.js +127 -0
- package/dist/core/prototype/collection/upload/util/path.d.ts +69 -0
- package/dist/core/prototype/collection/upload/util/path.js +143 -0
- package/dist/core/prototype/define.d.ts +112 -0
- package/dist/core/prototype/define.js +50 -0
- package/dist/core/prototype/doc.d.ts +31 -0
- package/dist/core/prototype/doc.js +118 -0
- package/dist/core/prototype/index.d.ts +14 -0
- package/dist/core/prototype/index.js +14 -0
- package/dist/core/prototype/naming.d.ts +22 -0
- package/dist/core/prototype/naming.js +23 -0
- package/dist/core/prototype/shared/metas/constant.d.ts +16 -0
- package/dist/core/prototype/shared/metas/constant.js +16 -0
- package/dist/core/prototype/shared/metas/fields.d.ts +8 -0
- package/dist/core/prototype/shared/metas/fields.js +27 -0
- package/dist/core/prototype/shared/metas/hooks/delete-panel-lock-metas.server.d.ts +9 -0
- package/dist/core/prototype/shared/metas/hooks/delete-panel-lock-metas.server.js +20 -0
- package/dist/core/prototype/shared/metas/hooks/index.server.d.ts +7 -0
- package/dist/core/prototype/shared/metas/hooks/index.server.js +7 -0
- package/dist/core/prototype/shared/metas/hooks/stamp-authorship.server.d.ts +2 -0
- package/dist/core/prototype/shared/metas/hooks/stamp-authorship.server.js +27 -0
- package/dist/core/prototype/shared/metas/lock.d.ts +15 -0
- package/dist/core/prototype/shared/metas/lock.js +30 -0
- package/dist/core/prototype/shared/metas/lock.server.d.ts +46 -0
- package/dist/core/prototype/shared/metas/lock.server.js +91 -0
- package/dist/core/prototype/shared/metas/module.d.ts +38 -0
- package/dist/core/prototype/shared/metas/module.js +38 -0
- package/dist/core/prototype/shared/metas/module.server.d.ts +30 -0
- package/dist/core/prototype/shared/metas/module.server.js +38 -0
- package/dist/core/prototype/shared/title/augment.d.ts +27 -0
- package/dist/core/prototype/shared/title/augment.js +19 -0
- package/dist/core/prototype/shared/title/find-title.d.ts +14 -0
- package/dist/core/prototype/shared/title/find-title.js +35 -0
- package/dist/core/prototype/shared/title/hooks/index.server.d.ts +9 -0
- package/dist/core/prototype/shared/title/hooks/index.server.js +9 -0
- package/dist/core/prototype/shared/title/hooks/set-document-title.server.d.ts +4 -0
- package/dist/core/prototype/shared/title/hooks/set-document-title.server.js +32 -0
- package/dist/core/prototype/shared/title/select.d.ts +16 -0
- package/dist/core/prototype/shared/title/select.js +24 -0
- package/dist/core/prototype/shared/url/augment.d.ts +13 -0
- package/dist/core/prototype/shared/url/augment.js +11 -0
- package/dist/core/prototype/shared/url/enabled.d.ts +8 -0
- package/dist/core/prototype/shared/url/enabled.js +7 -0
- package/dist/core/prototype/shared/url/hooks/index.server.d.ts +9 -0
- package/dist/core/prototype/shared/url/hooks/index.server.js +9 -0
- package/dist/core/prototype/shared/url/hooks/populate-url.server.d.ts +4 -0
- package/dist/core/prototype/shared/url/hooks/populate-url.server.js +120 -0
- package/dist/core/prototype/shared/versions/augment.d.ts +23 -0
- package/dist/core/prototype/shared/versions/augment.js +47 -0
- package/dist/core/prototype/shared/versions/auto-saves.server.d.ts +16 -0
- package/dist/core/prototype/shared/versions/auto-saves.server.js +29 -0
- package/dist/core/prototype/shared/versions/blank.d.ts +13 -0
- package/dist/core/prototype/shared/versions/blank.js +15 -0
- package/dist/core/prototype/shared/versions/configure.server.d.ts +7 -0
- package/dist/core/prototype/shared/versions/configure.server.js +75 -0
- package/dist/core/prototype/shared/versions/constant.d.ts +14 -0
- package/dist/core/prototype/shared/versions/constant.js +13 -0
- package/dist/core/prototype/shared/versions/doc-type.d.ts +8 -0
- package/dist/core/prototype/shared/versions/doc-type.js +9 -0
- package/dist/core/prototype/shared/versions/enabled.d.ts +10 -0
- package/dist/core/prototype/shared/versions/enabled.js +9 -0
- package/dist/core/prototype/shared/versions/hooks/define-version-operation.server.d.ts +19 -0
- package/dist/core/prototype/shared/versions/hooks/define-version-operation.server.js +37 -0
- package/dist/core/prototype/shared/versions/hooks/demote-other-versions.d.ts +17 -0
- package/dist/core/prototype/shared/versions/hooks/demote-other-versions.js +37 -0
- package/dist/core/prototype/shared/versions/hooks/discard-auto-saves-of.server.d.ts +8 -0
- package/dist/core/prototype/shared/versions/hooks/discard-auto-saves-of.server.js +17 -0
- package/dist/core/prototype/shared/versions/hooks/expose-version-id.d.ts +12 -0
- package/dist/core/prototype/shared/versions/hooks/expose-version-id.js +17 -0
- package/dist/core/prototype/shared/versions/hooks/fallback-data-from-original.d.ts +9 -0
- package/dist/core/prototype/shared/versions/hooks/fallback-data-from-original.js +31 -0
- package/dist/core/prototype/shared/versions/hooks/handle-new-version.server.d.ts +32 -0
- package/dist/core/prototype/shared/versions/hooks/handle-new-version.server.js +194 -0
- package/dist/core/prototype/shared/versions/hooks/index.server.d.ts +15 -0
- package/dist/core/prototype/shared/versions/hooks/index.server.js +15 -0
- package/dist/core/prototype/shared/versions/hooks/prevent-last-version-deletion.server.d.ts +7 -0
- package/dist/core/prototype/shared/versions/hooks/prevent-last-version-deletion.server.js +21 -0
- package/dist/core/prototype/shared/versions/hooks/strip-auto-save-flag.server.d.ts +7 -0
- package/dist/core/prototype/shared/versions/hooks/strip-auto-save-flag.server.js +14 -0
- package/dist/core/prototype/shared/versions/module.browser.js +1 -0
- package/dist/core/prototype/shared/versions/module.server.d.ts +1 -0
- package/dist/core/prototype/shared/versions/module.server.js +4 -0
- package/dist/core/prototype/shared/versions/naming.d.ts +7 -0
- package/dist/core/prototype/shared/versions/naming.js +21 -0
- package/dist/core/prototype/shared/versions/read-query.d.ts +27 -0
- package/dist/core/prototype/shared/versions/read-query.js +35 -0
- package/dist/core/prototype/shared/versions/retire-auto-saves.server.d.ts +16 -0
- package/dist/core/prototype/shared/versions/retire-auto-saves.server.js +29 -0
- package/dist/core/prototype/shared/versions/strategy.d.ts +86 -0
- package/dist/core/prototype/shared/versions/strategy.js +93 -0
- package/dist/core/prototype/shared/versions/types.d.ts +37 -0
- package/dist/core/prototype/shared/versions/types.js +1 -0
- package/dist/core/prototype/shared/versions/validate-config.server.d.ts +8 -0
- package/dist/core/prototype/shared/versions/validate-config.server.js +21 -0
- package/dist/core/prototype/shared/versions/write-plan.d.ts +30 -0
- package/dist/core/prototype/shared/versions/write-plan.js +38 -0
- package/dist/core/prototype/types.d.ts +79 -0
- package/dist/core/prototype/types.js +1 -0
- package/dist/core/prototype/when.d.ts +25 -0
- package/dist/core/prototype/when.js +32 -0
- package/dist/core/rime.server.d.ts +64 -4363
- package/dist/core/rime.server.js +45 -93
- package/dist/core/routes/constants.d.ts +12 -0
- package/dist/core/routes/constants.js +16 -0
- package/dist/core/routes/constants.server.d.ts +5 -0
- package/dist/core/routes/constants.server.js +9 -0
- package/dist/core/routes/context.server.d.ts +17 -0
- package/dist/core/routes/context.server.js +29 -0
- package/dist/core/routes/handler.server.d.ts +58 -0
- package/dist/core/routes/handler.server.js +107 -0
- package/dist/core/routes/panel-navigation.d.ts +18 -0
- package/dist/core/routes/panel-navigation.js +64 -0
- package/dist/core/routes/util.d.ts +24 -0
- package/dist/core/routes/util.js +44 -0
- package/dist/fields/blocks/component/AddBlockButton.svelte +1 -1
- package/dist/fields/blocks/component/AddBlockButton.svelte.d.ts +1 -1
- package/dist/fields/blocks/component/Block.svelte +1 -1
- package/dist/fields/blocks/component/Blocks.svelte +1 -1
- package/dist/fields/blocks/index.d.ts +2 -1
- package/dist/fields/blocks/index.js +18 -2
- package/dist/fields/email/index.js +1 -1
- package/dist/fields/group/component/Group.svelte +1 -1
- package/dist/fields/group/component/Group.svelte.d.ts +1 -1
- package/dist/fields/group/index.d.ts +2 -2
- package/dist/fields/link/component/RessourceInput.svelte +2 -2
- package/dist/fields/link/index.d.ts +1 -1
- package/dist/fields/link/index.js +57 -60
- package/dist/fields/link/module.server.js +1 -1
- package/dist/fields/number/index.d.ts +1 -1
- package/dist/fields/relation/component/Cell.svelte +2 -2
- package/dist/fields/relation/component/Relation.svelte +13 -22
- package/dist/fields/relation/component/default/Default.svelte +4 -3
- package/dist/fields/relation/component/types.d.ts +2 -1
- package/dist/fields/relation/component/upload/Browse.svelte +4 -4
- package/dist/fields/relation/component/upload/Upload.svelte +2 -2
- package/dist/fields/relation/index.d.ts +11 -1
- package/dist/fields/relation/index.js +81 -63
- package/dist/fields/relation/module.server.js +3 -8
- package/dist/fields/rich-text/core/features/link/component/link-selector.svelte +2 -2
- package/dist/fields/rich-text/core/features/resource/resource-extension.d.ts +1 -1
- package/dist/fields/rich-text/core/features/resource/resource.svelte +2 -2
- package/dist/fields/rich-text/core/features/upload/upload.svelte +2 -2
- package/dist/fields/slug/index.d.ts +1 -1
- package/dist/fields/tabs/index.d.ts +1 -1
- package/dist/fields/text/index.d.ts +1 -1
- package/dist/fields/textarea/index.d.ts +1 -1
- package/dist/fields/toggle/index.d.ts +1 -1
- package/dist/fields/tree/component/TreeBlock.svelte +1 -1
- package/dist/fields/tree/component/TreeBlock.svelte.d.ts +1 -1
- package/dist/fields/tree/component/props.d.ts +1 -1
- package/dist/fields/tree/index.d.ts +1 -1
- package/dist/fields/tree/index.js +12 -1
- package/dist/fields/types.d.ts +4 -9
- package/dist/index.d.ts +5 -2
- package/dist/index.js +2 -1
- package/dist/panel/components/Root.svelte +12 -8
- package/dist/panel/components/Root.svelte.d.ts +1 -1
- package/dist/panel/components/sections/auth/AuthForm.svelte +3 -0
- package/dist/panel/components/sections/collection/StatusDot.svelte +2 -1
- package/dist/panel/components/sections/collection/StatusDot.svelte.d.ts +1 -1
- package/dist/panel/components/sections/collection/bulk-upload/DropZone.svelte +1 -1
- package/dist/panel/components/sections/collection/folder/FolderEdit.svelte +2 -2
- package/dist/panel/components/sections/collection/folder/FolderEdit.svelte.d.ts +1 -1
- package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte +8 -8
- package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte.d.ts +1 -1
- package/dist/panel/components/sections/collection/grid/create-directory-dialog/CreateDirectoryDialog.svelte +1 -1
- package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte +7 -5
- package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte.d.ts +1 -1
- package/dist/panel/components/sections/collection/header/ButtonCreate.svelte +9 -6
- package/dist/panel/components/sections/collection/header/DisplayMode.svelte +1 -2
- package/dist/panel/components/sections/collection/header/Header.svelte +2 -5
- package/dist/panel/components/sections/collection/list/CollectionList.svelte +1 -1
- package/dist/panel/components/sections/collection/list/header/Header.svelte +7 -1
- package/dist/panel/components/sections/collection/list/row/Row.svelte +9 -4
- package/dist/panel/components/sections/collection/list/row/Row.svelte.d.ts +1 -1
- package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte +2 -2
- package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte.d.ts +1 -1
- package/dist/panel/components/sections/collection/upload-thumb-cell/UploadThumbCell.svelte +1 -1
- package/dist/panel/components/sections/document/AuthFooter.svelte +3 -3
- package/dist/panel/components/sections/document/AutoSaveBanner.svelte +115 -0
- package/dist/panel/components/sections/document/AutoSaveBanner.svelte.d.ts +16 -0
- package/dist/panel/components/sections/document/ButtonStatus.svelte +12 -5
- package/dist/panel/components/sections/document/CurrentlyEdited.svelte +10 -27
- package/dist/panel/components/sections/document/CurrentlyEdited.svelte.d.ts +6 -5
- package/dist/panel/components/sections/document/Document.svelte +220 -18
- package/dist/panel/components/sections/document/Document.svelte.d.ts +1 -1
- package/dist/panel/components/sections/document/Header.svelte +49 -5
- package/dist/panel/components/sections/document/Header.svelte.d.ts +2 -0
- package/dist/panel/components/sections/document/Settings.svelte +77 -21
- package/dist/panel/components/sections/document/Versions.svelte +140 -51
- package/dist/panel/components/sections/document/Versions.svelte.d.ts +11 -8
- package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte +4 -2
- package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte.d.ts +1 -1
- package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte +1 -1
- package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte.d.ts +2 -2
- package/dist/panel/components/sections/document/versions-list.d.ts +10 -0
- package/dist/panel/components/sections/document/versions-list.js +10 -0
- package/dist/panel/components/sections/live/Consumer.svelte +1 -1
- package/dist/panel/components/sections/live/Consumer.svelte.d.ts +1 -1
- package/dist/panel/components/sections/live/LiveEdit.svelte +1 -1
- package/dist/panel/components/ui/card-resource/card-resource.svelte +13 -2
- package/dist/panel/components/ui/nav/Nav.svelte +3 -3
- package/dist/panel/components/ui/nav/NavItem.svelte +2 -1
- package/dist/panel/components/ui/nav/UserButton.svelte +1 -1
- package/dist/panel/context/collection.svelte.d.ts +2 -2
- package/dist/panel/context/collection.svelte.js +6 -7
- package/dist/panel/context/config.svelte.d.ts +1 -1
- package/dist/panel/context/documentForm.svelte.d.ts +19 -3
- package/dist/panel/context/documentForm.svelte.js +210 -36
- package/dist/panel/context/live.svelte.d.ts +1 -1
- package/dist/panel/context/live.svelte.js +2 -2
- package/dist/panel/context/user.svelte.d.ts +1 -1
- package/dist/panel/context/versions.svelte.d.ts +8 -0
- package/dist/panel/context/versions.svelte.js +34 -0
- package/dist/panel/index.d.ts +15 -12
- package/dist/panel/index.js +1 -3
- package/dist/panel/pages/area/Area.svelte +7 -2
- package/dist/panel/pages/area/Area.svelte.d.ts +1 -1
- package/dist/panel/pages/area/actions.server.js +31 -17
- package/dist/panel/pages/area/load.server.d.ts +1 -1
- package/dist/panel/pages/area/load.server.js +10 -25
- package/dist/panel/pages/auth/fields.js +1 -1
- package/dist/panel/pages/auth/forgot-password/ForgotPassword.svelte +1 -1
- package/dist/panel/pages/auth/forgot-password/load.server.js +3 -2
- package/dist/panel/pages/auth/reset-password/ResetPassword.svelte +1 -1
- package/dist/panel/pages/auth/reset-password/load.server.js +3 -2
- package/dist/panel/pages/auth/sign-in/SignIn.svelte +1 -1
- package/dist/panel/pages/auth/sign-in/load.server.d.ts +1 -1
- package/dist/panel/pages/auth/sign-in/load.server.js +5 -4
- package/dist/panel/pages/collection/Collection.svelte +15 -138
- package/dist/panel/pages/collection/Collection.svelte.d.ts +5 -8
- package/dist/panel/pages/collection/CollectionPage.svelte +146 -0
- package/dist/panel/pages/collection/CollectionPage.svelte.d.ts +18 -0
- package/dist/panel/pages/collection/load.server.d.ts +3 -3
- package/dist/panel/pages/collection/load.server.js +8 -10
- package/dist/panel/pages/collection-document/CollectionDocument.svelte +7 -2
- package/dist/panel/pages/collection-document/CollectionDocument.svelte.d.ts +1 -1
- package/dist/panel/pages/collection-document/actions.server.js +28 -12
- package/dist/panel/pages/collection-document/load.server.d.ts +1 -1
- package/dist/panel/pages/collection-document/load.server.js +16 -25
- package/dist/panel/pages/dashboard/Dashboard.svelte +1 -1
- package/dist/panel/pages/dashboard/Dashboard.svelte.d.ts +1 -1
- package/dist/panel/pages/dashboard/load.server.js +23 -21
- package/dist/panel/pages/dashboard/types.d.ts +1 -1
- package/dist/panel/pages/live/Live.svelte +1 -2
- package/dist/panel/pages/live/load.server.js +1 -1
- package/dist/panel/types.d.ts +2 -2
- package/dist/panel/util/live.server.d.ts +1 -1
- package/dist/panel/util/live.server.js +2 -2
- package/dist/panel/util/url.d.ts +0 -35
- package/dist/panel/util/url.js +1 -43
- package/dist/server.d.ts +6 -5
- package/dist/server.js +6 -5
- package/dist/types.d.ts +12 -6
- package/dist/util/coerce.d.ts +12 -0
- package/dist/util/coerce.js +38 -0
- package/dist/util/index.d.ts +16 -9
- package/dist/util/index.js +14 -12
- package/dist/util/object.d.ts +10 -0
- package/dist/util/object.js +14 -1
- package/dist/util/path.d.ts +16 -0
- package/dist/util/path.js +19 -0
- package/dist/util/string.d.ts +25 -0
- package/dist/util/string.js +30 -0
- package/dist/util/types.d.ts +5 -10
- package/dist/util/types.js +5 -0
- package/package.json +83 -21
- package/dist/.rime-modules.d.ts +0 -23
- package/dist/.rime-modules.json +0 -1
- package/dist/adapter-sqlite/generate-schema/relations/definition.server.d.ts +0 -55
- package/dist/adapter-sqlite/generate-schema/relations/definition.server.js +0 -52
- package/dist/adapter-sqlite/generate-schema/util.server.d.ts +0 -49
- package/dist/adapter-sqlite/generate-schema/util.server.js +0 -58
- package/dist/adapter-sqlite/orderBy.server.d.ts +0 -11
- package/dist/adapter-sqlite/orderBy.server.js +0 -98
- package/dist/adapter-sqlite/url.server.d.ts +0 -14
- package/dist/adapter-sqlite/url.server.js +0 -77
- package/dist/adapter-sqlite/util.server.d.ts +0 -174
- package/dist/adapter-sqlite/util.server.js +0 -357
- package/dist/adapter-sqlite/with.server.d.ts +0 -9
- package/dist/adapter-sqlite/with.server.js +0 -266
- package/dist/core/areas/config/augment-hooks.server.d.ts +0 -10
- package/dist/core/areas/config/augment-hooks.server.js +0 -51
- package/dist/core/areas/config/augment-metas.d.ts +0 -10
- package/dist/core/areas/config/augment-metas.js +0 -13
- package/dist/core/areas/config/augment-title.d.ts +0 -9
- package/dist/core/areas/config/augment-title.js +0 -8
- package/dist/core/areas/config/augment-url.d.ts +0 -10
- package/dist/core/areas/config/augment-url.js +0 -14
- package/dist/core/areas/config/augment-versions.d.ts +0 -14
- package/dist/core/areas/config/augment-versions.js +0 -25
- package/dist/core/areas/config/builder.d.ts +0 -3
- package/dist/core/areas/config/builder.js +0 -33
- package/dist/core/areas/config/builder.server.d.ts +0 -15
- package/dist/core/areas/config/builder.server.js +0 -35
- package/dist/core/areas/local-api.server.d.ts +0 -80
- package/dist/core/areas/local-api.server.js +0 -126
- package/dist/core/areas/operations/find.d.ts +0 -15
- package/dist/core/areas/operations/find.js +0 -52
- package/dist/core/areas/operations/update.d.ts +0 -15
- package/dist/core/areas/operations/update.js +0 -101
- package/dist/core/areas/rest/get.server.d.ts +0 -18
- package/dist/core/areas/rest/get.server.js +0 -45
- package/dist/core/areas/rest/index.server.d.ts +0 -6
- package/dist/core/areas/rest/index.server.js +0 -3
- package/dist/core/areas/rest/update.server.d.ts +0 -18
- package/dist/core/areas/rest/update.server.js +0 -43
- package/dist/core/collections/auth/constant.server.d.ts +0 -9
- package/dist/core/collections/auth/constant.server.js +0 -9
- package/dist/core/collections/auth/fields.d.ts +0 -13
- package/dist/core/collections/auth/fields.js +0 -55
- package/dist/core/collections/auth/hooks/after-create/populate-api-key.server.d.ts +0 -5
- package/dist/core/collections/auth/hooks/after-create/populate-api-key.server.js +0 -22
- package/dist/core/collections/auth/hooks/after-delete/delete-better-auth-user.server.d.ts +0 -4
- package/dist/core/collections/auth/hooks/after-delete/delete-better-auth-user.server.js +0 -25
- package/dist/core/collections/auth/hooks/before-create/create-better-auth-user.server.d.ts +0 -4
- package/dist/core/collections/auth/hooks/before-create/create-better-auth-user.server.js +0 -187
- package/dist/core/collections/auth/hooks/before-delete/prevent-superadmin-deletion.server.d.ts +0 -1
- package/dist/core/collections/auth/hooks/before-delete/prevent-superadmin-deletion.server.js +0 -10
- package/dist/core/collections/auth/hooks/before-read/remove-private-fields.server.d.ts +0 -1
- package/dist/core/collections/auth/hooks/before-read/remove-private-fields.server.js +0 -8
- package/dist/core/collections/auth/hooks/before-update/forward-roles.server.d.ts +0 -4
- package/dist/core/collections/auth/hooks/before-update/forward-roles.server.js +0 -54
- package/dist/core/collections/auth/hooks/before-update/prevent-superadmin-mutation.server.d.ts +0 -5
- package/dist/core/collections/auth/hooks/before-update/prevent-superadmin-mutation.server.js +0 -27
- package/dist/core/collections/auth/hooks/before-update/prevent-user-mutations.server.d.ts +0 -5
- package/dist/core/collections/auth/hooks/before-update/prevent-user-mutations.server.js +0 -18
- package/dist/core/collections/auth/hooks/before-upsert/augment-fields-password.server.d.ts +0 -6
- package/dist/core/collections/auth/hooks/before-upsert/augment-fields-password.server.js +0 -21
- package/dist/core/collections/auth/hooks/hooks.server.d.ts +0 -8
- package/dist/core/collections/auth/hooks/hooks.server.js +0 -8
- package/dist/core/collections/auth/types.d.ts +0 -8
- package/dist/core/collections/auth/util.d.ts +0 -13
- package/dist/core/collections/config/augment-auth.d.ts +0 -17
- package/dist/core/collections/config/augment-auth.js +0 -88
- package/dist/core/collections/config/augment-auth.server.d.ts +0 -3
- package/dist/core/collections/config/augment-auth.server.js +0 -23
- package/dist/core/collections/config/augment-hooks.server.d.ts +0 -14
- package/dist/core/collections/config/augment-hooks.server.js +0 -98
- package/dist/core/collections/config/augment-label.d.ts +0 -6
- package/dist/core/collections/config/augment-metas.d.ts +0 -9
- package/dist/core/collections/config/augment-metas.js +0 -12
- package/dist/core/collections/config/augment-nested.d.ts +0 -12
- package/dist/core/collections/config/augment-nested.js +0 -15
- package/dist/core/collections/config/augment-nested.server.d.ts +0 -12
- package/dist/core/collections/config/augment-nested.server.js +0 -18
- package/dist/core/collections/config/augment-panel.d.ts +0 -13
- package/dist/core/collections/config/augment-panel.js +0 -19
- package/dist/core/collections/config/augment-thumbnail.d.ts +0 -16
- package/dist/core/collections/config/augment-thumbnail.js +0 -15
- package/dist/core/collections/config/augment-title.d.ts +0 -16
- package/dist/core/collections/config/augment-title.js +0 -27
- package/dist/core/collections/config/augment-upload.d.ts +0 -10
- package/dist/core/collections/config/augment-upload.js +0 -59
- package/dist/core/collections/config/augment-upload.server.d.ts +0 -7
- package/dist/core/collections/config/augment-upload.server.js +0 -19
- package/dist/core/collections/config/augment-url.d.ts +0 -10
- package/dist/core/collections/config/augment-url.js +0 -14
- package/dist/core/collections/config/augment-versions.d.ts +0 -14
- package/dist/core/collections/config/augment-versions.js +0 -24
- package/dist/core/collections/config/builder.d.ts +0 -3
- package/dist/core/collections/config/builder.js +0 -51
- package/dist/core/collections/config/builder.server.d.ts +0 -15
- package/dist/core/collections/config/builder.server.js +0 -47
- package/dist/core/collections/config/types.d.ts +0 -3
- package/dist/core/collections/local-api.server.d.ts +0 -166
- package/dist/core/collections/local-api.server.js +0 -303
- package/dist/core/collections/nested/hooks/index.server.d.ts +0 -4
- package/dist/core/collections/nested/hooks/index.server.js +0 -33
- package/dist/core/collections/operations/create.d.ts +0 -16
- package/dist/core/collections/operations/create.js +0 -119
- package/dist/core/collections/operations/delete.d.ts +0 -17
- package/dist/core/collections/operations/delete.js +0 -32
- package/dist/core/collections/operations/deleteById.d.ts +0 -13
- package/dist/core/collections/operations/deleteById.js +0 -48
- package/dist/core/collections/operations/duplicate.d.ts +0 -12
- package/dist/core/collections/operations/duplicate.js +0 -142
- package/dist/core/collections/operations/find.d.ts +0 -21
- package/dist/core/collections/operations/find.js +0 -70
- package/dist/core/collections/operations/findById.d.ts +0 -16
- package/dist/core/collections/operations/findById.js +0 -53
- package/dist/core/collections/operations/updateById.d.ts +0 -20
- package/dist/core/collections/operations/updateById.js +0 -111
- package/dist/core/collections/rest/create.server.d.ts +0 -18
- package/dist/core/collections/rest/create.server.js +0 -37
- package/dist/core/collections/rest/delete.server.d.ts +0 -18
- package/dist/core/collections/rest/delete.server.js +0 -37
- package/dist/core/collections/rest/deleteById.server.d.ts +0 -18
- package/dist/core/collections/rest/deleteById.server.js +0 -21
- package/dist/core/collections/rest/duplicate.server.d.ts +0 -15
- package/dist/core/collections/rest/duplicate.server.js +0 -20
- package/dist/core/collections/rest/get.server.d.ts +0 -18
- package/dist/core/collections/rest/get.server.js +0 -50
- package/dist/core/collections/rest/getById.server.d.ts +0 -18
- package/dist/core/collections/rest/getById.server.js +0 -35
- package/dist/core/collections/rest/index.server.d.ts +0 -16
- package/dist/core/collections/rest/index.server.js +0 -16
- package/dist/core/collections/rest/updateById.server.d.ts +0 -18
- package/dist/core/collections/rest/updateById.server.js +0 -44
- package/dist/core/collections/upload/disk/delete.server.d.ts +0 -9
- package/dist/core/collections/upload/disk/delete.server.js +0 -77
- package/dist/core/collections/upload/disk/save.server.d.ts +0 -32
- package/dist/core/collections/upload/disk/save.server.js +0 -190
- package/dist/core/collections/upload/hooks/clean-up-files.server.d.ts +0 -10
- package/dist/core/collections/upload/hooks/clean-up-files.server.js +0 -17
- package/dist/core/collections/upload/hooks/convert-base64.server.d.ts +0 -13
- package/dist/core/collections/upload/hooks/convert-base64.server.js +0 -36
- package/dist/core/collections/upload/hooks/extract-path.server.d.ts +0 -6
- package/dist/core/collections/upload/hooks/extract-path.server.js +0 -25
- package/dist/core/collections/upload/hooks/handle-path-creation.server.d.ts +0 -6
- package/dist/core/collections/upload/hooks/handle-path-creation.server.js +0 -64
- package/dist/core/collections/upload/hooks/populate-sizes.server.d.ts +0 -1
- package/dist/core/collections/upload/hooks/populate-sizes.server.js +0 -45
- package/dist/core/collections/upload/hooks/process-file-upload.server.d.ts +0 -20
- package/dist/core/collections/upload/hooks/process-file-upload.server.js +0 -60
- package/dist/core/collections/upload/hooks/update-directory-children.server.d.ts +0 -2
- package/dist/core/collections/upload/hooks/update-directory-children.server.js +0 -41
- package/dist/core/collections/upload/upload.d.ts +0 -16
- package/dist/core/collections/upload/util/config.d.ts +0 -16
- package/dist/core/collections/upload/util/converter.server.d.ts +0 -16
- package/dist/core/collections/upload/util/converter.server.js +0 -105
- package/dist/core/collections/upload/util/path.d.ts +0 -66
- package/dist/core/collections/upload/util/path.js +0 -139
- package/dist/core/collections/versions/operations.d.ts +0 -93
- package/dist/core/collections/versions/operations.js +0 -117
- package/dist/core/config/auth/better-auth-hooks.server.js +0 -138
- package/dist/core/config/auth/better-auth.server.d.ts +0 -2121
- package/dist/core/config/auth/better-auth.server.js +0 -81
- package/dist/core/config/client/augment-directories.d.ts +0 -6
- package/dist/core/config/client/augment-directories.js +0 -11
- package/dist/core/config/client/augment-panel.d.ts +0 -35
- package/dist/core/config/client/augment-panel.js +0 -22
- package/dist/core/config/client/augment-plugins.d.ts +0 -4
- package/dist/core/config/client/augment-plugins.js +0 -13
- package/dist/core/config/client/augment-staff.d.ts +0 -7
- package/dist/core/config/client/augment-staff.js +0 -6
- package/dist/core/config/client/build-config.d.ts +0 -41
- package/dist/core/config/client/build-config.js +0 -13
- package/dist/core/config/client/index.d.ts +0 -4
- package/dist/core/config/client/index.js +0 -4
- package/dist/core/config/config-context.server.d.ts +0 -70
- package/dist/core/config/config-context.server.js +0 -113
- package/dist/core/config/server/augment-cors.server.d.ts +0 -4
- package/dist/core/config/server/augment-cors.server.js +0 -7
- package/dist/core/config/server/augment-directories.server.d.ts +0 -6
- package/dist/core/config/server/augment-directories.server.js +0 -37
- package/dist/core/config/server/augment-panel-access.server.d.ts +0 -28
- package/dist/core/config/server/augment-panel-access.server.js +0 -8
- package/dist/core/config/server/augment-plugins.server.d.ts +0 -5
- package/dist/core/config/server/augment-plugins.server.js +0 -45
- package/dist/core/config/server/augment-staff.server.d.ts +0 -7
- package/dist/core/config/server/augment-staff.server.js +0 -6
- package/dist/core/config/server/build-config.server.d.ts +0 -123
- package/dist/core/config/server/build-config.server.js +0 -28
- package/dist/core/config/server/index.server.d.ts +0 -9
- package/dist/core/config/server/index.server.js +0 -11
- package/dist/core/config/server/validate.server.d.ts +0 -3
- package/dist/core/config/server/validate.server.js +0 -234
- package/dist/core/config/server/write.server.js +0 -77
- package/dist/core/config/shared/augment-icons.d.ts +0 -9
- package/dist/core/config/shared/augment-icons.js +0 -11
- package/dist/core/config/shared/augment-prototypes.d.ts +0 -8
- package/dist/core/config/shared/augment-prototypes.js +0 -7
- package/dist/core/config/shared/compile.d.ts +0 -19
- package/dist/core/config/shared/compile.js +0 -26
- package/dist/core/config/shared/find-thumbnail.d.ts +0 -9
- package/dist/core/config/shared/find-thumbnail.js +0 -34
- package/dist/core/config/shared/find-title.d.ts +0 -14
- package/dist/core/config/shared/find-title.js +0 -35
- package/dist/core/config/shared/get-staff-collection.d.ts +0 -22
- package/dist/core/config/shared/get-staff-collection.js +0 -55
- package/dist/core/config/shared/upload-directories.d.ts +0 -7
- package/dist/core/config/shared/upload-directories.js +0 -55
- package/dist/core/config/shared/versions-alias.server.d.ts +0 -10
- package/dist/core/config/shared/versions-alias.server.js +0 -59
- package/dist/core/constant.d.ts +0 -62
- package/dist/core/constant.js +0 -73
- package/dist/core/constant.server.d.ts +0 -2
- package/dist/core/constant.server.js +0 -3
- package/dist/core/dev/cache/index.server.d.ts +0 -11
- package/dist/core/dev/cache/index.server.js +0 -37
- package/dist/core/dev/cli/build/index.js +0 -70
- package/dist/core/dev/cli/build/templates.js +0 -45
- package/dist/core/dev/cli/clear/index.server.js +0 -42
- package/dist/core/dev/cli/generate/index.server.js +0 -98
- package/dist/core/dev/cli/generate-manifest/index.server.d.ts +0 -17
- package/dist/core/dev/cli/generate-manifest/index.server.js +0 -221
- package/dist/core/dev/cli/init/index.server.js +0 -241
- package/dist/core/dev/cli/init/templates.js +0 -116
- package/dist/core/dev/cli/util/log.server.d.ts +0 -1
- package/dist/core/dev/cli/util/log.server.js +0 -4
- package/dist/core/dev/constants.d.ts +0 -34
- package/dist/core/dev/constants.js +0 -76
- package/dist/core/dev/generate/routes/common.server.d.ts +0 -17
- package/dist/core/dev/generate/routes/common.server.js +0 -500
- package/dist/core/dev/generate/routes/custom-css.server.js +0 -86
- package/dist/core/dev/generate/routes/index.server.d.ts +0 -15
- package/dist/core/dev/generate/routes/index.server.js +0 -89
- package/dist/core/dev/generate/routes/util.server.d.ts +0 -50
- package/dist/core/dev/generate/routes/util.server.js +0 -112
- package/dist/core/dev/generate/runtime/index.server.d.ts +0 -44
- package/dist/core/dev/generate/runtime/index.server.js +0 -92
- package/dist/core/dev/generate/runtime/parse-exports.server.d.ts +0 -7
- package/dist/core/dev/generate/runtime/parse-exports.server.js +0 -40
- package/dist/core/dev/generate/sanitize/index.server.js +0 -834
- package/dist/core/dev/generate/types/index.server.js +0 -368
- package/dist/core/dev/vite/index.server.js +0 -308
- package/dist/core/ensure.server.d.ts +0 -34
- package/dist/core/ensure.server.js +0 -91
- package/dist/core/handlers/auth.server.js +0 -162
- package/dist/core/handlers/cors.server.js +0 -73
- package/dist/core/handlers/index.d.ts +0 -3
- package/dist/core/handlers/index.js +0 -16
- package/dist/core/handlers/main.server.d.ts +0 -4
- package/dist/core/handlers/main.server.js +0 -14
- package/dist/core/handlers/plugins.server.js +0 -10
- package/dist/core/handlers/routes.server.d.ts +0 -71
- package/dist/core/handlers/routes.server.js +0 -89
- package/dist/core/naming.d.ts +0 -82
- package/dist/core/naming.js +0 -86
- package/dist/core/operations/blocks/diff.server.d.ts +0 -15
- package/dist/core/operations/blocks/diff.server.js +0 -82
- package/dist/core/operations/blocks/extract.server.d.ts +0 -9
- package/dist/core/operations/blocks/extract.server.js +0 -33
- package/dist/core/operations/blocks/index.server.d.ts +0 -26
- package/dist/core/operations/blocks/index.server.js +0 -71
- package/dist/core/operations/configMap/buildTreeMap.d.ts +0 -4
- package/dist/core/operations/configMap/index.d.ts +0 -6
- package/dist/core/operations/configMap/index.js +0 -54
- package/dist/core/operations/extract-data.server.d.ts +0 -37
- package/dist/core/operations/extract-data.server.js +0 -101
- package/dist/core/operations/hooks/before-create/merge-with-blank.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-create/merge-with-blank.server.js +0 -24
- package/dist/core/operations/hooks/before-operation/authorize.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-operation/authorize.server.js +0 -32
- package/dist/core/operations/hooks/before-read/populate-url.server.d.ts +0 -4
- package/dist/core/operations/hooks/before-read/populate-url.server.js +0 -108
- package/dist/core/operations/hooks/before-read/process-document-fields.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-read/process-document-fields.server.js +0 -58
- package/dist/core/operations/hooks/before-read/set-document-locale.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-read/set-document-locale.server.js +0 -15
- package/dist/core/operations/hooks/before-read/set-document-thumbnail.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-read/set-document-thumbnail.server.js +0 -34
- package/dist/core/operations/hooks/before-read/set-document-title.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-read/set-document-title.server.js +0 -29
- package/dist/core/operations/hooks/before-read/set-document-type.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-read/set-document-type.server.js +0 -14
- package/dist/core/operations/hooks/before-read/sort-document-props.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-read/sort-document-props.server.js +0 -63
- package/dist/core/operations/hooks/before-update/define-version-operation.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-update/define-version-operation.server.js +0 -18
- package/dist/core/operations/hooks/before-update/get-original-document.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-update/get-original-document.server.js +0 -37
- package/dist/core/operations/hooks/before-upsert/data-config-map.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-upsert/data-config-map.server.js +0 -12
- package/dist/core/operations/hooks/before-upsert/handle-new-version.server.d.ts +0 -5
- package/dist/core/operations/hooks/before-upsert/handle-new-version.server.js +0 -98
- package/dist/core/operations/hooks/before-upsert/original-config-map.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-upsert/original-config-map.server.js +0 -16
- package/dist/core/operations/hooks/before-upsert/set-default-values.server.d.ts +0 -10
- package/dist/core/operations/hooks/before-upsert/set-default-values.server.js +0 -70
- package/dist/core/operations/hooks/before-upsert/validate-fields.server.d.ts +0 -1
- package/dist/core/operations/hooks/before-upsert/validate-fields.server.js +0 -150
- package/dist/core/operations/hooks/index.server.d.ts +0 -128
- package/dist/core/operations/hooks/index.server.js +0 -45
- package/dist/core/operations/relations/diff.server.d.ts +0 -14
- package/dist/core/operations/relations/diff.server.js +0 -47
- package/dist/core/operations/relations/extract.server.d.ts +0 -11
- package/dist/core/operations/relations/extract.server.js +0 -59
- package/dist/core/operations/relations/index.server.d.ts +0 -25
- package/dist/core/operations/relations/index.server.js +0 -68
- package/dist/core/operations/shared/fallback-data-from-original.d.ts +0 -9
- package/dist/core/operations/shared/fallback-data-from-original.js +0 -31
- package/dist/core/operations/tree/diff.server.d.ts +0 -20
- package/dist/core/operations/tree/diff.server.js +0 -64
- package/dist/core/operations/tree/extract.server.d.ts +0 -9
- package/dist/core/operations/tree/extract.server.js +0 -34
- package/dist/core/operations/tree/index.server.d.ts +0 -12
- package/dist/core/operations/tree/index.server.js +0 -52
- package/dist/core/plugins/api-init/index.d.ts +0 -2
- package/dist/core/plugins/api-init/index.js +0 -1
- package/dist/core/plugins/api-init/module.server.js +0 -83
- package/dist/core/plugins/mailer/index.d.ts +0 -2
- package/dist/core/plugins/mailer/index.js +0 -1
- package/dist/core/plugins/mailer/module.server.js +0 -32
- package/dist/core/plugins/sse/broadcast.d.ts +0 -13
- package/dist/core/plugins/sse/broadcast.js +0 -30
- package/dist/core/plugins/sse/module.server.d.ts +0 -16
- package/dist/core/plugins/sse/module.server.js +0 -52
- package/dist/core/types/doc.d.ts +0 -74
- package/dist/core/types/index.d.ts +0 -5
- package/dist/panel/navigation.d.ts +0 -18
- package/dist/panel/navigation.js +0 -64
- package/dist/panel/pages/area/AreaVersionsDoc.svelte +0 -24
- package/dist/panel/pages/area/AreaVersionsDoc.svelte.d.ts +0 -7
- package/dist/panel/pages/collection-document/CollectionDocVersions.svelte +0 -29
- package/dist/panel/pages/collection-document/CollectionDocVersions.svelte.d.ts +0 -7
- package/dist/util/access/index.d.ts +0 -73
- package/dist/util/cases.d.ts +0 -39
- package/dist/util/cases.js +0 -58
- package/dist/util/doc.d.ts +0 -50
- package/dist/util/doc.js +0 -140
- package/dist/util/validate.js +0 -171
- /package/dist/{util/access/index.js → core/auth/access.js} +0 -0
- /package/dist/core/{config/auth/better-auth-hooks.server.d.ts → auth/better-auth/hooks.server.d.ts} +0 -0
- /package/dist/core/{config/auth/better-auth-permissions.d.ts → auth/better-auth/permissions.d.ts} +0 -0
- /package/dist/core/{config/auth/better-auth-permissions.js → auth/better-auth/permissions.js} +0 -0
- /package/dist/core/{handlers/auth.server.d.ts → auth/handler/index.server.d.ts} +0 -0
- /package/dist/core/{areas/config → auth}/types.js +0 -0
- /package/dist/core/{collections/auth → auth}/util.js +0 -0
- /package/dist/core/{handlers/cors.server.d.ts → cors/handler.server.d.ts} +0 -0
- /package/dist/core/dev/cli/{build/index.d.ts → commands/build.d.ts} +0 -0
- /package/dist/core/dev/cli/{clear/index.server.d.ts → commands/clear.server.d.ts} +0 -0
- /package/dist/core/dev/cli/{generate/index.server.d.ts → commands/generate.server.d.ts} +0 -0
- /package/dist/core/dev/cli/{init/index.server.d.ts → commands/init.server.d.ts} +0 -0
- /package/dist/core/dev/cli/{build/templates.d.ts → templates/build.d.ts} +0 -0
- /package/dist/core/dev/cli/{init/templates.d.ts → templates/init.d.ts} +0 -0
- /package/dist/core/dev/{generate → codegen}/routes/custom-css.server.d.ts +0 -0
- /package/dist/core/dev/{generate → codegen}/sanitize/index.server.d.ts +0 -0
- /package/dist/core/dev/{generate → codegen}/types/index.server.d.ts +0 -0
- /package/dist/core/{config/server/write.server.d.ts → dev/config-memo.server.d.ts} +0 -0
- /package/dist/core/dev/{vite/index.server.d.ts → vite.server.d.ts} +0 -0
- /package/dist/core/{collections/auth → fields}/types.js +0 -0
- /package/dist/{util → core/fields}/validate.d.ts +0 -0
- /package/dist/core/{collections/config → locale}/types.js +0 -0
- /package/dist/core/{logger/index.server.d.ts → logger.server.d.ts} +0 -0
- /package/dist/core/{logger/index.server.js → logger.server.js} +0 -0
- /package/dist/core/{operations/configMap → panel}/types.js +0 -0
- /package/dist/core/{operations/configMap/buildTreeMap.js → pipeline/config-map/build-tree-map.js} +0 -0
- /package/dist/core/{operations/configMap → pipeline/config-map}/types.d.ts +0 -0
- /package/dist/core/{types/doc.js → pipeline/config-map/types.js} +0 -0
- /package/dist/core/plugins/api-init/{module.server.d.ts → index.server.d.ts} +0 -0
- /package/dist/core/{types/index.js → plugins/cache/types.js} +0 -0
- /package/dist/core/plugins/mailer/{module.server.d.ts → index.server.d.ts} +0 -0
- /package/dist/core/{handlers → plugins}/plugins.server.d.ts +0 -0
- /package/dist/core/{areas/config → prototype/area}/types.d.ts +0 -0
- /package/dist/core/{collections/config → prototype/collection}/augment-label.js +0 -0
- /package/dist/core/{collections → prototype/collection}/upload/util/client.d.ts +0 -0
- /package/dist/core/{collections → prototype/collection}/upload/util/client.js +0 -0
- /package/dist/core/{collections → prototype/collection}/upload/util/config.js +0 -0
- /package/dist/core/{collections → prototype/collection}/upload/util/mime.d.ts +0 -0
- /package/dist/core/{collections → prototype/collection}/upload/util/mime.js +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two prototypes, isomorphic halves.
|
|
3
|
+
*
|
|
4
|
+
* There was a registry here — `prototypeNames`, `protos`, `prototypes`, plus folds over them. It
|
|
5
|
+
* bought core the ability never to write the words `collection` and `area`, and it cost the folder
|
|
6
|
+
* its entry point: three exports that were three views of the same two objects, and callers that
|
|
7
|
+
* merged both lists only to split them apart again further down.
|
|
8
|
+
*
|
|
9
|
+
* The server halves are **not** re-exported here. They carry `api`, `rest` and `boot`, they are
|
|
10
|
+
* different objects under the same two names, and a caller that needs one names
|
|
11
|
+
* `collection/definition.server.js` — the path says which half, where the name could not.
|
|
12
|
+
*/
|
|
13
|
+
export { collection } from './collection/index.js';
|
|
14
|
+
export { area } from './area/index.js';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A prototype slug's URL form.
|
|
3
|
+
*
|
|
4
|
+
* One canonical slug produces every other representation by pure transform, so nothing here
|
|
5
|
+
* knows what any particular marker means:
|
|
6
|
+
*
|
|
7
|
+
* pages -> pages
|
|
8
|
+
* someSlug -> some-slug
|
|
9
|
+
* $someSlug__versions -> some-slug--versions
|
|
10
|
+
* $someSlugDirectories-> some-slug-directories
|
|
11
|
+
*
|
|
12
|
+
* The `$` is dropped — it marks a slug as rime-derived for config authors, and has no business
|
|
13
|
+
* in a URL. The `__` becomes `--`, keeping a segment boundary visible and distinct from the
|
|
14
|
+
* word breaks around it.
|
|
15
|
+
*
|
|
16
|
+
* This replaced a `prototypeKebabToSlug` that matched `/(_(?:directories|versions))$/` — core
|
|
17
|
+
* hardcoding two features' suffixes. Going the other way is now a lookup against the config
|
|
18
|
+
* rather than an inverse transform (see handlers/routes.server.ts), which is both exact and
|
|
19
|
+
* feature-agnostic: `medias-directories` cannot be reversed by rule, since it is indistinguishable
|
|
20
|
+
* from a user collection named `mediasDirectories`.
|
|
21
|
+
*/
|
|
22
|
+
export declare const prototypeKebab: (slug: string) => string;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { mapSegments, toKebabCase } from '../../util/string.js';
|
|
2
|
+
/**
|
|
3
|
+
* A prototype slug's URL form.
|
|
4
|
+
*
|
|
5
|
+
* One canonical slug produces every other representation by pure transform, so nothing here
|
|
6
|
+
* knows what any particular marker means:
|
|
7
|
+
*
|
|
8
|
+
* pages -> pages
|
|
9
|
+
* someSlug -> some-slug
|
|
10
|
+
* $someSlug__versions -> some-slug--versions
|
|
11
|
+
* $someSlugDirectories-> some-slug-directories
|
|
12
|
+
*
|
|
13
|
+
* The `$` is dropped — it marks a slug as rime-derived for config authors, and has no business
|
|
14
|
+
* in a URL. The `__` becomes `--`, keeping a segment boundary visible and distinct from the
|
|
15
|
+
* word breaks around it.
|
|
16
|
+
*
|
|
17
|
+
* This replaced a `prototypeKebabToSlug` that matched `/(_(?:directories|versions))$/` — core
|
|
18
|
+
* hardcoding two features' suffixes. Going the other way is now a lookup against the config
|
|
19
|
+
* rather than an inverse transform (see handlers/routes.server.ts), which is both exact and
|
|
20
|
+
* feature-agnostic: `medias-directories` cannot be reversed by rule, since it is indistinguishable
|
|
21
|
+
* from a user collection named `mediasDirectories`.
|
|
22
|
+
*/
|
|
23
|
+
export const prototypeKebab = (slug) => mapSegments(slug.replace(/^\$/, ''), toKebabCase, '--');
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long a claim on a document stays good without being renewed.
|
|
3
|
+
*
|
|
4
|
+
* The lock stops two people overwriting each other; it does not reserve a document. Nothing
|
|
5
|
+
* releases a claim when an editor walks away, so the expiry is what keeps an abandoned one from
|
|
6
|
+
* stranding the document behind whoever opened it.
|
|
7
|
+
*/
|
|
8
|
+
export declare const EDIT_LOCK_TTL_MS: number;
|
|
9
|
+
/**
|
|
10
|
+
* How long a claim survives the tab going away.
|
|
11
|
+
*
|
|
12
|
+
* A release is a short lease, not a hand-back: a refresh unloads the page and reclaims it a
|
|
13
|
+
* moment later, and clearing the claim outright leaves a window where another tab's renewal
|
|
14
|
+
* takes the document from someone who never left.
|
|
15
|
+
*/
|
|
16
|
+
export declare const EDIT_LOCK_TTL_AFTER_CLOSE_MS: number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long a claim on a document stays good without being renewed.
|
|
3
|
+
*
|
|
4
|
+
* The lock stops two people overwriting each other; it does not reserve a document. Nothing
|
|
5
|
+
* releases a claim when an editor walks away, so the expiry is what keeps an abandoned one from
|
|
6
|
+
* stranding the document behind whoever opened it.
|
|
7
|
+
*/
|
|
8
|
+
export const EDIT_LOCK_TTL_MS = 5 * 60 * 1000;
|
|
9
|
+
/**
|
|
10
|
+
* How long a claim survives the tab going away.
|
|
11
|
+
*
|
|
12
|
+
* A release is a short lease, not a hand-back: a refresh unloads the page and reclaims it a
|
|
13
|
+
* moment later, and clearing the claim outright leaves a window where another tab's renewal
|
|
14
|
+
* takes the document from someone who never left.
|
|
15
|
+
*/
|
|
16
|
+
export const EDIT_LOCK_TTL_AFTER_CLOSE_MS = 10 * 1000;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const metasFields: {
|
|
2
|
+
currentlyEditedBy: () => import("../../../../fields/text/index.js").TextFieldBuilder;
|
|
3
|
+
currentlyEditedAt: () => import("../../../../fields/date/index.js").DateFieldBuilder;
|
|
4
|
+
createdBy: () => import("../../../../fields/text/index.js").TextFieldBuilder;
|
|
5
|
+
createdAt: () => import("../../../../fields/date/index.js").DateFieldBuilder;
|
|
6
|
+
updatedBy: () => import("../../../../fields/text/index.js").TextFieldBuilder;
|
|
7
|
+
updatedAt: () => import("../../../../fields/date/index.js").DateFieldBuilder;
|
|
8
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { isStaff } from '../../../auth/access.js';
|
|
2
|
+
import { date } from '../../../../fields/date/index.js';
|
|
3
|
+
import { text } from '../../../../fields/text/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* The metas fields, declared once for both halves of the module.
|
|
6
|
+
*
|
|
7
|
+
* Factories, not instances: a builder is mutable and ends up on one config's field list, so the
|
|
8
|
+
* two halves share the declaration rather than the object. `module.server.ts` calls the same
|
|
9
|
+
* factories and adds the foreign key to `staff` on the three id columns.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Who wrote a document and who is holding it open are staff business. Said on the field, so the
|
|
13
|
+
* pipeline enforces it for every caller — `processDocumentFields` drops what a reader may not
|
|
14
|
+
* see, `validateFields` drops what a writer may not set — rather than each read path remembering.
|
|
15
|
+
*/
|
|
16
|
+
const staffOnly = {
|
|
17
|
+
read: (user) => isStaff(user),
|
|
18
|
+
update: (user) => isStaff(user)
|
|
19
|
+
};
|
|
20
|
+
export const metasFields = {
|
|
21
|
+
currentlyEditedBy: () => text('currentlyEditedBy').hidden().access(staffOnly),
|
|
22
|
+
currentlyEditedAt: () => date('currentlyEditedAt').hidden().access(staffOnly),
|
|
23
|
+
createdBy: () => text('createdBy').hidden().$root().access(staffOnly),
|
|
24
|
+
createdAt: () => date('createdAt').hidden(),
|
|
25
|
+
updatedBy: () => text('updatedBy').hidden().access(staffOnly),
|
|
26
|
+
updatedAt: () => date('updatedAt').hidden()
|
|
27
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drops the edit lock from every read that is not a panel read.
|
|
3
|
+
*
|
|
4
|
+
* The fields already carry `.access({ read: isStaff })`, which answers "who may see a lock" —
|
|
5
|
+
* a different question from "where does a lock mean anything". It only means something in the
|
|
6
|
+
* panel, and a staff member reading through the API is still staff, so the field access alone
|
|
7
|
+
* would hand them a lock they cannot act on.
|
|
8
|
+
*/
|
|
9
|
+
export declare const deletePanelLockMetas: import("../../../../pipeline/types").Hook<"raw", "read", "before">;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Hooks } from '../../../../pipeline/define-hook.js';
|
|
2
|
+
/**
|
|
3
|
+
* Drops the edit lock from every read that is not a panel read.
|
|
4
|
+
*
|
|
5
|
+
* The fields already carry `.access({ read: isStaff })`, which answers "who may see a lock" —
|
|
6
|
+
* a different question from "where does a lock mean anything". It only means something in the
|
|
7
|
+
* panel, and a staff member reading through the API is still staff, so the field access alone
|
|
8
|
+
* would hand them a lock they cannot act on.
|
|
9
|
+
*/
|
|
10
|
+
export const deletePanelLockMetas = Hooks.beforeRead(async (args) => {
|
|
11
|
+
const { rime } = args.event.locals;
|
|
12
|
+
if (args.context.isSystemOperation)
|
|
13
|
+
return args;
|
|
14
|
+
if (rime.routes.isPanel)
|
|
15
|
+
return args;
|
|
16
|
+
const doc = args.doc;
|
|
17
|
+
delete doc.currentlyEditedBy;
|
|
18
|
+
delete doc.currentlyEditedAt;
|
|
19
|
+
return { ...args, doc };
|
|
20
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This feature's hooks, by name, so a prototype can place them as `metas.someHook`.
|
|
3
|
+
*
|
|
4
|
+
* A barrel and nothing else — see the note on `title/hooks/index.server.ts`.
|
|
5
|
+
*/
|
|
6
|
+
export { deletePanelLockMetas } from './delete-panel-lock-metas.server.js';
|
|
7
|
+
export { stampCreatedBy, stampUpdatedBy } from './stamp-authorship.server.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This feature's hooks, by name, so a prototype can place them as `metas.someHook`.
|
|
3
|
+
*
|
|
4
|
+
* A barrel and nothing else — see the note on `title/hooks/index.server.ts`.
|
|
5
|
+
*/
|
|
6
|
+
export { deletePanelLockMetas } from './delete-panel-lock-metas.server.js';
|
|
7
|
+
export { stampCreatedBy, stampUpdatedBy } from './stamp-authorship.server.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Hooks } from '../../../../pipeline/define-hook.js';
|
|
2
|
+
/**
|
|
3
|
+
* Records who made a document, and who last wrote to it.
|
|
4
|
+
*
|
|
5
|
+
* Two hooks rather than one `beforeUpsert`, because they do not write the same fields: a create
|
|
6
|
+
* answers both questions at once, an update only the second. `createdBy` is never rewritten —
|
|
7
|
+
* that is the whole difference between it and `updatedBy`.
|
|
8
|
+
*
|
|
9
|
+
* **Both stand down without a user, and on a system operation.** Rime writes as itself when it
|
|
10
|
+
* bootstraps a singleton, propagates a document into the other locales, or migrates. None of
|
|
11
|
+
* those is somebody editing, and stamping them would name whoever's request happened to trigger
|
|
12
|
+
* the work as the author of documents they never touched.
|
|
13
|
+
*/
|
|
14
|
+
/** Who is writing, when that is a person and not rime itself. */
|
|
15
|
+
const editor = (args) => (args.context.isSystemOperation ? undefined : args.event.locals.user?.id);
|
|
16
|
+
export const stampCreatedBy = Hooks.beforeCreate(async function stampCreatedBy(args) {
|
|
17
|
+
const by = editor(args);
|
|
18
|
+
if (!by)
|
|
19
|
+
return args;
|
|
20
|
+
return { ...args, data: { ...args.data, createdBy: by, updatedBy: by } };
|
|
21
|
+
});
|
|
22
|
+
export const stampUpdatedBy = Hooks.beforeUpdate(async function stampUpdatedBy(args) {
|
|
23
|
+
const by = editor(args);
|
|
24
|
+
if (!by)
|
|
25
|
+
return args;
|
|
26
|
+
return { ...args, data: { ...args.data, updatedBy: by } };
|
|
27
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { GenericDoc } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reading a claim. Pure, and in the isomorphic half on purpose: the server decides whether to
|
|
4
|
+
* grant a claim and the panel decides whether to draw the overlay, and the two have to agree on
|
|
5
|
+
* what "held" means.
|
|
6
|
+
*/
|
|
7
|
+
/** A claim older than the TTL says nothing: whoever made it is not coming back. */
|
|
8
|
+
export declare const isLockStale: (at: unknown, now?: number) => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* The id a claim names. A read hands the holder back joined, `{ id, name, email }`; a write and
|
|
11
|
+
* an older row carry the bare id.
|
|
12
|
+
*/
|
|
13
|
+
export declare const lockHolderId: (doc: Partial<GenericDoc>) => string | null;
|
|
14
|
+
/** Somebody other than `userId` is in this document, recently enough to still mean it. */
|
|
15
|
+
export declare const isLockHeldByOther: (doc: Partial<GenericDoc>, userId: string, now?: number) => boolean;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EDIT_LOCK_TTL_MS } from './constant.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reading a claim. Pure, and in the isomorphic half on purpose: the server decides whether to
|
|
4
|
+
* grant a claim and the panel decides whether to draw the overlay, and the two have to agree on
|
|
5
|
+
* what "held" means.
|
|
6
|
+
*/
|
|
7
|
+
/** A claim older than the TTL says nothing: whoever made it is not coming back. */
|
|
8
|
+
export const isLockStale = (at, now = Date.now()) => {
|
|
9
|
+
if (!at)
|
|
10
|
+
return true;
|
|
11
|
+
const since = at instanceof Date ? at.getTime() : new Date(at).getTime();
|
|
12
|
+
return Number.isNaN(since) || now - since >= EDIT_LOCK_TTL_MS;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The id a claim names. A read hands the holder back joined, `{ id, name, email }`; a write and
|
|
16
|
+
* an older row carry the bare id.
|
|
17
|
+
*/
|
|
18
|
+
export const lockHolderId = (doc) => {
|
|
19
|
+
const by = doc.currentlyEditedBy;
|
|
20
|
+
if (typeof by === 'string')
|
|
21
|
+
return by;
|
|
22
|
+
if (by && typeof by === 'object' && typeof by.id === 'string')
|
|
23
|
+
return by.id;
|
|
24
|
+
return null;
|
|
25
|
+
};
|
|
26
|
+
/** Somebody other than `userId` is in this document, recently enough to still mean it. */
|
|
27
|
+
export const isLockHeldByOther = (doc, userId, now = Date.now()) => {
|
|
28
|
+
const by = lockHolderId(doc);
|
|
29
|
+
return !!by && by !== userId && !isLockStale(doc.currentlyEditedAt, now);
|
|
30
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { BuiltArea, BuiltCollection } from '../../../config/types.js';
|
|
2
|
+
import type { GenericDoc } from '../../types.js';
|
|
3
|
+
import type { RequestEvent } from '@sveltejs/kit';
|
|
4
|
+
type LockArgs = {
|
|
5
|
+
event: RequestEvent;
|
|
6
|
+
config: BuiltCollection | BuiltArea;
|
|
7
|
+
/** The document being edited. Its `versionId`, when it has one, is the row the claim sits on. */
|
|
8
|
+
doc: Partial<GenericDoc>;
|
|
9
|
+
userId: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Take the document, unless somebody else holds it.
|
|
13
|
+
*
|
|
14
|
+
* Also the renewal: a claim we already hold is rewritten with a fresh timestamp, which is what
|
|
15
|
+
* keeps a lock alive while its holder is still in the document. Answers whether the caller holds
|
|
16
|
+
* it afterwards.
|
|
17
|
+
*
|
|
18
|
+
* `force` takes it regardless — the *Take control* button, which exists to get past a claim
|
|
19
|
+
* somebody walked away from before it ages out.
|
|
20
|
+
*/
|
|
21
|
+
export declare const claimEditLock: (args: LockArgs & {
|
|
22
|
+
force?: boolean;
|
|
23
|
+
}) => Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* Give the document back, if it is ours to give — as a short lease rather than a hand-back.
|
|
26
|
+
*
|
|
27
|
+
* The claim keeps our name and is back-dated to expire in `EDIT_LOCK_TTL_AFTER_CLOSE_MS`, so a
|
|
28
|
+
* refresh has time to reclaim it. Clearing it outright is what let another tab's renewal take the
|
|
29
|
+
* document from someone who only reloaded.
|
|
30
|
+
*
|
|
31
|
+
* The `doc` guard matters: a release racing somebody else's claim would otherwise hand them a
|
|
32
|
+
* document with no lock on it a moment after they took it.
|
|
33
|
+
*/
|
|
34
|
+
export declare const releaseEditLock: (args: LockArgs) => Promise<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
* Carry a claim onto the row just made from the one it sits on.
|
|
37
|
+
*
|
|
38
|
+
* An auto-save or a fork continues the same edit on a new row. Made by the holder, the new row
|
|
39
|
+
* is theirs from the first moment: the claim is cleared on `doc` and stamped on `to`, and the
|
|
40
|
+
* client keeps renewing whatever row its form is on. Nothing moves when `doc` is held by somebody
|
|
41
|
+
* else, by nobody, or by a claim that has aged out.
|
|
42
|
+
*/
|
|
43
|
+
export declare const moveEditLock: (args: LockArgs & {
|
|
44
|
+
to: Partial<GenericDoc>;
|
|
45
|
+
}) => Promise<boolean>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { logger } from '../../../logger.server.js';
|
|
2
|
+
import { EDIT_LOCK_TTL_AFTER_CLOSE_MS, EDIT_LOCK_TTL_MS } from './constant.js';
|
|
3
|
+
import { isLockHeldByOther, isLockStale, lockHolderId } from './lock.js';
|
|
4
|
+
/**
|
|
5
|
+
* Write the lock fields and nothing else, on the row being edited.
|
|
6
|
+
*
|
|
7
|
+
* **Which row.** The lock is not `$root()`, so on a versioned config it lives with the content —
|
|
8
|
+
* one claim per revision. Two people on two different versions are not editing the same thing, and
|
|
9
|
+
* locking one must not lock the other. Where there are no versions there is one row and this
|
|
10
|
+
* resolves to it.
|
|
11
|
+
*
|
|
12
|
+
* **`updateWhere` rather than `update`**: a table, a filter and a patch, writing exactly the
|
|
13
|
+
* columns it is given. Opening a document is not editing it, so the write leaves `updatedAt` where
|
|
14
|
+
* it is and never runs the pipeline — which would stamp `updatedBy` and cut a revision whose only
|
|
15
|
+
* change is who is looking at it.
|
|
16
|
+
*/
|
|
17
|
+
const writeLock = async (args, data) => {
|
|
18
|
+
const { event, config, doc } = args;
|
|
19
|
+
const { rime } = event.locals;
|
|
20
|
+
const versionsSlug = config._versions?.slug;
|
|
21
|
+
// A versioned config keeps these columns on its versions table and nowhere else — they are not
|
|
22
|
+
// `$root()`. Writing to the base row would target columns that table does not have, so a
|
|
23
|
+
// versioned document with no `versionId` is a caller bug, not a row to guess at.
|
|
24
|
+
if (versionsSlug && !doc.versionId) {
|
|
25
|
+
logger.warn(`edit lock on ${config.slug}: versioned document with no versionId, ignored`);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const id = versionsSlug ? doc.versionId : doc.id;
|
|
29
|
+
await rime.adapter.contentOwner(config.slug).updateWhere({
|
|
30
|
+
query: `where[id][equals]=${id}`,
|
|
31
|
+
data
|
|
32
|
+
});
|
|
33
|
+
// Tell whoever else has the document open, so they reload — for the overlay, and for the
|
|
34
|
+
// content, which the holder has usually just changed. Only when the lock actually changed
|
|
35
|
+
// hands: a claim is also the renewal, and those would reach every client twice a TTL.
|
|
36
|
+
if (lockHolderId(doc) !== data.currentlyEditedBy) {
|
|
37
|
+
// Keyed on the document's own id, not the version row's — it is what the panel subscribed to.
|
|
38
|
+
rime.sse.emit(`rime:${config.slug}:${doc.id}`, 'rime:lock');
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Take the document, unless somebody else holds it.
|
|
43
|
+
*
|
|
44
|
+
* Also the renewal: a claim we already hold is rewritten with a fresh timestamp, which is what
|
|
45
|
+
* keeps a lock alive while its holder is still in the document. Answers whether the caller holds
|
|
46
|
+
* it afterwards.
|
|
47
|
+
*
|
|
48
|
+
* `force` takes it regardless — the *Take control* button, which exists to get past a claim
|
|
49
|
+
* somebody walked away from before it ages out.
|
|
50
|
+
*/
|
|
51
|
+
export const claimEditLock = async (args) => {
|
|
52
|
+
if (!args.force && isLockHeldByOther(args.doc, args.userId))
|
|
53
|
+
return false;
|
|
54
|
+
await writeLock(args, { currentlyEditedBy: args.userId, currentlyEditedAt: new Date() });
|
|
55
|
+
return true;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Give the document back, if it is ours to give — as a short lease rather than a hand-back.
|
|
59
|
+
*
|
|
60
|
+
* The claim keeps our name and is back-dated to expire in `EDIT_LOCK_TTL_AFTER_CLOSE_MS`, so a
|
|
61
|
+
* refresh has time to reclaim it. Clearing it outright is what let another tab's renewal take the
|
|
62
|
+
* document from someone who only reloaded.
|
|
63
|
+
*
|
|
64
|
+
* The `doc` guard matters: a release racing somebody else's claim would otherwise hand them a
|
|
65
|
+
* document with no lock on it a moment after they took it.
|
|
66
|
+
*/
|
|
67
|
+
export const releaseEditLock = async (args) => {
|
|
68
|
+
if (lockHolderId(args.doc) !== args.userId)
|
|
69
|
+
return false;
|
|
70
|
+
await writeLock(args, {
|
|
71
|
+
currentlyEditedBy: args.userId,
|
|
72
|
+
currentlyEditedAt: new Date(Date.now() - EDIT_LOCK_TTL_MS + EDIT_LOCK_TTL_AFTER_CLOSE_MS)
|
|
73
|
+
});
|
|
74
|
+
return true;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Carry a claim onto the row just made from the one it sits on.
|
|
78
|
+
*
|
|
79
|
+
* An auto-save or a fork continues the same edit on a new row. Made by the holder, the new row
|
|
80
|
+
* is theirs from the first moment: the claim is cleared on `doc` and stamped on `to`, and the
|
|
81
|
+
* client keeps renewing whatever row its form is on. Nothing moves when `doc` is held by somebody
|
|
82
|
+
* else, by nobody, or by a claim that has aged out.
|
|
83
|
+
*/
|
|
84
|
+
export const moveEditLock = async (args) => {
|
|
85
|
+
const { doc, to, userId } = args;
|
|
86
|
+
if (lockHolderId(doc) !== userId || isLockStale(doc.currentlyEditedAt))
|
|
87
|
+
return false;
|
|
88
|
+
await writeLock(args, { currentlyEditedBy: null, currentlyEditedAt: null });
|
|
89
|
+
await writeLock({ ...args, doc: to }, { currentlyEditedBy: userId, currentlyEditedAt: new Date() });
|
|
90
|
+
return true;
|
|
91
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Collection } from '../../../config/types.js';
|
|
2
|
+
type Input = {
|
|
3
|
+
fields?: Collection<any>['fields'];
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* The bookkeeping every document carries: when it was written, and by whom.
|
|
7
|
+
*
|
|
8
|
+
* Three separate questions about who, because each has its own lifetime — one is written once,
|
|
9
|
+
* one on every write, and one is ephemeral:
|
|
10
|
+
*
|
|
11
|
+
* - `createdBy` — who made *the document*. One answer, whatever its revision history.
|
|
12
|
+
* - `updatedBy` — who wrote *this revision*.
|
|
13
|
+
* - `currentlyEditedBy` / `currentlyEditedAt` — who holds the document open, and since when.
|
|
14
|
+
*
|
|
15
|
+
* **Which of them are `$root()`.** On a versioned config the schema generator sends `$root()`
|
|
16
|
+
* fields to the base row and everything else to the versions table
|
|
17
|
+
* (`adapter-sqlite/generate-schema/index.server.ts`), so each lands where the question it answers
|
|
18
|
+
* belongs. `createdBy` is a property of the document — one answer per document, whatever its
|
|
19
|
+
* revisions — so it sits on the base row. `updatedBy` and the lock are properties of a *revision*:
|
|
20
|
+
* two people on two different versions are not editing the same thing, so locking one must not
|
|
21
|
+
* lock the other.
|
|
22
|
+
*
|
|
23
|
+
* **Text columns, read back as the staff member.** Each of the three ids is a `text` column the
|
|
24
|
+
* server half marks `$references('staff', { resolve: true })`: the adapter joins the target on
|
|
25
|
+
* read, so the document carries `{ id, name, email }` on the same key and the panel has a name to
|
|
26
|
+
* show. A write takes that object or the id. A text column is also what can be `$root()`, which
|
|
27
|
+
* a relation field cannot.
|
|
28
|
+
*
|
|
29
|
+
* **The lock is staff-only, said on the field.** `.access({ read, update })` is enforced by the
|
|
30
|
+
* pipeline for every caller — `processDocumentFields` drops what a reader may not see,
|
|
31
|
+
* `validateFields` drops what a writer may not set — so who can see and claim a lock is one
|
|
32
|
+
* declaration here rather than a rule each read path has to remember.
|
|
33
|
+
*
|
|
34
|
+
* The client half. `module.server.ts` adds the reference to `staff` on the three id columns,
|
|
35
|
+
* which is what decides what happens to a document whose author is deleted.
|
|
36
|
+
*/
|
|
37
|
+
export declare const augmentMetas: <T extends Input>(config: T) => T;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { metasFields } from './fields.js';
|
|
2
|
+
/**
|
|
3
|
+
* The bookkeeping every document carries: when it was written, and by whom.
|
|
4
|
+
*
|
|
5
|
+
* Three separate questions about who, because each has its own lifetime — one is written once,
|
|
6
|
+
* one on every write, and one is ephemeral:
|
|
7
|
+
*
|
|
8
|
+
* - `createdBy` — who made *the document*. One answer, whatever its revision history.
|
|
9
|
+
* - `updatedBy` — who wrote *this revision*.
|
|
10
|
+
* - `currentlyEditedBy` / `currentlyEditedAt` — who holds the document open, and since when.
|
|
11
|
+
*
|
|
12
|
+
* **Which of them are `$root()`.** On a versioned config the schema generator sends `$root()`
|
|
13
|
+
* fields to the base row and everything else to the versions table
|
|
14
|
+
* (`adapter-sqlite/generate-schema/index.server.ts`), so each lands where the question it answers
|
|
15
|
+
* belongs. `createdBy` is a property of the document — one answer per document, whatever its
|
|
16
|
+
* revisions — so it sits on the base row. `updatedBy` and the lock are properties of a *revision*:
|
|
17
|
+
* two people on two different versions are not editing the same thing, so locking one must not
|
|
18
|
+
* lock the other.
|
|
19
|
+
*
|
|
20
|
+
* **Text columns, read back as the staff member.** Each of the three ids is a `text` column the
|
|
21
|
+
* server half marks `$references('staff', { resolve: true })`: the adapter joins the target on
|
|
22
|
+
* read, so the document carries `{ id, name, email }` on the same key and the panel has a name to
|
|
23
|
+
* show. A write takes that object or the id. A text column is also what can be `$root()`, which
|
|
24
|
+
* a relation field cannot.
|
|
25
|
+
*
|
|
26
|
+
* **The lock is staff-only, said on the field.** `.access({ read, update })` is enforced by the
|
|
27
|
+
* pipeline for every caller — `processDocumentFields` drops what a reader may not see,
|
|
28
|
+
* `validateFields` drops what a writer may not set — so who can see and claim a lock is one
|
|
29
|
+
* declaration here rather than a rule each read path has to remember.
|
|
30
|
+
*
|
|
31
|
+
* The client half. `module.server.ts` adds the reference to `staff` on the three id columns,
|
|
32
|
+
* which is what decides what happens to a document whose author is deleted.
|
|
33
|
+
*/
|
|
34
|
+
export const augmentMetas = (config) => {
|
|
35
|
+
const fields = [...(config.fields || [])];
|
|
36
|
+
fields.push(metasFields.createdBy(), metasFields.updatedBy(), metasFields.currentlyEditedBy(), metasFields.currentlyEditedAt(), metasFields.createdAt(), metasFields.updatedAt());
|
|
37
|
+
return { ...config, fields };
|
|
38
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Collection } from '../../../config/types.js';
|
|
2
|
+
type Input = {
|
|
3
|
+
slug?: string;
|
|
4
|
+
fields?: Collection<any>['fields'];
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* The metas' server half: the same fields, carrying a foreign key to `staff`.
|
|
8
|
+
*
|
|
9
|
+
* **A column with a reference, not a relation field.** A `relation('createdBy').to('staff')` would
|
|
10
|
+
* store the id in the junction table, one row per document per field — so the answer to "who made
|
|
11
|
+
* this" would not be visible beside the document in any database view, and reading it would cost a
|
|
12
|
+
* join the panel's list does per row. A `text` column with `$references` puts the id in the row
|
|
13
|
+
* itself and still gets referential integrity out of the database.
|
|
14
|
+
*
|
|
15
|
+
* **`resolve: true` is what puts a name in the panel.** The adapter joins the staff member on
|
|
16
|
+
* read and the document carries `{ id, name, email }` where the id column is; the pipeline
|
|
17
|
+
* writes the id back.
|
|
18
|
+
*
|
|
19
|
+
* **`onDelete: 'set null'` is the policy for a deleted user**, and it is the reason this half
|
|
20
|
+
* exists at all. Without a reference, deleting a staff member leaves their id behind on every
|
|
21
|
+
* document they touched, pointing at nothing — the panel renders a dash and the database cannot
|
|
22
|
+
* tell you the row is stale. `set null` says it plainly: the documents outlive their author and
|
|
23
|
+
* lose the attribution. A config where documents genuinely should not outlive their owner wants
|
|
24
|
+
* `cascade` instead, and that is a one-word change here rather than a cleanup job.
|
|
25
|
+
*
|
|
26
|
+
* The reference has to be on the builder at construction, which is why this is written out rather
|
|
27
|
+
* than wrapping the client half — the same reason `nested/module.server.ts` is.
|
|
28
|
+
*/
|
|
29
|
+
export declare const augmentMetas: <T extends Input>(config: T) => T;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { STAFF_SLUG } from '../../../auth/tables.js';
|
|
2
|
+
import { metasFields } from './fields.js';
|
|
3
|
+
/**
|
|
4
|
+
* The metas' server half: the same fields, carrying a foreign key to `staff`.
|
|
5
|
+
*
|
|
6
|
+
* **A column with a reference, not a relation field.** A `relation('createdBy').to('staff')` would
|
|
7
|
+
* store the id in the junction table, one row per document per field — so the answer to "who made
|
|
8
|
+
* this" would not be visible beside the document in any database view, and reading it would cost a
|
|
9
|
+
* join the panel's list does per row. A `text` column with `$references` puts the id in the row
|
|
10
|
+
* itself and still gets referential integrity out of the database.
|
|
11
|
+
*
|
|
12
|
+
* **`resolve: true` is what puts a name in the panel.** The adapter joins the staff member on
|
|
13
|
+
* read and the document carries `{ id, name, email }` where the id column is; the pipeline
|
|
14
|
+
* writes the id back.
|
|
15
|
+
*
|
|
16
|
+
* **`onDelete: 'set null'` is the policy for a deleted user**, and it is the reason this half
|
|
17
|
+
* exists at all. Without a reference, deleting a staff member leaves their id behind on every
|
|
18
|
+
* document they touched, pointing at nothing — the panel renders a dash and the database cannot
|
|
19
|
+
* tell you the row is stale. `set null` says it plainly: the documents outlive their author and
|
|
20
|
+
* lose the attribution. A config where documents genuinely should not outlive their owner wants
|
|
21
|
+
* `cascade` instead, and that is a one-word change here rather than a cleanup job.
|
|
22
|
+
*
|
|
23
|
+
* The reference has to be on the builder at construction, which is why this is written out rather
|
|
24
|
+
* than wrapping the client half — the same reason `nested/module.server.ts` is.
|
|
25
|
+
*/
|
|
26
|
+
export const augmentMetas = (config) => {
|
|
27
|
+
const fields = [...(config.fields || [])];
|
|
28
|
+
// The staff collection's own metas cannot reference the table they sit on without a
|
|
29
|
+
// self-referencing accessor; it is also the one collection where "who made this user" is
|
|
30
|
+
// answered by the bootstrap rather than a person.
|
|
31
|
+
const staffRef = (field) => field.$references(STAFF_SLUG, {
|
|
32
|
+
onDelete: 'set null',
|
|
33
|
+
resolve: true,
|
|
34
|
+
selfReferencing: config.slug === STAFF_SLUG
|
|
35
|
+
});
|
|
36
|
+
fields.push(staffRef(metasFields.createdBy()), staffRef(metasFields.updatedBy()), staffRef(metasFields.currentlyEditedBy()), metasFields.currentlyEditedAt(), metasFields.createdAt(), metasFields.updatedAt());
|
|
37
|
+
return { ...config, fields };
|
|
38
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Collection } from '../../../config/types.js';
|
|
2
|
+
type Input = {
|
|
3
|
+
fields?: Collection<any>['fields'];
|
|
4
|
+
/**
|
|
5
|
+
* The prototype's fallback, as any feature before this one left it.
|
|
6
|
+
*
|
|
7
|
+
* Required, not optional: this augment has no default of its own, so a config reaching it
|
|
8
|
+
* without one is a prototype that failed to seed it rather than a document with no name.
|
|
9
|
+
*/
|
|
10
|
+
_titleFallback: string;
|
|
11
|
+
};
|
|
12
|
+
type WithAsTitle<T> = T & {
|
|
13
|
+
asTitle: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Resolves `asTitle`: the field that stands in for a document wherever one is listed.
|
|
17
|
+
*
|
|
18
|
+
* **It names no feature, and it owns no default.** The prototype seeds `_titleFallback` with what
|
|
19
|
+
* its documents are called; a feature that knows better overrides it (auth with `email`, upload
|
|
20
|
+
* with `filename`); this reads whatever is left.
|
|
21
|
+
*
|
|
22
|
+
* The precedence: a field marked as the title wins, then the last override, then the prototype's
|
|
23
|
+
* own fallback. "Last override" is registry order — upload comes after auth, so upload wins for a
|
|
24
|
+
* config carrying both.
|
|
25
|
+
*/
|
|
26
|
+
export declare const augmentTitle: <T extends Input>(config: T) => WithAsTitle<T>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { findTitleField } from './find-title.js';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves `asTitle`: the field that stands in for a document wherever one is listed.
|
|
4
|
+
*
|
|
5
|
+
* **It names no feature, and it owns no default.** The prototype seeds `_titleFallback` with what
|
|
6
|
+
* its documents are called; a feature that knows better overrides it (auth with `email`, upload
|
|
7
|
+
* with `filename`); this reads whatever is left.
|
|
8
|
+
*
|
|
9
|
+
* The precedence: a field marked as the title wins, then the last override, then the prototype's
|
|
10
|
+
* own fallback. "Last override" is registry order — upload comes after auth, so upload wins for a
|
|
11
|
+
* config carrying both.
|
|
12
|
+
*/
|
|
13
|
+
export const augmentTitle = (config) => {
|
|
14
|
+
const titleField = findTitleField(config.fields);
|
|
15
|
+
return {
|
|
16
|
+
...config,
|
|
17
|
+
asTitle: titleField?.path ?? config._titleFallback
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FieldBuilder } from '../../../fields/builders/field-builder.js';
|
|
2
|
+
import { FormFieldBuilder } from '../../../fields/builders/form-field-builder.js';
|
|
3
|
+
import type { DateField } from '../../../../fields/date/index.js';
|
|
4
|
+
import type { EmailField } from '../../../../fields/email/index.js';
|
|
5
|
+
import type { SlugField } from '../../../../fields/slug/index.js';
|
|
6
|
+
import type { TextField } from '../../../../fields/text/index.js';
|
|
7
|
+
import type { Field, FormField, RichTextField } from '../../../../fields/types.js';
|
|
8
|
+
export declare const hasMaybeTitle: (field: Field) => field is TextField | DateField | SlugField | EmailField | RichTextField;
|
|
9
|
+
interface TitleFieldResult {
|
|
10
|
+
field: FormFieldBuilder<FormField>;
|
|
11
|
+
path: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function findTitleField(fields?: FieldBuilder<Field>[], basePath?: string): TitleFieldResult | null;
|
|
14
|
+
export {};
|