@strapi/core 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.
- package/dist/core-api/routes/index.d.ts +4 -22
- package/dist/core-api/routes/index.d.ts.map +1 -1
- package/dist/core-api/routes/index.js +150 -8
- package/dist/core-api/routes/index.js.map +1 -1
- package/dist/core-api/routes/index.mjs +131 -8
- package/dist/core-api/routes/index.mjs.map +1 -1
- package/dist/core-api/routes/validation/attributes.d.ts +244 -0
- package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
- package/dist/core-api/routes/validation/attributes.js +560 -0
- package/dist/core-api/routes/validation/attributes.js.map +1 -0
- package/dist/core-api/routes/validation/attributes.mjs +521 -0
- package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
- package/dist/core-api/routes/validation/common.d.ts +105 -0
- package/dist/core-api/routes/validation/common.d.ts.map +1 -0
- package/dist/core-api/routes/validation/common.js +116 -0
- package/dist/core-api/routes/validation/common.js.map +1 -0
- package/dist/core-api/routes/validation/common.mjs +95 -0
- package/dist/core-api/routes/validation/common.mjs.map +1 -0
- package/dist/core-api/routes/validation/component.d.ts +34 -0
- package/dist/core-api/routes/validation/component.d.ts.map +1 -0
- package/dist/core-api/routes/validation/component.js +45 -0
- package/dist/core-api/routes/validation/component.js.map +1 -0
- package/dist/core-api/routes/validation/component.mjs +43 -0
- package/dist/core-api/routes/validation/component.mjs.map +1 -0
- package/dist/core-api/routes/validation/constants.d.ts +8 -0
- package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
- package/dist/core-api/routes/validation/constants.js +18 -0
- package/dist/core-api/routes/validation/constants.js.map +1 -0
- package/dist/core-api/routes/validation/constants.mjs +16 -0
- package/dist/core-api/routes/validation/constants.mjs.map +1 -0
- package/dist/core-api/routes/validation/content-type.d.ts +128 -0
- package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
- package/dist/core-api/routes/validation/content-type.js +201 -0
- package/dist/core-api/routes/validation/content-type.js.map +1 -0
- package/dist/core-api/routes/validation/content-type.mjs +180 -0
- package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
- package/dist/core-api/routes/validation/index.d.ts +5 -0
- package/dist/core-api/routes/validation/index.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.d.ts +105 -0
- package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.js +238 -0
- package/dist/core-api/routes/validation/mappers.js.map +1 -0
- package/dist/core-api/routes/validation/mappers.mjs +214 -0
- package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
- package/dist/core-api/routes/validation/utils.d.ts +47 -0
- package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
- package/dist/core-api/routes/validation/utils.js +112 -0
- package/dist/core-api/routes/validation/utils.js.map +1 -0
- package/dist/core-api/routes/validation/utils.mjs +90 -0
- package/dist/core-api/routes/validation/utils.mjs.map +1 -0
- package/dist/domain/content-type/index.d.ts.map +1 -1
- package/dist/domain/content-type/index.js +17 -1
- package/dist/domain/content-type/index.js.map +1 -1
- package/dist/domain/content-type/index.mjs +17 -1
- package/dist/domain/content-type/index.mjs.map +1 -1
- package/dist/domain/module/index.d.ts.map +1 -1
- package/dist/domain/module/index.js +3 -0
- package/dist/domain/module/index.js.map +1 -1
- package/dist/domain/module/index.mjs +3 -0
- package/dist/domain/module/index.mjs.map +1 -1
- package/dist/factories.d.ts +3 -1
- package/dist/factories.d.ts.map +1 -1
- package/dist/factories.js +10 -2
- package/dist/factories.js.map +1 -1
- package/dist/factories.mjs +10 -3
- package/dist/factories.mjs.map +1 -1
- package/dist/middlewares/cors.d.ts +9 -1
- package/dist/middlewares/cors.d.ts.map +1 -1
- package/dist/middlewares/cors.js +39 -17
- package/dist/middlewares/cors.js.map +1 -1
- package/dist/middlewares/cors.mjs +39 -18
- package/dist/middlewares/cors.mjs.map +1 -1
- package/dist/migrations/first-published-at.d.ts +4 -0
- package/dist/migrations/first-published-at.d.ts.map +1 -0
- package/dist/migrations/first-published-at.js +51 -0
- package/dist/migrations/first-published-at.js.map +1 -0
- package/dist/migrations/first-published-at.mjs +49 -0
- package/dist/migrations/first-published-at.mjs.map +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +5 -0
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/index.mjs +5 -0
- package/dist/migrations/index.mjs.map +1 -1
- package/dist/package.json.js +13 -12
- package/dist/package.json.js.map +1 -1
- package/dist/package.json.mjs +13 -12
- package/dist/package.json.mjs.map +1 -1
- package/dist/services/document-service/first-published-at.d.ts +7 -0
- package/dist/services/document-service/first-published-at.d.ts.map +1 -0
- package/dist/services/document-service/first-published-at.js +31 -0
- package/dist/services/document-service/first-published-at.js.map +1 -0
- package/dist/services/document-service/first-published-at.mjs +28 -0
- package/dist/services/document-service/first-published-at.mjs.map +1 -0
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +7 -4
- package/dist/services/document-service/repository.js.map +1 -1
- package/dist/services/document-service/repository.mjs +7 -4
- package/dist/services/document-service/repository.mjs.map +1 -1
- package/dist/services/metrics/index.d.ts +1 -1
- package/dist/services/metrics/index.d.ts.map +1 -1
- package/dist/services/metrics/index.js +9 -8
- package/dist/services/metrics/index.js.map +1 -1
- package/dist/services/metrics/index.mjs +9 -8
- package/dist/services/metrics/index.mjs.map +1 -1
- package/dist/services/server/register-routes.js +22 -2
- package/dist/services/server/register-routes.js.map +1 -1
- package/dist/services/server/register-routes.mjs +22 -2
- package/dist/services/server/register-routes.mjs.map +1 -1
- package/dist/services/server/routing.d.ts +10 -0
- package/dist/services/server/routing.d.ts.map +1 -1
- package/dist/services/server/routing.js +7 -1
- package/dist/services/server/routing.js.map +1 -1
- package/dist/services/server/routing.mjs +7 -1
- package/dist/services/server/routing.mjs.map +1 -1
- package/package.json +13 -12
@@ -1,24 +1,6 @@
|
|
1
|
-
import type { Schema } from '@strapi/types';
|
2
|
-
export declare const createRoutes: ({ contentType }: {
|
1
|
+
import type { Core, Schema } from '@strapi/types';
|
2
|
+
export declare const createRoutes: ({ strapi, contentType, }: {
|
3
|
+
strapi: Core.Strapi;
|
3
4
|
contentType: Schema.ContentType;
|
4
|
-
}) =>
|
5
|
-
find: {
|
6
|
-
method: string;
|
7
|
-
path: string;
|
8
|
-
handler: string;
|
9
|
-
config: {};
|
10
|
-
};
|
11
|
-
update: {
|
12
|
-
method: string;
|
13
|
-
path: string;
|
14
|
-
handler: string;
|
15
|
-
config: {};
|
16
|
-
};
|
17
|
-
delete: {
|
18
|
-
method: string;
|
19
|
-
path: string;
|
20
|
-
handler: string;
|
21
|
-
config: {};
|
22
|
-
};
|
23
|
-
};
|
5
|
+
}) => Record<string, Partial<Core.Route>>;
|
24
6
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core-api/routes/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core-api/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQlD,eAAO,MAAM,YAAY,6BAGtB;IACD,MAAM,EAAE,KAAK,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,WAAW,CAAC;CACjC,wCAMA,CAAC"}
|
@@ -1,69 +1,211 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
3
|
var strapiUtils = require('@strapi/utils');
|
4
|
+
var z = require('zod/v4');
|
5
|
+
var contentType = require('./validation/content-type.js');
|
4
6
|
|
5
|
-
|
7
|
+
function _interopNamespaceDefault(e) {
|
8
|
+
var n = Object.create(null);
|
9
|
+
if (e) {
|
10
|
+
Object.keys(e).forEach(function (k) {
|
11
|
+
if (k !== 'default') {
|
12
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
13
|
+
Object.defineProperty(n, k, d.get ? d : {
|
14
|
+
enumerable: true,
|
15
|
+
get: function () { return e[k]; }
|
16
|
+
});
|
17
|
+
}
|
18
|
+
});
|
19
|
+
}
|
20
|
+
n.default = e;
|
21
|
+
return Object.freeze(n);
|
22
|
+
}
|
23
|
+
|
24
|
+
var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
25
|
+
|
26
|
+
const createRoutes = ({ strapi: strapi1, contentType })=>{
|
6
27
|
if (strapiUtils.contentTypes.isSingleType(contentType)) {
|
7
|
-
return getSingleTypeRoutes(contentType);
|
28
|
+
return getSingleTypeRoutes(contentType, strapi1);
|
8
29
|
}
|
9
|
-
return getCollectionTypeRoutes(contentType);
|
30
|
+
return getCollectionTypeRoutes(contentType, strapi1);
|
10
31
|
};
|
11
|
-
const getSingleTypeRoutes = (
|
32
|
+
const getSingleTypeRoutes = (schema, strapi1)=>{
|
33
|
+
const { uid, info } = schema;
|
34
|
+
const validator = new contentType.CoreContentTypeRouteValidator(strapi1, uid);
|
35
|
+
const conditionalQueryParams = getConditionalQueryParams(schema);
|
12
36
|
return {
|
13
37
|
find: {
|
14
38
|
method: 'GET',
|
15
39
|
path: `/${info.singularName}`,
|
16
40
|
handler: `${uid}.find`,
|
41
|
+
request: {
|
42
|
+
query: validator.queryParams([
|
43
|
+
'fields',
|
44
|
+
'populate',
|
45
|
+
'filters',
|
46
|
+
...conditionalQueryParams
|
47
|
+
])
|
48
|
+
},
|
49
|
+
response: z__namespace.object({
|
50
|
+
data: validator.document
|
51
|
+
}),
|
17
52
|
config: {}
|
18
53
|
},
|
19
54
|
update: {
|
20
55
|
method: 'PUT',
|
21
56
|
path: `/${info.singularName}`,
|
22
57
|
handler: `${uid}.update`,
|
58
|
+
request: {
|
59
|
+
query: validator.queryParams([
|
60
|
+
'fields',
|
61
|
+
'populate',
|
62
|
+
...conditionalQueryParams
|
63
|
+
]),
|
64
|
+
body: {
|
65
|
+
'application/json': validator.partialBody
|
66
|
+
}
|
67
|
+
},
|
68
|
+
response: z__namespace.object({
|
69
|
+
data: validator.document
|
70
|
+
}),
|
23
71
|
config: {}
|
24
72
|
},
|
25
73
|
delete: {
|
26
74
|
method: 'DELETE',
|
27
75
|
path: `/${info.singularName}`,
|
28
76
|
handler: `${uid}.delete`,
|
77
|
+
request: {
|
78
|
+
query: validator.queryParams([
|
79
|
+
'fields',
|
80
|
+
'populate',
|
81
|
+
...conditionalQueryParams
|
82
|
+
])
|
83
|
+
},
|
84
|
+
response: z__namespace.object({
|
85
|
+
data: validator.document
|
86
|
+
}),
|
29
87
|
config: {}
|
30
88
|
}
|
31
89
|
};
|
32
90
|
};
|
33
|
-
const getCollectionTypeRoutes = (
|
91
|
+
const getCollectionTypeRoutes = (schema, strapi1)=>{
|
92
|
+
const { uid, info } = schema;
|
93
|
+
const validator = new contentType.CoreContentTypeRouteValidator(strapi1, uid);
|
94
|
+
const conditionalQueryParams = getConditionalQueryParams(schema);
|
34
95
|
return {
|
35
96
|
find: {
|
36
97
|
method: 'GET',
|
37
98
|
path: `/${info.pluralName}`,
|
38
99
|
handler: `${uid}.find`,
|
100
|
+
request: {
|
101
|
+
query: validator.queryParams([
|
102
|
+
'fields',
|
103
|
+
'filters',
|
104
|
+
'_q',
|
105
|
+
'pagination',
|
106
|
+
'sort',
|
107
|
+
'populate',
|
108
|
+
...conditionalQueryParams
|
109
|
+
])
|
110
|
+
},
|
111
|
+
response: z__namespace.object({
|
112
|
+
data: validator.documents
|
113
|
+
}),
|
39
114
|
config: {}
|
40
115
|
},
|
41
116
|
findOne: {
|
42
117
|
method: 'GET',
|
43
118
|
path: `/${info.pluralName}/:id`,
|
44
119
|
handler: `${uid}.findOne`,
|
45
|
-
|
120
|
+
request: {
|
121
|
+
params: {
|
122
|
+
id: validator.documentID
|
123
|
+
},
|
124
|
+
query: validator.queryParams([
|
125
|
+
'fields',
|
126
|
+
'populate',
|
127
|
+
'filters',
|
128
|
+
'sort',
|
129
|
+
...conditionalQueryParams
|
130
|
+
])
|
131
|
+
},
|
132
|
+
response: z__namespace.object({
|
133
|
+
data: validator.document
|
134
|
+
})
|
46
135
|
},
|
47
136
|
create: {
|
48
137
|
method: 'POST',
|
49
138
|
path: `/${info.pluralName}`,
|
50
139
|
handler: `${uid}.create`,
|
140
|
+
request: {
|
141
|
+
query: validator.queryParams([
|
142
|
+
'fields',
|
143
|
+
'populate',
|
144
|
+
...conditionalQueryParams
|
145
|
+
]),
|
146
|
+
body: {
|
147
|
+
'application/json': validator.body
|
148
|
+
}
|
149
|
+
},
|
150
|
+
response: z__namespace.object({
|
151
|
+
data: validator.document
|
152
|
+
}),
|
51
153
|
config: {}
|
52
154
|
},
|
53
155
|
update: {
|
54
156
|
method: 'PUT',
|
55
157
|
path: `/${info.pluralName}/:id`,
|
56
158
|
handler: `${uid}.update`,
|
57
|
-
|
159
|
+
request: {
|
160
|
+
query: validator.queryParams([
|
161
|
+
'fields',
|
162
|
+
'populate',
|
163
|
+
...conditionalQueryParams
|
164
|
+
]),
|
165
|
+
params: {
|
166
|
+
id: validator.documentID
|
167
|
+
},
|
168
|
+
body: {
|
169
|
+
'application/json': validator.partialBody
|
170
|
+
}
|
171
|
+
},
|
172
|
+
response: z__namespace.object({
|
173
|
+
data: validator.document
|
174
|
+
})
|
58
175
|
},
|
59
176
|
delete: {
|
60
177
|
method: 'DELETE',
|
61
178
|
path: `/${info.pluralName}/:id`,
|
62
179
|
handler: `${uid}.delete`,
|
63
|
-
|
180
|
+
request: {
|
181
|
+
query: validator.queryParams([
|
182
|
+
'fields',
|
183
|
+
'populate',
|
184
|
+
'filters',
|
185
|
+
...conditionalQueryParams
|
186
|
+
]),
|
187
|
+
params: {
|
188
|
+
id: validator.documentID
|
189
|
+
}
|
190
|
+
},
|
191
|
+
response: z__namespace.object({
|
192
|
+
data: validator.document
|
193
|
+
})
|
64
194
|
}
|
65
195
|
};
|
66
196
|
};
|
197
|
+
const getConditionalQueryParams = (schema)=>{
|
198
|
+
const isLocalized = strapi.plugin('i18n').service('content-types').isLocalizedContentType(schema);
|
199
|
+
const hasDraftAndPublish = strapiUtils.contentTypes.hasDraftAndPublish(schema);
|
200
|
+
return [
|
201
|
+
...isLocalized ? [
|
202
|
+
'locale'
|
203
|
+
] : [],
|
204
|
+
...hasDraftAndPublish ? [
|
205
|
+
'status'
|
206
|
+
] : []
|
207
|
+
];
|
208
|
+
};
|
67
209
|
|
68
210
|
exports.createRoutes = createRoutes;
|
69
211
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/core-api/routes/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nexport const createRoutes = ({ contentType }: { contentType: Schema.ContentType }) => {\n if (contentTypeUtils.isSingleType(contentType)) {\n return getSingleTypeRoutes(contentType);\n }\n\n return getCollectionTypeRoutes(contentType);\n};\n\nconst getSingleTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.singularName}`,\n handler: `${uid}.find`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.singularName}`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.singularName}`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n\nconst getCollectionTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.pluralName}`,\n handler: `${uid}.find`,\n config: {},\n },\n findOne: {\n method: 'GET',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.findOne`,\n config: {},\n },\n create: {\n method: 'POST',\n path: `/${info.pluralName}`,\n handler: `${uid}.create`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n"],"names":["createRoutes","contentType","contentTypeUtils","isSingleType","getSingleTypeRoutes","getCollectionTypeRoutes","uid","info","find","method","path","singularName","handler","config","update","delete","pluralName","findOne","create"],"mappings":";;;;AAGaA,MAAAA,YAAAA,GAAe,CAAC,EAAEC,WAAW,EAAuC,GAAA;IAC/E,IAAIC,wBAAAA,CAAiBC,YAAY,CAACF,WAAc,CAAA,EAAA;AAC9C,QAAA,OAAOG,mBAAoBH,CAAAA,WAAAA,CAAAA;AAC7B;AAEA,IAAA,OAAOI,uBAAwBJ,CAAAA,WAAAA,CAAAA;AACjC;AAEA,MAAMG,sBAAsB,CAAC,EAAEE,GAAG,EAAEC,IAAI,EAAsB,GAAA;IAC5D,OAAO;QACLC,IAAM,EAAA;YACJC,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKI,CAAAA,YAAY,CAAC,CAAC;AAC7BC,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,KAAK,CAAC;AACtBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAC,MAAQ,EAAA;YACNL,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKI,CAAAA,YAAY,CAAC,CAAC;AAC7BC,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAE,MAAQ,EAAA;YACNN,MAAQ,EAAA,QAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKI,CAAAA,YAAY,CAAC,CAAC;AAC7BC,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV;AACF,KAAA;AACF,CAAA;AAEA,MAAMR,0BAA0B,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAsB,GAAA;IAChE,OAAO;QACLC,IAAM,EAAA;YACJC,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKS,CAAAA,UAAU,CAAC,CAAC;AAC3BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,KAAK,CAAC;AACtBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAI,OAAS,EAAA;YACPR,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,KAAKS,UAAU,CAAC,IAAI,CAAC;AAC/BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,QAAQ,CAAC;AACzBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAK,MAAQ,EAAA;YACNT,MAAQ,EAAA,MAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKS,CAAAA,UAAU,CAAC,CAAC;AAC3BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAC,MAAQ,EAAA;YACNL,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,KAAKS,UAAU,CAAC,IAAI,CAAC;AAC/BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAE,MAAQ,EAAA;YACNN,MAAQ,EAAA,QAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,KAAKS,UAAU,CAAC,IAAI,CAAC;AAC/BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV;AACF,KAAA;AACF,CAAA;;;;"}
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/core-api/routes/index.ts"],"sourcesContent":["import type { Core, Schema } from '@strapi/types';\n\nimport { contentTypes, contentTypes as contentTypeUtils } from '@strapi/utils';\nimport * as z from 'zod/v4';\nimport type { QueryParam } from './validation/content-type';\n\nimport { CoreContentTypeRouteValidator } from './validation';\n\nexport const createRoutes = ({\n strapi,\n contentType,\n}: {\n strapi: Core.Strapi;\n contentType: Schema.ContentType;\n}) => {\n if (contentTypeUtils.isSingleType(contentType)) {\n return getSingleTypeRoutes(contentType, strapi);\n }\n\n return getCollectionTypeRoutes(contentType, strapi);\n};\n\nconst getSingleTypeRoutes = (\n schema: Schema.ContentType,\n strapi: Core.Strapi\n): Record<string, Partial<Core.Route>> => {\n const { uid, info } = schema;\n\n const validator = new CoreContentTypeRouteValidator(strapi, uid);\n const conditionalQueryParams = getConditionalQueryParams(schema);\n\n return {\n find: {\n method: 'GET',\n path: `/${info.singularName}`,\n handler: `${uid}.find`,\n request: {\n query: validator.queryParams(['fields', 'populate', 'filters', ...conditionalQueryParams]),\n },\n response: z.object({ data: validator.document }),\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.singularName}`,\n handler: `${uid}.update`,\n request: {\n query: validator.queryParams(['fields', 'populate', ...conditionalQueryParams]),\n body: { 'application/json': validator.partialBody },\n },\n response: z.object({ data: validator.document }),\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.singularName}`,\n handler: `${uid}.delete`,\n request: {\n query: validator.queryParams(['fields', 'populate', ...conditionalQueryParams]),\n },\n response: z.object({ data: validator.document }),\n config: {},\n },\n };\n};\n\nconst getCollectionTypeRoutes = (\n schema: Schema.ContentType,\n strapi: Core.Strapi\n): Record<string, Partial<Core.Route>> => {\n const { uid, info } = schema;\n\n const validator = new CoreContentTypeRouteValidator(strapi, uid);\n const conditionalQueryParams = getConditionalQueryParams(schema);\n\n return {\n find: {\n method: 'GET',\n path: `/${info.pluralName}`,\n handler: `${uid}.find`,\n request: {\n query: validator.queryParams([\n 'fields',\n 'filters',\n '_q',\n 'pagination',\n 'sort',\n 'populate',\n ...conditionalQueryParams,\n ]),\n },\n response: z.object({ data: validator.documents }),\n config: {},\n },\n findOne: {\n method: 'GET',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.findOne`,\n request: {\n params: { id: validator.documentID },\n query: validator.queryParams([\n 'fields',\n 'populate',\n 'filters',\n 'sort',\n ...conditionalQueryParams,\n ]),\n },\n response: z.object({ data: validator.document }),\n },\n create: {\n method: 'POST',\n path: `/${info.pluralName}`,\n handler: `${uid}.create`,\n request: {\n query: validator.queryParams(['fields', 'populate', ...conditionalQueryParams]),\n body: { 'application/json': validator.body },\n },\n response: z.object({ data: validator.document }),\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.update`,\n request: {\n query: validator.queryParams(['fields', 'populate', ...conditionalQueryParams]),\n params: { id: validator.documentID },\n body: { 'application/json': validator.partialBody },\n },\n response: z.object({ data: validator.document }),\n },\n delete: {\n method: 'DELETE',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.delete`,\n request: {\n query: validator.queryParams(['fields', 'populate', 'filters', ...conditionalQueryParams]),\n params: { id: validator.documentID },\n },\n response: z.object({ data: validator.document }),\n },\n };\n};\n\nconst getConditionalQueryParams = (schema: Schema.ContentType) => {\n const isLocalized = strapi.plugin('i18n').service('content-types').isLocalizedContentType(schema);\n const hasDraftAndPublish = contentTypes.hasDraftAndPublish(schema);\n\n return [\n ...(isLocalized ? ['locale'] : []),\n ...(hasDraftAndPublish ? ['status'] : []),\n ] as QueryParam[];\n};\n"],"names":["createRoutes","strapi","contentType","contentTypeUtils","isSingleType","getSingleTypeRoutes","getCollectionTypeRoutes","schema","uid","info","validator","CoreContentTypeRouteValidator","conditionalQueryParams","getConditionalQueryParams","find","method","path","singularName","handler","request","query","queryParams","response","z","object","data","document","config","update","body","partialBody","delete","pluralName","documents","findOne","params","id","documentID","create","isLocalized","plugin","service","isLocalizedContentType","hasDraftAndPublish","contentTypes"],"mappings":"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"}
|
@@ -1,67 +1,190 @@
|
|
1
1
|
import { contentTypes } from '@strapi/utils';
|
2
|
+
import * as z from 'zod/v4';
|
3
|
+
import { CoreContentTypeRouteValidator } from './validation/content-type.mjs';
|
2
4
|
|
3
|
-
const createRoutes = ({ contentType })=>{
|
5
|
+
const createRoutes = ({ strapi: strapi1, contentType })=>{
|
4
6
|
if (contentTypes.isSingleType(contentType)) {
|
5
|
-
return getSingleTypeRoutes(contentType);
|
7
|
+
return getSingleTypeRoutes(contentType, strapi1);
|
6
8
|
}
|
7
|
-
return getCollectionTypeRoutes(contentType);
|
9
|
+
return getCollectionTypeRoutes(contentType, strapi1);
|
8
10
|
};
|
9
|
-
const getSingleTypeRoutes = (
|
11
|
+
const getSingleTypeRoutes = (schema, strapi1)=>{
|
12
|
+
const { uid, info } = schema;
|
13
|
+
const validator = new CoreContentTypeRouteValidator(strapi1, uid);
|
14
|
+
const conditionalQueryParams = getConditionalQueryParams(schema);
|
10
15
|
return {
|
11
16
|
find: {
|
12
17
|
method: 'GET',
|
13
18
|
path: `/${info.singularName}`,
|
14
19
|
handler: `${uid}.find`,
|
20
|
+
request: {
|
21
|
+
query: validator.queryParams([
|
22
|
+
'fields',
|
23
|
+
'populate',
|
24
|
+
'filters',
|
25
|
+
...conditionalQueryParams
|
26
|
+
])
|
27
|
+
},
|
28
|
+
response: z.object({
|
29
|
+
data: validator.document
|
30
|
+
}),
|
15
31
|
config: {}
|
16
32
|
},
|
17
33
|
update: {
|
18
34
|
method: 'PUT',
|
19
35
|
path: `/${info.singularName}`,
|
20
36
|
handler: `${uid}.update`,
|
37
|
+
request: {
|
38
|
+
query: validator.queryParams([
|
39
|
+
'fields',
|
40
|
+
'populate',
|
41
|
+
...conditionalQueryParams
|
42
|
+
]),
|
43
|
+
body: {
|
44
|
+
'application/json': validator.partialBody
|
45
|
+
}
|
46
|
+
},
|
47
|
+
response: z.object({
|
48
|
+
data: validator.document
|
49
|
+
}),
|
21
50
|
config: {}
|
22
51
|
},
|
23
52
|
delete: {
|
24
53
|
method: 'DELETE',
|
25
54
|
path: `/${info.singularName}`,
|
26
55
|
handler: `${uid}.delete`,
|
56
|
+
request: {
|
57
|
+
query: validator.queryParams([
|
58
|
+
'fields',
|
59
|
+
'populate',
|
60
|
+
...conditionalQueryParams
|
61
|
+
])
|
62
|
+
},
|
63
|
+
response: z.object({
|
64
|
+
data: validator.document
|
65
|
+
}),
|
27
66
|
config: {}
|
28
67
|
}
|
29
68
|
};
|
30
69
|
};
|
31
|
-
const getCollectionTypeRoutes = (
|
70
|
+
const getCollectionTypeRoutes = (schema, strapi1)=>{
|
71
|
+
const { uid, info } = schema;
|
72
|
+
const validator = new CoreContentTypeRouteValidator(strapi1, uid);
|
73
|
+
const conditionalQueryParams = getConditionalQueryParams(schema);
|
32
74
|
return {
|
33
75
|
find: {
|
34
76
|
method: 'GET',
|
35
77
|
path: `/${info.pluralName}`,
|
36
78
|
handler: `${uid}.find`,
|
79
|
+
request: {
|
80
|
+
query: validator.queryParams([
|
81
|
+
'fields',
|
82
|
+
'filters',
|
83
|
+
'_q',
|
84
|
+
'pagination',
|
85
|
+
'sort',
|
86
|
+
'populate',
|
87
|
+
...conditionalQueryParams
|
88
|
+
])
|
89
|
+
},
|
90
|
+
response: z.object({
|
91
|
+
data: validator.documents
|
92
|
+
}),
|
37
93
|
config: {}
|
38
94
|
},
|
39
95
|
findOne: {
|
40
96
|
method: 'GET',
|
41
97
|
path: `/${info.pluralName}/:id`,
|
42
98
|
handler: `${uid}.findOne`,
|
43
|
-
|
99
|
+
request: {
|
100
|
+
params: {
|
101
|
+
id: validator.documentID
|
102
|
+
},
|
103
|
+
query: validator.queryParams([
|
104
|
+
'fields',
|
105
|
+
'populate',
|
106
|
+
'filters',
|
107
|
+
'sort',
|
108
|
+
...conditionalQueryParams
|
109
|
+
])
|
110
|
+
},
|
111
|
+
response: z.object({
|
112
|
+
data: validator.document
|
113
|
+
})
|
44
114
|
},
|
45
115
|
create: {
|
46
116
|
method: 'POST',
|
47
117
|
path: `/${info.pluralName}`,
|
48
118
|
handler: `${uid}.create`,
|
119
|
+
request: {
|
120
|
+
query: validator.queryParams([
|
121
|
+
'fields',
|
122
|
+
'populate',
|
123
|
+
...conditionalQueryParams
|
124
|
+
]),
|
125
|
+
body: {
|
126
|
+
'application/json': validator.body
|
127
|
+
}
|
128
|
+
},
|
129
|
+
response: z.object({
|
130
|
+
data: validator.document
|
131
|
+
}),
|
49
132
|
config: {}
|
50
133
|
},
|
51
134
|
update: {
|
52
135
|
method: 'PUT',
|
53
136
|
path: `/${info.pluralName}/:id`,
|
54
137
|
handler: `${uid}.update`,
|
55
|
-
|
138
|
+
request: {
|
139
|
+
query: validator.queryParams([
|
140
|
+
'fields',
|
141
|
+
'populate',
|
142
|
+
...conditionalQueryParams
|
143
|
+
]),
|
144
|
+
params: {
|
145
|
+
id: validator.documentID
|
146
|
+
},
|
147
|
+
body: {
|
148
|
+
'application/json': validator.partialBody
|
149
|
+
}
|
150
|
+
},
|
151
|
+
response: z.object({
|
152
|
+
data: validator.document
|
153
|
+
})
|
56
154
|
},
|
57
155
|
delete: {
|
58
156
|
method: 'DELETE',
|
59
157
|
path: `/${info.pluralName}/:id`,
|
60
158
|
handler: `${uid}.delete`,
|
61
|
-
|
159
|
+
request: {
|
160
|
+
query: validator.queryParams([
|
161
|
+
'fields',
|
162
|
+
'populate',
|
163
|
+
'filters',
|
164
|
+
...conditionalQueryParams
|
165
|
+
]),
|
166
|
+
params: {
|
167
|
+
id: validator.documentID
|
168
|
+
}
|
169
|
+
},
|
170
|
+
response: z.object({
|
171
|
+
data: validator.document
|
172
|
+
})
|
62
173
|
}
|
63
174
|
};
|
64
175
|
};
|
176
|
+
const getConditionalQueryParams = (schema)=>{
|
177
|
+
const isLocalized = strapi.plugin('i18n').service('content-types').isLocalizedContentType(schema);
|
178
|
+
const hasDraftAndPublish = contentTypes.hasDraftAndPublish(schema);
|
179
|
+
return [
|
180
|
+
...isLocalized ? [
|
181
|
+
'locale'
|
182
|
+
] : [],
|
183
|
+
...hasDraftAndPublish ? [
|
184
|
+
'status'
|
185
|
+
] : []
|
186
|
+
];
|
187
|
+
};
|
65
188
|
|
66
189
|
export { createRoutes };
|
67
190
|
//# sourceMappingURL=index.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/core-api/routes/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nexport const createRoutes = ({ contentType }: { contentType: Schema.ContentType }) => {\n if (contentTypeUtils.isSingleType(contentType)) {\n return getSingleTypeRoutes(contentType);\n }\n\n return getCollectionTypeRoutes(contentType);\n};\n\nconst getSingleTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.singularName}`,\n handler: `${uid}.find`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.singularName}`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.singularName}`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n\nconst getCollectionTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.pluralName}`,\n handler: `${uid}.find`,\n config: {},\n },\n findOne: {\n method: 'GET',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.findOne`,\n config: {},\n },\n create: {\n method: 'POST',\n path: `/${info.pluralName}`,\n handler: `${uid}.create`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n"],"names":["createRoutes","contentType","contentTypeUtils","isSingleType","getSingleTypeRoutes","getCollectionTypeRoutes","uid","info","find","method","path","singularName","handler","config","update","delete","pluralName","findOne","create"],"mappings":";;AAGaA,MAAAA,YAAAA,GAAe,CAAC,EAAEC,WAAW,EAAuC,GAAA;IAC/E,IAAIC,YAAAA,CAAiBC,YAAY,CAACF,WAAc,CAAA,EAAA;AAC9C,QAAA,OAAOG,mBAAoBH,CAAAA,WAAAA,CAAAA;AAC7B;AAEA,IAAA,OAAOI,uBAAwBJ,CAAAA,WAAAA,CAAAA;AACjC;AAEA,MAAMG,sBAAsB,CAAC,EAAEE,GAAG,EAAEC,IAAI,EAAsB,GAAA;IAC5D,OAAO;QACLC,IAAM,EAAA;YACJC,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKI,CAAAA,YAAY,CAAC,CAAC;AAC7BC,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,KAAK,CAAC;AACtBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAC,MAAQ,EAAA;YACNL,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKI,CAAAA,YAAY,CAAC,CAAC;AAC7BC,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAE,MAAQ,EAAA;YACNN,MAAQ,EAAA,QAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKI,CAAAA,YAAY,CAAC,CAAC;AAC7BC,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV;AACF,KAAA;AACF,CAAA;AAEA,MAAMR,0BAA0B,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAsB,GAAA;IAChE,OAAO;QACLC,IAAM,EAAA;YACJC,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKS,CAAAA,UAAU,CAAC,CAAC;AAC3BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,KAAK,CAAC;AACtBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAI,OAAS,EAAA;YACPR,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,KAAKS,UAAU,CAAC,IAAI,CAAC;AAC/BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,QAAQ,CAAC;AACzBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAK,MAAQ,EAAA;YACNT,MAAQ,EAAA,MAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,IAAKS,CAAAA,UAAU,CAAC,CAAC;AAC3BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAC,MAAQ,EAAA;YACNL,MAAQ,EAAA,KAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,KAAKS,UAAU,CAAC,IAAI,CAAC;AAC/BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV,SAAA;QACAE,MAAQ,EAAA;YACNN,MAAQ,EAAA,QAAA;AACRC,YAAAA,IAAAA,EAAM,CAAC,CAAC,EAAEH,KAAKS,UAAU,CAAC,IAAI,CAAC;AAC/BJ,YAAAA,OAAAA,EAAS,CAAC,EAAEN,GAAI,CAAA,OAAO,CAAC;AACxBO,YAAAA,MAAAA,EAAQ;AACV;AACF,KAAA;AACF,CAAA;;;;"}
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/core-api/routes/index.ts"],"sourcesContent":["import type { Core, Schema } from '@strapi/types';\n\nimport { contentTypes, contentTypes as contentTypeUtils } from '@strapi/utils';\nimport * as z from 'zod/v4';\nimport type { QueryParam } from './validation/content-type';\n\nimport { CoreContentTypeRouteValidator } from './validation';\n\nexport const createRoutes = ({\n strapi,\n contentType,\n}: {\n strapi: Core.Strapi;\n contentType: Schema.ContentType;\n}) => {\n if (contentTypeUtils.isSingleType(contentType)) {\n return getSingleTypeRoutes(contentType, strapi);\n }\n\n return getCollectionTypeRoutes(contentType, strapi);\n};\n\nconst getSingleTypeRoutes = (\n schema: Schema.ContentType,\n strapi: Core.Strapi\n): Record<string, Partial<Core.Route>> => {\n const { uid, info } = schema;\n\n const validator = new CoreContentTypeRouteValidator(strapi, uid);\n const conditionalQueryParams = getConditionalQueryParams(schema);\n\n return {\n find: {\n method: 'GET',\n path: `/${info.singularName}`,\n handler: `${uid}.find`,\n request: {\n query: validator.queryParams(['fields', 'populate', 'filters', ...conditionalQueryParams]),\n },\n response: z.object({ data: validator.document }),\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.singularName}`,\n handler: `${uid}.update`,\n request: {\n query: validator.queryParams(['fields', 'populate', ...conditionalQueryParams]),\n body: { 'application/json': validator.partialBody },\n },\n response: z.object({ data: validator.document }),\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.singularName}`,\n handler: `${uid}.delete`,\n request: {\n query: validator.queryParams(['fields', 'populate', ...conditionalQueryParams]),\n },\n response: z.object({ data: validator.document }),\n config: {},\n },\n };\n};\n\nconst getCollectionTypeRoutes = (\n schema: Schema.ContentType,\n strapi: Core.Strapi\n): Record<string, Partial<Core.Route>> => {\n const { uid, info } = schema;\n\n const validator = new CoreContentTypeRouteValidator(strapi, uid);\n const conditionalQueryParams = getConditionalQueryParams(schema);\n\n return {\n find: {\n method: 'GET',\n path: `/${info.pluralName}`,\n handler: `${uid}.find`,\n request: {\n query: validator.queryParams([\n 'fields',\n 'filters',\n '_q',\n 'pagination',\n 'sort',\n 'populate',\n ...conditionalQueryParams,\n ]),\n },\n response: z.object({ data: validator.documents }),\n config: {},\n },\n findOne: {\n method: 'GET',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.findOne`,\n request: {\n params: { id: validator.documentID },\n query: validator.queryParams([\n 'fields',\n 'populate',\n 'filters',\n 'sort',\n ...conditionalQueryParams,\n ]),\n },\n response: z.object({ data: validator.document }),\n },\n create: {\n method: 'POST',\n path: `/${info.pluralName}`,\n handler: `${uid}.create`,\n request: {\n query: validator.queryParams(['fields', 'populate', ...conditionalQueryParams]),\n body: { 'application/json': validator.body },\n },\n response: z.object({ data: validator.document }),\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.update`,\n request: {\n query: validator.queryParams(['fields', 'populate', ...conditionalQueryParams]),\n params: { id: validator.documentID },\n body: { 'application/json': validator.partialBody },\n },\n response: z.object({ data: validator.document }),\n },\n delete: {\n method: 'DELETE',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.delete`,\n request: {\n query: validator.queryParams(['fields', 'populate', 'filters', ...conditionalQueryParams]),\n params: { id: validator.documentID },\n },\n response: z.object({ data: validator.document }),\n },\n };\n};\n\nconst getConditionalQueryParams = (schema: Schema.ContentType) => {\n const isLocalized = strapi.plugin('i18n').service('content-types').isLocalizedContentType(schema);\n const hasDraftAndPublish = contentTypes.hasDraftAndPublish(schema);\n\n return [\n ...(isLocalized ? ['locale'] : []),\n ...(hasDraftAndPublish ? ['status'] : []),\n ] as QueryParam[];\n};\n"],"names":["createRoutes","strapi","contentType","contentTypeUtils","isSingleType","getSingleTypeRoutes","getCollectionTypeRoutes","schema","uid","info","validator","CoreContentTypeRouteValidator","conditionalQueryParams","getConditionalQueryParams","find","method","path","singularName","handler","request","query","queryParams","response","z","object","data","document","config","update","body","partialBody","delete","pluralName","documents","findOne","params","id","documentID","create","isLocalized","plugin","service","isLocalizedContentType","hasDraftAndPublish","contentTypes"],"mappings":"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"}
|