@strapi/upload 5.0.0-rc.2 → 5.0.0-rc.20

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.
Files changed (55) hide show
  1. package/dist/_chunks/{graphql-DnH9sdRy.js → graphql-CtmISqaK.js} +2 -2
  2. package/dist/_chunks/{graphql-DnH9sdRy.js.map → graphql-CtmISqaK.js.map} +1 -1
  3. package/dist/_chunks/{graphql-_gnSn8ak.mjs → graphql-DPMDE47y.mjs} +2 -2
  4. package/dist/_chunks/{graphql-_gnSn8ak.mjs.map → graphql-DPMDE47y.mjs.map} +1 -1
  5. package/dist/_chunks/{index-C56Rp5dW.js → index-BmrXhnsh.js} +5 -5
  6. package/dist/_chunks/index-BmrXhnsh.js.map +1 -0
  7. package/dist/_chunks/{index-DNIvA1Nj.js → index-C5KW21l3.js} +59 -21
  8. package/dist/_chunks/index-C5KW21l3.js.map +1 -0
  9. package/dist/_chunks/{index-Dbyymb-Q.mjs → index-C8OiaHmE.mjs} +4 -4
  10. package/dist/_chunks/index-C8OiaHmE.mjs.map +1 -0
  11. package/dist/_chunks/{index-aW1eiyyQ.mjs → index-CWuibX66.mjs} +60 -22
  12. package/dist/_chunks/index-CWuibX66.mjs.map +1 -0
  13. package/dist/_chunks/{index-NM-OD29B.js → index-CgSYRKGA.js} +4 -4
  14. package/dist/_chunks/index-CgSYRKGA.js.map +1 -0
  15. package/dist/_chunks/{index-C3njfmlU.mjs → index-CgTqqAV4.mjs} +68 -59
  16. package/dist/_chunks/index-CgTqqAV4.mjs.map +1 -0
  17. package/dist/_chunks/{index-x_-XFpkS.js → index-CmwUDk1N.js} +99 -83
  18. package/dist/_chunks/index-CmwUDk1N.js.map +1 -0
  19. package/dist/_chunks/{index-DvMQ6Iu_.mjs → index-DaZkXiSX.mjs} +99 -83
  20. package/dist/_chunks/index-DaZkXiSX.mjs.map +1 -0
  21. package/dist/_chunks/{index-l-Vz33Ej.mjs → index-DueAEdZE.mjs} +5 -5
  22. package/dist/_chunks/index-DueAEdZE.mjs.map +1 -0
  23. package/dist/_chunks/{index-7gpC8k2F.js → index-_FuR8PI9.js} +68 -59
  24. package/dist/_chunks/index-_FuR8PI9.js.map +1 -0
  25. package/dist/admin/index.js +1 -1
  26. package/dist/admin/index.mjs +1 -1
  27. package/dist/server/index.js +1 -1
  28. package/dist/server/index.mjs +1 -1
  29. package/dist/server/src/bootstrap.d.ts.map +1 -1
  30. package/dist/server/src/index.d.ts +1 -2
  31. package/dist/server/src/index.d.ts.map +1 -1
  32. package/dist/server/src/services/extensions/index.d.ts +1 -4
  33. package/dist/server/src/services/extensions/index.d.ts.map +1 -1
  34. package/dist/server/src/services/index.d.ts +1 -2
  35. package/dist/server/src/services/index.d.ts.map +1 -1
  36. package/package.json +8 -8
  37. package/dist/_chunks/index-7gpC8k2F.js.map +0 -1
  38. package/dist/_chunks/index-C3njfmlU.mjs.map +0 -1
  39. package/dist/_chunks/index-C56Rp5dW.js.map +0 -1
  40. package/dist/_chunks/index-DNIvA1Nj.js.map +0 -1
  41. package/dist/_chunks/index-Dbyymb-Q.mjs.map +0 -1
  42. package/dist/_chunks/index-DvMQ6Iu_.mjs.map +0 -1
  43. package/dist/_chunks/index-NM-OD29B.js.map +0 -1
  44. package/dist/_chunks/index-aW1eiyyQ.mjs.map +0 -1
  45. package/dist/_chunks/index-l-Vz33Ej.mjs.map +0 -1
  46. package/dist/_chunks/index-x_-XFpkS.js.map +0 -1
  47. package/dist/server/src/services/extensions/content-manager/entity-manager.d.ts +0 -15
  48. package/dist/server/src/services/extensions/content-manager/entity-manager.d.ts.map +0 -1
  49. package/dist/server/src/services/extensions/content-manager/index.d.ts +0 -4
  50. package/dist/server/src/services/extensions/content-manager/index.d.ts.map +0 -1
  51. package/dist/server/src/services/extensions/core/entity-service.d.ts +0 -4
  52. package/dist/server/src/services/extensions/core/entity-service.d.ts.map +0 -1
  53. package/dist/server/src/services/extensions/core/index.d.ts +0 -4
  54. package/dist/server/src/services/extensions/core/index.d.ts.map +0 -1
  55. package/strapi-server.js +0 -3
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./index-DNIvA1Nj.js");
3
+ const index = require("./index-C5KW21l3.js");
4
4
  const FILE_INFO_INPUT_TYPE_NAME = "FileInfoInput";
5
5
  const installGraphqlExtension = ({ strapi }) => {
6
6
  const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin("graphql");
@@ -68,4 +68,4 @@ const installGraphqlExtension = ({ strapi }) => {
68
68
  });
69
69
  };
70
70
  exports.installGraphqlExtension = installGraphqlExtension;
71
- //# sourceMappingURL=graphql-DnH9sdRy.js.map
71
+ //# sourceMappingURL=graphql-CtmISqaK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-DnH9sdRy.js","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":["FILE_MODEL_UID"],"mappings":";;;AAIA,MAAM,4BAA4B;AAE3B,MAAM,0BAA0B,CAAC,EAAE,aAAsC;AACxE,QAAA,EAAE,SAAS,mBAAmB,QAAQ,kBAAkB,OAAO,OAAO,SAAS;AACrF,QAAM,EAAE,SAAS,iBAAA,IAAqB,OAAO,OAAO,QAAQ;AAEtD,QAAA,sBAAsB,cAAc,cAAc,IAAI;AAE5D,MAAI,CAAC,qBAAqB;AACxB;AAAA,EACF;AAEA,oBAAkB,WAAW,EAAE,WAAW,uBAAuB,EAAE,QAAQ;AAC3E,oBAAkB,WAAW,EAAE,WAAW,qBAAqB,EAAE,iBAAiB;AAElF,QAAM,EAAE,YAAgB,IAAA,kBAAkB,OAAO,EAAE;AAE7C,QAAA,YAAY,OAAO,SAASA,MAAc,cAAA;AAC1C,QAAA,eAAe,YAAY,SAAS;AAI1C,oBAAkB,WAAW,EAAE,IAAI,CAAC,EAAE,YAA4B;AAChE,UAAM,EAAE,iBAAiB,YAAY,QAAA,IAAY;AAGjD,UAAM,oBAAoB,gBAAgB;AAAA,MACxC,MAAM;AAAA,MAEN,WAAW,GAAQ;AACjB,UAAE,OAAO,MAAM;AACf,UAAE,OAAO,iBAAiB;AAC1B,UAAE,OAAO,SAAS;AAAA,MACpB;AAAA,IAAA,CACD;AAED,UAAM,YAAY,WAAW;AAAA,MAC3B,MAAM;AAAA,MAEN,WAAW,GAAQ;AAIjB,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM,QAAQ,YAAY;AAAA,UAE1B,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,YAChB,MAAM;AAAA,UACR;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAiC;AACxD,kBAAA,EAAE,IAAI,KAAS,IAAA;AAErB,mBAAO,iBAAiB,QAAQ,EAAE,eAAe,IAAI,IAAI;AAAA,UAC3D;AAAA,QAAA,CACD;AAKD,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM;AAAA,UAEN,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,UAClB;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAsB;AAC7C,kBAAA,EAAE,GAAO,IAAA;AAEf,kBAAM,OAAO,MAAM,iBAAiB,QAAQ,EAAE,QAAQ,EAAE;AAExD,gBAAI,CAAC,MAAM;AACF,qBAAA;AAAA,YACT;AAEA,mBAAO,iBAAiB,QAAQ,EAAE,OAAO,IAAI;AAAA,UAC/C;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACL,OAAO,CAAC,mBAAmB,SAAS;AAAA,MACpC,iBAAiB;AAAA;AAAA,QAEf,qBAAqB,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QAC1E,gCAAgC,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QACrF,oBAAoB,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,QAC5E,6BAA6B,EAAE,MAAM,EAAE,OAAO,sCAAsC;AAAA,QACpF,6BAA6B,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,MACvF;AAAA,IAAA;AAAA,EACF,CACD;AACH;;"}
1
+ {"version":3,"file":"graphql-CtmISqaK.js","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":["FILE_MODEL_UID"],"mappings":";;;AAIA,MAAM,4BAA4B;AAE3B,MAAM,0BAA0B,CAAC,EAAE,aAAsC;AACxE,QAAA,EAAE,SAAS,mBAAmB,QAAQ,kBAAkB,OAAO,OAAO,SAAS;AACrF,QAAM,EAAE,SAAS,iBAAA,IAAqB,OAAO,OAAO,QAAQ;AAEtD,QAAA,sBAAsB,cAAc,cAAc,IAAI;AAE5D,MAAI,CAAC,qBAAqB;AACxB;AAAA,EACF;AAEA,oBAAkB,WAAW,EAAE,WAAW,uBAAuB,EAAE,QAAQ;AAC3E,oBAAkB,WAAW,EAAE,WAAW,qBAAqB,EAAE,iBAAiB;AAElF,QAAM,EAAE,YAAgB,IAAA,kBAAkB,OAAO,EAAE;AAE7C,QAAA,YAAY,OAAO,SAASA,MAAc,cAAA;AAC1C,QAAA,eAAe,YAAY,SAAS;AAI1C,oBAAkB,WAAW,EAAE,IAAI,CAAC,EAAE,YAA4B;AAChE,UAAM,EAAE,iBAAiB,YAAY,QAAA,IAAY;AAGjD,UAAM,oBAAoB,gBAAgB;AAAA,MACxC,MAAM;AAAA,MAEN,WAAW,GAAQ;AACjB,UAAE,OAAO,MAAM;AACf,UAAE,OAAO,iBAAiB;AAC1B,UAAE,OAAO,SAAS;AAAA,MACpB;AAAA,IAAA,CACD;AAED,UAAM,YAAY,WAAW;AAAA,MAC3B,MAAM;AAAA,MAEN,WAAW,GAAQ;AAIjB,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM,QAAQ,YAAY;AAAA,UAE1B,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,YAChB,MAAM;AAAA,UACR;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAiC;AACxD,kBAAA,EAAE,IAAI,KAAS,IAAA;AAErB,mBAAO,iBAAiB,QAAQ,EAAE,eAAe,IAAI,IAAI;AAAA,UAC3D;AAAA,QAAA,CACD;AAKD,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM;AAAA,UAEN,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,UAClB;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAsB;AAC7C,kBAAA,EAAE,GAAO,IAAA;AAEf,kBAAM,OAAO,MAAM,iBAAiB,QAAQ,EAAE,QAAQ,EAAE;AAExD,gBAAI,CAAC,MAAM;AACF,qBAAA;AAAA,YACT;AAEA,mBAAO,iBAAiB,QAAQ,EAAE,OAAO,IAAI;AAAA,UAC/C;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACL,OAAO,CAAC,mBAAmB,SAAS;AAAA,MACpC,iBAAiB;AAAA;AAAA,QAEf,qBAAqB,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QAC1E,gCAAgC,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QACrF,oBAAoB,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,QAC5E,6BAA6B,EAAE,MAAM,EAAE,OAAO,sCAAsC;AAAA,QACpF,6BAA6B,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,MACvF;AAAA,IAAA;AAAA,EACF,CACD;AACH;;"}
@@ -1,4 +1,4 @@
1
- import { F as FILE_MODEL_UID } from "./index-aW1eiyyQ.mjs";
1
+ import { F as FILE_MODEL_UID } from "./index-CWuibX66.mjs";
2
2
  const FILE_INFO_INPUT_TYPE_NAME = "FileInfoInput";
3
3
  const installGraphqlExtension = ({ strapi }) => {
4
4
  const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin("graphql");
@@ -68,4 +68,4 @@ const installGraphqlExtension = ({ strapi }) => {
68
68
  export {
69
69
  installGraphqlExtension
70
70
  };
71
- //# sourceMappingURL=graphql-_gnSn8ak.mjs.map
71
+ //# sourceMappingURL=graphql-DPMDE47y.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-_gnSn8ak.mjs","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":[],"mappings":";AAIA,MAAM,4BAA4B;AAE3B,MAAM,0BAA0B,CAAC,EAAE,aAAsC;AACxE,QAAA,EAAE,SAAS,mBAAmB,QAAQ,kBAAkB,OAAO,OAAO,SAAS;AACrF,QAAM,EAAE,SAAS,iBAAA,IAAqB,OAAO,OAAO,QAAQ;AAEtD,QAAA,sBAAsB,cAAc,cAAc,IAAI;AAE5D,MAAI,CAAC,qBAAqB;AACxB;AAAA,EACF;AAEA,oBAAkB,WAAW,EAAE,WAAW,uBAAuB,EAAE,QAAQ;AAC3E,oBAAkB,WAAW,EAAE,WAAW,qBAAqB,EAAE,iBAAiB;AAElF,QAAM,EAAE,YAAgB,IAAA,kBAAkB,OAAO,EAAE;AAE7C,QAAA,YAAY,OAAO,SAAS,cAAc;AAC1C,QAAA,eAAe,YAAY,SAAS;AAI1C,oBAAkB,WAAW,EAAE,IAAI,CAAC,EAAE,YAA4B;AAChE,UAAM,EAAE,iBAAiB,YAAY,QAAA,IAAY;AAGjD,UAAM,oBAAoB,gBAAgB;AAAA,MACxC,MAAM;AAAA,MAEN,WAAW,GAAQ;AACjB,UAAE,OAAO,MAAM;AACf,UAAE,OAAO,iBAAiB;AAC1B,UAAE,OAAO,SAAS;AAAA,MACpB;AAAA,IAAA,CACD;AAED,UAAM,YAAY,WAAW;AAAA,MAC3B,MAAM;AAAA,MAEN,WAAW,GAAQ;AAIjB,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM,QAAQ,YAAY;AAAA,UAE1B,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,YAChB,MAAM;AAAA,UACR;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAiC;AACxD,kBAAA,EAAE,IAAI,KAAS,IAAA;AAErB,mBAAO,iBAAiB,QAAQ,EAAE,eAAe,IAAI,IAAI;AAAA,UAC3D;AAAA,QAAA,CACD;AAKD,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM;AAAA,UAEN,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,UAClB;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAsB;AAC7C,kBAAA,EAAE,GAAO,IAAA;AAEf,kBAAM,OAAO,MAAM,iBAAiB,QAAQ,EAAE,QAAQ,EAAE;AAExD,gBAAI,CAAC,MAAM;AACF,qBAAA;AAAA,YACT;AAEA,mBAAO,iBAAiB,QAAQ,EAAE,OAAO,IAAI;AAAA,UAC/C;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACL,OAAO,CAAC,mBAAmB,SAAS;AAAA,MACpC,iBAAiB;AAAA;AAAA,QAEf,qBAAqB,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QAC1E,gCAAgC,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QACrF,oBAAoB,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,QAC5E,6BAA6B,EAAE,MAAM,EAAE,OAAO,sCAAsC;AAAA,QACpF,6BAA6B,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,MACvF;AAAA,IAAA;AAAA,EACF,CACD;AACH;"}
1
+ {"version":3,"file":"graphql-DPMDE47y.mjs","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":[],"mappings":";AAIA,MAAM,4BAA4B;AAE3B,MAAM,0BAA0B,CAAC,EAAE,aAAsC;AACxE,QAAA,EAAE,SAAS,mBAAmB,QAAQ,kBAAkB,OAAO,OAAO,SAAS;AACrF,QAAM,EAAE,SAAS,iBAAA,IAAqB,OAAO,OAAO,QAAQ;AAEtD,QAAA,sBAAsB,cAAc,cAAc,IAAI;AAE5D,MAAI,CAAC,qBAAqB;AACxB;AAAA,EACF;AAEA,oBAAkB,WAAW,EAAE,WAAW,uBAAuB,EAAE,QAAQ;AAC3E,oBAAkB,WAAW,EAAE,WAAW,qBAAqB,EAAE,iBAAiB;AAElF,QAAM,EAAE,YAAgB,IAAA,kBAAkB,OAAO,EAAE;AAE7C,QAAA,YAAY,OAAO,SAAS,cAAc;AAC1C,QAAA,eAAe,YAAY,SAAS;AAI1C,oBAAkB,WAAW,EAAE,IAAI,CAAC,EAAE,YAA4B;AAChE,UAAM,EAAE,iBAAiB,YAAY,QAAA,IAAY;AAGjD,UAAM,oBAAoB,gBAAgB;AAAA,MACxC,MAAM;AAAA,MAEN,WAAW,GAAQ;AACjB,UAAE,OAAO,MAAM;AACf,UAAE,OAAO,iBAAiB;AAC1B,UAAE,OAAO,SAAS;AAAA,MACpB;AAAA,IAAA,CACD;AAED,UAAM,YAAY,WAAW;AAAA,MAC3B,MAAM;AAAA,MAEN,WAAW,GAAQ;AAIjB,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM,QAAQ,YAAY;AAAA,UAE1B,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,YAChB,MAAM;AAAA,UACR;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAiC;AACxD,kBAAA,EAAE,IAAI,KAAS,IAAA;AAErB,mBAAO,iBAAiB,QAAQ,EAAE,eAAe,IAAI,IAAI;AAAA,UAC3D;AAAA,QAAA,CACD;AAKD,UAAE,MAAM,oBAAoB;AAAA,UAC1B,MAAM;AAAA,UAEN,MAAM;AAAA,YACJ,IAAI,QAAQ,IAAI;AAAA,UAClB;AAAA,UAEA,MAAM,QAAQ,QAAiB,MAAsB;AAC7C,kBAAA,EAAE,GAAO,IAAA;AAEf,kBAAM,OAAO,MAAM,iBAAiB,QAAQ,EAAE,QAAQ,EAAE;AAExD,gBAAI,CAAC,MAAM;AACF,qBAAA;AAAA,YACT;AAEA,mBAAO,iBAAiB,QAAQ,EAAE,OAAO,IAAI;AAAA,UAC/C;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACL,OAAO,CAAC,mBAAmB,SAAS;AAAA,MACpC,iBAAiB;AAAA;AAAA,QAEf,qBAAqB,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QAC1E,gCAAgC,EAAE,MAAM,EAAE,OAAO,oCAAoC;AAAA,QACrF,oBAAoB,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,QAC5E,6BAA6B,EAAE,MAAM,EAAE,OAAO,sCAAsC;AAAA,QACpF,6BAA6B,EAAE,MAAM,EAAE,OAAO,uCAAuC;AAAA,MACvF;AAAA,IAAA;AAAA,EACF,CACD;AACH;"}
@@ -8,7 +8,7 @@ const icons = require("@strapi/icons");
8
8
  const isEqual = require("lodash/isEqual");
9
9
  const reactIntl = require("react-intl");
10
10
  const reactQuery = require("react-query");
11
- const index = require("./index-x_-XFpkS.js");
11
+ const index = require("./index-CmwUDk1N.js");
12
12
  require("byte-size");
13
13
  require("date-fns");
14
14
  require("qs");
@@ -147,7 +147,7 @@ const SettingsPage = () => {
147
147
  defaultMessage: "Asset management"
148
148
  }) }) }),
149
149
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 6, children: [
150
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, s: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(
150
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, s: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
151
151
  designSystem.Field.Root,
152
152
  {
153
153
  hint: formatMessage({
@@ -183,7 +183,7 @@ const SettingsPage = () => {
183
183
  ]
184
184
  }
185
185
  ) }),
186
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, s: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(
186
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, s: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
187
187
  designSystem.Field.Root,
188
188
  {
189
189
  hint: formatMessage({
@@ -219,7 +219,7 @@ const SettingsPage = () => {
219
219
  ]
220
220
  }
221
221
  ) }),
222
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, s: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(
222
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, s: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
223
223
  designSystem.Field.Root,
224
224
  {
225
225
  hint: formatMessage({
@@ -263,4 +263,4 @@ const SettingsPage = () => {
263
263
  const ProtectedSettingsPage = () => /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Protect, { permissions: index.PERMISSIONS.settings, children: /* @__PURE__ */ jsxRuntime.jsx(SettingsPage, {}) });
264
264
  exports.SettingsPage = SettingsPage;
265
265
  exports.default = ProtectedSettingsPage;
266
- //# sourceMappingURL=index-C56Rp5dW.js.map
266
+ //# sourceMappingURL=index-BmrXhnsh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BmrXhnsh.js","sources":["../../admin/src/pages/SettingsPage/init.js","../../admin/src/pages/SettingsPage/reducer.js","../../admin/src/pages/SettingsPage/index.jsx"],"sourcesContent":["const init = (initialState) => {\n return initialState;\n};\n\nexport default init;\n","import { produce } from 'immer';\nimport set from 'lodash/set';\n\nconst initialState = {\n initialData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n modifiedData: {\n responsiveDimensions: true,\n sizeOptimization: true,\n autoOrientation: false,\n videoPreview: false,\n },\n};\n\nconst reducer = (state, action) =>\n // eslint-disable-next-line consistent-return\n produce(state, (drafState) => {\n switch (action.type) {\n case 'GET_DATA_SUCCEEDED': {\n drafState.initialData = action.data;\n drafState.modifiedData = action.data;\n break;\n }\n case 'ON_CHANGE': {\n set(drafState, ['modifiedData', ...action.keys.split('.')], action.value);\n break;\n }\n default:\n return state;\n }\n });\n\nexport default reducer;\nexport { initialState };\n","import React, { useReducer } from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\n\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport init from './init';\nimport reducer, { initialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { get, put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useQuery({\n queryKey: ['upload', 'settings'],\n async queryFn() {\n const {\n data: { data },\n } = await get('/upload/settings');\n\n return data;\n },\n });\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmiting } = useMutation({\n async mutationFn(body) {\n return put('/upload/settings', body);\n },\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err) {\n console.error(err);\n },\n });\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData);\n };\n\n const handleChange = ({ target: { name, value } }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Libray',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmiting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={12}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nconst ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n\nexport default ProtectedSettingsPage;\n"],"names":["initialState","produce","set","useIntl","useNotification","useFetchClient","useReducer","useQuery","data","React","isEqual","useMutation","jsx","Page","jsxs","getTrad","Layouts","Button","Check","Flex","Box","Typography","Grid","Field","Toggle","PERMISSIONS"],"mappings":"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"}
@@ -327,7 +327,7 @@ async function register({ strapi: strapi2 }) {
327
327
  strapi2.plugin("upload").provider = createProvider(strapi2.config.get("plugin::upload"));
328
328
  await registerUploadMiddleware({ strapi: strapi2 });
329
329
  if (strapi2.plugin("graphql")) {
330
- const { installGraphqlExtension } = await Promise.resolve().then(() => require("./graphql-DnH9sdRy.js"));
330
+ const { installGraphqlExtension } = await Promise.resolve().then(() => require("./graphql-CtmISqaK.js"));
331
331
  installGraphqlExtension({ strapi: strapi2 });
332
332
  }
333
333
  if (strapi2.plugin("documentation")) {
@@ -451,11 +451,7 @@ async function bootstrap({ strapi: strapi2 }) {
451
451
  await registerWebhookEvents();
452
452
  await getService("weeklyMetrics").registerCron();
453
453
  getService("metrics").sendUploadPluginMetrics();
454
- if (strapi2.config.get("plugin::upload.signAdminURLsOnly", false)) {
455
- getService("extensions").contentManager.entityManager.addSignedFileUrlsToAdmin();
456
- } else {
457
- getService("extensions").core.entityService.addSignedFileUrlsToEntityService();
458
- }
454
+ getService("extensions").signFileUrlsOnDocumentService();
459
455
  }
460
456
  const registerWebhookEvents = async () => Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {
461
457
  strapi.get("webhookStore").addAllowedEvent(key, value);
@@ -1623,23 +1619,65 @@ const getAPIUploadFolder = async () => {
1623
1619
  const apiUploadFolder = {
1624
1620
  getAPIUploadFolder
1625
1621
  };
1626
- const addSignedFileUrlsToAdmin = async () => {
1622
+ function isFile(value, attribute) {
1623
+ if (!value || attribute.type !== "media") {
1624
+ return false;
1625
+ }
1626
+ return true;
1627
+ }
1628
+ const signEntityMediaVisitor = async ({ key, value, attribute }, { set }) => {
1629
+ const { signFileUrls: signFileUrls2 } = getService("file");
1630
+ if (!attribute) {
1631
+ return;
1632
+ }
1633
+ if (attribute.type !== "media") {
1634
+ return;
1635
+ }
1636
+ if (isFile(value, attribute)) {
1637
+ if (attribute.multiple) {
1638
+ const signedFiles = await utils.async.map(value, signFileUrls2);
1639
+ set(key, signedFiles);
1640
+ return;
1641
+ }
1642
+ const signedFile = await signFileUrls2(value);
1643
+ set(key, signedFile);
1644
+ }
1645
+ };
1646
+ const signEntityMedia = async (entity, uid) => {
1647
+ const model = strapi.getModel(uid);
1648
+ return utils.traverseEntity(
1649
+ // @ts-expect-error - FIXME: fix traverseEntity using wrong types
1650
+ signEntityMediaVisitor,
1651
+ { schema: model, getModel: strapi.getModel.bind(strapi) },
1652
+ entity
1653
+ );
1627
1654
  };
1628
- const entityManager = { addSignedFileUrlsToAdmin };
1629
- const contentManager = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1630
- __proto__: null,
1631
- entityManager
1632
- }, Symbol.toStringTag, { value: "Module" }));
1633
- const addSignedFileUrlsToEntityService = async () => {
1655
+ const signFileUrlsOnDocumentService = async () => {
1656
+ const { provider: provider2 } = strapi.plugins.upload;
1657
+ const isPrivate = await provider2.isPrivate();
1658
+ if (!isPrivate) {
1659
+ return;
1660
+ }
1661
+ strapi.documents.use(async (ctx, next) => {
1662
+ const uid = ctx.uid;
1663
+ const result = await next();
1664
+ if (ctx.action === "findMany") {
1665
+ return utils.async.map(result, (entry) => signEntityMedia(entry, uid));
1666
+ }
1667
+ if (ctx.action === "findFirst" || ctx.action === "findOne" || ctx.action === "create" || ctx.action === "update") {
1668
+ return signEntityMedia(result, uid);
1669
+ }
1670
+ if (ctx.action === "delete" || ctx.action === "clone" || ctx.action === "publish" || ctx.action === "unpublish" || ctx.action === "discardDraft") {
1671
+ return {
1672
+ ...result,
1673
+ entries: await utils.async.map(result.entries, (entry) => signEntityMedia(entry, uid))
1674
+ };
1675
+ }
1676
+ return result;
1677
+ });
1634
1678
  };
1635
- const entityService = { addSignedFileUrlsToEntityService };
1636
- const core = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1637
- __proto__: null,
1638
- entityService
1639
- }, Symbol.toStringTag, { value: "Module" }));
1640
1679
  const extensions = {
1641
- contentManager,
1642
- core
1680
+ signFileUrlsOnDocumentService
1643
1681
  };
1644
1682
  const services = {
1645
1683
  provider,
@@ -2682,4 +2720,4 @@ const index = () => ({
2682
2720
  });
2683
2721
  exports.FILE_MODEL_UID = FILE_MODEL_UID;
2684
2722
  exports.index = index;
2685
- //# sourceMappingURL=index-DNIvA1Nj.js.map
2723
+ //# sourceMappingURL=index-C5KW21l3.js.map