@strapi/content-manager 5.61.0 → 5.62.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/dist/admin/components/ConfigurationForm/Fields.js +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.mjs +3 -3
- package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
- package/dist/admin/features/I18nSharedFieldsLock.js +54 -0
- package/dist/admin/features/I18nSharedFieldsLock.js.map +1 -0
- package/dist/admin/features/I18nSharedFieldsLock.mjs +31 -0
- package/dist/admin/features/I18nSharedFieldsLock.mjs.map +1 -0
- package/dist/admin/history/components/VersionInputRenderer.js +7 -2
- package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
- package/dist/admin/history/components/VersionInputRenderer.mjs +7 -3
- package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.js +27 -8
- package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.mjs +29 -10
- package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
- package/dist/admin/hooks/useDocument.js +11 -13
- package/dist/admin/hooks/useDocument.js.map +1 -1
- package/dist/admin/hooks/useDocument.mjs +11 -13
- package/dist/admin/hooks/useDocument.mjs.map +1 -1
- package/dist/admin/hooks/useI18nFieldLock.js +169 -0
- package/dist/admin/hooks/useI18nFieldLock.js.map +1 -0
- package/dist/admin/hooks/useI18nFieldLock.mjs +140 -0
- package/dist/admin/hooks/useI18nFieldLock.mjs.map +1 -0
- package/dist/admin/hooks/usePersistentQueryParams.js +16 -3
- package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
- package/dist/admin/hooks/usePersistentQueryParams.mjs +16 -3
- package/dist/admin/hooks/usePersistentQueryParams.mjs.map +1 -1
- package/dist/admin/index.js +5 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +2 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/modules/app.js +8 -1
- package/dist/admin/modules/app.js.map +1 -1
- package/dist/admin/modules/app.mjs +8 -2
- package/dist/admin/modules/app.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +129 -127
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +129 -127
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +11 -4
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +12 -5
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +31 -21
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +32 -22
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.js +98 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.mjs +96 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.js +1103 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.mjs +1077 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.js +211 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.mjs +183 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.js +84 -41
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.mjs +86 -43
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +86 -20
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +89 -23
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +5 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +5 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +142 -22
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +143 -23
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.js +402 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.mjs +389 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +84 -33
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +85 -34
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js +5 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs +5 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +17 -4
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +18 -5
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +54 -6
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +54 -6
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +11 -9
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +12 -10
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +9 -4
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +9 -4
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +66 -63
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +66 -63
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js +7 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs +7 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +14 -9
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.mjs +14 -9
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/forms.js +34 -0
- package/dist/admin/pages/EditView/utils/forms.js.map +1 -1
- package/dist/admin/pages/EditView/utils/forms.mjs +34 -1
- package/dist/admin/pages/EditView/utils/forms.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js +2 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs +2 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +7 -6
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs +7 -6
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +11 -2
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +13 -4
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +15 -5
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.mjs +16 -7
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
- package/dist/admin/preview/components/InputPopover.js +18 -8
- package/dist/admin/preview/components/InputPopover.js.map +1 -1
- package/dist/admin/preview/components/InputPopover.mjs +19 -9
- package/dist/admin/preview/components/InputPopover.mjs.map +1 -1
- package/dist/admin/preview/pages/Preview.js +5 -16
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/pages/Preview.mjs +5 -16
- package/dist/admin/preview/pages/Preview.mjs.map +1 -1
- package/dist/admin/preview/utils/fieldUtils.js +2 -0
- package/dist/admin/preview/utils/fieldUtils.js.map +1 -1
- package/dist/admin/preview/utils/fieldUtils.mjs +2 -1
- package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -1
- package/dist/admin/services/api.js +2 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs +2 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/services/documents.js +21 -1
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +21 -2
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/services/relations.js +47 -1
- package/dist/admin/services/relations.js.map +1 -1
- package/dist/admin/services/relations.mjs +47 -2
- package/dist/admin/services/relations.mjs.map +1 -1
- package/dist/admin/src/exports.d.ts +2 -0
- package/dist/admin/src/features/I18nSharedFieldsLock.d.ts +22 -0
- package/dist/admin/src/history/components/VersionInputRenderer.d.ts +7 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useI18nFieldLock.d.ts +61 -0
- package/dist/admin/src/modules/app.d.ts +4 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/AddComponentMenu.d.ts +15 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/ComponentCopyModal.d.ts +58 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/CopiedComponents.d.ts +41 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/Initializer.d.ts +7 -3
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/NonRepeatable.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/Repeatable.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/utils/componentCopy.d.ts +115 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.d.ts +6 -3
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.d.ts +2 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +5 -1
- package/dist/admin/src/pages/EditView/utils/forms.d.ts +13 -2
- package/dist/admin/src/pages/ListView/components/Filters.d.ts +12 -3
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/preview/utils/fieldUtils.d.ts +1 -0
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +25 -21
- package/dist/admin/src/services/homepage.d.ts +1 -1
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +5 -3
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/translations/en.json.js +41 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +41 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/server/controllers/relations.js +4 -2
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +4 -2
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/utils/metadata.js +3 -1
- package/dist/server/controllers/utils/metadata.js.map +1 -1
- package/dist/server/controllers/utils/metadata.mjs +3 -1
- package/dist/server/controllers/utils/metadata.mjs.map +1 -1
- package/dist/server/history/services/utils.js +3 -1
- package/dist/server/history/services/utils.js.map +1 -1
- package/dist/server/history/services/utils.mjs +3 -1
- package/dist/server/history/services/utils.mjs.map +1 -1
- package/dist/server/homepage/services/homepage-query-utils.js +14 -0
- package/dist/server/homepage/services/homepage-query-utils.js.map +1 -1
- package/dist/server/homepage/services/homepage-query-utils.mjs +14 -1
- package/dist/server/homepage/services/homepage-query-utils.mjs.map +1 -1
- package/dist/server/homepage/services/homepage.js +1 -1
- package/dist/server/homepage/services/homepage.js.map +1 -1
- package/dist/server/homepage/services/homepage.mjs +2 -2
- package/dist/server/homepage/services/homepage.mjs.map +1 -1
- package/dist/server/mcp/sanitizers/shape-relations.js +1 -3
- package/dist/server/mcp/sanitizers/shape-relations.js.map +1 -1
- package/dist/server/mcp/sanitizers/shape-relations.mjs +1 -3
- package/dist/server/mcp/sanitizers/shape-relations.mjs.map +1 -1
- package/dist/server/mcp/schemas/output-schemas.js +2 -1
- package/dist/server/mcp/schemas/output-schemas.js.map +1 -1
- package/dist/server/mcp/schemas/output-schemas.mjs +2 -1
- package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -1
- package/dist/server/services/document-manager.js +3 -2
- package/dist/server/services/document-manager.js.map +1 -1
- package/dist/server/services/document-manager.mjs +3 -2
- package/dist/server/services/document-manager.mjs.map +1 -1
- package/dist/server/services/document-metadata.js +92 -4
- package/dist/server/services/document-metadata.js.map +1 -1
- package/dist/server/services/document-metadata.mjs +92 -4
- package/dist/server/services/document-metadata.mjs.map +1 -1
- package/dist/server/services/permission-checker.js +20 -8
- package/dist/server/services/permission-checker.js.map +1 -1
- package/dist/server/services/permission-checker.mjs +20 -8
- package/dist/server/services/permission-checker.mjs.map +1 -1
- package/dist/server/services/uid.js +2 -1
- package/dist/server/services/uid.js.map +1 -1
- package/dist/server/services/uid.mjs +2 -1
- package/dist/server/services/uid.mjs.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts +1 -0
- package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage-query-utils.d.ts +6 -0
- package/dist/server/src/homepage/services/homepage-query-utils.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +21 -7
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/mcp/sanitizers/shape-relations.d.ts.map +1 -1
- package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts +5 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +21 -7
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission-checker.d.ts +6 -5
- package/dist/server/src/services/permission-checker.d.ts.map +1 -1
- package/dist/server/src/services/uid.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +7 -0
- package/dist/shared/contracts/collection-types.d.ts.map +1 -1
- package/dist/shared/contracts/single-types.d.ts +4 -0
- package/dist/shared/contracts/single-types.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -10,6 +10,7 @@ const ACTIONS = {
|
|
|
10
10
|
unpublish: 'plugin::content-manager.explorer.publish',
|
|
11
11
|
discard: 'plugin::content-manager.explorer.update'
|
|
12
12
|
};
|
|
13
|
+
const ACTION_NAMES = Object.keys(ACTIONS);
|
|
13
14
|
const createPermissionChecker = (strapi)=>({ userAbility, model })=>{
|
|
14
15
|
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
|
|
15
16
|
ability: userAbility,
|
|
@@ -84,17 +85,28 @@ const createPermissionChecker = (strapi)=>({ userAbility, model })=>{
|
|
|
84
85
|
};
|
|
85
86
|
const sanitizeCreateInput = (data)=>sanitizeInput(ACTIONS.create, data);
|
|
86
87
|
const sanitizeUpdateInput = (entity)=>(data)=>sanitizeInput(ACTIONS.update, data, entity);
|
|
87
|
-
const buildPermissionQuery = (query, action
|
|
88
|
+
const buildPermissionQuery = (query, action)=>{
|
|
88
89
|
return permissionsManager.addPermissionsQueryTo(query, action);
|
|
89
90
|
};
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Sanitizes the query with the rules of the action, then adds the action's permission
|
|
93
|
+
* conditions to it. The action defaults to read.
|
|
94
|
+
* The action can also be given as a plain string, the v4 signature
|
|
95
|
+
* `sanitizedQuery(query, actionUID)`, which untyped plugin code may still use.
|
|
96
|
+
*/ const sanitizedQueryForAction = (query, options = {})=>{
|
|
97
|
+
const action = typeof options === 'string' ? options : options.action ?? ACTIONS.read;
|
|
98
|
+
return async.pipe((q)=>sanitizeQuery(q, {
|
|
99
|
+
action
|
|
100
|
+
}), (q)=>buildPermissionQuery(q, action))(query);
|
|
92
101
|
};
|
|
93
|
-
// Sanitized queries shortcuts
|
|
94
|
-
Object.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
102
|
+
// Sanitized queries shortcuts, e.g. `sanitizedQuery.update(query)`
|
|
103
|
+
const sanitizedQueryShortcuts = Object.fromEntries(ACTION_NAMES.map((name)=>[
|
|
104
|
+
name,
|
|
105
|
+
(query)=>sanitizedQueryForAction(query, {
|
|
106
|
+
action: ACTIONS[name]
|
|
107
|
+
})
|
|
108
|
+
]));
|
|
109
|
+
const sanitizedQuery = Object.assign(sanitizedQueryForAction, sanitizedQueryShortcuts);
|
|
98
110
|
// Permission utils shortcuts
|
|
99
111
|
Object.keys(ACTIONS).forEach((action)=>{
|
|
100
112
|
// @ts-expect-error TODO
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-checker.mjs","sources":["../../../server/src/services/permission-checker.ts"],"sourcesContent":["import type { Ability } from '@casl/ability';\nimport { async } from '@strapi/utils';\nimport { isEmpty } from 'lodash';\n\nimport type { Core, UID, Modules } from '@strapi/types';\n\nexport const ACTIONS = {\n read: 'plugin::content-manager.explorer.read',\n create: 'plugin::content-manager.explorer.create',\n update: 'plugin::content-manager.explorer.update',\n delete: 'plugin::content-manager.explorer.delete',\n publish: 'plugin::content-manager.explorer.publish',\n unpublish: 'plugin::content-manager.explorer.publish',\n discard: 'plugin::content-manager.explorer.update',\n} as const;\n\ntype Entity = Modules.EntityService.Result<UID.ContentType>;\ntype Query = {\n page?: string;\n pageSize?: string;\n sort?: string;\n};\n\nconst createPermissionChecker =\n (strapi: Core.Strapi) =>\n ({ userAbility, model }: { userAbility: Ability; model: string }) => {\n const permissionsManager = strapi.service('admin::permission').createPermissionsManager({\n ability: userAbility,\n model,\n });\n\n const { actionProvider } = strapi.service('admin::permission');\n\n const toSubject = (entity?: Entity) => {\n return entity ? permissionsManager.toSubject(entity, model) : model;\n };\n\n const can = (action: string, entity: Entity | undefined, field: string) => {\n const subject = toSubject(entity);\n const aliases = actionProvider.unstable_aliases(action, model) as string[];\n\n return (\n // Test the original action to see if it passes\n userAbility.can(action, subject, field) ||\n // Else try every known alias if at least one of them succeed, then the user \"can\"\n aliases.some((alias) => userAbility.can(alias, subject, field))\n );\n };\n\n const cannot = (action: string, entity: Entity | undefined, field: string) => {\n const subject = toSubject(entity);\n const aliases = actionProvider.unstable_aliases(action, model) as string[];\n\n return (\n // Test both the original action\n userAbility.cannot(action, subject, field) &&\n // and every known alias, if all of them fail (cannot), then the user truly \"cannot\"\n aliases.every((alias) => userAbility.cannot(alias, subject, field))\n );\n };\n\n const sanitizeOutput = (data: Entity, { action = ACTIONS.read }: { action?: string } = {}) => {\n return permissionsManager.sanitizeOutput(data, { subject: toSubject(data), action });\n };\n\n const getRulesForAction = (action: string) => {\n if (typeof userAbility.rulesFor !== 'function') {\n return [];\n }\n\n const aliases = actionProvider.unstable_aliases(action, model) as string[];\n const actions = [action, ...aliases];\n\n return actions.flatMap((actionName) => userAbility.rulesFor(actionName, model));\n };\n\n // Tell callers if we need the full entity to check access\n const requiresEntity = (action: string) => {\n if (typeof userAbility.rulesFor !== 'function') {\n return true;\n }\n\n const rules = getRulesForAction(action);\n\n return rules.some((rule: any) => rule.conditions && !isEmpty(rule.conditions));\n };\n\n const sanitizeQuery = (query: Query, { action = ACTIONS.read }: { action?: string } = {}) => {\n return permissionsManager.sanitizeQuery(query, { subject: model, action });\n };\n\n const sanitizeInput = (action: string, data: any, entity?: Entity) => {\n return permissionsManager.sanitizeInput(data, {\n subject: entity ? toSubject(entity) : model,\n action,\n });\n };\n\n const validateQuery = (query: Query, { action = ACTIONS.read }: { action?: string } = {}) => {\n return permissionsManager.validateQuery(query, { subject: model, action });\n };\n\n const validateInput = (action: string, data: any, entity?: Entity) => {\n return permissionsManager.validateInput(data, {\n subject: entity ? toSubject(entity) : model,\n action,\n });\n };\n\n const sanitizeCreateInput = (data: any) => sanitizeInput(ACTIONS.create, data);\n const sanitizeUpdateInput = (entity: Entity) => (data: any) =>\n sanitizeInput(ACTIONS.update, data, entity);\n\n const buildPermissionQuery = (query: Query, action: { action?: string } = {}) => {\n return permissionsManager.addPermissionsQueryTo(query, action);\n };\n\n const sanitizedQuery = (query: Query, action: { action?: string } = {}) => {\n return async.pipe(\n (q: Query) => sanitizeQuery(q, action),\n (q: Query) => buildPermissionQuery(q, action)\n )(query);\n };\n\n // Sanitized queries shortcuts\n Object.keys(ACTIONS).forEach((action) => {\n // @ts-expect-error TODO\n sanitizedQuery[action] = (query: Query) => sanitizedQuery(query, ACTIONS[action]);\n });\n\n // Permission utils shortcuts\n Object.keys(ACTIONS).forEach((action) => {\n // @ts-expect-error TODO\n can[action] = (...args: any) => can(ACTIONS[action], ...args);\n // @ts-expect-error TODO\n cannot[action] = (...args: any) => cannot(ACTIONS[action], ...args);\n // @ts-expect-error TODO\n requiresEntity[action] = () => requiresEntity(ACTIONS[action]);\n });\n\n return {\n // Permission utils\n can, // check if you have the permission\n cannot, // check if you don't have the permission\n requiresEntity, // check if entity data is needed for permission evaluation\n // Sanitizers\n sanitizeOutput,\n sanitizeQuery,\n sanitizeCreateInput,\n sanitizeUpdateInput,\n // Validators\n validateQuery,\n validateInput,\n // Queries Builder\n sanitizedQuery,\n };\n };\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n create: createPermissionChecker(strapi),\n});\n"],"names":["ACTIONS","read","create","update","delete","publish","unpublish","discard","createPermissionChecker","strapi","userAbility","model","permissionsManager","service","createPermissionsManager","ability","actionProvider","toSubject","entity","can","action","field","subject","aliases","unstable_aliases","some","alias","cannot","every","sanitizeOutput","data","getRulesForAction","rulesFor","actions","flatMap","actionName","requiresEntity","rules","rule","conditions","isEmpty","sanitizeQuery","query","sanitizeInput","validateQuery","validateInput","sanitizeCreateInput","sanitizeUpdateInput","buildPermissionQuery","addPermissionsQueryTo","sanitizedQuery","async","pipe","q","Object","keys","forEach","args"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"permission-checker.mjs","sources":["../../../server/src/services/permission-checker.ts"],"sourcesContent":["import type { Ability } from '@casl/ability';\nimport { async } from '@strapi/utils';\nimport { isEmpty } from 'lodash';\n\nimport type { Core, UID, Modules } from '@strapi/types';\n\nexport const ACTIONS = {\n read: 'plugin::content-manager.explorer.read',\n create: 'plugin::content-manager.explorer.create',\n update: 'plugin::content-manager.explorer.update',\n delete: 'plugin::content-manager.explorer.delete',\n publish: 'plugin::content-manager.explorer.publish',\n unpublish: 'plugin::content-manager.explorer.publish',\n discard: 'plugin::content-manager.explorer.update',\n} as const;\n\ntype ActionName = keyof typeof ACTIONS;\n\nconst ACTION_NAMES = Object.keys(ACTIONS) as ActionName[];\n\ntype SanitizedQueryOptions = { action?: string } | string;\n\ntype Entity = Modules.EntityService.Result<UID.ContentType>;\ntype Query = {\n page?: string;\n pageSize?: string;\n sort?: string;\n};\n\nconst createPermissionChecker =\n (strapi: Core.Strapi) =>\n ({ userAbility, model }: { userAbility: Ability; model: string }) => {\n const permissionsManager = strapi.service('admin::permission').createPermissionsManager({\n ability: userAbility,\n model,\n });\n\n const { actionProvider } = strapi.service('admin::permission');\n\n const toSubject = (entity?: Entity) => {\n return entity ? permissionsManager.toSubject(entity, model) : model;\n };\n\n const can = (action: string, entity?: Entity, field?: string) => {\n const subject = toSubject(entity);\n const aliases = actionProvider.unstable_aliases(action, model) as string[];\n\n return (\n // Test the original action to see if it passes\n userAbility.can(action, subject, field) ||\n // Else try every known alias if at least one of them succeed, then the user \"can\"\n aliases.some((alias) => userAbility.can(alias, subject, field))\n );\n };\n\n const cannot = (action: string, entity?: Entity, field?: string) => {\n const subject = toSubject(entity);\n const aliases = actionProvider.unstable_aliases(action, model) as string[];\n\n return (\n // Test both the original action\n userAbility.cannot(action, subject, field) &&\n // and every known alias, if all of them fail (cannot), then the user truly \"cannot\"\n aliases.every((alias) => userAbility.cannot(alias, subject, field))\n );\n };\n\n const sanitizeOutput = (data: Entity, { action = ACTIONS.read }: { action?: string } = {}) => {\n return permissionsManager.sanitizeOutput(data, { subject: toSubject(data), action });\n };\n\n const getRulesForAction = (action: string) => {\n if (typeof userAbility.rulesFor !== 'function') {\n return [];\n }\n\n const aliases = actionProvider.unstable_aliases(action, model) as string[];\n const actions = [action, ...aliases];\n\n return actions.flatMap((actionName) => userAbility.rulesFor(actionName, model));\n };\n\n // Tell callers if we need the full entity to check access\n const requiresEntity = (action: string) => {\n if (typeof userAbility.rulesFor !== 'function') {\n return true;\n }\n\n const rules = getRulesForAction(action);\n\n return rules.some((rule: any) => rule.conditions && !isEmpty(rule.conditions));\n };\n\n const sanitizeQuery = (query: Query, { action = ACTIONS.read }: { action?: string } = {}) => {\n return permissionsManager.sanitizeQuery(query, { subject: model, action });\n };\n\n const sanitizeInput = (action: string, data: any, entity?: Entity) => {\n return permissionsManager.sanitizeInput(data, {\n subject: entity ? toSubject(entity) : model,\n action,\n });\n };\n\n const validateQuery = (query: Query, { action = ACTIONS.read }: { action?: string } = {}) => {\n return permissionsManager.validateQuery(query, { subject: model, action });\n };\n\n const validateInput = (action: string, data: any, entity?: Entity) => {\n return permissionsManager.validateInput(data, {\n subject: entity ? toSubject(entity) : model,\n action,\n });\n };\n\n const sanitizeCreateInput = (data: any) => sanitizeInput(ACTIONS.create, data);\n const sanitizeUpdateInput = (entity: Entity) => (data: any) =>\n sanitizeInput(ACTIONS.update, data, entity);\n\n const buildPermissionQuery = (query: Query, action: string) => {\n return permissionsManager.addPermissionsQueryTo(query, action);\n };\n\n /**\n * Sanitizes the query with the rules of the action, then adds the action's permission\n * conditions to it. The action defaults to read.\n * The action can also be given as a plain string, the v4 signature\n * `sanitizedQuery(query, actionUID)`, which untyped plugin code may still use.\n */\n const sanitizedQueryForAction = (query: Query, options: SanitizedQueryOptions = {}) => {\n const action = typeof options === 'string' ? options : (options.action ?? ACTIONS.read);\n\n return async.pipe(\n (q: Query) => sanitizeQuery(q, { action }),\n (q: Query) => buildPermissionQuery(q, action)\n )(query);\n };\n\n // Sanitized queries shortcuts, e.g. `sanitizedQuery.update(query)`\n const sanitizedQueryShortcuts = Object.fromEntries(\n ACTION_NAMES.map((name) => [\n name,\n (query: Query) => sanitizedQueryForAction(query, { action: ACTIONS[name] }),\n ])\n ) as Record<ActionName, (query: Query) => ReturnType<typeof sanitizedQueryForAction>>;\n\n const sanitizedQuery = Object.assign(sanitizedQueryForAction, sanitizedQueryShortcuts);\n\n // Permission utils shortcuts\n Object.keys(ACTIONS).forEach((action) => {\n // @ts-expect-error TODO\n can[action] = (...args: any) => can(ACTIONS[action], ...args);\n // @ts-expect-error TODO\n cannot[action] = (...args: any) => cannot(ACTIONS[action], ...args);\n // @ts-expect-error TODO\n requiresEntity[action] = () => requiresEntity(ACTIONS[action]);\n });\n\n return {\n // Permission utils\n can, // check if you have the permission\n cannot, // check if you don't have the permission\n requiresEntity, // check if entity data is needed for permission evaluation\n // Sanitizers\n sanitizeOutput,\n sanitizeQuery,\n sanitizeCreateInput,\n sanitizeUpdateInput,\n // Validators\n validateQuery,\n validateInput,\n // Queries Builder\n sanitizedQuery,\n };\n };\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n create: createPermissionChecker(strapi),\n});\n"],"names":["ACTIONS","read","create","update","delete","publish","unpublish","discard","ACTION_NAMES","Object","keys","createPermissionChecker","strapi","userAbility","model","permissionsManager","service","createPermissionsManager","ability","actionProvider","toSubject","entity","can","action","field","subject","aliases","unstable_aliases","some","alias","cannot","every","sanitizeOutput","data","getRulesForAction","rulesFor","actions","flatMap","actionName","requiresEntity","rules","rule","conditions","isEmpty","sanitizeQuery","query","sanitizeInput","validateQuery","validateInput","sanitizeCreateInput","sanitizeUpdateInput","buildPermissionQuery","addPermissionsQueryTo","sanitizedQueryForAction","options","async","pipe","q","sanitizedQueryShortcuts","fromEntries","map","name","sanitizedQuery","assign","forEach","args"],"mappings":"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"}
|
|
@@ -15,7 +15,8 @@ var uid = (({ strapi })=>({
|
|
|
15
15
|
const { targetField, default: defaultValue, options } = attributes[field];
|
|
16
16
|
// @ts-expect-error targetField can be undefined
|
|
17
17
|
const targetValue = ___default.default.get(data, targetField);
|
|
18
|
-
|
|
18
|
+
// Only strings can be slugified; any other value falls back like an empty one
|
|
19
|
+
if (typeof targetValue === 'string' && targetValue !== '') {
|
|
19
20
|
return this.findUniqueUID({
|
|
20
21
|
contentTypeUID,
|
|
21
22
|
field,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uid.js","sources":["../../../server/src/services/uid.ts"],"sourcesContent":["import _ from 'lodash';\nimport slugify from '@sindresorhus/slugify';\n\nimport type { Core, Schema, UID } from '@strapi/types';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n async generateUIDField({\n contentTypeUID,\n field,\n data,\n locale,\n }: {\n contentTypeUID: UID.ContentType;\n field: string;\n data: Record<string, any>;\n locale?: string;\n }) {\n const contentType = strapi.contentTypes[contentTypeUID];\n const { attributes } = contentType;\n\n const {\n targetField,\n default: defaultValue,\n options,\n } = attributes[field] as Schema.Attribute.UID;\n\n // @ts-expect-error targetField can be undefined\n const targetValue = _.get(data, targetField);\n\n if (
|
|
1
|
+
{"version":3,"file":"uid.js","sources":["../../../server/src/services/uid.ts"],"sourcesContent":["import _ from 'lodash';\nimport slugify from '@sindresorhus/slugify';\n\nimport type { Core, Schema, UID } from '@strapi/types';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n async generateUIDField({\n contentTypeUID,\n field,\n data,\n locale,\n }: {\n contentTypeUID: UID.ContentType;\n field: string;\n data: Record<string, any>;\n locale?: string;\n }) {\n const contentType = strapi.contentTypes[contentTypeUID];\n const { attributes } = contentType;\n\n const {\n targetField,\n default: defaultValue,\n options,\n } = attributes[field] as Schema.Attribute.UID;\n\n // @ts-expect-error targetField can be undefined\n const targetValue: unknown = _.get(data, targetField);\n\n // Only strings can be slugified; any other value falls back like an empty one\n if (typeof targetValue === 'string' && targetValue !== '') {\n return this.findUniqueUID({\n contentTypeUID,\n field,\n value: slugify(targetValue, options),\n locale,\n });\n }\n\n return this.findUniqueUID({\n contentTypeUID,\n field,\n value: slugify(\n _.isFunction(defaultValue) ? defaultValue() : defaultValue || contentType.modelName,\n options\n ),\n locale,\n });\n },\n\n async findUniqueUID({\n contentTypeUID,\n field,\n value,\n locale,\n }: {\n contentTypeUID: UID.ContentType;\n field: string;\n value: string;\n locale?: string;\n }) {\n const foundDocuments = await strapi.documents(contentTypeUID).findMany({\n filters: {\n [field]: { $startsWith: value },\n },\n locale,\n // TODO: Check UX. When modifying an entry, it only makes sense to check for collisions with other drafts\n // However, when publishing this \"available\" UID might collide with another published entry\n status: 'draft',\n });\n\n if (!foundDocuments || foundDocuments.length === 0) {\n // If there are no documents found we can return the value as is\n return value;\n }\n\n let possibleCollisions: string[];\n if (!Array.isArray(foundDocuments)) {\n possibleCollisions = [foundDocuments[field]];\n } else {\n possibleCollisions = foundDocuments.map((doc: any) => doc[field]);\n }\n\n // If there are no documents sharing the proposed UID, we can return the value as is\n if (!possibleCollisions.includes(value)) {\n return value;\n }\n\n let i = 1;\n let tmpUId = `${value}-${i}`;\n while (possibleCollisions.includes(tmpUId)) {\n // While there are documents sharing the proposed UID, we need to find a new one\n // by incrementing the suffix until we find a unique one\n i += 1;\n tmpUId = `${value}-${i}`;\n }\n\n return tmpUId;\n },\n\n async checkUIDAvailability({\n contentTypeUID,\n field,\n value,\n locale,\n }: {\n contentTypeUID: UID.ContentType;\n field: string;\n value: string;\n locale?: string;\n }) {\n const documentCount = await strapi.documents(contentTypeUID).count({\n filters: {\n [field]: value,\n },\n locale,\n // TODO: Check UX. When modifying an entry, it only makes sense to check for collisions with other drafts\n // However, when publishing this \"available\" UID might collide with another published entry\n status: 'draft',\n });\n\n if (documentCount && documentCount > 0) {\n // If there are documents sharing the proposed UID, we can return false\n return false;\n }\n\n return true;\n },\n});\n"],"names":["strapi","generateUIDField","contentTypeUID","field","data","locale","contentType","contentTypes","attributes","targetField","default","defaultValue","options","targetValue","_","get","findUniqueUID","value","slugify","isFunction","modelName","foundDocuments","documents","findMany","filters","$startsWith","status","length","possibleCollisions","Array","isArray","map","doc","includes","i","tmpUId","checkUIDAvailability","documentCount","count"],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@ var uid = (({ strapi })=>({
|
|
|
8
8
|
const { targetField, default: defaultValue, options } = attributes[field];
|
|
9
9
|
// @ts-expect-error targetField can be undefined
|
|
10
10
|
const targetValue = _.get(data, targetField);
|
|
11
|
-
|
|
11
|
+
// Only strings can be slugified; any other value falls back like an empty one
|
|
12
|
+
if (typeof targetValue === 'string' && targetValue !== '') {
|
|
12
13
|
return this.findUniqueUID({
|
|
13
14
|
contentTypeUID,
|
|
14
15
|
field,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uid.mjs","sources":["../../../server/src/services/uid.ts"],"sourcesContent":["import _ from 'lodash';\nimport slugify from '@sindresorhus/slugify';\n\nimport type { Core, Schema, UID } from '@strapi/types';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n async generateUIDField({\n contentTypeUID,\n field,\n data,\n locale,\n }: {\n contentTypeUID: UID.ContentType;\n field: string;\n data: Record<string, any>;\n locale?: string;\n }) {\n const contentType = strapi.contentTypes[contentTypeUID];\n const { attributes } = contentType;\n\n const {\n targetField,\n default: defaultValue,\n options,\n } = attributes[field] as Schema.Attribute.UID;\n\n // @ts-expect-error targetField can be undefined\n const targetValue = _.get(data, targetField);\n\n if (
|
|
1
|
+
{"version":3,"file":"uid.mjs","sources":["../../../server/src/services/uid.ts"],"sourcesContent":["import _ from 'lodash';\nimport slugify from '@sindresorhus/slugify';\n\nimport type { Core, Schema, UID } from '@strapi/types';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n async generateUIDField({\n contentTypeUID,\n field,\n data,\n locale,\n }: {\n contentTypeUID: UID.ContentType;\n field: string;\n data: Record<string, any>;\n locale?: string;\n }) {\n const contentType = strapi.contentTypes[contentTypeUID];\n const { attributes } = contentType;\n\n const {\n targetField,\n default: defaultValue,\n options,\n } = attributes[field] as Schema.Attribute.UID;\n\n // @ts-expect-error targetField can be undefined\n const targetValue: unknown = _.get(data, targetField);\n\n // Only strings can be slugified; any other value falls back like an empty one\n if (typeof targetValue === 'string' && targetValue !== '') {\n return this.findUniqueUID({\n contentTypeUID,\n field,\n value: slugify(targetValue, options),\n locale,\n });\n }\n\n return this.findUniqueUID({\n contentTypeUID,\n field,\n value: slugify(\n _.isFunction(defaultValue) ? defaultValue() : defaultValue || contentType.modelName,\n options\n ),\n locale,\n });\n },\n\n async findUniqueUID({\n contentTypeUID,\n field,\n value,\n locale,\n }: {\n contentTypeUID: UID.ContentType;\n field: string;\n value: string;\n locale?: string;\n }) {\n const foundDocuments = await strapi.documents(contentTypeUID).findMany({\n filters: {\n [field]: { $startsWith: value },\n },\n locale,\n // TODO: Check UX. When modifying an entry, it only makes sense to check for collisions with other drafts\n // However, when publishing this \"available\" UID might collide with another published entry\n status: 'draft',\n });\n\n if (!foundDocuments || foundDocuments.length === 0) {\n // If there are no documents found we can return the value as is\n return value;\n }\n\n let possibleCollisions: string[];\n if (!Array.isArray(foundDocuments)) {\n possibleCollisions = [foundDocuments[field]];\n } else {\n possibleCollisions = foundDocuments.map((doc: any) => doc[field]);\n }\n\n // If there are no documents sharing the proposed UID, we can return the value as is\n if (!possibleCollisions.includes(value)) {\n return value;\n }\n\n let i = 1;\n let tmpUId = `${value}-${i}`;\n while (possibleCollisions.includes(tmpUId)) {\n // While there are documents sharing the proposed UID, we need to find a new one\n // by incrementing the suffix until we find a unique one\n i += 1;\n tmpUId = `${value}-${i}`;\n }\n\n return tmpUId;\n },\n\n async checkUIDAvailability({\n contentTypeUID,\n field,\n value,\n locale,\n }: {\n contentTypeUID: UID.ContentType;\n field: string;\n value: string;\n locale?: string;\n }) {\n const documentCount = await strapi.documents(contentTypeUID).count({\n filters: {\n [field]: value,\n },\n locale,\n // TODO: Check UX. When modifying an entry, it only makes sense to check for collisions with other drafts\n // However, when publishing this \"available\" UID might collide with another published entry\n status: 'draft',\n });\n\n if (documentCount && documentCount > 0) {\n // If there are documents sharing the proposed UID, we can return false\n return false;\n }\n\n return true;\n },\n});\n"],"names":["strapi","generateUIDField","contentTypeUID","field","data","locale","contentType","contentTypes","attributes","targetField","default","defaultValue","options","targetValue","_","get","findUniqueUID","value","slugify","isFunction","modelName","foundDocuments","documents","findMany","filters","$startsWith","status","length","possibleCollisions","Array","isArray","map","doc","includes","i","tmpUId","checkUIDAvailability","documentCount","count"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/relations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;;uCAsJb,GAAG,OAAO,IAAI,CAAC,EAAE;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/relations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;;uCAsJb,GAAG,OAAO,IAAI,CAAC,EAAE;;;;;;;;;;;;;;;;;;;IAkI1D;;;;OAIG;uBACsB,GAAG;sBAmJJ,GAAG;;AA3R7B,wBA6ZE"}
|
|
@@ -9,6 +9,7 @@ export declare const formatDocumentWithMetadata: (permissionChecker: any, uid: U
|
|
|
9
9
|
meta: {
|
|
10
10
|
availableLocales: never[] | AvailableLocaleDocument[];
|
|
11
11
|
availableStatus: Pick<any, string>[] | Partial<DocumentVersion>[];
|
|
12
|
+
defaultLocale: string | null;
|
|
12
13
|
};
|
|
13
14
|
data: {
|
|
14
15
|
status: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../../../server/src/controllers/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAKzC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEvF,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,+CAA+C,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,mBAAmB,GAAG,EACtB,KAAK,GAAG,CAAC,WAAW,EACpB,UAAU,eAAe,EACzB,OAAM,kBAAuB
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../../../server/src/controllers/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAKzC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEvF,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,+CAA+C,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,mBAAmB,GAAG,EACtB,KAAK,GAAG,CAAC,WAAW,EACpB,UAAU,eAAe,EACzB,OAAM,kBAAuB;;;;;;;;;;;;;;;EA+B9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../server/src/history/services/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAG9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,sBAAsB,OAAO,EAC7B,mBAAmB,MAAM,GAAG,IAAI,GAAG,SAAS,KAC3C,MAeF,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;uDAMzC,oBAAoB,CAAC,QAAQ,CAAC,+BAC1B,MAAM,CAAC,gBAAgB;;;;mDA4C/B,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,aACzE,MAAM,CAAC,SAAS,CAAC,kBAAkB;gDA8BzB,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;;oCAmB/C,MAAM,CAAC,WAAW;+BAQnB,OAAO,CAAC;QAC5C,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;;uCA2BgB,eAAe,CAAC,oBAAoB,CAAC,aAAa,CAAC,YACzD,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../server/src/history/services/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAG9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,sBAAsB,OAAO,EAC7B,mBAAmB,MAAM,GAAG,IAAI,GAAG,SAAS,KAC3C,MAeF,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;uDAMzC,oBAAoB,CAAC,QAAQ,CAAC,+BAC1B,MAAM,CAAC,gBAAgB;;;;mDA4C/B,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,aACzE,MAAM,CAAC,SAAS,CAAC,kBAAkB;gDA8BzB,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;;oCAmB/C,MAAM,CAAC,WAAW;+BAQnB,OAAO,CAAC;QAC5C,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;;uCA2BgB,eAAe,CAAC,oBAAoB,CAAC,aAAa,CAAC,YACzD,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI;2BAqClB,GAAG,CAAC,MAAM;iCA+DE;QAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAA;KAAE,EAAE,KAAG,OAAO,CAAC,gBAAgB,CAAC;mCAwC7E;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,EAAE,mBACc,MAAM,CAAC,SAAS,CAAC,kBAAkB,KACnD,OAAO,CAAC,gBAAgB,CAAC;CAkD7B,CAAC"}
|
|
@@ -25,4 +25,10 @@ export declare const buildHomepageQueryFields: (contentType: Schema.ContentType,
|
|
|
25
25
|
* Picks a main field that is present in the sanitized fields selection.
|
|
26
26
|
*/
|
|
27
27
|
export declare const resolveTitleField: (mainField: string, sanitizedFields: string[] | undefined) => string;
|
|
28
|
+
/**
|
|
29
|
+
* Formats the main field value as the recent document title.
|
|
30
|
+
* The main field can be any listable attribute (integer, boolean, date…), but the widgets render
|
|
31
|
+
* the title as text. An empty value falls back to the document id.
|
|
32
|
+
*/
|
|
33
|
+
export declare const formatRecentDocumentTitle: (value: unknown, documentId: string) => string;
|
|
28
34
|
//# sourceMappingURL=homepage-query-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage-query-utils.d.ts","sourceRoot":"","sources":["../../../../../server/src/homepage/services/homepage-query-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;KAChD,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,OAAO,KAAG,MAAM,EAAE,GAAG,SAMnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,CAAC,WAAW,EAC/B,eAAe;IAAE,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,EAChE,mBAAmB,yBAAyB,KAC3C,MAQF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,CAAC,WAAW,EAC/B,WAAW,MAAM,KAChB,MAAM,EAgBR,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,iBAAiB,MAAM,EAAE,GAAG,SAAS,KACpC,MAMF,CAAC"}
|
|
1
|
+
{"version":3,"file":"homepage-query-utils.d.ts","sourceRoot":"","sources":["../../../../../server/src/homepage/services/homepage-query-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;KAChD,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,OAAO,KAAG,MAAM,EAAE,GAAG,SAMnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,CAAC,WAAW,EAC/B,eAAe;IAAE,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,EAChE,mBAAmB,yBAAyB,KAC3C,MAQF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,CAAC,WAAW,EAC/B,WAAW,MAAM,KAChB,MAAM,EAgBR,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,iBAAiB,MAAM,EAAE,GAAG,SAAS,KACpC,MAMF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,OAAO,OAAO,EAAE,YAAY,MAAM,KAAG,MAU9E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../../../server/src/homepage/services/homepage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,eAAe,CAAC;AAG3D,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACf,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../../../server/src/homepage/services/homepage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,eAAe,CAAC;AAG3D,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACf,MAAM,uCAAuC,CAAC;AAU/C,QAAA,MAAM,qBAAqB,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;oCAkMxB,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;+CAgCxD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,wBACzB,OAAO,GAC5B,OAAO,CAAC,cAAc,EAAE,CAAC;qCA0DW,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;mCAY9C,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;yBAQtD,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAkEzE,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -211,10 +211,12 @@ declare const _default: () => {
|
|
|
211
211
|
getMetadata(uid: import("@strapi/types/dist/uid/index.js").ContentType, version: import("./services/document-metadata").DocumentVersion, { availableLocales, availableStatus }?: import("./services/document-metadata").GetMetadataOptions): Promise<{
|
|
212
212
|
availableLocales: never[];
|
|
213
213
|
availableStatus: Pick<any, string>[];
|
|
214
|
+
defaultLocale: string | null;
|
|
214
215
|
versions: import("./services/document-metadata").DocumentVersion[];
|
|
215
216
|
} | {
|
|
216
217
|
availableLocales: import("../../shared/contracts/collection-types").AvailableLocaleDocument[];
|
|
217
218
|
availableStatus: Partial<import("./services/document-metadata").DocumentVersion>[];
|
|
219
|
+
defaultLocale: string | null;
|
|
218
220
|
versions: any[];
|
|
219
221
|
}>;
|
|
220
222
|
formatDocumentWithMetadata(uid: import("@strapi/types/dist/uid/index.js").ContentType, document: import("./services/document-metadata").DocumentVersion, opts?: import("./services/document-metadata").GetMetadataOptions): Promise<{
|
|
@@ -230,9 +232,11 @@ declare const _default: () => {
|
|
|
230
232
|
meta: {
|
|
231
233
|
availableLocales: never[];
|
|
232
234
|
availableStatus: Pick<any, string>[];
|
|
235
|
+
defaultLocale: string | null;
|
|
233
236
|
} | {
|
|
234
237
|
availableLocales: import("../../shared/contracts/collection-types").AvailableLocaleDocument[];
|
|
235
238
|
availableStatus: Partial<import("./services/document-metadata").DocumentVersion>[];
|
|
239
|
+
defaultLocale: string | null;
|
|
236
240
|
};
|
|
237
241
|
}>;
|
|
238
242
|
};
|
|
@@ -306,16 +310,16 @@ declare const _default: () => {
|
|
|
306
310
|
userAbility: import("@casl/ability").Ability;
|
|
307
311
|
model: string;
|
|
308
312
|
}) => {
|
|
309
|
-
can: (action: string, entity
|
|
313
|
+
can: (action: string, entity?: {
|
|
310
314
|
id: import("@strapi/types/dist/modules/entity-service/params/attributes/id.js").ID;
|
|
311
315
|
} & {
|
|
312
316
|
[key: string]: any;
|
|
313
|
-
}
|
|
314
|
-
cannot: (action: string, entity
|
|
317
|
+
}, field?: string) => boolean;
|
|
318
|
+
cannot: (action: string, entity?: {
|
|
315
319
|
id: import("@strapi/types/dist/modules/entity-service/params/attributes/id.js").ID;
|
|
316
320
|
} & {
|
|
317
321
|
[key: string]: any;
|
|
318
|
-
}
|
|
322
|
+
}, field?: string) => boolean;
|
|
319
323
|
requiresEntity: (action: string) => boolean;
|
|
320
324
|
sanitizeOutput: (data: {
|
|
321
325
|
id: import("@strapi/types/dist/modules/entity-service/params/attributes/id.js").ID;
|
|
@@ -349,13 +353,23 @@ declare const _default: () => {
|
|
|
349
353
|
} & {
|
|
350
354
|
[key: string]: any;
|
|
351
355
|
}) => any;
|
|
352
|
-
sanitizedQuery: (query: {
|
|
356
|
+
sanitizedQuery: ((query: {
|
|
353
357
|
page?: string;
|
|
354
358
|
pageSize?: string;
|
|
355
359
|
sort?: string;
|
|
356
|
-
},
|
|
360
|
+
}, options?: string | {
|
|
357
361
|
action?: string;
|
|
358
|
-
}) => Promise<any
|
|
362
|
+
}) => Promise<any>) & Record<"delete" | "create" | "update" | "publish" | "unpublish" | "read" | "discard", (query: {
|
|
363
|
+
page?: string;
|
|
364
|
+
pageSize?: string;
|
|
365
|
+
sort?: string;
|
|
366
|
+
}) => ReturnType<(query: {
|
|
367
|
+
page?: string;
|
|
368
|
+
pageSize?: string;
|
|
369
|
+
sort?: string;
|
|
370
|
+
}, options?: string | {
|
|
371
|
+
action?: string;
|
|
372
|
+
}) => Promise<any>>>;
|
|
359
373
|
};
|
|
360
374
|
};
|
|
361
375
|
permission: ({ strapi }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAM2B,GAAG
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAM2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAa+wC,CAAC;sBAAgE,CAAC;2BAA8C,CAAC;;;;;;;;;;;;;sBAAm4H,CAAC;;;;;wBAAkZ,CAAC;;;;;;;wBAA2qD,CAAC;;;wBAAmf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAA/1L,CAAC;;;;;;;0BAAg4B,CAAC;;;;;;;uBAAw2B,SAAS;;;;;;0BAA5d,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAH1wG,CAAA;;;;;;sBAGkhC,CAAC;;;;;;sBAAy7C,CAAC;;;;;AAXj9E,wBAUE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-relations.d.ts","sourceRoot":"","sources":["../../../../../server/src/mcp/sanitizers/shape-relations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAIzC,QAAA,MAAM,mBAAmB,aAMvB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,OACrB,CAAC;AAEpD,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAqCF;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,GACpB,WAAW;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAChC,OAAO,OAAO,KACb,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,IAsB1C,CAAC;
|
|
1
|
+
{"version":3,"file":"shape-relations.d.ts","sourceRoot":"","sources":["../../../../../server/src/mcp/sanitizers/shape-relations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAIzC,QAAA,MAAM,mBAAmB,aAMvB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,OACrB,CAAC;AAEpD,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAqCF;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,GACpB,WAAW;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAChC,OAAO,OAAO,KACb,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,IAsB1C,CAAC;AAyBF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,KAAK,GAAG,CAAC,MAAM,EACf,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASjC,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-schemas.d.ts","sourceRoot":"","sources":["../../../../../server/src/mcp/schemas/output-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAoD5C;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,YAAY,MAAM,CAAC,gBAAgB,EACnC,YAAY,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,KAC7B,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"output-schemas.d.ts","sourceRoot":"","sources":["../../../../../server/src/mcp/schemas/output-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAoD5C;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,YAAY,MAAM,CAAC,gBAAgB,EACnC,YAAY,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,KAC7B,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAYhB,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,YAAY,MAAM,CAAC,gBAAgB,EACnC,YAAY,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,KAC7B,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAWhB,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAElC,aAAa,MAAM,CAAC,gBAAgB,EAEpC,aAAa,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,KAC9B,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAKhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-manager.d.ts","sourceRoot":"","sources":["../../../../server/src/services/document-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,UAAU,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAMxD,KAAK,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;AACpD,KAAK,gBAAgB,CAAC,OAAO,SAAS,MAAM,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7F,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAQjE,QAAA,MAAM,eAAe,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;gBAalD,MAAM,OACL,GAAG,CAAC,cAAc,SACjB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAKvD;;OAEG;oBAEG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,OAC5B,GAAG,CAAC,cAAc,QACjB;QACJ,QAAQ,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,CAAC;QACjC,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;mBA0BkB,gBAAgB,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,cAAc;mBAKrD,gBAAgB,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,cAAc;;;;gBAiBxD,GAAG,CAAC,cAAc,SAAQ,gBAAgB,CAAC,QAAQ,CAAC;eAQhE,OAAO,CAAC,SAAS,CAAC,EAAE,OACnB,GAAG,CAAC,cAAc,SACjB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;cAUhD,OAAO,CAAC,SAAS,CAAC,EAAE,QAClB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OACjE,GAAG,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"document-manager.d.ts","sourceRoot":"","sources":["../../../../server/src/services/document-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ declare const _default: ({ strapi }: {
|
|
|
30
30
|
* The result is sorted with the default locale (as defined by the i18n plugin)
|
|
31
31
|
* at index 0 when present. This is the canonical-source invariant relied on by
|
|
32
32
|
* `useDocument.getInitialFormValues` in the admin: when creating a new locale
|
|
33
|
-
* draft, non-localized scalar/media values are inherited from
|
|
33
|
+
* draft, non-localized scalar/media/component/dynamic-zone values are inherited from
|
|
34
34
|
* `availableLocales[0]`. Putting the default locale first means inheritance
|
|
35
35
|
* stays predictable when sibling locales have drifted on non-localized fields
|
|
36
36
|
* (which can happen because the server only syncs non-localized fields at
|
|
@@ -53,10 +53,12 @@ declare const _default: ({ strapi }: {
|
|
|
53
53
|
getMetadata(uid: UID.ContentType, version: DocumentVersion, { availableLocales, availableStatus }?: GetMetadataOptions): Promise<{
|
|
54
54
|
availableLocales: never[];
|
|
55
55
|
availableStatus: Pick<any, string>[];
|
|
56
|
+
defaultLocale: string | null;
|
|
56
57
|
versions: DocumentVersion[];
|
|
57
58
|
} | {
|
|
58
59
|
availableLocales: import("../../../shared/contracts/collection-types").AvailableLocaleDocument[];
|
|
59
60
|
availableStatus: Partial<DocumentVersion>[];
|
|
61
|
+
defaultLocale: string | null;
|
|
60
62
|
versions: any[];
|
|
61
63
|
}>;
|
|
62
64
|
/**
|
|
@@ -77,9 +79,11 @@ declare const _default: ({ strapi }: {
|
|
|
77
79
|
meta: {
|
|
78
80
|
availableLocales: never[];
|
|
79
81
|
availableStatus: Pick<any, string>[];
|
|
82
|
+
defaultLocale: string | null;
|
|
80
83
|
} | {
|
|
81
84
|
availableLocales: import("../../../shared/contracts/collection-types").AvailableLocaleDocument[];
|
|
82
85
|
availableStatus: Partial<DocumentVersion>[];
|
|
86
|
+
defaultLocale: string | null;
|
|
83
87
|
};
|
|
84
88
|
}>;
|
|
85
89
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-metadata.d.ts","sourceRoot":"","sources":["../../../../server/src/services/document-metadata.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAInF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACpC;
|
|
1
|
+
{"version":3,"file":"document-metadata.d.ts","sourceRoot":"","sources":["../../../../server/src/services/document-metadata.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAInF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACpC;AA6ED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;yBAoBe,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;IACjD;;;;;;;;;;;;OAYG;6BAEI,GAAG,CAAC,WAAW,WACX,eAAe,eACX,eAAe,EAAE;IA+DhC;;OAEG;gCACyB,eAAe,eAAe,eAAe,EAAE;IAoB3E;;;;;OAKG;gCAC+B,GAAG,CAAC,WAAW,aAAa,eAAe,EAAE;uBAmC5D,eAAe,0BAA0B,gBAAgB,CAAC,iBAAiB,CAAC;qBAgCxF,GAAG,CAAC,WAAW,WACX,eAAe,0CAC6B,kBAAkB;;;;kBAqDnD,eAAe,EAAE;;;;;;;IAiJvC;;;;OAIG;oCAEI,GAAG,CAAC,WAAW,YACV,eAAe,SACnB,kBAAkB;;;gBAnftB,MAAM,GAAG,MAAM;wBACP,OAAO,CAAC,SAAS,CAAC,EAAE;qBACvB,MAAM;4BACC,eAAe,EAAE;wBACrB,MAAM,GAAG,IAAI,GAAG,IAAI;0BAClB,MAAM,GAAG,IAAI,GAAG,IAAI;;;;;;;;;;;;;AA8GpC,wBAmbG"}
|
|
@@ -82,10 +82,12 @@ declare const _default: {
|
|
|
82
82
|
getMetadata(uid: import("@strapi/types/dist/uid/index.js").ContentType, version: import("./document-metadata").DocumentVersion, { availableLocales, availableStatus }?: import("./document-metadata").GetMetadataOptions): Promise<{
|
|
83
83
|
availableLocales: never[];
|
|
84
84
|
availableStatus: Pick<any, string>[];
|
|
85
|
+
defaultLocale: string | null;
|
|
85
86
|
versions: import("./document-metadata").DocumentVersion[];
|
|
86
87
|
} | {
|
|
87
88
|
availableLocales: import("../../../shared/contracts/collection-types").AvailableLocaleDocument[];
|
|
88
89
|
availableStatus: Partial<import("./document-metadata").DocumentVersion>[];
|
|
90
|
+
defaultLocale: string | null;
|
|
89
91
|
versions: any[];
|
|
90
92
|
}>;
|
|
91
93
|
formatDocumentWithMetadata(uid: import("@strapi/types/dist/uid/index.js").ContentType, document: import("./document-metadata").DocumentVersion, opts?: import("./document-metadata").GetMetadataOptions): Promise<{
|
|
@@ -101,9 +103,11 @@ declare const _default: {
|
|
|
101
103
|
meta: {
|
|
102
104
|
availableLocales: never[];
|
|
103
105
|
availableStatus: Pick<any, string>[];
|
|
106
|
+
defaultLocale: string | null;
|
|
104
107
|
} | {
|
|
105
108
|
availableLocales: import("../../../shared/contracts/collection-types").AvailableLocaleDocument[];
|
|
106
109
|
availableStatus: Partial<import("./document-metadata").DocumentVersion>[];
|
|
110
|
+
defaultLocale: string | null;
|
|
107
111
|
};
|
|
108
112
|
}>;
|
|
109
113
|
};
|
|
@@ -177,16 +181,16 @@ declare const _default: {
|
|
|
177
181
|
userAbility: import("@casl/ability").Ability;
|
|
178
182
|
model: string;
|
|
179
183
|
}) => {
|
|
180
|
-
can: (action: string, entity
|
|
184
|
+
can: (action: string, entity?: {
|
|
181
185
|
id: import("@strapi/types/dist/modules/entity-service/params/attributes/id.js").ID;
|
|
182
186
|
} & {
|
|
183
187
|
[key: string]: any;
|
|
184
|
-
}
|
|
185
|
-
cannot: (action: string, entity
|
|
188
|
+
}, field?: string) => boolean;
|
|
189
|
+
cannot: (action: string, entity?: {
|
|
186
190
|
id: import("@strapi/types/dist/modules/entity-service/params/attributes/id.js").ID;
|
|
187
191
|
} & {
|
|
188
192
|
[key: string]: any;
|
|
189
|
-
}
|
|
193
|
+
}, field?: string) => boolean;
|
|
190
194
|
requiresEntity: (action: string) => boolean;
|
|
191
195
|
sanitizeOutput: (data: {
|
|
192
196
|
id: import("@strapi/types/dist/modules/entity-service/params/attributes/id.js").ID;
|
|
@@ -220,13 +224,23 @@ declare const _default: {
|
|
|
220
224
|
} & {
|
|
221
225
|
[key: string]: any;
|
|
222
226
|
}) => any;
|
|
223
|
-
sanitizedQuery: (query: {
|
|
227
|
+
sanitizedQuery: ((query: {
|
|
224
228
|
page?: string;
|
|
225
229
|
pageSize?: string;
|
|
226
230
|
sort?: string;
|
|
227
|
-
},
|
|
231
|
+
}, options?: string | {
|
|
228
232
|
action?: string;
|
|
229
|
-
}) => Promise<any
|
|
233
|
+
}) => Promise<any>) & Record<"delete" | "create" | "update" | "publish" | "unpublish" | "read" | "discard", (query: {
|
|
234
|
+
page?: string;
|
|
235
|
+
pageSize?: string;
|
|
236
|
+
sort?: string;
|
|
237
|
+
}) => ReturnType<(query: {
|
|
238
|
+
page?: string;
|
|
239
|
+
pageSize?: string;
|
|
240
|
+
sort?: string;
|
|
241
|
+
}, options?: string | {
|
|
242
|
+
action?: string;
|
|
243
|
+
}) => Promise<any>>>;
|
|
230
244
|
};
|
|
231
245
|
};
|
|
232
246
|
permission: ({ strapi }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmC6f,CAAC;kBAAgE,CAAC;uBAA8C,CAAC;;;;;;;;;;;;;kBAAm4H,CAAC;;;;;oBAAkZ,CAAC;;;;;;;oBAA2qD,CAAC;;;oBAAmf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAA/1L,CAAC;;;;;;;sBAAg4B,CAAC;;;;;;;mBAAw2B,SAAS;;;;;;sBAA5d,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA3Bj8E,CAAC;;;;;;kBA2BwM,CAAC;;;;;;kBAAy7C,CAAC;;;;AAlBjqD,wBAiBE"}
|
|
@@ -9,6 +9,9 @@ export declare const ACTIONS: {
|
|
|
9
9
|
readonly unpublish: "plugin::content-manager.explorer.publish";
|
|
10
10
|
readonly discard: "plugin::content-manager.explorer.update";
|
|
11
11
|
};
|
|
12
|
+
type SanitizedQueryOptions = {
|
|
13
|
+
action?: string;
|
|
14
|
+
} | string;
|
|
12
15
|
type Entity = Modules.EntityService.Result<UID.ContentType>;
|
|
13
16
|
type Query = {
|
|
14
17
|
page?: string;
|
|
@@ -22,8 +25,8 @@ declare const _default: ({ strapi }: {
|
|
|
22
25
|
userAbility: Ability;
|
|
23
26
|
model: string;
|
|
24
27
|
}) => {
|
|
25
|
-
can: (action: string, entity
|
|
26
|
-
cannot: (action: string, entity
|
|
28
|
+
can: (action: string, entity?: Entity, field?: string) => boolean;
|
|
29
|
+
cannot: (action: string, entity?: Entity, field?: string) => boolean;
|
|
27
30
|
requiresEntity: (action: string) => boolean;
|
|
28
31
|
sanitizeOutput: (data: Entity, { action }?: {
|
|
29
32
|
action?: string;
|
|
@@ -37,9 +40,7 @@ declare const _default: ({ strapi }: {
|
|
|
37
40
|
action?: string;
|
|
38
41
|
}) => any;
|
|
39
42
|
validateInput: (action: string, data: any, entity?: Entity) => any;
|
|
40
|
-
sanitizedQuery: (query: Query,
|
|
41
|
-
action?: string;
|
|
42
|
-
}) => Promise<any>;
|
|
43
|
+
sanitizedQuery: ((query: Query, options?: SanitizedQueryOptions) => Promise<any>) & Record<"delete" | "create" | "update" | "publish" | "unpublish" | "read" | "discard", (query: Query) => ReturnType<(query: Query, options?: SanitizedQueryOptions) => Promise<any>>>;
|
|
43
44
|
};
|
|
44
45
|
};
|
|
45
46
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../../../../server/src/services/permission-checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExD,eAAO,MAAM,OAAO;;;;;;;;CAQV,CAAC;
|
|
1
|
+
{"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../../../../server/src/services/permission-checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExD,eAAO,MAAM,OAAO;;;;;;;;CAQV,CAAC;AAMX,KAAK,qBAAqB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC;AAE1D,KAAK,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC5D,KAAK,KAAK,GAAG;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;yBAqJc,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;qCAjJxB;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;sBAYzC,MAAM,WAAW,MAAM,UAAU,MAAM;yBAYpC,MAAM,WAAW,MAAM,UAAU,MAAM;iCA4B/B,MAAM;+BAhBR,MAAM,eAA6B;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;+BA0BtD,KAAK,eAA6B;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;oCAsBhD,GAAG;sCACD,MAAM,MAAM,MAAM,GAAG;+BAZ5B,KAAK,eAA6B;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;gCAIpD,MAAM,QAAQ,GAAG,WAAW,MAAM;iCAqBzB,KAAK,YAAW,qBAAqB,mHAe7C,KAAK,KAAK,UAAU,SAfZ,KAAK,YAAW,qBAAqB,kBAeO;;;AAgCxF,wBAEG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uid.d.ts","sourceRoot":"","sources":["../../../../server/src/services/uid.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAU,GAAG,EAAE,MAAM,eAAe,CAAC;yBAEvC,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;+DAM9C;QACD,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;
|
|
1
|
+
{"version":3,"file":"uid.d.ts","sourceRoot":"","sources":["../../../../server/src/services/uid.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAU,GAAG,EAAE,MAAM,eAAe,CAAC;yBAEvC,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;+DAM9C;QACD,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;6DAuCE;QACD,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;oEA6CE;QACD,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;;AAzGH,wBA2HG"}
|
|
@@ -10,6 +10,13 @@ export type AvailableStatusDocument = Pick<Document, 'id' | 'documentId' | 'loca
|
|
|
10
10
|
export type DocumentMetadata = {
|
|
11
11
|
availableStatus: AvailableStatusDocument[];
|
|
12
12
|
availableLocales: AvailableLocaleDocument[];
|
|
13
|
+
/**
|
|
14
|
+
* i18n default locale code (e.g. `en`). Present when the content type is
|
|
15
|
+
* localized; used by the admin to lock non-localized fields on secondary
|
|
16
|
+
* locales. Not inferred from `availableLocales[0]` because that list
|
|
17
|
+
* excludes the currently viewed locale.
|
|
18
|
+
*/
|
|
19
|
+
defaultLocale?: string | null;
|
|
13
20
|
};
|
|
14
21
|
/**
|
|
15
22
|
* GET /collection-types/:model
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-types.d.ts","sourceRoot":"","sources":["../../../shared/contracts/collection-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAE1D,KAAK,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxE,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAGnF,KAAK,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChD,KAAK,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;AAC3D,KAAK,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;AAE3D,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;AAC7F,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,QAAQ,EACR,IAAI,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CACvD,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAE7B,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAE3C,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"collection-types.d.ts","sourceRoot":"","sources":["../../../shared/contracts/collection-types.ts"],"names":[],"mappings":"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"}
|