@strapi/upload 5.19.0 → 5.21.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.
Files changed (39) hide show
  1. package/dist/admin/components/FilterPopover/FilterPopover.js +3 -0
  2. package/dist/admin/components/FilterPopover/FilterPopover.js.map +1 -1
  3. package/dist/admin/components/FilterPopover/FilterPopover.mjs +3 -0
  4. package/dist/admin/components/FilterPopover/FilterPopover.mjs.map +1 -1
  5. package/dist/admin/hooks/useBulkRemove.js +5 -0
  6. package/dist/admin/hooks/useBulkRemove.js.map +1 -1
  7. package/dist/admin/hooks/useBulkRemove.mjs +6 -1
  8. package/dist/admin/hooks/useBulkRemove.mjs.map +1 -1
  9. package/dist/admin/hooks/useRemoveAsset.js +5 -0
  10. package/dist/admin/hooks/useRemoveAsset.js.map +1 -1
  11. package/dist/admin/hooks/useRemoveAsset.mjs +6 -1
  12. package/dist/admin/hooks/useRemoveAsset.mjs.map +1 -1
  13. package/dist/admin/hooks/useUpload.js +5 -0
  14. package/dist/admin/hooks/useUpload.js.map +1 -1
  15. package/dist/admin/hooks/useUpload.mjs +6 -1
  16. package/dist/admin/hooks/useUpload.mjs.map +1 -1
  17. package/dist/admin/package.json.js +8 -6
  18. package/dist/admin/package.json.js.map +1 -1
  19. package/dist/admin/package.json.mjs +8 -6
  20. package/dist/admin/package.json.mjs.map +1 -1
  21. package/dist/server/routes/content-api.js +84 -24
  22. package/dist/server/routes/content-api.js.map +1 -1
  23. package/dist/server/routes/content-api.mjs +65 -24
  24. package/dist/server/routes/content-api.mjs.map +1 -1
  25. package/dist/server/routes/validation/upload.js +99 -0
  26. package/dist/server/routes/validation/upload.js.map +1 -0
  27. package/dist/server/routes/validation/upload.mjs +78 -0
  28. package/dist/server/routes/validation/upload.mjs.map +1 -0
  29. package/dist/server/src/index.d.ts +1 -8
  30. package/dist/server/src/index.d.ts.map +1 -1
  31. package/dist/server/src/routes/content-api.d.ts +2 -8
  32. package/dist/server/src/routes/content-api.d.ts.map +1 -1
  33. package/dist/server/src/routes/index.d.ts +1 -8
  34. package/dist/server/src/routes/index.d.ts.map +1 -1
  35. package/dist/server/src/routes/validation/index.d.ts +2 -0
  36. package/dist/server/src/routes/validation/index.d.ts.map +1 -0
  37. package/dist/server/src/routes/validation/upload.d.ts +94 -0
  38. package/dist/server/src/routes/validation/upload.d.ts.map +1 -0
  39. package/package.json +8 -6
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,29 +1,89 @@
1
1
  'use strict';
2
2
 
3
- const routes = {
4
- type: 'content-api',
5
- routes: [
6
- {
7
- method: 'POST',
8
- path: '/',
9
- handler: 'content-api.upload'
10
- },
11
- {
12
- method: 'GET',
13
- path: '/files',
14
- handler: 'content-api.find'
15
- },
16
- {
17
- method: 'GET',
18
- path: '/files/:id',
19
- handler: 'content-api.findOne'
20
- },
21
- {
22
- method: 'DELETE',
23
- path: '/files/:id',
24
- handler: 'content-api.destroy'
25
- }
26
- ]
3
+ var z = require('zod/v4');
4
+ var upload = require('./validation/upload.js');
5
+
6
+ function _interopNamespaceDefault(e) {
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
24
+
25
+ const routes = ()=>{
26
+ const validator = new upload.UploadRouteValidator(strapi);
27
+ return {
28
+ type: 'content-api',
29
+ routes: [
30
+ {
31
+ method: 'POST',
32
+ path: '/',
33
+ handler: 'content-api.upload',
34
+ request: {
35
+ query: {
36
+ id: validator.fileId.optional()
37
+ }
38
+ },
39
+ response: z__namespace.union([
40
+ validator.file,
41
+ validator.files
42
+ ])
43
+ },
44
+ {
45
+ method: 'GET',
46
+ path: '/files',
47
+ handler: 'content-api.find',
48
+ request: {
49
+ query: {
50
+ fields: validator.queryFields.optional(),
51
+ populate: validator.queryPopulate.optional(),
52
+ sort: validator.querySort.optional(),
53
+ pagination: validator.pagination.optional(),
54
+ filters: validator.filters.optional()
55
+ }
56
+ },
57
+ response: validator.files
58
+ },
59
+ {
60
+ method: 'GET',
61
+ path: '/files/:id',
62
+ handler: 'content-api.findOne',
63
+ request: {
64
+ params: {
65
+ id: validator.fileId
66
+ },
67
+ query: {
68
+ fields: validator.queryFields.optional(),
69
+ populate: validator.queryPopulate.optional()
70
+ }
71
+ },
72
+ response: validator.file
73
+ },
74
+ {
75
+ method: 'DELETE',
76
+ path: '/files/:id',
77
+ handler: 'content-api.destroy',
78
+ request: {
79
+ params: {
80
+ id: validator.fileId
81
+ }
82
+ },
83
+ response: validator.file
84
+ }
85
+ ]
86
+ };
27
87
  };
28
88
 
29
89
  exports.routes = routes;
@@ -1 +1 @@
1
- {"version":3,"file":"content-api.js","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["export const routes = {\n type: 'content-api',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'content-api.upload',\n },\n {\n method: 'GET',\n path: '/files',\n handler: 'content-api.find',\n },\n {\n method: 'GET',\n path: '/files/:id',\n handler: 'content-api.findOne',\n },\n {\n method: 'DELETE',\n path: '/files/:id',\n handler: 'content-api.destroy',\n },\n ],\n};\n"],"names":["routes","type","method","path","handler"],"mappings":";;MAAaA,MAAS,GAAA;IACpBC,IAAM,EAAA,aAAA;IACND,MAAQ,EAAA;AACN,QAAA;YACEE,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,GAAA;YACNC,OAAS,EAAA;AACX,SAAA;AACA,QAAA;YACEF,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,QAAA;YACNC,OAAS,EAAA;AACX,SAAA;AACA,QAAA;YACEF,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,YAAA;YACNC,OAAS,EAAA;AACX,SAAA;AACA,QAAA;YACEF,MAAQ,EAAA,QAAA;YACRC,IAAM,EAAA,YAAA;YACNC,OAAS,EAAA;AACX;AACD;AACH;;;;"}
1
+ {"version":3,"file":"content-api.js","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\nimport { UploadRouteValidator } from './validation';\n\nexport const routes = (): Core.RouterInput => {\n const validator = new UploadRouteValidator(strapi);\n\n return {\n type: 'content-api',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'content-api.upload',\n request: {\n query: { id: validator.fileId.optional() },\n // Note: multipart/form-data is handled by Koa middleware, not Zod\n },\n response: z.union([validator.file, validator.files]),\n },\n {\n method: 'GET',\n path: '/files',\n handler: 'content-api.find',\n request: {\n query: {\n fields: validator.queryFields.optional(),\n populate: validator.queryPopulate.optional(),\n sort: validator.querySort.optional(),\n pagination: validator.pagination.optional(),\n filters: validator.filters.optional(),\n },\n },\n response: validator.files,\n },\n {\n method: 'GET',\n path: '/files/:id',\n handler: 'content-api.findOne',\n request: {\n params: { id: validator.fileId },\n query: {\n fields: validator.queryFields.optional(),\n populate: validator.queryPopulate.optional(),\n },\n },\n response: validator.file,\n },\n {\n method: 'DELETE',\n path: '/files/:id',\n handler: 'content-api.destroy',\n request: {\n params: { id: validator.fileId },\n },\n response: validator.file,\n },\n ],\n };\n};\n"],"names":["routes","validator","UploadRouteValidator","strapi","type","method","path","handler","request","query","id","fileId","optional","response","z","union","file","files","fields","queryFields","populate","queryPopulate","sort","querySort","pagination","filters","params"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;MAIaA,MAAS,GAAA,IAAA;IACpB,MAAMC,SAAAA,GAAY,IAAIC,2BAAqBC,CAAAA,MAAAA,CAAAA;IAE3C,OAAO;QACLC,IAAM,EAAA,aAAA;QACNJ,MAAQ,EAAA;AACN,YAAA;gBACEK,MAAQ,EAAA,MAAA;gBACRC,IAAM,EAAA,GAAA;gBACNC,OAAS,EAAA,oBAAA;gBACTC,OAAS,EAAA;oBACPC,KAAO,EAAA;wBAAEC,EAAIT,EAAAA,SAAAA,CAAUU,MAAM,CAACC,QAAQ;AAAG;AAE3C,iBAAA;gBACAC,QAAUC,EAAAA,YAAAA,CAAEC,KAAK,CAAC;AAACd,oBAAAA,SAAAA,CAAUe,IAAI;AAAEf,oBAAAA,SAAAA,CAAUgB;AAAM,iBAAA;AACrD,aAAA;AACA,YAAA;gBACEZ,MAAQ,EAAA,KAAA;gBACRC,IAAM,EAAA,QAAA;gBACNC,OAAS,EAAA,kBAAA;gBACTC,OAAS,EAAA;oBACPC,KAAO,EAAA;wBACLS,MAAQjB,EAAAA,SAAAA,CAAUkB,WAAW,CAACP,QAAQ,EAAA;wBACtCQ,QAAUnB,EAAAA,SAAAA,CAAUoB,aAAa,CAACT,QAAQ,EAAA;wBAC1CU,IAAMrB,EAAAA,SAAAA,CAAUsB,SAAS,CAACX,QAAQ,EAAA;wBAClCY,UAAYvB,EAAAA,SAAAA,CAAUuB,UAAU,CAACZ,QAAQ,EAAA;wBACzCa,OAASxB,EAAAA,SAAAA,CAAUwB,OAAO,CAACb,QAAQ;AACrC;AACF,iBAAA;AACAC,gBAAAA,QAAAA,EAAUZ,UAAUgB;AACtB,aAAA;AACA,YAAA;gBACEZ,MAAQ,EAAA,KAAA;gBACRC,IAAM,EAAA,YAAA;gBACNC,OAAS,EAAA,qBAAA;gBACTC,OAAS,EAAA;oBACPkB,MAAQ,EAAA;AAAEhB,wBAAAA,EAAAA,EAAIT,UAAUU;AAAO,qBAAA;oBAC/BF,KAAO,EAAA;wBACLS,MAAQjB,EAAAA,SAAAA,CAAUkB,WAAW,CAACP,QAAQ,EAAA;wBACtCQ,QAAUnB,EAAAA,SAAAA,CAAUoB,aAAa,CAACT,QAAQ;AAC5C;AACF,iBAAA;AACAC,gBAAAA,QAAAA,EAAUZ,UAAUe;AACtB,aAAA;AACA,YAAA;gBACEX,MAAQ,EAAA,QAAA;gBACRC,IAAM,EAAA,YAAA;gBACNC,OAAS,EAAA,qBAAA;gBACTC,OAAS,EAAA;oBACPkB,MAAQ,EAAA;AAAEhB,wBAAAA,EAAAA,EAAIT,UAAUU;AAAO;AACjC,iBAAA;AACAE,gBAAAA,QAAAA,EAAUZ,UAAUe;AACtB;AACD;AACH,KAAA;AACF;;;;"}
@@ -1,27 +1,68 @@
1
- const routes = {
2
- type: 'content-api',
3
- routes: [
4
- {
5
- method: 'POST',
6
- path: '/',
7
- handler: 'content-api.upload'
8
- },
9
- {
10
- method: 'GET',
11
- path: '/files',
12
- handler: 'content-api.find'
13
- },
14
- {
15
- method: 'GET',
16
- path: '/files/:id',
17
- handler: 'content-api.findOne'
18
- },
19
- {
20
- method: 'DELETE',
21
- path: '/files/:id',
22
- handler: 'content-api.destroy'
23
- }
24
- ]
1
+ import * as z from 'zod/v4';
2
+ import { UploadRouteValidator } from './validation/upload.mjs';
3
+
4
+ const routes = ()=>{
5
+ const validator = new UploadRouteValidator(strapi);
6
+ return {
7
+ type: 'content-api',
8
+ routes: [
9
+ {
10
+ method: 'POST',
11
+ path: '/',
12
+ handler: 'content-api.upload',
13
+ request: {
14
+ query: {
15
+ id: validator.fileId.optional()
16
+ }
17
+ },
18
+ response: z.union([
19
+ validator.file,
20
+ validator.files
21
+ ])
22
+ },
23
+ {
24
+ method: 'GET',
25
+ path: '/files',
26
+ handler: 'content-api.find',
27
+ request: {
28
+ query: {
29
+ fields: validator.queryFields.optional(),
30
+ populate: validator.queryPopulate.optional(),
31
+ sort: validator.querySort.optional(),
32
+ pagination: validator.pagination.optional(),
33
+ filters: validator.filters.optional()
34
+ }
35
+ },
36
+ response: validator.files
37
+ },
38
+ {
39
+ method: 'GET',
40
+ path: '/files/:id',
41
+ handler: 'content-api.findOne',
42
+ request: {
43
+ params: {
44
+ id: validator.fileId
45
+ },
46
+ query: {
47
+ fields: validator.queryFields.optional(),
48
+ populate: validator.queryPopulate.optional()
49
+ }
50
+ },
51
+ response: validator.file
52
+ },
53
+ {
54
+ method: 'DELETE',
55
+ path: '/files/:id',
56
+ handler: 'content-api.destroy',
57
+ request: {
58
+ params: {
59
+ id: validator.fileId
60
+ }
61
+ },
62
+ response: validator.file
63
+ }
64
+ ]
65
+ };
25
66
  };
26
67
 
27
68
  export { routes };
@@ -1 +1 @@
1
- {"version":3,"file":"content-api.mjs","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["export const routes = {\n type: 'content-api',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'content-api.upload',\n },\n {\n method: 'GET',\n path: '/files',\n handler: 'content-api.find',\n },\n {\n method: 'GET',\n path: '/files/:id',\n handler: 'content-api.findOne',\n },\n {\n method: 'DELETE',\n path: '/files/:id',\n handler: 'content-api.destroy',\n },\n ],\n};\n"],"names":["routes","type","method","path","handler"],"mappings":"MAAaA,MAAS,GAAA;IACpBC,IAAM,EAAA,aAAA;IACND,MAAQ,EAAA;AACN,QAAA;YACEE,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,GAAA;YACNC,OAAS,EAAA;AACX,SAAA;AACA,QAAA;YACEF,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,QAAA;YACNC,OAAS,EAAA;AACX,SAAA;AACA,QAAA;YACEF,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,YAAA;YACNC,OAAS,EAAA;AACX,SAAA;AACA,QAAA;YACEF,MAAQ,EAAA,QAAA;YACRC,IAAM,EAAA,YAAA;YACNC,OAAS,EAAA;AACX;AACD;AACH;;;;"}
1
+ {"version":3,"file":"content-api.mjs","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\nimport { UploadRouteValidator } from './validation';\n\nexport const routes = (): Core.RouterInput => {\n const validator = new UploadRouteValidator(strapi);\n\n return {\n type: 'content-api',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'content-api.upload',\n request: {\n query: { id: validator.fileId.optional() },\n // Note: multipart/form-data is handled by Koa middleware, not Zod\n },\n response: z.union([validator.file, validator.files]),\n },\n {\n method: 'GET',\n path: '/files',\n handler: 'content-api.find',\n request: {\n query: {\n fields: validator.queryFields.optional(),\n populate: validator.queryPopulate.optional(),\n sort: validator.querySort.optional(),\n pagination: validator.pagination.optional(),\n filters: validator.filters.optional(),\n },\n },\n response: validator.files,\n },\n {\n method: 'GET',\n path: '/files/:id',\n handler: 'content-api.findOne',\n request: {\n params: { id: validator.fileId },\n query: {\n fields: validator.queryFields.optional(),\n populate: validator.queryPopulate.optional(),\n },\n },\n response: validator.file,\n },\n {\n method: 'DELETE',\n path: '/files/:id',\n handler: 'content-api.destroy',\n request: {\n params: { id: validator.fileId },\n },\n response: validator.file,\n },\n ],\n };\n};\n"],"names":["routes","validator","UploadRouteValidator","strapi","type","method","path","handler","request","query","id","fileId","optional","response","z","union","file","files","fields","queryFields","populate","queryPopulate","sort","querySort","pagination","filters","params"],"mappings":";;;MAIaA,MAAS,GAAA,IAAA;IACpB,MAAMC,SAAAA,GAAY,IAAIC,oBAAqBC,CAAAA,MAAAA,CAAAA;IAE3C,OAAO;QACLC,IAAM,EAAA,aAAA;QACNJ,MAAQ,EAAA;AACN,YAAA;gBACEK,MAAQ,EAAA,MAAA;gBACRC,IAAM,EAAA,GAAA;gBACNC,OAAS,EAAA,oBAAA;gBACTC,OAAS,EAAA;oBACPC,KAAO,EAAA;wBAAEC,EAAIT,EAAAA,SAAAA,CAAUU,MAAM,CAACC,QAAQ;AAAG;AAE3C,iBAAA;gBACAC,QAAUC,EAAAA,CAAAA,CAAEC,KAAK,CAAC;AAACd,oBAAAA,SAAAA,CAAUe,IAAI;AAAEf,oBAAAA,SAAAA,CAAUgB;AAAM,iBAAA;AACrD,aAAA;AACA,YAAA;gBACEZ,MAAQ,EAAA,KAAA;gBACRC,IAAM,EAAA,QAAA;gBACNC,OAAS,EAAA,kBAAA;gBACTC,OAAS,EAAA;oBACPC,KAAO,EAAA;wBACLS,MAAQjB,EAAAA,SAAAA,CAAUkB,WAAW,CAACP,QAAQ,EAAA;wBACtCQ,QAAUnB,EAAAA,SAAAA,CAAUoB,aAAa,CAACT,QAAQ,EAAA;wBAC1CU,IAAMrB,EAAAA,SAAAA,CAAUsB,SAAS,CAACX,QAAQ,EAAA;wBAClCY,UAAYvB,EAAAA,SAAAA,CAAUuB,UAAU,CAACZ,QAAQ,EAAA;wBACzCa,OAASxB,EAAAA,SAAAA,CAAUwB,OAAO,CAACb,QAAQ;AACrC;AACF,iBAAA;AACAC,gBAAAA,QAAAA,EAAUZ,UAAUgB;AACtB,aAAA;AACA,YAAA;gBACEZ,MAAQ,EAAA,KAAA;gBACRC,IAAM,EAAA,YAAA;gBACNC,OAAS,EAAA,qBAAA;gBACTC,OAAS,EAAA;oBACPkB,MAAQ,EAAA;AAAEhB,wBAAAA,EAAAA,EAAIT,UAAUU;AAAO,qBAAA;oBAC/BF,KAAO,EAAA;wBACLS,MAAQjB,EAAAA,SAAAA,CAAUkB,WAAW,CAACP,QAAQ,EAAA;wBACtCQ,QAAUnB,EAAAA,SAAAA,CAAUoB,aAAa,CAACT,QAAQ;AAC5C;AACF,iBAAA;AACAC,gBAAAA,QAAAA,EAAUZ,UAAUe;AACtB,aAAA;AACA,YAAA;gBACEX,MAAQ,EAAA,QAAA;gBACRC,IAAM,EAAA,YAAA;gBACNC,OAAS,EAAA,qBAAA;gBACTC,OAAS,EAAA;oBACPkB,MAAQ,EAAA;AAAEhB,wBAAAA,EAAAA,EAAIT,UAAUU;AAAO;AACjC,iBAAA;AACAE,gBAAAA,QAAAA,EAAUZ,UAAUe;AACtB;AACD;AACH,KAAA;AACF;;;;"}
@@ -0,0 +1,99 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@strapi/utils');
4
+ var z = require('zod/v4');
5
+
6
+ function _interopNamespaceDefault(e) {
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
24
+
25
+ /**
26
+ * UploadRouteValidator provides validation for upload/file routes.
27
+ *
28
+ * Extends the AbstractRouteValidator to inherit common query parameter validation
29
+ * while adding file-specific validation schemas.
30
+ */ class UploadRouteValidator extends utils.AbstractRouteValidator {
31
+ /**
32
+ * File schema for upload responses
33
+ * Defines the structure of a file object returned by the upload API
34
+ */ get file() {
35
+ return z__namespace.object({
36
+ id: this.fileId,
37
+ documentId: z__namespace.uuid(),
38
+ name: z__namespace.string(),
39
+ alternativeText: z__namespace.string().nullable().optional(),
40
+ caption: z__namespace.string().nullable().optional(),
41
+ width: z__namespace.number().int().optional(),
42
+ height: z__namespace.number().int().optional(),
43
+ formats: z__namespace.record(z__namespace.string(), z__namespace.unknown()).optional(),
44
+ hash: z__namespace.string(),
45
+ ext: z__namespace.string().optional(),
46
+ mime: z__namespace.string(),
47
+ size: z__namespace.number(),
48
+ url: z__namespace.string(),
49
+ previewUrl: z__namespace.string().nullable().optional(),
50
+ folder: z__namespace.number().optional(),
51
+ folderPath: z__namespace.string(),
52
+ provider: z__namespace.string(),
53
+ provider_metadata: z__namespace.record(z__namespace.string(), z__namespace.unknown()).nullable().optional(),
54
+ createdAt: z__namespace.string(),
55
+ updatedAt: z__namespace.string(),
56
+ createdBy: z__namespace.number().optional(),
57
+ updatedBy: z__namespace.number().optional()
58
+ });
59
+ }
60
+ /**
61
+ * Array of files schema
62
+ */ get files() {
63
+ return z__namespace.array(this.file);
64
+ }
65
+ /**
66
+ * File ID parameter validation
67
+ */ get fileId() {
68
+ return z__namespace.number().int().positive();
69
+ }
70
+ /**
71
+ * Upload request body schema for single file uploads
72
+ */ get uploadBody() {
73
+ return z__namespace.object({
74
+ fileInfo: z__namespace.object({
75
+ name: z__namespace.string().optional(),
76
+ alternativeText: z__namespace.string().optional(),
77
+ caption: z__namespace.string().optional()
78
+ }).optional()
79
+ });
80
+ }
81
+ /**
82
+ * Upload request body schema for multiple file uploads
83
+ */ get multiUploadBody() {
84
+ return z__namespace.object({
85
+ fileInfo: z__namespace.array(z__namespace.object({
86
+ name: z__namespace.string().optional(),
87
+ alternativeText: z__namespace.string().optional(),
88
+ caption: z__namespace.string().optional()
89
+ })).optional()
90
+ });
91
+ }
92
+ constructor(strapi){
93
+ super();
94
+ this._strapi = strapi;
95
+ }
96
+ }
97
+
98
+ exports.UploadRouteValidator = UploadRouteValidator;
99
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sources":["../../../../server/src/routes/validation/upload.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { AbstractRouteValidator, type QueryParam } from '@strapi/utils';\nimport * as z from 'zod/v4';\n\nexport type FileQueryParam = QueryParam;\n\n/**\n * UploadRouteValidator provides validation for upload/file routes.\n *\n * Extends the AbstractRouteValidator to inherit common query parameter validation\n * while adding file-specific validation schemas.\n */\nexport class UploadRouteValidator extends AbstractRouteValidator {\n protected readonly _strapi: Core.Strapi;\n\n public constructor(strapi: Core.Strapi) {\n super();\n this._strapi = strapi;\n }\n\n /**\n * File schema for upload responses\n * Defines the structure of a file object returned by the upload API\n */\n get file() {\n return z.object({\n id: this.fileId,\n documentId: z.uuid(),\n name: z.string(),\n alternativeText: z.string().nullable().optional(),\n caption: z.string().nullable().optional(),\n width: z.number().int().optional(),\n height: z.number().int().optional(),\n formats: z.record(z.string(), z.unknown()).optional(),\n hash: z.string(),\n ext: z.string().optional(),\n mime: z.string(),\n size: z.number(),\n url: z.string(),\n previewUrl: z.string().nullable().optional(),\n folder: z.number().optional(),\n folderPath: z.string(),\n provider: z.string(),\n provider_metadata: z.record(z.string(), z.unknown()).nullable().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n });\n }\n\n /**\n * Array of files schema\n */\n get files() {\n return z.array(this.file);\n }\n\n /**\n * File ID parameter validation\n */\n get fileId() {\n return z.number().int().positive();\n }\n\n /**\n * Upload request body schema for single file uploads\n */\n get uploadBody() {\n return z.object({\n fileInfo: z\n .object({\n name: z.string().optional(),\n alternativeText: z.string().optional(),\n caption: z.string().optional(),\n })\n .optional(),\n });\n }\n\n /**\n * Upload request body schema for multiple file uploads\n */\n get multiUploadBody() {\n return z.object({\n fileInfo: z\n .array(\n z.object({\n name: z.string().optional(),\n alternativeText: z.string().optional(),\n caption: z.string().optional(),\n })\n )\n .optional(),\n });\n }\n\n // Note: queryParams() method is inherited from AbstractRouteValidator\n // and provides validation for ['fields', 'populate', 'sort', 'pagination', 'filters']\n}\n"],"names":["UploadRouteValidator","AbstractRouteValidator","file","z","object","id","fileId","documentId","uuid","name","string","alternativeText","nullable","optional","caption","width","number","int","height","formats","record","unknown","hash","ext","mime","size","url","previewUrl","folder","folderPath","provider","provider_metadata","createdAt","updatedAt","createdBy","updatedBy","files","array","positive","uploadBody","fileInfo","multiUploadBody","strapi","_strapi"],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { AbstractRouteValidator } from '@strapi/utils';
2
+ import * as z from 'zod/v4';
3
+
4
+ /**
5
+ * UploadRouteValidator provides validation for upload/file routes.
6
+ *
7
+ * Extends the AbstractRouteValidator to inherit common query parameter validation
8
+ * while adding file-specific validation schemas.
9
+ */ class UploadRouteValidator extends AbstractRouteValidator {
10
+ /**
11
+ * File schema for upload responses
12
+ * Defines the structure of a file object returned by the upload API
13
+ */ get file() {
14
+ return z.object({
15
+ id: this.fileId,
16
+ documentId: z.uuid(),
17
+ name: z.string(),
18
+ alternativeText: z.string().nullable().optional(),
19
+ caption: z.string().nullable().optional(),
20
+ width: z.number().int().optional(),
21
+ height: z.number().int().optional(),
22
+ formats: z.record(z.string(), z.unknown()).optional(),
23
+ hash: z.string(),
24
+ ext: z.string().optional(),
25
+ mime: z.string(),
26
+ size: z.number(),
27
+ url: z.string(),
28
+ previewUrl: z.string().nullable().optional(),
29
+ folder: z.number().optional(),
30
+ folderPath: z.string(),
31
+ provider: z.string(),
32
+ provider_metadata: z.record(z.string(), z.unknown()).nullable().optional(),
33
+ createdAt: z.string(),
34
+ updatedAt: z.string(),
35
+ createdBy: z.number().optional(),
36
+ updatedBy: z.number().optional()
37
+ });
38
+ }
39
+ /**
40
+ * Array of files schema
41
+ */ get files() {
42
+ return z.array(this.file);
43
+ }
44
+ /**
45
+ * File ID parameter validation
46
+ */ get fileId() {
47
+ return z.number().int().positive();
48
+ }
49
+ /**
50
+ * Upload request body schema for single file uploads
51
+ */ get uploadBody() {
52
+ return z.object({
53
+ fileInfo: z.object({
54
+ name: z.string().optional(),
55
+ alternativeText: z.string().optional(),
56
+ caption: z.string().optional()
57
+ }).optional()
58
+ });
59
+ }
60
+ /**
61
+ * Upload request body schema for multiple file uploads
62
+ */ get multiUploadBody() {
63
+ return z.object({
64
+ fileInfo: z.array(z.object({
65
+ name: z.string().optional(),
66
+ alternativeText: z.string().optional(),
67
+ caption: z.string().optional()
68
+ })).optional()
69
+ });
70
+ }
71
+ constructor(strapi){
72
+ super();
73
+ this._strapi = strapi;
74
+ }
75
+ }
76
+
77
+ export { UploadRouteValidator };
78
+ //# sourceMappingURL=upload.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.mjs","sources":["../../../../server/src/routes/validation/upload.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { AbstractRouteValidator, type QueryParam } from '@strapi/utils';\nimport * as z from 'zod/v4';\n\nexport type FileQueryParam = QueryParam;\n\n/**\n * UploadRouteValidator provides validation for upload/file routes.\n *\n * Extends the AbstractRouteValidator to inherit common query parameter validation\n * while adding file-specific validation schemas.\n */\nexport class UploadRouteValidator extends AbstractRouteValidator {\n protected readonly _strapi: Core.Strapi;\n\n public constructor(strapi: Core.Strapi) {\n super();\n this._strapi = strapi;\n }\n\n /**\n * File schema for upload responses\n * Defines the structure of a file object returned by the upload API\n */\n get file() {\n return z.object({\n id: this.fileId,\n documentId: z.uuid(),\n name: z.string(),\n alternativeText: z.string().nullable().optional(),\n caption: z.string().nullable().optional(),\n width: z.number().int().optional(),\n height: z.number().int().optional(),\n formats: z.record(z.string(), z.unknown()).optional(),\n hash: z.string(),\n ext: z.string().optional(),\n mime: z.string(),\n size: z.number(),\n url: z.string(),\n previewUrl: z.string().nullable().optional(),\n folder: z.number().optional(),\n folderPath: z.string(),\n provider: z.string(),\n provider_metadata: z.record(z.string(), z.unknown()).nullable().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n });\n }\n\n /**\n * Array of files schema\n */\n get files() {\n return z.array(this.file);\n }\n\n /**\n * File ID parameter validation\n */\n get fileId() {\n return z.number().int().positive();\n }\n\n /**\n * Upload request body schema for single file uploads\n */\n get uploadBody() {\n return z.object({\n fileInfo: z\n .object({\n name: z.string().optional(),\n alternativeText: z.string().optional(),\n caption: z.string().optional(),\n })\n .optional(),\n });\n }\n\n /**\n * Upload request body schema for multiple file uploads\n */\n get multiUploadBody() {\n return z.object({\n fileInfo: z\n .array(\n z.object({\n name: z.string().optional(),\n alternativeText: z.string().optional(),\n caption: z.string().optional(),\n })\n )\n .optional(),\n });\n }\n\n // Note: queryParams() method is inherited from AbstractRouteValidator\n // and provides validation for ['fields', 'populate', 'sort', 'pagination', 'filters']\n}\n"],"names":["UploadRouteValidator","AbstractRouteValidator","file","z","object","id","fileId","documentId","uuid","name","string","alternativeText","nullable","optional","caption","width","number","int","height","formats","record","unknown","hash","ext","mime","size","url","previewUrl","folder","folderPath","provider","provider_metadata","createdAt","updatedAt","createdBy","updatedBy","files","array","positive","uploadBody","fileInfo","multiUploadBody","strapi","_strapi"],"mappings":"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"}
@@ -30,14 +30,7 @@ declare const _default: () => {
30
30
  };
31
31
  }[];
32
32
  };
33
- 'content-api': {
34
- type: string;
35
- routes: {
36
- method: string;
37
- path: string;
38
- handler: string;
39
- }[];
40
- };
33
+ 'content-api': () => import("@strapi/types/dist/core").RouterInput;
41
34
  viewConfiguration: {
42
35
  type: string;
43
36
  routes: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOxC,wBAQG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOxC,wBAQG"}
@@ -1,9 +1,3 @@
1
- export declare const routes: {
2
- type: string;
3
- routes: {
4
- method: string;
5
- path: string;
6
- handler: string;
7
- }[];
8
- };
1
+ import type { Core } from '@strapi/types';
2
+ export declare const routes: () => Core.RouterInput;
9
3
  //# sourceMappingURL=content-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;CAwBlB,CAAC"}
1
+ {"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,eAAO,MAAM,MAAM,QAAO,KAAK,WAuD9B,CAAC"}
@@ -15,14 +15,7 @@ export declare const routes: {
15
15
  };
16
16
  }[];
17
17
  };
18
- 'content-api': {
19
- type: string;
20
- routes: {
21
- method: string;
22
- path: string;
23
- handler: string;
24
- }[];
25
- };
18
+ 'content-api': () => import("@strapi/types/dist/core").RouterInput;
26
19
  viewConfiguration: {
27
20
  type: string;
28
21
  routes: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIlB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { UploadRouteValidator } from './upload';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/routes/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,94 @@
1
+ import type { Core } from '@strapi/types';
2
+ import { AbstractRouteValidator, type QueryParam } from '@strapi/utils';
3
+ import * as z from 'zod/v4';
4
+ export type FileQueryParam = QueryParam;
5
+ /**
6
+ * UploadRouteValidator provides validation for upload/file routes.
7
+ *
8
+ * Extends the AbstractRouteValidator to inherit common query parameter validation
9
+ * while adding file-specific validation schemas.
10
+ */
11
+ export declare class UploadRouteValidator extends AbstractRouteValidator {
12
+ protected readonly _strapi: Core.Strapi;
13
+ constructor(strapi: Core.Strapi);
14
+ /**
15
+ * File schema for upload responses
16
+ * Defines the structure of a file object returned by the upload API
17
+ */
18
+ get file(): z.ZodObject<{
19
+ id: z.ZodNumber;
20
+ documentId: z.ZodUUID;
21
+ name: z.ZodString;
22
+ alternativeText: z.ZodOptional<z.ZodNullable<z.ZodString>>;
23
+ caption: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
+ width: z.ZodOptional<z.ZodNumber>;
25
+ height: z.ZodOptional<z.ZodNumber>;
26
+ formats: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
27
+ hash: z.ZodString;
28
+ ext: z.ZodOptional<z.ZodString>;
29
+ mime: z.ZodString;
30
+ size: z.ZodNumber;
31
+ url: z.ZodString;
32
+ previewUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
33
+ folder: z.ZodOptional<z.ZodNumber>;
34
+ folderPath: z.ZodString;
35
+ provider: z.ZodString;
36
+ provider_metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
37
+ createdAt: z.ZodString;
38
+ updatedAt: z.ZodString;
39
+ createdBy: z.ZodOptional<z.ZodNumber>;
40
+ updatedBy: z.ZodOptional<z.ZodNumber>;
41
+ }, z.core.$strip>;
42
+ /**
43
+ * Array of files schema
44
+ */
45
+ get files(): z.ZodArray<z.ZodObject<{
46
+ id: z.ZodNumber;
47
+ documentId: z.ZodUUID;
48
+ name: z.ZodString;
49
+ alternativeText: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ caption: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ width: z.ZodOptional<z.ZodNumber>;
52
+ height: z.ZodOptional<z.ZodNumber>;
53
+ formats: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
54
+ hash: z.ZodString;
55
+ ext: z.ZodOptional<z.ZodString>;
56
+ mime: z.ZodString;
57
+ size: z.ZodNumber;
58
+ url: z.ZodString;
59
+ previewUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
60
+ folder: z.ZodOptional<z.ZodNumber>;
61
+ folderPath: z.ZodString;
62
+ provider: z.ZodString;
63
+ provider_metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
64
+ createdAt: z.ZodString;
65
+ updatedAt: z.ZodString;
66
+ createdBy: z.ZodOptional<z.ZodNumber>;
67
+ updatedBy: z.ZodOptional<z.ZodNumber>;
68
+ }, z.core.$strip>>;
69
+ /**
70
+ * File ID parameter validation
71
+ */
72
+ get fileId(): z.ZodNumber;
73
+ /**
74
+ * Upload request body schema for single file uploads
75
+ */
76
+ get uploadBody(): z.ZodObject<{
77
+ fileInfo: z.ZodOptional<z.ZodObject<{
78
+ name: z.ZodOptional<z.ZodString>;
79
+ alternativeText: z.ZodOptional<z.ZodString>;
80
+ caption: z.ZodOptional<z.ZodString>;
81
+ }, z.core.$strip>>;
82
+ }, z.core.$strip>;
83
+ /**
84
+ * Upload request body schema for multiple file uploads
85
+ */
86
+ get multiUploadBody(): z.ZodObject<{
87
+ fileInfo: z.ZodOptional<z.ZodArray<z.ZodObject<{
88
+ name: z.ZodOptional<z.ZodString>;
89
+ alternativeText: z.ZodOptional<z.ZodString>;
90
+ caption: z.ZodOptional<z.ZodString>;
91
+ }, z.core.$strip>>>;
92
+ }, z.core.$strip>;
93
+ }
94
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../../server/src/routes/validation/upload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC9D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;gBAErB,MAAM,EAAE,IAAI,CAAC,MAAM;IAKtC;;;OAGG;IACH,IAAI,IAAI;;;;;;;;;;;;;;;;;;;;;;;sBAyBP;IAED;;OAEG;IACH,IAAI,KAAK;;;;;;;;;;;;;;;;;;;;;;;uBAER;IAED;;OAEG;IACH,IAAI,MAAM,gBAET;IAED;;OAEG;IACH,IAAI,UAAU;;;;;;sBAUb;IAED;;OAEG;IACH,IAAI,eAAe;;;;;;sBAYlB;CAIF"}