rimecms 0.28.10 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/adapter-sqlite/area.server.js +8 -8
- package/dist/adapter-sqlite/generate-schema/column.server.d.ts +13 -0
- package/dist/adapter-sqlite/generate-schema/column.server.js +77 -0
- package/dist/adapter-sqlite/generate-schema/index.server.js +7 -12
- package/dist/adapter-sqlite/generate-schema/root.server.js +35 -39
- package/dist/adapter-sqlite/generate-schema/templates.server.d.ts +12 -0
- package/dist/adapter-sqlite/generate-schema/templates.server.js +19 -0
- package/dist/adapter-sqlite/generate-schema/{util.d.ts → util.server.d.ts} +2 -2
- package/dist/adapter-sqlite/generate-schema/{util.js → util.server.js} +2 -2
- package/dist/adapter-sqlite/generate-schema/write.server.js +1 -1
- package/dist/adapter-sqlite/relations.server.js +6 -1
- package/dist/adapter-sqlite/transform.server.js +1 -1
- package/dist/adapter-sqlite/util.server.d.ts +1 -6
- package/dist/adapter-sqlite/util.server.js +6 -0
- package/dist/adapter-sqlite/where.server.js +17 -16
- package/dist/adapter-sqlite/with.server.js +10 -10
- package/dist/core/areas/{api → rest}/get.server.d.ts +4 -2
- package/dist/core/areas/rest/get.server.js +45 -0
- package/dist/core/areas/rest/index.server.d.ts +6 -0
- package/dist/core/areas/rest/index.server.js +3 -0
- package/dist/core/areas/{api → rest}/update.server.d.ts +4 -2
- package/dist/core/areas/rest/update.server.js +43 -0
- package/dist/core/collections/auth/fields.d.ts +2 -182
- package/dist/core/collections/auth/hooks/before-upsert/augment-fields-password.server.d.ts +1 -1
- package/dist/core/collections/config/augment-auth.server.js +1 -1
- package/dist/core/collections/config/augment-nested.server.js +1 -1
- package/dist/core/collections/config/augment-panel.d.ts +1 -1
- package/dist/core/collections/config/augment-upload.js +2 -2
- package/dist/core/collections/config/augment-upload.server.js +4 -1
- package/dist/core/collections/operations/duplicate.js +31 -12
- package/dist/core/collections/operations/updateById.js +6 -5
- package/dist/core/collections/{api → rest}/create.server.d.ts +4 -2
- package/dist/core/collections/rest/create.server.js +37 -0
- package/dist/core/collections/{api → rest}/delete.server.d.ts +4 -2
- package/dist/core/collections/rest/delete.server.js +37 -0
- package/dist/core/collections/{api → rest}/deleteById.server.d.ts +4 -2
- package/dist/core/collections/rest/deleteById.server.js +21 -0
- package/dist/core/collections/{api → rest}/duplicate.server.d.ts +1 -1
- package/dist/core/collections/rest/duplicate.server.js +20 -0
- package/dist/core/collections/{api → rest}/get.server.d.ts +4 -2
- package/dist/core/collections/rest/get.server.js +50 -0
- package/dist/core/collections/{api → rest}/getById.server.d.ts +4 -2
- package/dist/core/collections/rest/getById.server.js +35 -0
- package/dist/core/collections/rest/index.server.d.ts +16 -0
- package/dist/core/collections/rest/index.server.js +16 -0
- package/dist/core/collections/{api → rest}/updateById.server.d.ts +4 -2
- package/dist/core/collections/rest/updateById.server.js +44 -0
- package/dist/core/collections/upload/disk/delete.server.d.ts +1 -1
- package/dist/core/collections/upload/disk/delete.server.js +48 -1
- package/dist/core/collections/upload/hooks/clean-up-files.server.js +2 -2
- package/dist/core/collections/upload/hooks/convert-base64.server.d.ts +1 -1
- package/dist/core/collections/upload/hooks/extract-path.server.d.ts +2 -2
- package/dist/core/collections/upload/hooks/extract-path.server.js +1 -1
- package/dist/core/collections/upload/hooks/handle-path-creation.server.d.ts +1 -1
- package/dist/core/collections/upload/hooks/process-file-upload.server.d.ts +1 -1
- package/dist/core/collections/upload/hooks/process-file-upload.server.js +3 -3
- package/dist/core/config/auth/better-auth.server.d.ts +2 -2
- package/dist/core/config/client/augment-directories.js +1 -1
- package/dist/core/config/config-context.server.d.ts +3 -3
- package/dist/core/config/server/augment-directories.server.js +1 -1
- package/dist/core/config/server/augment-panel-access.server.d.ts +1 -1
- package/dist/core/config/server/build-config.server.d.ts +11 -11
- package/dist/core/config/server/validate.server.js +51 -31
- package/dist/core/config/shared/find-thumbnail.js +13 -13
- package/dist/core/config/shared/find-title.js +13 -13
- package/dist/core/config/shared/upload-directories.js +1 -1
- package/dist/core/constant.d.ts +1 -1
- package/dist/core/constant.js +1 -1
- package/dist/core/constant.server.d.ts +1 -0
- package/dist/core/constant.server.js +2 -0
- package/dist/core/dev/cache/index.server.js +9 -9
- package/dist/core/dev/cli/build/index.d.ts +1 -0
- package/dist/core/dev/cli/build/index.js +37 -8
- package/dist/core/dev/cli/build/templates.d.ts +1 -0
- package/dist/core/dev/cli/build/templates.js +24 -0
- package/dist/core/dev/cli/clear/index.server.js +3 -2
- package/dist/core/dev/cli/generate/index.server.js +3 -2
- package/dist/core/dev/cli/index.js +20 -0
- package/dist/core/dev/cli/init/index.server.js +4 -4
- package/dist/core/dev/cli/init/templates.d.ts +1 -1
- package/dist/core/dev/cli/init/templates.js +2 -2
- package/dist/core/dev/cli/util/log.server.d.ts +1 -0
- package/dist/core/dev/cli/util/log.server.js +4 -0
- package/dist/core/dev/cli/util/package-manager.server.d.ts +9 -0
- package/dist/core/dev/cli/{init/package-manager-util.server.js → util/package-manager.server.js} +15 -0
- package/dist/core/dev/cli/util/package.server.d.ts +9 -0
- package/dist/core/dev/cli/{init/get-package-info.server.js → util/package.server.js} +10 -0
- package/dist/core/dev/generate/routes/common.server.d.ts +10 -1
- package/dist/core/dev/generate/routes/common.server.js +248 -29
- package/dist/core/dev/generate/routes/index.server.d.ts +7 -1
- package/dist/core/dev/generate/routes/index.server.js +16 -55
- package/dist/core/dev/generate/routes/util.server.d.ts +6 -16
- package/dist/core/dev/generate/routes/util.server.js +8 -21
- package/dist/core/dev/generate/types/index.server.js +22 -20
- package/dist/core/dev/vite/index.server.js +22 -6
- package/dist/core/errors/handler.server.d.ts +22 -1
- package/dist/core/errors/handler.server.js +25 -2
- package/dist/core/errors/index.d.ts +0 -1
- package/dist/core/errors/index.js +0 -1
- package/dist/core/fields/builders/boolean-builder.d.ts +3 -1
- package/dist/core/fields/builders/boolean-builder.js +3 -0
- package/dist/core/fields/builders/field-builder.d.ts +35 -2
- package/dist/core/fields/builders/field-builder.js +33 -2
- package/dist/core/fields/builders/form-field-builder.d.ts +71 -12
- package/dist/core/fields/builders/form-field-builder.js +96 -6
- package/dist/core/fields/builders/select-builder.d.ts +4 -1
- package/dist/core/fields/builders/select-builder.js +3 -0
- package/dist/core/fields/util.d.ts +9 -17
- package/dist/core/fields/util.js +49 -83
- package/dist/core/handlers/routes.server.d.ts +70 -1
- package/dist/core/handlers/routes.server.js +71 -4
- package/dist/core/naming.d.ts +34 -0
- package/dist/core/naming.js +39 -0
- package/dist/core/operations/blocks/diff.server.js +1 -1
- package/dist/core/operations/blocks/extract.server.js +1 -1
- package/dist/core/operations/configMap/buildTreeMap.d.ts +3 -2
- package/dist/core/operations/configMap/buildTreeMap.js +1 -1
- package/dist/core/operations/configMap/index.d.ts +2 -1
- package/dist/core/operations/configMap/index.js +13 -13
- package/dist/core/operations/configMap/types.d.ts +2 -2
- package/dist/core/operations/hooks/before-read/process-document-fields.server.js +14 -17
- package/dist/core/operations/hooks/before-upsert/data-config-map.server.d.ts +1 -1
- package/dist/core/operations/hooks/before-upsert/data-config-map.server.js +1 -1
- package/dist/core/operations/hooks/before-upsert/handle-new-version.server.d.ts +1 -1
- package/dist/core/operations/hooks/before-upsert/original-config-map.server.d.ts +1 -1
- package/dist/core/operations/hooks/before-upsert/original-config-map.server.js +1 -1
- package/dist/core/operations/hooks/before-upsert/set-default-values.server.d.ts +3 -5
- package/dist/core/operations/hooks/before-upsert/set-default-values.server.js +10 -15
- package/dist/core/operations/hooks/before-upsert/validate-fields.server.d.ts +1 -1
- package/dist/core/operations/hooks/before-upsert/validate-fields.server.js +49 -31
- package/dist/core/operations/relations/extract.server.js +5 -5
- package/dist/core/operations/shared/fallback-data-from-original.js +2 -2
- package/dist/core/operations/tree/diff.server.js +1 -1
- package/dist/core/operations/tree/extract.server.js +1 -1
- package/dist/core/plugins/api-init/index.server.js +10 -5
- package/dist/core/plugins/cache/cache.server.js +4 -4
- package/dist/core/rime.server.d.ts +10 -10
- package/dist/core/rime.server.js +5 -1
- package/dist/fields/blocks/component/AddBlockButton.svelte +7 -7
- package/dist/fields/blocks/component/AddBlockButton.svelte.d.ts +2 -2
- package/dist/fields/blocks/component/Blocks.svelte +6 -7
- package/dist/fields/blocks/component/props.d.ts +2 -2
- package/dist/fields/blocks/index.d.ts +1 -1
- package/dist/fields/blocks/index.js +3 -3
- package/dist/fields/blocks/index.server.js +1 -1
- package/dist/fields/checkbox/component/Checkbox.svelte +2 -2
- package/dist/fields/checkbox/component/props.d.ts +2 -2
- package/dist/fields/checkbox/index.server.d.ts +1 -2
- package/dist/fields/checkbox/index.server.js +1 -10
- package/dist/fields/combobox/component/ComboBox.svelte +3 -3
- package/dist/fields/combobox/component/props.d.ts +2 -2
- package/dist/fields/combobox/index.server.d.ts +1 -2
- package/dist/fields/combobox/index.server.js +2 -11
- package/dist/fields/component/index.d.ts +1 -1
- package/dist/fields/date/component/Date.svelte +4 -4
- package/dist/fields/date/component/Date.svelte.d.ts +2 -2
- package/dist/fields/date/index.d.ts +3 -1
- package/dist/fields/date/index.js +3 -0
- package/dist/fields/date/index.server.d.ts +1 -2
- package/dist/fields/date/index.server.js +1 -10
- package/dist/fields/email/component/Email.svelte +5 -6
- package/dist/fields/email/component/props.d.ts +2 -3
- package/dist/fields/email/index.d.ts +3 -2
- package/dist/fields/email/index.js +5 -2
- package/dist/fields/email/index.server.d.ts +0 -3
- package/dist/fields/email/index.server.js +0 -9
- package/dist/fields/group/component/Group.svelte +9 -15
- package/dist/fields/group/component/Group.svelte.d.ts +2 -2
- package/dist/fields/group/index.d.ts +4 -2
- package/dist/fields/group/index.server.js +2 -2
- package/dist/fields/index.server.d.ts +1 -4
- package/dist/fields/index.server.js +17 -13
- package/dist/fields/link/component/Link.svelte +5 -5
- package/dist/fields/link/component/RessourceInput.svelte +1 -1
- package/dist/fields/link/component/props.d.ts +2 -2
- package/dist/fields/link/index.d.ts +5 -2
- package/dist/fields/link/index.js +10 -11
- package/dist/fields/link/runtime.d.ts +2 -0
- package/dist/fields/link/runtime.js +1 -0
- package/dist/fields/link/{index.server.d.ts → runtime.server.d.ts} +1 -2
- package/dist/fields/link/{index.server.js → runtime.server.js} +2 -11
- package/dist/fields/number/component/Number.svelte +6 -6
- package/dist/fields/number/component/props.d.ts +2 -2
- package/dist/fields/number/index.d.ts +4 -10
- package/dist/fields/number/index.js +3 -4
- package/dist/fields/number/index.server.d.ts +1 -2
- package/dist/fields/number/index.server.js +1 -10
- package/dist/fields/radio/component/Radio.svelte +6 -7
- package/dist/fields/radio/component/props.d.ts +2 -2
- package/dist/fields/radio/index.server.d.ts +1 -2
- package/dist/fields/radio/index.server.js +2 -11
- package/dist/fields/relation/client.d.ts +1 -1
- package/dist/fields/relation/client.js +1 -1
- package/dist/fields/relation/component/Cell.svelte +1 -1
- package/dist/fields/relation/component/Relation.svelte +19 -15
- package/dist/fields/relation/component/Relation.svelte.d.ts +2 -2
- package/dist/fields/relation/component/upload/Browse.svelte +1 -1
- package/dist/fields/relation/index.d.ts +8 -5
- package/dist/fields/relation/index.js +8 -47
- package/dist/fields/relation/runtime.d.ts +5 -0
- package/dist/fields/relation/runtime.js +4 -0
- package/dist/fields/relation/runtime.server.d.ts +8 -0
- package/dist/fields/relation/runtime.server.js +49 -0
- package/dist/fields/rich-text/component/RichText.svelte +5 -5
- package/dist/fields/rich-text/component/props.d.ts +2 -2
- package/dist/fields/rich-text/core/features/fields/extension.d.ts +2 -2
- package/dist/fields/rich-text/core/features/fields/fields.svelte +2 -2
- package/dist/fields/rich-text/core/features/link/component/link-selector.svelte +1 -1
- package/dist/fields/rich-text/core/features/resource/resource-extension.d.ts +1 -1
- package/dist/fields/rich-text/core/features/resource/resource.svelte +1 -1
- package/dist/fields/rich-text/core/features/upload/upload-extension.d.ts +1 -1
- package/dist/fields/rich-text/core/features/upload/upload.svelte +1 -1
- package/dist/fields/rich-text/index.d.ts +2 -0
- package/dist/fields/rich-text/index.js +7 -2
- package/dist/fields/rich-text/index.server.d.ts +1 -2
- package/dist/fields/rich-text/index.server.js +1 -10
- package/dist/fields/select/component/Select.svelte +16 -16
- package/dist/fields/select/component/props.d.ts +2 -2
- package/dist/fields/select/index.d.ts +2 -0
- package/dist/fields/select/index.js +3 -0
- package/dist/fields/select/index.server.d.ts +1 -2
- package/dist/fields/select/index.server.js +2 -17
- package/dist/fields/slug/component/Slug.svelte +14 -10
- package/dist/fields/slug/component/Slug.svelte.d.ts +2 -2
- package/dist/fields/slug/index.d.ts +5 -2
- package/dist/fields/slug/index.js +3 -0
- package/dist/fields/slug/index.server.d.ts +1 -2
- package/dist/fields/slug/index.server.js +1 -10
- package/dist/fields/tabs/component/Tabs.svelte +15 -15
- package/dist/fields/tabs/component/Tabs.svelte.d.ts +2 -2
- package/dist/fields/tabs/index.d.ts +4 -16
- package/dist/fields/tabs/index.js +1 -8
- package/dist/fields/tabs/index.server.js +3 -3
- package/dist/fields/text/component/Text.svelte +5 -5
- package/dist/fields/text/component/props.d.ts +2 -3
- package/dist/fields/text/index.d.ts +4 -10
- package/dist/fields/text/index.js +3 -4
- package/dist/fields/text/index.server.d.ts +1 -2
- package/dist/fields/text/index.server.js +1 -10
- package/dist/fields/textarea/component/TextArea.svelte +3 -3
- package/dist/fields/textarea/component/props.d.ts +2 -2
- package/dist/fields/textarea/index.d.ts +4 -1
- package/dist/fields/textarea/index.js +3 -0
- package/dist/fields/textarea/index.server.d.ts +1 -2
- package/dist/fields/textarea/index.server.js +1 -10
- package/dist/fields/time/component/Time.svelte +5 -5
- package/dist/fields/time/component/Time.svelte.d.ts +1 -1
- package/dist/fields/time/component/props.d.ts +2 -2
- package/dist/fields/time/index.d.ts +2 -0
- package/dist/fields/time/index.js +3 -0
- package/dist/fields/time/index.server.d.ts +1 -2
- package/dist/fields/time/index.server.js +1 -10
- package/dist/fields/toggle/component/Toggle.svelte +3 -3
- package/dist/fields/toggle/component/Toggle.svelte.d.ts +1 -1
- package/dist/fields/toggle/component/props.d.ts +2 -2
- package/dist/fields/toggle/index.d.ts +2 -1
- package/dist/fields/toggle/index.server.d.ts +1 -2
- package/dist/fields/toggle/index.server.js +1 -10
- package/dist/fields/tree/component/AddItemButton.svelte +1 -2
- package/dist/fields/tree/component/Tree.svelte +6 -6
- package/dist/fields/tree/component/TreeBlock.svelte +5 -12
- package/dist/fields/tree/component/props.d.ts +3 -3
- package/dist/fields/tree/index.d.ts +3 -1
- package/dist/fields/tree/index.js +2 -2
- package/dist/fields/types.d.ts +11 -5
- package/dist/index.d.ts +8 -3
- package/dist/index.js +7 -3
- package/dist/panel/components/fields/FieldsPreview.svelte +4 -5
- package/dist/panel/components/fields/Hint.svelte +5 -4
- package/dist/panel/components/fields/Hint.svelte.d.ts +3 -2
- package/dist/panel/components/fields/Label.svelte +6 -11
- package/dist/panel/components/fields/Label.svelte.d.ts +3 -2
- package/dist/panel/components/fields/LabelFor.svelte +4 -4
- package/dist/panel/components/fields/LabelFor.svelte.d.ts +2 -1
- package/dist/panel/components/fields/RenderFields.svelte +11 -16
- package/dist/panel/components/fields/{root.svelte.d.ts → fieldset.svelte.d.ts} +1 -1
- package/dist/panel/components/fields/{root.svelte.js → fieldset.svelte.js} +1 -1
- package/dist/panel/components/fields/index.d.ts +5 -5
- package/dist/panel/components/fields/index.js +2 -2
- package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte +1 -1
- package/dist/panel/components/sections/document/AuthFooter.svelte +2 -7
- package/dist/panel/components/sections/document/ButtonStatus.svelte +1 -1
- package/dist/panel/components/sections/document/CurrentlyEdited.svelte +1 -1
- package/dist/panel/components/sections/document/Settings.svelte +1 -1
- package/dist/panel/components/sections/live/LiveEditPanel.svelte +2 -2
- package/dist/panel/context/collection.svelte.js +10 -10
- package/dist/panel/context/documentForm.svelte.d.ts +8 -21
- package/dist/panel/context/documentForm.svelte.js +46 -54
- package/dist/panel/context/form.svelte.d.ts +6 -3
- package/dist/panel/context/form.svelte.js +22 -18
- package/dist/panel/context/live.svelte.js +1 -1
- package/dist/panel/index.d.ts +9 -1
- package/dist/panel/index.js +7 -1
- package/dist/panel/pages/area/actions.server.d.ts +2 -21
- package/dist/panel/pages/area/actions.server.js +28 -27
- package/dist/panel/pages/area/load.server.d.ts +2 -17
- package/dist/panel/pages/area/load.server.js +37 -46
- package/dist/panel/pages/auth/fields.d.ts +4 -4
- package/dist/panel/pages/auth/fields.js +6 -22
- package/dist/panel/pages/auth/reset-password/ResetPassword.svelte +3 -10
- package/dist/panel/pages/auth/sign-in/SignIn.svelte +7 -1
- package/dist/panel/pages/collection/load.server.d.ts +6 -6
- package/dist/panel/pages/collection/load.server.js +70 -72
- package/dist/panel/pages/collection-document/actions.server.d.ts +1 -1
- package/dist/panel/pages/collection-document/actions.server.js +78 -70
- package/dist/panel/pages/collection-document/load.server.d.ts +5 -20
- package/dist/panel/pages/collection-document/load.server.js +80 -82
- package/dist/server.d.ts +7 -0
- package/dist/server.js +7 -0
- package/dist/types.d.ts +1 -0
- package/dist/util/doc.js +15 -17
- package/dist/util/index.d.ts +9 -1
- package/dist/util/index.js +12 -1
- package/package.json +8 -50
- package/dist/core/api/index.d.ts +0 -7
- package/dist/core/api/index.js +0 -10
- package/dist/core/api/index.server.d.ts +0 -3
- package/dist/core/api/index.server.js +0 -3
- package/dist/core/areas/api/get.server.js +0 -36
- package/dist/core/areas/api/index.server.d.ts +0 -7
- package/dist/core/areas/api/index.server.js +0 -4
- package/dist/core/areas/api/update.server.js +0 -33
- package/dist/core/collections/api/create.server.js +0 -29
- package/dist/core/collections/api/delete.server.js +0 -32
- package/dist/core/collections/api/deleteById.server.js +0 -16
- package/dist/core/collections/api/duplicate.server.js +0 -18
- package/dist/core/collections/api/get.server.js +0 -45
- package/dist/core/collections/api/getById.server.js +0 -30
- package/dist/core/collections/api/index.server.d.ts +0 -17
- package/dist/core/collections/api/index.server.js +0 -9
- package/dist/core/collections/api/updateById.server.js +0 -38
- package/dist/core/dev/cli/init/get-package-info.server.d.ts +0 -1
- package/dist/core/dev/cli/init/package-manager-util.server.d.ts +0 -3
- package/dist/core/dev/generate/routes/area.server.d.ts +0 -7
- package/dist/core/dev/generate/routes/area.server.js +0 -69
- package/dist/core/dev/generate/routes/collection.server.d.ts +0 -14
- package/dist/core/dev/generate/routes/collection.server.js +0 -129
- package/dist/fields/relation/index.server.d.ts +0 -4
- package/dist/fields/relation/index.server.js +0 -13
- package/dist/live.d.ts +0 -4
- package/dist/live.js +0 -4
- package/dist/panel/index.server.d.ts +0 -4
- package/dist/panel/index.server.js +0 -4
- package/dist/panel/pages/auth/index.d.ts +0 -4
- package/dist/panel/pages/auth/index.js +0 -4
- package/dist/panel/pages/auth/index.server.d.ts +0 -18
- package/dist/panel/pages/auth/index.server.js +0 -12
- package/dist/panel/pages/index.actions.server.d.ts +0 -13
- package/dist/panel/pages/index.actions.server.js +0 -10
- package/dist/panel/pages/index.load.server.d.ts +0 -23
- package/dist/panel/pages/index.load.server.js +0 -16
- package/dist/panel/ui.d.ts +0 -4
- package/dist/panel/ui.js +0 -5
- /package/dist/core/dev/cli/{util.server.d.ts → util/prompt.server.d.ts} +0 -0
- /package/dist/core/dev/cli/{util.server.js → util/prompt.server.js} +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type { CollectionSlug } from '../../types/doc.js';
|
|
2
1
|
import { type RequestEvent } from '@sveltejs/kit';
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* DELETE handler for the collection API endpoint to delete a document by its ID.
|
|
4
|
+
*/
|
|
5
|
+
export declare function restDeleteById(event: RequestEvent): Promise<Response | import("@sveltejs/kit").ActionFailure<{
|
|
4
6
|
form: Record<string, any>;
|
|
5
7
|
errors: import("../../../types").FormErrors;
|
|
6
8
|
}> | import("@sveltejs/kit").ActionFailure<{
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { RimeError } from '../../errors/index.js';
|
|
2
|
+
import { handleError } from '../../errors/handler.server.js';
|
|
3
|
+
import { trycatch } from '../../../util/function.js';
|
|
4
|
+
import { json } from '@sveltejs/kit';
|
|
5
|
+
/**
|
|
6
|
+
* DELETE handler for the collection API endpoint to delete a document by its ID.
|
|
7
|
+
*/
|
|
8
|
+
export async function restDeleteById(event) {
|
|
9
|
+
//
|
|
10
|
+
const { rime } = event.locals;
|
|
11
|
+
const slug = event.params.slug;
|
|
12
|
+
if (!rime.config.isCollection(slug)) {
|
|
13
|
+
return handleError(new RimeError(RimeError.NOT_FOUND), { context: 'api' });
|
|
14
|
+
}
|
|
15
|
+
const id = event.params.id || '';
|
|
16
|
+
const [error] = await trycatch(() => rime.collection(slug).deleteById({ id }));
|
|
17
|
+
if (error) {
|
|
18
|
+
return handleError(error, { context: 'api' });
|
|
19
|
+
}
|
|
20
|
+
return json({ id });
|
|
21
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type RequestEvent } from '@sveltejs/kit';
|
|
2
|
-
export
|
|
2
|
+
export declare function restDuplicate(event: RequestEvent): Promise<Response | import("@sveltejs/kit").ActionFailure<{
|
|
3
3
|
form: Record<string, any>;
|
|
4
4
|
errors: import("../../../types").FormErrors;
|
|
5
5
|
}> | import("@sveltejs/kit").ActionFailure<{
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ERROR_CONTEXT, handleError } from '../../errors/handler.server.js';
|
|
2
|
+
import { RimeError } from '../../errors/index.js';
|
|
3
|
+
import { trycatch } from '../../../util/function.js';
|
|
4
|
+
import { error, json } from '@sveltejs/kit';
|
|
5
|
+
export async function restDuplicate(event) {
|
|
6
|
+
//
|
|
7
|
+
const { rime } = event.locals;
|
|
8
|
+
const slug = event.params.slug;
|
|
9
|
+
if (!rime.config.isCollection(slug)) {
|
|
10
|
+
return handleError(new RimeError(RimeError.NOT_FOUND), { context: ERROR_CONTEXT.API });
|
|
11
|
+
}
|
|
12
|
+
const collection = rime.collection(slug);
|
|
13
|
+
if (!event.params.id)
|
|
14
|
+
throw error(404);
|
|
15
|
+
const [duplicateError, newId] = await trycatch(() => collection.duplicate({ id: event.params.id }));
|
|
16
|
+
if (duplicateError) {
|
|
17
|
+
return handleError(duplicateError, { context: ERROR_CONTEXT.API });
|
|
18
|
+
}
|
|
19
|
+
return json({ id: newId });
|
|
20
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type { CollectionSlug } from '../../types/doc.js';
|
|
2
1
|
import { type RequestEvent } from '@sveltejs/kit';
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* GET handler for the collection API endpoint.
|
|
4
|
+
*/
|
|
5
|
+
export declare function restGet(event: RequestEvent): Promise<Response | import("@sveltejs/kit").ActionFailure<{
|
|
4
6
|
form: Record<string, any>;
|
|
5
7
|
errors: import("../../../types").FormErrors;
|
|
6
8
|
}> | import("@sveltejs/kit").ActionFailure<{
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { normalizeQuery } from '../../../adapter-sqlite/util.server.js';
|
|
2
|
+
import { PARAMS } from '../../constant.js';
|
|
3
|
+
import { RimeError } from '../../errors/index.js';
|
|
4
|
+
import { handleError } from '../../errors/handler.server.js';
|
|
5
|
+
import { trycatch } from '../../../util/function.js';
|
|
6
|
+
import { json } from '@sveltejs/kit';
|
|
7
|
+
/**
|
|
8
|
+
* GET handler for the collection API endpoint.
|
|
9
|
+
*/
|
|
10
|
+
export async function restGet(event) {
|
|
11
|
+
//
|
|
12
|
+
const { rime } = event.locals;
|
|
13
|
+
const slug = event.params.slug;
|
|
14
|
+
if (!rime.config.isCollection(slug)) {
|
|
15
|
+
return handleError(new RimeError(RimeError.NOT_FOUND), { context: 'api' });
|
|
16
|
+
}
|
|
17
|
+
const params = event.url.searchParams;
|
|
18
|
+
const hasQueryParams = !!params
|
|
19
|
+
.keys()
|
|
20
|
+
.filter((key) => key.startsWith('where'))
|
|
21
|
+
.toArray().length;
|
|
22
|
+
const collectionAPI = rime.collection(slug);
|
|
23
|
+
function buildSelect(params) {
|
|
24
|
+
const paramSelect = params.get(PARAMS.SELECT)
|
|
25
|
+
? params.get(PARAMS.SELECT).split(',')
|
|
26
|
+
: undefined;
|
|
27
|
+
if (paramSelect &&
|
|
28
|
+
paramSelect.includes('title') &&
|
|
29
|
+
!paramSelect.includes(collectionAPI.config.asTitle)) {
|
|
30
|
+
paramSelect.push(collectionAPI.config.asTitle);
|
|
31
|
+
}
|
|
32
|
+
return paramSelect;
|
|
33
|
+
}
|
|
34
|
+
const query = hasQueryParams ? normalizeQuery(event.url.search.substring(1)) : undefined;
|
|
35
|
+
const apiParams = {
|
|
36
|
+
locale: rime.getLocale(),
|
|
37
|
+
sort: params.get(PARAMS.SORT) || undefined,
|
|
38
|
+
depth: params.get(PARAMS.DEPTH) ? parseInt(params.get(PARAMS.DEPTH)) : 0,
|
|
39
|
+
limit: params.get(PARAMS.LIMIT) ? parseInt(params.get(PARAMS.LIMIT)) : undefined,
|
|
40
|
+
offset: params.get(PARAMS.OFFSET) ? parseInt(params.get(PARAMS.OFFSET)) : undefined,
|
|
41
|
+
draft: params.get(PARAMS.DRAFT) ? params.get(PARAMS.DRAFT) === 'true' : undefined,
|
|
42
|
+
query,
|
|
43
|
+
select: buildSelect(params)
|
|
44
|
+
};
|
|
45
|
+
const [error, docs] = await trycatch(() => collectionAPI.find(apiParams));
|
|
46
|
+
if (error) {
|
|
47
|
+
return handleError(error, { context: 'api' });
|
|
48
|
+
}
|
|
49
|
+
return json({ docs }, { status: 200 });
|
|
50
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type { CollectionSlug } from '../../types/doc.js';
|
|
2
1
|
import { type RequestEvent } from '@sveltejs/kit';
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* GET handler for the collection API endpoint to retrieve a document by its ID.
|
|
4
|
+
*/
|
|
5
|
+
export declare function restGetById(event: RequestEvent): Promise<Response | import("@sveltejs/kit").ActionFailure<{
|
|
4
6
|
form: Record<string, any>;
|
|
5
7
|
errors: import("../../../types").FormErrors;
|
|
6
8
|
}> | import("@sveltejs/kit").ActionFailure<{
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { PARAMS } from '../../constant.js';
|
|
2
|
+
import { RimeError } from '../../errors/index.js';
|
|
3
|
+
import { handleError } from '../../errors/handler.server.js';
|
|
4
|
+
import { trycatch } from '../../../util/function.js';
|
|
5
|
+
import { json } from '@sveltejs/kit';
|
|
6
|
+
/**
|
|
7
|
+
* GET handler for the collection API endpoint to retrieve a document by its ID.
|
|
8
|
+
*/
|
|
9
|
+
export async function restGetById(event) {
|
|
10
|
+
//
|
|
11
|
+
const { rime } = event.locals;
|
|
12
|
+
const slug = event.params.slug;
|
|
13
|
+
const id = event.params.id;
|
|
14
|
+
if (!rime.config.isCollection(slug) || !id) {
|
|
15
|
+
return handleError(new RimeError(RimeError.NOT_FOUND), { context: 'api' });
|
|
16
|
+
}
|
|
17
|
+
const paramDepth = event.url.searchParams.get(PARAMS.DEPTH);
|
|
18
|
+
const paramDraft = event.url.searchParams.get(PARAMS.DRAFT);
|
|
19
|
+
const versionId = event.url.searchParams.get(PARAMS.VERSION_ID) || undefined;
|
|
20
|
+
const draft = paramDraft ? paramDraft === 'true' : undefined;
|
|
21
|
+
const depth = typeof paramDepth === 'string' ? parseInt(paramDepth) : 0;
|
|
22
|
+
const select = event.url.searchParams.get(PARAMS.SELECT)?.split(',') || undefined;
|
|
23
|
+
const [error, document] = await trycatch(() => rime.collection(slug).findById({
|
|
24
|
+
id,
|
|
25
|
+
locale: rime.getLocale(),
|
|
26
|
+
depth,
|
|
27
|
+
draft,
|
|
28
|
+
versionId,
|
|
29
|
+
select
|
|
30
|
+
}));
|
|
31
|
+
if (error) {
|
|
32
|
+
return handleError(error, { context: 'api' });
|
|
33
|
+
}
|
|
34
|
+
return json({ doc: document });
|
|
35
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { restCreate } from './create.server.js';
|
|
2
|
+
import { restDelete } from './delete.server.js';
|
|
3
|
+
import { restDeleteById } from './deleteById.server.js';
|
|
4
|
+
import { restDuplicate } from './duplicate.server.js';
|
|
5
|
+
import { restGet } from './get.server.js';
|
|
6
|
+
import { restGetById } from './getById.server.js';
|
|
7
|
+
import { restUpdateById } from './updateById.server.js';
|
|
8
|
+
export declare const rest: {
|
|
9
|
+
get: typeof restGet;
|
|
10
|
+
getById: typeof restGetById;
|
|
11
|
+
deleteById: typeof restDeleteById;
|
|
12
|
+
delete: typeof restDelete;
|
|
13
|
+
create: typeof restCreate;
|
|
14
|
+
updateById: typeof restUpdateById;
|
|
15
|
+
duplicate: typeof restDuplicate;
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { restCreate } from './create.server.js';
|
|
2
|
+
import { restDelete } from './delete.server.js';
|
|
3
|
+
import { restDeleteById } from './deleteById.server.js';
|
|
4
|
+
import { restDuplicate } from './duplicate.server.js';
|
|
5
|
+
import { restGet } from './get.server.js';
|
|
6
|
+
import { restGetById } from './getById.server.js';
|
|
7
|
+
import { restUpdateById } from './updateById.server.js';
|
|
8
|
+
export const rest = {
|
|
9
|
+
get: restGet,
|
|
10
|
+
getById: restGetById,
|
|
11
|
+
deleteById: restDeleteById,
|
|
12
|
+
delete: restDelete,
|
|
13
|
+
create: restCreate,
|
|
14
|
+
updateById: restUpdateById,
|
|
15
|
+
duplicate: restDuplicate
|
|
16
|
+
};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type { CollectionSlug } from '../../types/doc.js';
|
|
2
1
|
import { type RequestEvent } from '@sveltejs/kit';
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* PATCH handler for the collection API endpoint to update a document by its ID.
|
|
4
|
+
*/
|
|
5
|
+
export declare function restUpdateById(event: RequestEvent): Promise<Response | import("@sveltejs/kit").ActionFailure<{
|
|
4
6
|
form: Record<string, any>;
|
|
5
7
|
errors: import("../../../types").FormErrors;
|
|
6
8
|
}> | import("@sveltejs/kit").ActionFailure<{
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { PARAMS } from '../../constant.js';
|
|
2
|
+
import { ERROR_CONTEXT, handleError } from '../../errors/handler.server.js';
|
|
3
|
+
import { RimeError } from '../../errors/index.js';
|
|
4
|
+
import { extractData } from '../../operations/extract-data.server.js';
|
|
5
|
+
import { trycatch } from '../../../util/function.js';
|
|
6
|
+
import { json } from '@sveltejs/kit';
|
|
7
|
+
/**
|
|
8
|
+
* PATCH handler for the collection API endpoint to update a document by its ID.
|
|
9
|
+
*/
|
|
10
|
+
export async function restUpdateById(event) {
|
|
11
|
+
//
|
|
12
|
+
const { rime } = event.locals;
|
|
13
|
+
const slug = event.params.slug;
|
|
14
|
+
const id = event.params.id;
|
|
15
|
+
// Check if the slug corresponds to a valid collection and if the ID is provided
|
|
16
|
+
if (!rime.config.isCollection(slug) || !id) {
|
|
17
|
+
return handleError(new RimeError(RimeError.NOT_FOUND), { context: ERROR_CONTEXT.API });
|
|
18
|
+
}
|
|
19
|
+
// Extract query parameters for versioning and draft status
|
|
20
|
+
const versionId = event.url.searchParams.get(PARAMS.VERSION_ID) || undefined;
|
|
21
|
+
const draft = event.url.searchParams.get(PARAMS.DRAFT)
|
|
22
|
+
? event.url.searchParams.get(PARAMS.DRAFT) === 'true'
|
|
23
|
+
: undefined;
|
|
24
|
+
// Extract data from the request body
|
|
25
|
+
const [extractError, data] = await trycatch(() => extractData(event.request));
|
|
26
|
+
if (extractError) {
|
|
27
|
+
return handleError(extractError, { context: ERROR_CONTEXT.API });
|
|
28
|
+
}
|
|
29
|
+
// Set the locale if provided in the data
|
|
30
|
+
if (data.locale) {
|
|
31
|
+
rime.setLocale(data.locale);
|
|
32
|
+
}
|
|
33
|
+
const [error, document] = await trycatch(() => rime.collection(slug).updateById({
|
|
34
|
+
id,
|
|
35
|
+
data,
|
|
36
|
+
locale: rime.getLocale(),
|
|
37
|
+
versionId,
|
|
38
|
+
draft
|
|
39
|
+
}));
|
|
40
|
+
if (error) {
|
|
41
|
+
return handleError(error, { context: ERROR_CONTEXT.API });
|
|
42
|
+
}
|
|
43
|
+
return json({ doc: document });
|
|
44
|
+
}
|
|
@@ -2,7 +2,7 @@ import type { BuiltCollection, Config } from '../../../config/types.js';
|
|
|
2
2
|
import type { RimeContext } from '../../../rime.server.js';
|
|
3
3
|
import type { GenericDoc } from '../../../types/doc.js';
|
|
4
4
|
import type { WithUpload } from '../util/config.js';
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const cleanUpDocumentFile: <C extends Config>(args: {
|
|
6
6
|
config: WithUpload<BuiltCollection>;
|
|
7
7
|
rime: RimeContext<C>;
|
|
8
8
|
id: string;
|
|
@@ -1,11 +1,58 @@
|
|
|
1
1
|
import { logger } from '../../../logger/index.server.js';
|
|
2
|
+
import { hasVersionsSuffix, withVersionsSuffix } from '../../../naming.js';
|
|
2
3
|
import { existsSync, unlink, unlinkSync } from 'fs';
|
|
3
4
|
import path from 'path';
|
|
4
|
-
|
|
5
|
+
/**
|
|
6
|
+
* A given filename on disk can be shared by several document rows across
|
|
7
|
+
* unrelated upload collections — saveFile dedupes any byte-identical upload
|
|
8
|
+
* to a single file (see isSameFile). For a versioned collection the root
|
|
9
|
+
* table is just an id/hierarchy envelope — all actual content, including
|
|
10
|
+
* the published state, lives in its `_versions` table — so versioned
|
|
11
|
+
* collections are checked via that sibling, which holds the full history
|
|
12
|
+
* rather than just the one row a base-collection query would join in.
|
|
13
|
+
* `selfId` must already be in whichever id-space `selfSlug` resolves to
|
|
14
|
+
* (a `_versions` row's own id, not the envelope's `id` — see versionId in
|
|
15
|
+
* mergeRawDocumentWithVersion). Every configured locale is checked since a
|
|
16
|
+
* localized collection's query can otherwise miss rows in non-default
|
|
17
|
+
* locales, even though `filename` itself is never a localized field.
|
|
18
|
+
*/
|
|
19
|
+
const isFilenameStillReferenced = async (args) => {
|
|
20
|
+
const { rime, filename, selfSlug, selfId } = args;
|
|
21
|
+
const targetSlugs = Object.values(rime.config.collections)
|
|
22
|
+
.filter((c) => c?.upload && !hasVersionsSuffix(c.slug))
|
|
23
|
+
.map((c) => (c.versions ? withVersionsSuffix(c.slug) : c.slug));
|
|
24
|
+
const locales = rime.config.getLocalesCodes();
|
|
25
|
+
const localesToQuery = locales.length ? locales : [undefined];
|
|
26
|
+
for (const slug of targetSlugs) {
|
|
27
|
+
for (const locale of localesToQuery) {
|
|
28
|
+
const docs = await rime.collection(slug).find({
|
|
29
|
+
query: `where[filename][equals]=${filename}`,
|
|
30
|
+
draft: true,
|
|
31
|
+
locale,
|
|
32
|
+
limit: slug === selfSlug ? 2 : 1
|
|
33
|
+
});
|
|
34
|
+
const referenced = docs.some((doc) => slug !== selfSlug || doc.id !== selfId);
|
|
35
|
+
if (referenced)
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
};
|
|
41
|
+
export const cleanUpDocumentFile = async (args) => {
|
|
5
42
|
//
|
|
6
43
|
const { config, rime, id } = args;
|
|
7
44
|
const doc = await rime.collection(config.slug).findById({ id, draft: true });
|
|
8
45
|
try {
|
|
46
|
+
if (!doc.filename)
|
|
47
|
+
return doc;
|
|
48
|
+
const stillReferenced = await isFilenameStillReferenced({
|
|
49
|
+
rime,
|
|
50
|
+
filename: doc.filename,
|
|
51
|
+
selfSlug: config.versions ? withVersionsSuffix(config.slug) : config.slug,
|
|
52
|
+
selfId: doc.versionId ?? doc.id
|
|
53
|
+
});
|
|
54
|
+
if (stillReferenced)
|
|
55
|
+
return doc;
|
|
9
56
|
const filePath = path.resolve(process.cwd(), `static/medias/${doc.filename}`);
|
|
10
57
|
// Delete original
|
|
11
58
|
unlinkSync(filePath);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { cleanUpDocumentFile } from '../disk/delete.server.js';
|
|
2
2
|
import { Hooks } from '../../../operations/hooks/index.server.js';
|
|
3
3
|
/**
|
|
4
4
|
* Hook executed before deleting a document to clean up associated files from storage.
|
|
@@ -12,6 +12,6 @@ import { Hooks } from '../../../operations/hooks/index.server.js';
|
|
|
12
12
|
export const cleanUpFiles = Hooks.beforeDelete(async (args) => {
|
|
13
13
|
const config = args.config;
|
|
14
14
|
const id = args.context.params.id || '';
|
|
15
|
-
await
|
|
15
|
+
await cleanUpDocumentFile({ config, rime: args.event.locals.rime, id });
|
|
16
16
|
return args;
|
|
17
17
|
});
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
* @param args Hook arguments containing the document to process
|
|
11
11
|
* @returns Updated args object with converted file data
|
|
12
12
|
*/
|
|
13
|
-
export declare const castBase64ToFile: import("../../../operations/hooks/index.server.js").Hook<"upload", "
|
|
13
|
+
export declare const castBase64ToFile: import("../../../operations/hooks/index.server.js").Hook<"upload", "update" | "create", "before">;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Hook executed before save/update operations on {uploadSlug}_directories collections
|
|
3
|
-
* the function
|
|
3
|
+
* the function normalize and validate path ({slug}_directories.id).
|
|
4
4
|
* Then extract parent, name from the given path.
|
|
5
5
|
*/
|
|
6
|
-
export declare const exctractPath: import("../../../operations/hooks/index.server.js").Hook<"directory", "
|
|
6
|
+
export declare const exctractPath: import("../../../operations/hooks/index.server.js").Hook<"directory", "update" | "create", "before">;
|
|
@@ -4,7 +4,7 @@ import { trycatchSync } from '../../../../util/function.js';
|
|
|
4
4
|
import { getSegments } from '../util/path.js';
|
|
5
5
|
/**
|
|
6
6
|
* Hook executed before save/update operations on {uploadSlug}_directories collections
|
|
7
|
-
* the function
|
|
7
|
+
* the function normalize and validate path ({slug}_directories.id).
|
|
8
8
|
* Then extract parent, name from the given path.
|
|
9
9
|
*/
|
|
10
10
|
export const exctractPath = Hooks.beforeUpsert(async (args) => {
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* the function get the document _path and check if it exists,
|
|
4
4
|
* if it doesn't it create {upload_slug}_directories entries recursively
|
|
5
5
|
*/
|
|
6
|
-
export declare const handlePathCreation: import("../../../operations/hooks/index.server.js").Hook<"upload", "
|
|
6
|
+
export declare const handlePathCreation: import("../../../operations/hooks/index.server.js").Hook<"upload", "update" | "create", "before">;
|
|
@@ -17,4 +17,4 @@
|
|
|
17
17
|
* - Cleans up image variations
|
|
18
18
|
* - Nullifies related document fields
|
|
19
19
|
*/
|
|
20
|
-
export declare const processFileUpload: import("../../../operations/hooks/index.server.js").Hook<"upload", "
|
|
20
|
+
export declare const processFileUpload: import("../../../operations/hooks/index.server.js").Hook<"upload", "update" | "create", "before">;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { cleanUpDocumentFile } from '../disk/delete.server.js';
|
|
2
2
|
import { saveFile } from '../disk/save.server.js';
|
|
3
3
|
import { Hooks } from '../../../operations/hooks/index.server.js';
|
|
4
4
|
import { omit } from '../../../../util/object.js';
|
|
@@ -33,7 +33,7 @@ export const processFileUpload = Hooks.beforeUpsert(async (args) => {
|
|
|
33
33
|
const sizesConfig = hasSizeConfig ? config.upload.imageSizes : [];
|
|
34
34
|
if (data.file) {
|
|
35
35
|
if (operation === 'update' && args.context.originalDoc) {
|
|
36
|
-
await
|
|
36
|
+
await cleanUpDocumentFile({ config, rime, id: args.context.originalDoc.id });
|
|
37
37
|
}
|
|
38
38
|
const { filename, imageSizes } = await saveFile(data.file, sizesConfig);
|
|
39
39
|
data = {
|
|
@@ -46,7 +46,7 @@ export const processFileUpload = Hooks.beforeUpsert(async (args) => {
|
|
|
46
46
|
if (data.file === null) {
|
|
47
47
|
// delete files
|
|
48
48
|
if (operation === 'update' && args.context.originalDoc) {
|
|
49
|
-
await
|
|
49
|
+
await cleanUpDocumentFile({ config, rime, id: args.context.originalDoc.id });
|
|
50
50
|
}
|
|
51
51
|
// update data for DB update
|
|
52
52
|
for (const size of sizesConfig) {
|
|
@@ -1752,13 +1752,13 @@ export declare function getBaseAuthConfig<const C extends Config>(ctx: {
|
|
|
1752
1752
|
$Infer: {
|
|
1753
1753
|
body: ({
|
|
1754
1754
|
permission: {
|
|
1755
|
-
readonly user?: ("
|
|
1755
|
+
readonly user?: ("update" | "create" | "delete" | "list" | "get" | "set-role" | "ban" | "impersonate" | "set-password")[] | undefined;
|
|
1756
1756
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
1757
1757
|
};
|
|
1758
1758
|
permissions?: never | undefined;
|
|
1759
1759
|
} | {
|
|
1760
1760
|
permissions: {
|
|
1761
|
-
readonly user?: ("
|
|
1761
|
+
readonly user?: ("update" | "create" | "delete" | "list" | "get" | "set-role" | "ban" | "impersonate" | "set-password")[] | undefined;
|
|
1762
1762
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
1763
1763
|
};
|
|
1764
1764
|
permission?: never | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isUploadConfig } from '../../collections/upload/util/config.js';
|
|
2
|
-
import { makeUploadDirectoriesCollectionClient } from '../shared/upload-directories';
|
|
2
|
+
import { makeUploadDirectoriesCollectionClient } from '../shared/upload-directories.js';
|
|
3
3
|
export const augmentDirectories = (config) => {
|
|
4
4
|
const direcotriesCollections = config.collections
|
|
5
5
|
?.filter(isUploadConfig)
|
|
@@ -54,15 +54,15 @@ export declare function createConfigContext<const C extends Config>(config: Buil
|
|
|
54
54
|
/**
|
|
55
55
|
* Retrieves either an area or collection configuration by its slug
|
|
56
56
|
*/
|
|
57
|
-
getBySlug: (slug: string) => import("../../types.js").
|
|
57
|
+
getBySlug: (slug: string) => import("../../types.js").BuiltArea | import("../../types.js").BuiltCollection;
|
|
58
58
|
/**
|
|
59
59
|
* Checks if a slug represents a collection
|
|
60
60
|
*/
|
|
61
|
-
isCollection: (slug
|
|
61
|
+
isCollection: (slug?: string) => slug is CollectionSlug;
|
|
62
62
|
/**
|
|
63
63
|
* Checks if a slug represents an area
|
|
64
64
|
*/
|
|
65
|
-
isArea: (slug
|
|
65
|
+
isArea: (slug?: string) => slug is AreaSlug;
|
|
66
66
|
/**
|
|
67
67
|
* Determines the prototype (collection or area) of a document by its slug
|
|
68
68
|
*/
|
|
@@ -2,7 +2,7 @@ import { augmentHooks } from '../../collections/config/augment-hooks.server.js';
|
|
|
2
2
|
import { exctractPath } from '../../collections/upload/hooks/extract-path.server.js';
|
|
3
3
|
import { prepareDirectoryChildren, updateDirectoryChildren } from '../../collections/upload/hooks/update-directory-children.server.js';
|
|
4
4
|
import { isUploadConfig } from '../../collections/upload/util/config.js';
|
|
5
|
-
import { makeUploadDirectoriesCollectionClient } from '../shared/upload-directories';
|
|
5
|
+
import { makeUploadDirectoriesCollectionClient } from '../shared/upload-directories.js';
|
|
6
6
|
export const augmentDirectoriesServer = (config) => {
|
|
7
7
|
const direcotriesCollections = config.collections
|
|
8
8
|
?.filter(isUploadConfig)
|
|
@@ -6,7 +6,7 @@ export declare const augmentPanelAccess: <const T extends {
|
|
|
6
6
|
readonly panel: {
|
|
7
7
|
$access: (user?: User) => boolean;
|
|
8
8
|
routes?: Record<string, import("../../../types.js").CustomPanelRoute>;
|
|
9
|
-
language?: import("
|
|
9
|
+
language?: import("../../..").PanelLanguage;
|
|
10
10
|
navigation?: {
|
|
11
11
|
groups: Array<{
|
|
12
12
|
label: string;
|
|
@@ -1749,13 +1749,13 @@ export declare const buildConfig: <const C extends Config>(config: C) => Promise
|
|
|
1749
1749
|
$Infer: {
|
|
1750
1750
|
body: ({
|
|
1751
1751
|
permission: {
|
|
1752
|
-
readonly user?: ("
|
|
1752
|
+
readonly user?: ("update" | "create" | "delete" | "list" | "get" | "set-role" | "ban" | "impersonate" | "set-password")[] | undefined;
|
|
1753
1753
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
1754
1754
|
};
|
|
1755
1755
|
permissions?: never | undefined;
|
|
1756
1756
|
} | {
|
|
1757
1757
|
permissions: {
|
|
1758
|
-
readonly user?: ("
|
|
1758
|
+
readonly user?: ("update" | "create" | "delete" | "list" | "get" | "set-role" | "ban" | "impersonate" | "set-password")[] | undefined;
|
|
1759
1759
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
1760
1760
|
};
|
|
1761
1761
|
permission?: never | undefined;
|
|
@@ -1962,9 +1962,9 @@ export declare const buildConfig: <const C extends Config>(config: C) => Promise
|
|
|
1962
1962
|
isValidLocale: (locale: string) => boolean;
|
|
1963
1963
|
getArea: (slug: string) => import("../types.js").BuiltArea;
|
|
1964
1964
|
getCollection: (slug: string) => import("../types.js").BuiltCollection;
|
|
1965
|
-
getBySlug: (slug: string) => import("../types.js").
|
|
1966
|
-
isCollection: (slug
|
|
1967
|
-
isArea: (slug
|
|
1965
|
+
getBySlug: (slug: string) => import("../types.js").BuiltArea | import("../types.js").BuiltCollection;
|
|
1966
|
+
isCollection: (slug?: string) => slug is import("../../types/doc.js").CollectionSlug;
|
|
1967
|
+
isArea: (slug?: string) => slug is import("../../types/doc.js").AreaSlug;
|
|
1968
1968
|
getDocumentPrototype(slug: import("../../types/doc.js").PrototypeSlug): "area" | "collection";
|
|
1969
1969
|
};
|
|
1970
1970
|
readonly plugins: InferPluginsServer<C>;
|
|
@@ -3731,13 +3731,13 @@ export declare const buildConfig: <const C extends Config>(config: C) => Promise
|
|
|
3731
3731
|
$Infer: {
|
|
3732
3732
|
body: ({
|
|
3733
3733
|
permission: {
|
|
3734
|
-
readonly user?: ("
|
|
3734
|
+
readonly user?: ("update" | "create" | "delete" | "list" | "get" | "set-role" | "ban" | "impersonate" | "set-password")[] | undefined;
|
|
3735
3735
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
3736
3736
|
};
|
|
3737
3737
|
permissions?: never | undefined;
|
|
3738
3738
|
} | {
|
|
3739
3739
|
permissions: {
|
|
3740
|
-
readonly user?: ("
|
|
3740
|
+
readonly user?: ("update" | "create" | "delete" | "list" | "get" | "set-role" | "ban" | "impersonate" | "set-password")[] | undefined;
|
|
3741
3741
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
3742
3742
|
};
|
|
3743
3743
|
permission?: never | undefined;
|
|
@@ -3944,9 +3944,9 @@ export declare const buildConfig: <const C extends Config>(config: C) => Promise
|
|
|
3944
3944
|
isValidLocale: (locale: string) => boolean;
|
|
3945
3945
|
getArea: (slug: string) => import("../types.js").BuiltArea;
|
|
3946
3946
|
getCollection: (slug: string) => import("../types.js").BuiltCollection;
|
|
3947
|
-
getBySlug: (slug: string) => import("../types.js").
|
|
3948
|
-
isCollection: (slug
|
|
3949
|
-
isArea: (slug
|
|
3947
|
+
getBySlug: (slug: string) => import("../types.js").BuiltArea | import("../types.js").BuiltCollection;
|
|
3948
|
+
isCollection: (slug?: string) => slug is import("../../types/doc.js").CollectionSlug;
|
|
3949
|
+
isArea: (slug?: string) => slug is import("../../types/doc.js").AreaSlug;
|
|
3950
3950
|
getDocumentPrototype(slug: import("../../types/doc.js").PrototypeSlug): "area" | "collection";
|
|
3951
3951
|
};
|
|
3952
3952
|
setLocale(locale: string | undefined): void;
|
|
@@ -3997,7 +3997,7 @@ declare function augmentConfig<T extends Config>(config: T): T & {
|
|
|
3997
3997
|
readonly panel: {
|
|
3998
3998
|
$access: (user?: import("../../../types.js").User) => boolean;
|
|
3999
3999
|
routes?: Record<string, import("../types.js").CustomPanelRoute>;
|
|
4000
|
-
language?: import("
|
|
4000
|
+
language?: import("../../..").PanelLanguage;
|
|
4001
4001
|
navigation?: {
|
|
4002
4002
|
groups: Array<{
|
|
4003
4003
|
label: string;
|