@strapi/core 0.0.0-experimental.74c69aeafc770d59d5b3d5d37cd249934ef395ba → 0.0.0-experimental.75b9c6babc2f67877cfc879041cfff9fb966e742

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.

Potentially problematic release.


This version of @strapi/core might be problematic. Click here for more details.

Files changed (744) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +3 -1
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/configuration/index.d.ts.map +1 -1
  5. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  6. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  7. package/dist/core-api/routes/index.d.ts.map +1 -1
  8. package/dist/core-api/service/collection-type.d.ts +3 -9
  9. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  10. package/dist/core-api/service/pagination.d.ts +4 -11
  11. package/dist/core-api/service/pagination.d.ts.map +1 -1
  12. package/dist/core-api/service/single-type.d.ts.map +1 -1
  13. package/dist/ee/index.d.ts.map +1 -1
  14. package/dist/ee/license.d.ts.map +1 -1
  15. package/dist/factories.d.ts +2 -2
  16. package/dist/factories.d.ts.map +1 -1
  17. package/dist/index.d.ts +14 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +9954 -27
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +9932 -29
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/loaders/apis.d.ts.map +1 -1
  24. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  25. package/dist/loaders/plugins/index.d.ts.map +1 -1
  26. package/dist/middlewares/body.d.ts.map +1 -1
  27. package/dist/middlewares/cors.d.ts.map +1 -1
  28. package/dist/middlewares/query.d.ts.map +1 -1
  29. package/dist/middlewares/security.d.ts.map +1 -1
  30. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  31. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  32. package/dist/migrations/draft-publish.d.ts +2 -2
  33. package/dist/migrations/draft-publish.d.ts.map +1 -1
  34. package/dist/migrations/i18n.d.ts +5 -0
  35. package/dist/migrations/i18n.d.ts.map +1 -0
  36. package/dist/migrations/index.d.ts +5 -0
  37. package/dist/migrations/index.d.ts.map +1 -0
  38. package/dist/providers/admin.d.ts.map +1 -1
  39. package/dist/providers/registries.d.ts.map +1 -1
  40. package/dist/registries/policies.d.ts +1 -1
  41. package/dist/registries/policies.d.ts.map +1 -1
  42. package/dist/services/content-api/index.d.ts +10 -12
  43. package/dist/services/content-api/index.d.ts.map +1 -1
  44. package/dist/services/content-api/permissions/index.d.ts +10 -12
  45. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  46. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  47. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  48. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  49. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  50. package/dist/services/core-store.d.ts.map +1 -1
  51. package/dist/services/cron.d.ts +3 -3
  52. package/dist/services/cron.d.ts.map +1 -1
  53. package/dist/services/document-service/attributes/index.d.ts +4 -4
  54. package/dist/services/document-service/attributes/index.d.ts.map +1 -1
  55. package/dist/services/document-service/common.d.ts +1 -1
  56. package/dist/services/document-service/common.d.ts.map +1 -1
  57. package/dist/services/document-service/components.d.ts +8 -80
  58. package/dist/services/document-service/components.d.ts.map +1 -1
  59. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  60. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  61. package/dist/services/document-service/entries.d.ts +5 -3
  62. package/dist/services/document-service/entries.d.ts.map +1 -1
  63. package/dist/services/document-service/events.d.ts +25 -0
  64. package/dist/services/document-service/events.d.ts.map +1 -0
  65. package/dist/services/document-service/index.d.ts +2 -1
  66. package/dist/services/document-service/index.d.ts.map +1 -1
  67. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  68. package/dist/services/document-service/middlewares/middleware-manager.d.ts +5 -2
  69. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -1
  70. package/dist/services/document-service/params.d.ts +1 -5
  71. package/dist/services/document-service/params.d.ts.map +1 -1
  72. package/dist/services/document-service/repository.d.ts.map +1 -1
  73. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  74. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  75. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  76. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  77. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  78. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  79. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  80. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  81. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  82. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  83. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  84. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  85. package/dist/services/document-service/utils/populate.d.ts +1 -1
  86. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  87. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  88. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  89. package/dist/services/entity-service/index.d.ts.map +1 -1
  90. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  91. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  92. package/dist/services/entity-validator/index.d.ts +15 -1
  93. package/dist/services/entity-validator/index.d.ts.map +1 -1
  94. package/dist/services/entity-validator/validators.d.ts +36 -25
  95. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  96. package/dist/services/event-hub.d.ts +1 -0
  97. package/dist/services/event-hub.d.ts.map +1 -1
  98. package/dist/services/metrics/middleware.d.ts.map +1 -1
  99. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  100. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  101. package/dist/services/server/koa.d.ts.map +1 -1
  102. package/dist/services/webhook-runner.d.ts +2 -1
  103. package/dist/services/webhook-runner.d.ts.map +1 -1
  104. package/dist/services/webhook-store.d.ts +2 -8
  105. package/dist/services/webhook-store.d.ts.map +1 -1
  106. package/dist/utils/fetch.d.ts.map +1 -1
  107. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  108. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  109. package/dist/utils/load-files.d.ts.map +1 -1
  110. package/dist/utils/startup-logger.d.ts.map +1 -1
  111. package/dist/utils/transform-content-types-to-models.d.ts +355 -23
  112. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  113. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  114. package/package.json +37 -34
  115. package/dist/Strapi.js +0 -387
  116. package/dist/Strapi.js.map +0 -1
  117. package/dist/Strapi.mjs +0 -385
  118. package/dist/Strapi.mjs.map +0 -1
  119. package/dist/compile.js +0 -18
  120. package/dist/compile.js.map +0 -1
  121. package/dist/compile.mjs +0 -17
  122. package/dist/compile.mjs.map +0 -1
  123. package/dist/configuration/config-loader.js +0 -106
  124. package/dist/configuration/config-loader.js.map +0 -1
  125. package/dist/configuration/config-loader.mjs +0 -104
  126. package/dist/configuration/config-loader.mjs.map +0 -1
  127. package/dist/configuration/get-dirs.js +0 -31
  128. package/dist/configuration/get-dirs.js.map +0 -1
  129. package/dist/configuration/get-dirs.mjs +0 -31
  130. package/dist/configuration/get-dirs.mjs.map +0 -1
  131. package/dist/configuration/index.js +0 -80
  132. package/dist/configuration/index.js.map +0 -1
  133. package/dist/configuration/index.mjs +0 -75
  134. package/dist/configuration/index.mjs.map +0 -1
  135. package/dist/configuration/urls.js +0 -68
  136. package/dist/configuration/urls.js.map +0 -1
  137. package/dist/configuration/urls.mjs +0 -66
  138. package/dist/configuration/urls.mjs.map +0 -1
  139. package/dist/container.js +0 -30
  140. package/dist/container.js.map +0 -1
  141. package/dist/container.mjs +0 -30
  142. package/dist/container.mjs.map +0 -1
  143. package/dist/core-api/controller/collection-type.js +0 -81
  144. package/dist/core-api/controller/collection-type.js.map +0 -1
  145. package/dist/core-api/controller/collection-type.mjs +0 -81
  146. package/dist/core-api/controller/collection-type.mjs.map +0 -1
  147. package/dist/core-api/controller/index.js +0 -52
  148. package/dist/core-api/controller/index.js.map +0 -1
  149. package/dist/core-api/controller/index.mjs +0 -52
  150. package/dist/core-api/controller/index.mjs.map +0 -1
  151. package/dist/core-api/controller/single-type.js +0 -45
  152. package/dist/core-api/controller/single-type.js.map +0 -1
  153. package/dist/core-api/controller/single-type.mjs +0 -45
  154. package/dist/core-api/controller/single-type.mjs.map +0 -1
  155. package/dist/core-api/controller/transform.js +0 -76
  156. package/dist/core-api/controller/transform.js.map +0 -1
  157. package/dist/core-api/controller/transform.mjs +0 -76
  158. package/dist/core-api/controller/transform.mjs.map +0 -1
  159. package/dist/core-api/routes/index.js +0 -67
  160. package/dist/core-api/routes/index.js.map +0 -1
  161. package/dist/core-api/routes/index.mjs +0 -67
  162. package/dist/core-api/routes/index.mjs.map +0 -1
  163. package/dist/core-api/service/collection-type.js +0 -65
  164. package/dist/core-api/service/collection-type.js.map +0 -1
  165. package/dist/core-api/service/collection-type.mjs +0 -65
  166. package/dist/core-api/service/collection-type.mjs.map +0 -1
  167. package/dist/core-api/service/core-service.js +0 -12
  168. package/dist/core-api/service/core-service.js.map +0 -1
  169. package/dist/core-api/service/core-service.mjs +0 -12
  170. package/dist/core-api/service/core-service.mjs.map +0 -1
  171. package/dist/core-api/service/index.js +0 -16
  172. package/dist/core-api/service/index.js.map +0 -1
  173. package/dist/core-api/service/index.mjs +0 -16
  174. package/dist/core-api/service/index.mjs.map +0 -1
  175. package/dist/core-api/service/pagination.js +0 -78
  176. package/dist/core-api/service/pagination.js.map +0 -1
  177. package/dist/core-api/service/pagination.mjs +0 -78
  178. package/dist/core-api/service/pagination.mjs.map +0 -1
  179. package/dist/core-api/service/single-type.js +0 -45
  180. package/dist/core-api/service/single-type.js.map +0 -1
  181. package/dist/core-api/service/single-type.mjs +0 -45
  182. package/dist/core-api/service/single-type.mjs.map +0 -1
  183. package/dist/domain/content-type/index.js +0 -111
  184. package/dist/domain/content-type/index.js.map +0 -1
  185. package/dist/domain/content-type/index.mjs +0 -109
  186. package/dist/domain/content-type/index.mjs.map +0 -1
  187. package/dist/domain/content-type/validator.js +0 -77
  188. package/dist/domain/content-type/validator.js.map +0 -1
  189. package/dist/domain/content-type/validator.mjs +0 -75
  190. package/dist/domain/content-type/validator.mjs.map +0 -1
  191. package/dist/domain/module/index.js +0 -107
  192. package/dist/domain/module/index.js.map +0 -1
  193. package/dist/domain/module/index.mjs +0 -105
  194. package/dist/domain/module/index.mjs.map +0 -1
  195. package/dist/domain/module/validation.js +0 -25
  196. package/dist/domain/module/validation.js.map +0 -1
  197. package/dist/domain/module/validation.mjs +0 -25
  198. package/dist/domain/module/validation.mjs.map +0 -1
  199. package/dist/ee/index.js +0 -153
  200. package/dist/ee/index.js.map +0 -1
  201. package/dist/ee/index.mjs +0 -154
  202. package/dist/ee/index.mjs.map +0 -1
  203. package/dist/ee/license.js +0 -90
  204. package/dist/ee/license.js.map +0 -1
  205. package/dist/ee/license.mjs +0 -87
  206. package/dist/ee/license.mjs.map +0 -1
  207. package/dist/factories.js +0 -80
  208. package/dist/factories.js.map +0 -1
  209. package/dist/factories.mjs +0 -80
  210. package/dist/factories.mjs.map +0 -1
  211. package/dist/loaders/admin.js +0 -26
  212. package/dist/loaders/admin.js.map +0 -1
  213. package/dist/loaders/admin.mjs +0 -25
  214. package/dist/loaders/admin.mjs.map +0 -1
  215. package/dist/loaders/apis.js +0 -137
  216. package/dist/loaders/apis.js.map +0 -1
  217. package/dist/loaders/apis.mjs +0 -135
  218. package/dist/loaders/apis.mjs.map +0 -1
  219. package/dist/loaders/components.js +0 -38
  220. package/dist/loaders/components.js.map +0 -1
  221. package/dist/loaders/components.mjs +0 -37
  222. package/dist/loaders/components.mjs.map +0 -1
  223. package/dist/loaders/index.js +0 -24
  224. package/dist/loaders/index.js.map +0 -1
  225. package/dist/loaders/index.mjs +0 -24
  226. package/dist/loaders/index.mjs.map +0 -1
  227. package/dist/loaders/middlewares.js +0 -31
  228. package/dist/loaders/middlewares.js.map +0 -1
  229. package/dist/loaders/middlewares.mjs +0 -30
  230. package/dist/loaders/middlewares.mjs.map +0 -1
  231. package/dist/loaders/plugins/get-enabled-plugins.js +0 -113
  232. package/dist/loaders/plugins/get-enabled-plugins.js.map +0 -1
  233. package/dist/loaders/plugins/get-enabled-plugins.mjs +0 -111
  234. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  235. package/dist/loaders/plugins/get-user-plugins-config.js +0 -27
  236. package/dist/loaders/plugins/get-user-plugins-config.js.map +0 -1
  237. package/dist/loaders/plugins/get-user-plugins-config.mjs +0 -25
  238. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  239. package/dist/loaders/plugins/index.js +0 -118
  240. package/dist/loaders/plugins/index.js.map +0 -1
  241. package/dist/loaders/plugins/index.mjs +0 -117
  242. package/dist/loaders/plugins/index.mjs.map +0 -1
  243. package/dist/loaders/policies.js +0 -25
  244. package/dist/loaders/policies.js.map +0 -1
  245. package/dist/loaders/policies.mjs +0 -24
  246. package/dist/loaders/policies.mjs.map +0 -1
  247. package/dist/loaders/sanitizers.js +0 -6
  248. package/dist/loaders/sanitizers.js.map +0 -1
  249. package/dist/loaders/sanitizers.mjs +0 -7
  250. package/dist/loaders/sanitizers.mjs.map +0 -1
  251. package/dist/loaders/src-index.js +0 -33
  252. package/dist/loaders/src-index.js.map +0 -1
  253. package/dist/loaders/src-index.mjs +0 -34
  254. package/dist/loaders/src-index.mjs.map +0 -1
  255. package/dist/loaders/validators.js +0 -6
  256. package/dist/loaders/validators.js.map +0 -1
  257. package/dist/loaders/validators.mjs +0 -7
  258. package/dist/loaders/validators.mjs.map +0 -1
  259. package/dist/middlewares/body.js +0 -65
  260. package/dist/middlewares/body.js.map +0 -1
  261. package/dist/middlewares/body.mjs +0 -61
  262. package/dist/middlewares/body.mjs.map +0 -1
  263. package/dist/middlewares/compression.js +0 -8
  264. package/dist/middlewares/compression.js.map +0 -1
  265. package/dist/middlewares/compression.mjs +0 -6
  266. package/dist/middlewares/compression.mjs.map +0 -1
  267. package/dist/middlewares/cors.js +0 -51
  268. package/dist/middlewares/cors.js.map +0 -1
  269. package/dist/middlewares/cors.mjs +0 -49
  270. package/dist/middlewares/cors.mjs.map +0 -1
  271. package/dist/middlewares/errors.js +0 -33
  272. package/dist/middlewares/errors.js.map +0 -1
  273. package/dist/middlewares/errors.mjs +0 -33
  274. package/dist/middlewares/errors.mjs.map +0 -1
  275. package/dist/middlewares/favicon.js +0 -22
  276. package/dist/middlewares/favicon.js.map +0 -1
  277. package/dist/middlewares/favicon.mjs +0 -20
  278. package/dist/middlewares/favicon.mjs.map +0 -1
  279. package/dist/middlewares/index.js +0 -34
  280. package/dist/middlewares/index.js.map +0 -1
  281. package/dist/middlewares/index.mjs +0 -34
  282. package/dist/middlewares/index.mjs.map +0 -1
  283. package/dist/middlewares/ip.js +0 -8
  284. package/dist/middlewares/ip.js.map +0 -1
  285. package/dist/middlewares/ip.mjs +0 -6
  286. package/dist/middlewares/ip.mjs.map +0 -1
  287. package/dist/middlewares/logger.js +0 -12
  288. package/dist/middlewares/logger.js.map +0 -1
  289. package/dist/middlewares/logger.mjs +0 -12
  290. package/dist/middlewares/logger.mjs.map +0 -1
  291. package/dist/middlewares/powered-by.js +0 -14
  292. package/dist/middlewares/powered-by.js.map +0 -1
  293. package/dist/middlewares/powered-by.mjs +0 -14
  294. package/dist/middlewares/powered-by.mjs.map +0 -1
  295. package/dist/middlewares/public.js +0 -34
  296. package/dist/middlewares/public.js.map +0 -1
  297. package/dist/middlewares/public.mjs +0 -32
  298. package/dist/middlewares/public.mjs.map +0 -1
  299. package/dist/middlewares/query.js +0 -40
  300. package/dist/middlewares/query.js.map +0 -1
  301. package/dist/middlewares/query.mjs +0 -38
  302. package/dist/middlewares/query.mjs.map +0 -1
  303. package/dist/middlewares/response-time.js +0 -12
  304. package/dist/middlewares/response-time.js.map +0 -1
  305. package/dist/middlewares/response-time.mjs +0 -12
  306. package/dist/middlewares/response-time.mjs.map +0 -1
  307. package/dist/middlewares/responses.js +0 -15
  308. package/dist/middlewares/responses.js.map +0 -1
  309. package/dist/middlewares/responses.mjs +0 -15
  310. package/dist/middlewares/responses.mjs.map +0 -1
  311. package/dist/middlewares/security.js +0 -71
  312. package/dist/middlewares/security.js.map +0 -1
  313. package/dist/middlewares/security.mjs +0 -69
  314. package/dist/middlewares/security.mjs.map +0 -1
  315. package/dist/middlewares/session.js +0 -30
  316. package/dist/middlewares/session.js.map +0 -1
  317. package/dist/middlewares/session.mjs +0 -28
  318. package/dist/middlewares/session.mjs.map +0 -1
  319. package/dist/migrations/draft-publish.js +0 -59
  320. package/dist/migrations/draft-publish.js.map +0 -1
  321. package/dist/migrations/draft-publish.mjs +0 -59
  322. package/dist/migrations/draft-publish.mjs.map +0 -1
  323. package/dist/providers/admin.js +0 -20
  324. package/dist/providers/admin.js.map +0 -1
  325. package/dist/providers/admin.mjs +0 -21
  326. package/dist/providers/admin.mjs.map +0 -1
  327. package/dist/providers/coreStore.js +0 -11
  328. package/dist/providers/coreStore.js.map +0 -1
  329. package/dist/providers/coreStore.mjs +0 -12
  330. package/dist/providers/coreStore.mjs.map +0 -1
  331. package/dist/providers/cron.js +0 -20
  332. package/dist/providers/cron.js.map +0 -1
  333. package/dist/providers/cron.mjs +0 -21
  334. package/dist/providers/cron.mjs.map +0 -1
  335. package/dist/providers/index.js +0 -11
  336. package/dist/providers/index.js.map +0 -1
  337. package/dist/providers/index.mjs +0 -11
  338. package/dist/providers/index.mjs.map +0 -1
  339. package/dist/providers/provider.js +0 -5
  340. package/dist/providers/provider.js.map +0 -1
  341. package/dist/providers/provider.mjs +0 -5
  342. package/dist/providers/provider.mjs.map +0 -1
  343. package/dist/providers/registries.js +0 -33
  344. package/dist/providers/registries.js.map +0 -1
  345. package/dist/providers/registries.mjs +0 -34
  346. package/dist/providers/registries.mjs.map +0 -1
  347. package/dist/providers/telemetry.js +0 -19
  348. package/dist/providers/telemetry.js.map +0 -1
  349. package/dist/providers/telemetry.mjs +0 -20
  350. package/dist/providers/telemetry.mjs.map +0 -1
  351. package/dist/providers/webhooks.js +0 -30
  352. package/dist/providers/webhooks.js.map +0 -1
  353. package/dist/providers/webhooks.mjs +0 -31
  354. package/dist/providers/webhooks.mjs.map +0 -1
  355. package/dist/registries/apis.js +0 -23
  356. package/dist/registries/apis.js.map +0 -1
  357. package/dist/registries/apis.mjs +0 -24
  358. package/dist/registries/apis.mjs.map +0 -1
  359. package/dist/registries/components.js +0 -45
  360. package/dist/registries/components.js.map +0 -1
  361. package/dist/registries/components.mjs +0 -46
  362. package/dist/registries/components.mjs.map +0 -1
  363. package/dist/registries/content-types.js +0 -70
  364. package/dist/registries/content-types.js.map +0 -1
  365. package/dist/registries/content-types.mjs +0 -71
  366. package/dist/registries/content-types.mjs.map +0 -1
  367. package/dist/registries/controllers.js +0 -80
  368. package/dist/registries/controllers.js.map +0 -1
  369. package/dist/registries/controllers.mjs +0 -81
  370. package/dist/registries/controllers.mjs.map +0 -1
  371. package/dist/registries/custom-fields.js +0 -71
  372. package/dist/registries/custom-fields.js.map +0 -1
  373. package/dist/registries/custom-fields.mjs +0 -72
  374. package/dist/registries/custom-fields.mjs.map +0 -1
  375. package/dist/registries/hooks.js +0 -58
  376. package/dist/registries/hooks.js.map +0 -1
  377. package/dist/registries/hooks.mjs +0 -59
  378. package/dist/registries/hooks.mjs.map +0 -1
  379. package/dist/registries/middlewares.js +0 -60
  380. package/dist/registries/middlewares.js.map +0 -1
  381. package/dist/registries/middlewares.mjs +0 -61
  382. package/dist/registries/middlewares.mjs.map +0 -1
  383. package/dist/registries/models.js +0 -16
  384. package/dist/registries/models.js.map +0 -1
  385. package/dist/registries/models.mjs +0 -16
  386. package/dist/registries/models.mjs.map +0 -1
  387. package/dist/registries/modules.js +0 -39
  388. package/dist/registries/modules.js.map +0 -1
  389. package/dist/registries/modules.mjs +0 -40
  390. package/dist/registries/modules.mjs.map +0 -1
  391. package/dist/registries/namespace.js +0 -27
  392. package/dist/registries/namespace.js.map +0 -1
  393. package/dist/registries/namespace.mjs +0 -27
  394. package/dist/registries/namespace.mjs.map +0 -1
  395. package/dist/registries/plugins.js +0 -23
  396. package/dist/registries/plugins.js.map +0 -1
  397. package/dist/registries/plugins.mjs +0 -24
  398. package/dist/registries/plugins.mjs.map +0 -1
  399. package/dist/registries/policies.js +0 -108
  400. package/dist/registries/policies.js.map +0 -1
  401. package/dist/registries/policies.mjs +0 -109
  402. package/dist/registries/policies.mjs.map +0 -1
  403. package/dist/registries/sanitizers.js +0 -25
  404. package/dist/registries/sanitizers.js.map +0 -1
  405. package/dist/registries/sanitizers.mjs +0 -24
  406. package/dist/registries/sanitizers.mjs.map +0 -1
  407. package/dist/registries/services.js +0 -80
  408. package/dist/registries/services.js.map +0 -1
  409. package/dist/registries/services.mjs +0 -81
  410. package/dist/registries/services.mjs.map +0 -1
  411. package/dist/registries/validators.js +0 -25
  412. package/dist/registries/validators.js.map +0 -1
  413. package/dist/registries/validators.mjs +0 -24
  414. package/dist/registries/validators.mjs.map +0 -1
  415. package/dist/services/auth/index.js +0 -81
  416. package/dist/services/auth/index.js.map +0 -1
  417. package/dist/services/auth/index.mjs +0 -80
  418. package/dist/services/auth/index.mjs.map +0 -1
  419. package/dist/services/config.js +0 -47
  420. package/dist/services/config.js.map +0 -1
  421. package/dist/services/config.mjs +0 -47
  422. package/dist/services/config.mjs.map +0 -1
  423. package/dist/services/content-api/index.js +0 -85
  424. package/dist/services/content-api/index.js.map +0 -1
  425. package/dist/services/content-api/index.mjs +0 -84
  426. package/dist/services/content-api/index.mjs.map +0 -1
  427. package/dist/services/content-api/permissions/engine.js +0 -7
  428. package/dist/services/content-api/permissions/engine.js.map +0 -1
  429. package/dist/services/content-api/permissions/engine.mjs +0 -6
  430. package/dist/services/content-api/permissions/engine.mjs.map +0 -1
  431. package/dist/services/content-api/permissions/index.js +0 -87
  432. package/dist/services/content-api/permissions/index.js.map +0 -1
  433. package/dist/services/content-api/permissions/index.mjs +0 -86
  434. package/dist/services/content-api/permissions/index.mjs.map +0 -1
  435. package/dist/services/content-api/permissions/providers/action.js +0 -16
  436. package/dist/services/content-api/permissions/providers/action.js.map +0 -1
  437. package/dist/services/content-api/permissions/providers/action.mjs +0 -17
  438. package/dist/services/content-api/permissions/providers/action.mjs.map +0 -1
  439. package/dist/services/content-api/permissions/providers/condition.js +0 -16
  440. package/dist/services/content-api/permissions/providers/condition.js.map +0 -1
  441. package/dist/services/content-api/permissions/providers/condition.mjs +0 -17
  442. package/dist/services/content-api/permissions/providers/condition.mjs.map +0 -1
  443. package/dist/services/core-store.js +0 -107
  444. package/dist/services/core-store.js.map +0 -1
  445. package/dist/services/core-store.mjs +0 -107
  446. package/dist/services/core-store.mjs.map +0 -1
  447. package/dist/services/cron.js +0 -63
  448. package/dist/services/cron.js.map +0 -1
  449. package/dist/services/cron.mjs +0 -64
  450. package/dist/services/cron.mjs.map +0 -1
  451. package/dist/services/custom-fields.js +0 -10
  452. package/dist/services/custom-fields.js.map +0 -1
  453. package/dist/services/custom-fields.mjs +0 -11
  454. package/dist/services/custom-fields.mjs.map +0 -1
  455. package/dist/services/document-service/attributes/index.js +0 -22
  456. package/dist/services/document-service/attributes/index.js.map +0 -1
  457. package/dist/services/document-service/attributes/index.mjs +0 -22
  458. package/dist/services/document-service/attributes/index.mjs.map +0 -1
  459. package/dist/services/document-service/attributes/transforms.js +0 -20
  460. package/dist/services/document-service/attributes/transforms.js.map +0 -1
  461. package/dist/services/document-service/attributes/transforms.mjs +0 -19
  462. package/dist/services/document-service/attributes/transforms.mjs.map +0 -1
  463. package/dist/services/document-service/common.js +0 -7
  464. package/dist/services/document-service/common.js.map +0 -1
  465. package/dist/services/document-service/common.mjs +0 -7
  466. package/dist/services/document-service/common.mjs.map +0 -1
  467. package/dist/services/document-service/components.js +0 -289
  468. package/dist/services/document-service/components.js.map +0 -1
  469. package/dist/services/document-service/components.mjs +0 -287
  470. package/dist/services/document-service/components.mjs.map +0 -1
  471. package/dist/services/document-service/document-engine.d.ts +0 -2
  472. package/dist/services/document-service/document-engine.d.ts.map +0 -1
  473. package/dist/services/document-service/draft-and-publish.js +0 -69
  474. package/dist/services/document-service/draft-and-publish.js.map +0 -1
  475. package/dist/services/document-service/draft-and-publish.mjs +0 -69
  476. package/dist/services/document-service/draft-and-publish.mjs.map +0 -1
  477. package/dist/services/document-service/entries.js +0 -62
  478. package/dist/services/document-service/entries.js.map +0 -1
  479. package/dist/services/document-service/entries.mjs +0 -62
  480. package/dist/services/document-service/entries.mjs.map +0 -1
  481. package/dist/services/document-service/index.js +0 -28
  482. package/dist/services/document-service/index.js.map +0 -1
  483. package/dist/services/document-service/index.mjs +0 -28
  484. package/dist/services/document-service/index.mjs.map +0 -1
  485. package/dist/services/document-service/internationalization.js +0 -54
  486. package/dist/services/document-service/internationalization.js.map +0 -1
  487. package/dist/services/document-service/internationalization.mjs +0 -54
  488. package/dist/services/document-service/internationalization.mjs.map +0 -1
  489. package/dist/services/document-service/middlewares/errors.js +0 -25
  490. package/dist/services/document-service/middlewares/errors.js.map +0 -1
  491. package/dist/services/document-service/middlewares/errors.mjs +0 -25
  492. package/dist/services/document-service/middlewares/errors.mjs.map +0 -1
  493. package/dist/services/document-service/middlewares/middleware-manager.js +0 -46
  494. package/dist/services/document-service/middlewares/middleware-manager.js.map +0 -1
  495. package/dist/services/document-service/middlewares/middleware-manager.mjs +0 -46
  496. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +0 -1
  497. package/dist/services/document-service/params.js +0 -8
  498. package/dist/services/document-service/params.js.map +0 -1
  499. package/dist/services/document-service/params.mjs +0 -8
  500. package/dist/services/document-service/params.mjs.map +0 -1
  501. package/dist/services/document-service/repository.js +0 -276
  502. package/dist/services/document-service/repository.js.map +0 -1
  503. package/dist/services/document-service/repository.mjs +0 -276
  504. package/dist/services/document-service/repository.mjs.map +0 -1
  505. package/dist/services/document-service/transform/data.js +0 -15
  506. package/dist/services/document-service/transform/data.js.map +0 -1
  507. package/dist/services/document-service/transform/data.mjs +0 -15
  508. package/dist/services/document-service/transform/data.mjs.map +0 -1
  509. package/dist/services/document-service/transform/fields.js +0 -24
  510. package/dist/services/document-service/transform/fields.js.map +0 -1
  511. package/dist/services/document-service/transform/fields.mjs +0 -24
  512. package/dist/services/document-service/transform/fields.mjs.map +0 -1
  513. package/dist/services/document-service/transform/id-map.js +0 -78
  514. package/dist/services/document-service/transform/id-map.js.map +0 -1
  515. package/dist/services/document-service/transform/id-map.mjs +0 -78
  516. package/dist/services/document-service/transform/id-map.mjs.map +0 -1
  517. package/dist/services/document-service/transform/id-transform.js +0 -33
  518. package/dist/services/document-service/transform/id-transform.js.map +0 -1
  519. package/dist/services/document-service/transform/id-transform.mjs +0 -33
  520. package/dist/services/document-service/transform/id-transform.mjs.map +0 -1
  521. package/dist/services/document-service/transform/populate.js +0 -21
  522. package/dist/services/document-service/transform/populate.js.map +0 -1
  523. package/dist/services/document-service/transform/populate.mjs +0 -21
  524. package/dist/services/document-service/transform/populate.mjs.map +0 -1
  525. package/dist/services/document-service/transform/query.js +0 -9
  526. package/dist/services/document-service/transform/query.js.map +0 -1
  527. package/dist/services/document-service/transform/query.mjs +0 -9
  528. package/dist/services/document-service/transform/query.mjs.map +0 -1
  529. package/dist/services/document-service/transform/relations/extract/data-ids.js +0 -54
  530. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +0 -1
  531. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +0 -54
  532. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +0 -1
  533. package/dist/services/document-service/transform/relations/transform/data-ids.js +0 -73
  534. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +0 -1
  535. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +0 -73
  536. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +0 -1
  537. package/dist/services/document-service/transform/relations/transform/default-locale.js +0 -32
  538. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +0 -1
  539. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +0 -32
  540. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +0 -1
  541. package/dist/services/document-service/transform/relations/utils/dp.js +0 -30
  542. package/dist/services/document-service/transform/relations/utils/dp.js.map +0 -1
  543. package/dist/services/document-service/transform/relations/utils/dp.mjs +0 -30
  544. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +0 -1
  545. package/dist/services/document-service/transform/relations/utils/i18n.js +0 -25
  546. package/dist/services/document-service/transform/relations/utils/i18n.js.map +0 -1
  547. package/dist/services/document-service/transform/relations/utils/i18n.mjs +0 -25
  548. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +0 -1
  549. package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -87
  550. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +0 -1
  551. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -87
  552. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +0 -1
  553. package/dist/services/document-service/utils/populate.js +0 -41
  554. package/dist/services/document-service/utils/populate.js.map +0 -1
  555. package/dist/services/document-service/utils/populate.mjs +0 -41
  556. package/dist/services/document-service/utils/populate.mjs.map +0 -1
  557. package/dist/services/entity-service/index.js +0 -169
  558. package/dist/services/entity-service/index.js.map +0 -1
  559. package/dist/services/entity-service/index.mjs +0 -167
  560. package/dist/services/entity-service/index.mjs.map +0 -1
  561. package/dist/services/entity-validator/blocks-validator.js +0 -127
  562. package/dist/services/entity-validator/blocks-validator.js.map +0 -1
  563. package/dist/services/entity-validator/blocks-validator.mjs +0 -128
  564. package/dist/services/entity-validator/blocks-validator.mjs.map +0 -1
  565. package/dist/services/entity-validator/index.js +0 -333
  566. package/dist/services/entity-validator/index.js.map +0 -1
  567. package/dist/services/entity-validator/index.mjs +0 -332
  568. package/dist/services/entity-validator/index.mjs.map +0 -1
  569. package/dist/services/entity-validator/validators.js +0 -126
  570. package/dist/services/entity-validator/validators.js.map +0 -1
  571. package/dist/services/entity-validator/validators.mjs +0 -124
  572. package/dist/services/entity-validator/validators.mjs.map +0 -1
  573. package/dist/services/errors.js +0 -76
  574. package/dist/services/errors.js.map +0 -1
  575. package/dist/services/errors.mjs +0 -74
  576. package/dist/services/errors.mjs.map +0 -1
  577. package/dist/services/event-hub.js +0 -67
  578. package/dist/services/event-hub.js.map +0 -1
  579. package/dist/services/event-hub.mjs +0 -68
  580. package/dist/services/event-hub.mjs.map +0 -1
  581. package/dist/services/features.js +0 -17
  582. package/dist/services/features.js.map +0 -1
  583. package/dist/services/features.mjs +0 -17
  584. package/dist/services/features.mjs.map +0 -1
  585. package/dist/services/fs.js +0 -51
  586. package/dist/services/fs.js.map +0 -1
  587. package/dist/services/fs.mjs +0 -49
  588. package/dist/services/fs.mjs.map +0 -1
  589. package/dist/services/metrics/admin-user-hash.js +0 -14
  590. package/dist/services/metrics/admin-user-hash.js.map +0 -1
  591. package/dist/services/metrics/admin-user-hash.mjs +0 -12
  592. package/dist/services/metrics/admin-user-hash.mjs.map +0 -1
  593. package/dist/services/metrics/index.js +0 -45
  594. package/dist/services/metrics/index.js.map +0 -1
  595. package/dist/services/metrics/index.mjs +0 -46
  596. package/dist/services/metrics/index.mjs.map +0 -1
  597. package/dist/services/metrics/is-truthy.js +0 -9
  598. package/dist/services/metrics/is-truthy.js.map +0 -1
  599. package/dist/services/metrics/is-truthy.mjs +0 -8
  600. package/dist/services/metrics/is-truthy.mjs.map +0 -1
  601. package/dist/services/metrics/middleware.js +0 -25
  602. package/dist/services/metrics/middleware.js.map +0 -1
  603. package/dist/services/metrics/middleware.mjs +0 -26
  604. package/dist/services/metrics/middleware.mjs.map +0 -1
  605. package/dist/services/metrics/rate-limiter.js +0 -21
  606. package/dist/services/metrics/rate-limiter.js.map +0 -1
  607. package/dist/services/metrics/rate-limiter.mjs +0 -22
  608. package/dist/services/metrics/rate-limiter.mjs.map +0 -1
  609. package/dist/services/metrics/sender.js +0 -76
  610. package/dist/services/metrics/sender.js.map +0 -1
  611. package/dist/services/metrics/sender.mjs +0 -70
  612. package/dist/services/metrics/sender.mjs.map +0 -1
  613. package/dist/services/query-params.js +0 -12
  614. package/dist/services/query-params.js.map +0 -1
  615. package/dist/services/query-params.mjs +0 -13
  616. package/dist/services/query-params.mjs.map +0 -1
  617. package/dist/services/reloader.js +0 -36
  618. package/dist/services/reloader.js.map +0 -1
  619. package/dist/services/reloader.mjs +0 -36
  620. package/dist/services/reloader.mjs.map +0 -1
  621. package/dist/services/request-context.js +0 -13
  622. package/dist/services/request-context.js.map +0 -1
  623. package/dist/services/request-context.mjs +0 -14
  624. package/dist/services/request-context.mjs.map +0 -1
  625. package/dist/services/server/admin-api.js +0 -13
  626. package/dist/services/server/admin-api.js.map +0 -1
  627. package/dist/services/server/admin-api.mjs +0 -13
  628. package/dist/services/server/admin-api.mjs.map +0 -1
  629. package/dist/services/server/api.js +0 -30
  630. package/dist/services/server/api.js.map +0 -1
  631. package/dist/services/server/api.mjs +0 -28
  632. package/dist/services/server/api.mjs.map +0 -1
  633. package/dist/services/server/compose-endpoint.js +0 -117
  634. package/dist/services/server/compose-endpoint.js.map +0 -1
  635. package/dist/services/server/compose-endpoint.mjs +0 -116
  636. package/dist/services/server/compose-endpoint.mjs.map +0 -1
  637. package/dist/services/server/content-api.js +0 -12
  638. package/dist/services/server/content-api.js.map +0 -1
  639. package/dist/services/server/content-api.mjs +0 -12
  640. package/dist/services/server/content-api.mjs.map +0 -1
  641. package/dist/services/server/http-server.js +0 -50
  642. package/dist/services/server/http-server.js.map +0 -1
  643. package/dist/services/server/http-server.mjs +0 -48
  644. package/dist/services/server/http-server.mjs.map +0 -1
  645. package/dist/services/server/index.js +0 -87
  646. package/dist/services/server/index.js.map +0 -1
  647. package/dist/services/server/index.mjs +0 -85
  648. package/dist/services/server/index.mjs.map +0 -1
  649. package/dist/services/server/koa.js +0 -52
  650. package/dist/services/server/koa.js.map +0 -1
  651. package/dist/services/server/koa.mjs +0 -48
  652. package/dist/services/server/koa.mjs.map +0 -1
  653. package/dist/services/server/middleware.js +0 -92
  654. package/dist/services/server/middleware.js.map +0 -1
  655. package/dist/services/server/middleware.mjs +0 -90
  656. package/dist/services/server/middleware.mjs.map +0 -1
  657. package/dist/services/server/policy.js +0 -20
  658. package/dist/services/server/policy.js.map +0 -1
  659. package/dist/services/server/policy.mjs +0 -20
  660. package/dist/services/server/policy.mjs.map +0 -1
  661. package/dist/services/server/register-middlewares.js +0 -72
  662. package/dist/services/server/register-middlewares.js.map +0 -1
  663. package/dist/services/server/register-middlewares.mjs +0 -73
  664. package/dist/services/server/register-middlewares.mjs.map +0 -1
  665. package/dist/services/server/register-routes.js +0 -76
  666. package/dist/services/server/register-routes.js.map +0 -1
  667. package/dist/services/server/register-routes.mjs +0 -75
  668. package/dist/services/server/register-routes.mjs.map +0 -1
  669. package/dist/services/server/routing.js +0 -91
  670. package/dist/services/server/routing.js.map +0 -1
  671. package/dist/services/server/routing.mjs +0 -89
  672. package/dist/services/server/routing.mjs.map +0 -1
  673. package/dist/services/utils/dynamic-zones.js +0 -17
  674. package/dist/services/utils/dynamic-zones.js.map +0 -1
  675. package/dist/services/utils/dynamic-zones.mjs +0 -18
  676. package/dist/services/utils/dynamic-zones.mjs.map +0 -1
  677. package/dist/services/webhook-runner.js +0 -133
  678. package/dist/services/webhook-runner.js.map +0 -1
  679. package/dist/services/webhook-runner.mjs +0 -131
  680. package/dist/services/webhook-runner.mjs.map +0 -1
  681. package/dist/services/webhook-store.js +0 -103
  682. package/dist/services/webhook-store.js.map +0 -1
  683. package/dist/services/webhook-store.mjs +0 -103
  684. package/dist/services/webhook-store.mjs.map +0 -1
  685. package/dist/services/worker-queue.js +0 -56
  686. package/dist/services/worker-queue.js.map +0 -1
  687. package/dist/services/worker-queue.mjs +0 -55
  688. package/dist/services/worker-queue.mjs.map +0 -1
  689. package/dist/utils/convert-custom-field-type.js +0 -24
  690. package/dist/utils/convert-custom-field-type.js.map +0 -1
  691. package/dist/utils/convert-custom-field-type.mjs +0 -24
  692. package/dist/utils/convert-custom-field-type.mjs.map +0 -1
  693. package/dist/utils/cron.js +0 -38
  694. package/dist/utils/cron.js.map +0 -1
  695. package/dist/utils/cron.mjs +0 -38
  696. package/dist/utils/cron.mjs.map +0 -1
  697. package/dist/utils/fetch.js +0 -20
  698. package/dist/utils/fetch.js.map +0 -1
  699. package/dist/utils/fetch.mjs +0 -20
  700. package/dist/utils/fetch.mjs.map +0 -1
  701. package/dist/utils/filepath-to-prop-path.js +0 -12
  702. package/dist/utils/filepath-to-prop-path.js.map +0 -1
  703. package/dist/utils/filepath-to-prop-path.mjs +0 -10
  704. package/dist/utils/filepath-to-prop-path.mjs.map +0 -1
  705. package/dist/utils/is-initialized.js +0 -16
  706. package/dist/utils/is-initialized.js.map +0 -1
  707. package/dist/utils/is-initialized.mjs +0 -16
  708. package/dist/utils/is-initialized.mjs.map +0 -1
  709. package/dist/utils/lifecycles.js +0 -9
  710. package/dist/utils/lifecycles.js.map +0 -1
  711. package/dist/utils/lifecycles.mjs +0 -9
  712. package/dist/utils/lifecycles.mjs.map +0 -1
  713. package/dist/utils/load-config-file.js +0 -45
  714. package/dist/utils/load-config-file.js.map +0 -1
  715. package/dist/utils/load-config-file.mjs +0 -42
  716. package/dist/utils/load-config-file.mjs.map +0 -1
  717. package/dist/utils/load-files.js +0 -39
  718. package/dist/utils/load-files.js.map +0 -1
  719. package/dist/utils/load-files.mjs +0 -35
  720. package/dist/utils/load-files.mjs.map +0 -1
  721. package/dist/utils/open-browser.js +0 -11
  722. package/dist/utils/open-browser.js.map +0 -1
  723. package/dist/utils/open-browser.mjs +0 -9
  724. package/dist/utils/open-browser.mjs.map +0 -1
  725. package/dist/utils/resolve-working-dirs.js +0 -13
  726. package/dist/utils/resolve-working-dirs.js.map +0 -1
  727. package/dist/utils/resolve-working-dirs.mjs +0 -11
  728. package/dist/utils/resolve-working-dirs.mjs.map +0 -1
  729. package/dist/utils/signals.js +0 -17
  730. package/dist/utils/signals.js.map +0 -1
  731. package/dist/utils/signals.mjs +0 -17
  732. package/dist/utils/signals.mjs.map +0 -1
  733. package/dist/utils/startup-logger.js +0 -81
  734. package/dist/utils/startup-logger.js.map +0 -1
  735. package/dist/utils/startup-logger.mjs +0 -77
  736. package/dist/utils/startup-logger.mjs.map +0 -1
  737. package/dist/utils/transform-content-types-to-models.js +0 -275
  738. package/dist/utils/transform-content-types-to-models.js.map +0 -1
  739. package/dist/utils/transform-content-types-to-models.mjs +0 -272
  740. package/dist/utils/transform-content-types-to-models.mjs.map +0 -1
  741. package/dist/utils/update-notifier/index.js +0 -85
  742. package/dist/utils/update-notifier/index.js.map +0 -1
  743. package/dist/utils/update-notifier/index.mjs +0 -78
  744. package/dist/utils/update-notifier/index.mjs.map +0 -1
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
4
- const strapiUtils = require("@strapi/utils");
5
- const createCollectionTypeController = ({
6
- contentType
7
- }) => {
8
- const uid = contentType.uid;
9
- return {
10
- /**
11
- * Retrieve records.
12
- */
13
- async find(ctx) {
14
- await this.validateQuery(ctx);
15
- const sanitizedQuery = await this.sanitizeQuery(ctx);
16
- const { results, pagination } = await strapi.service(uid).find(sanitizedQuery);
17
- const sanitizedResults = await this.sanitizeOutput(results, ctx);
18
- return this.transformResponse(sanitizedResults, { pagination });
19
- },
20
- /**
21
- * Retrieve a record
22
- */
23
- async findOne(ctx) {
24
- const { id } = ctx.params;
25
- await this.validateQuery(ctx);
26
- const sanitizedQuery = await this.sanitizeQuery(ctx);
27
- const entity = await strapi.service(uid).findOne(id, sanitizedQuery);
28
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
29
- return this.transformResponse(sanitizedEntity);
30
- },
31
- /**
32
- * Create a record.
33
- */
34
- async create(ctx) {
35
- await this.validateQuery(ctx);
36
- const sanitizedQuery = await this.sanitizeQuery(ctx);
37
- const { body = {} } = ctx.request;
38
- if (!_.isObject(body.data)) {
39
- throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
40
- }
41
- const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
42
- const entity = await strapi.service(uid).create({
43
- ...sanitizedQuery,
44
- data: sanitizedInputData
45
- });
46
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
47
- return this.transformResponse(sanitizedEntity);
48
- },
49
- /**
50
- * Update a record.
51
- */
52
- async update(ctx) {
53
- const { id } = ctx.params;
54
- await this.validateQuery(ctx);
55
- const sanitizedQuery = await this.sanitizeQuery(ctx);
56
- const { body = {} } = ctx.request;
57
- if (!_.isObject(body.data)) {
58
- throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
59
- }
60
- const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
61
- const entity = await strapi.service(uid).update(id, {
62
- ...sanitizedQuery,
63
- data: sanitizedInputData
64
- });
65
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
66
- return this.transformResponse(sanitizedEntity);
67
- },
68
- /**
69
- * Destroy a record.
70
- */
71
- async delete(ctx) {
72
- const { id } = ctx.params;
73
- await this.validateQuery(ctx);
74
- const sanitizedQuery = await this.sanitizeQuery(ctx);
75
- await strapi.service(uid).delete(id, sanitizedQuery);
76
- ctx.status = 204;
77
- }
78
- };
79
- };
80
- exports.createCollectionTypeController = createCollectionTypeController;
81
- //# sourceMappingURL=collection-type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collection-type.js","sources":["../../../src/core-api/controller/collection-type.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Core, Struct, Utils, UID } from '@strapi/types';\nimport type Koa from 'koa';\n\ninterface Options {\n contentType: Struct.CollectionTypeSchema;\n}\n\n/**\n *\n * Returns a collection type controller to handle default core-api actions\n */\nconst createCollectionTypeController = ({\n contentType,\n}: Options): Utils.PartialWithThis<Core.CoreAPI.Controller.CollectionType> => {\n const uid = contentType.uid as UID.Service;\n\n // TODO: transform into a class\n return {\n /**\n * Retrieve records.\n */\n async find(ctx) {\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const { results, pagination } = await strapi.service(uid).find(sanitizedQuery);\n const sanitizedResults = await this.sanitizeOutput(results, ctx);\n return this.transformResponse(sanitizedResults, { pagination });\n },\n\n /**\n * Retrieve a record\n */\n async findOne(ctx) {\n const { id } = ctx.params;\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const entity = await strapi.service(uid).findOne(id, sanitizedQuery);\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * Create a record.\n */\n async create(ctx) {\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const { body = {} as any } = ctx.request;\n\n if (!isObject(body.data)) {\n throw new errors.ValidationError('Missing \"data\" payload in the request body');\n }\n\n const sanitizedInputData = await this.sanitizeInput(body.data, ctx);\n\n const entity = await strapi.service(uid).create({\n ...sanitizedQuery,\n data: sanitizedInputData,\n });\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * Update a record.\n */\n async update(ctx: Koa.Context) {\n const { id } = ctx.params;\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const { body = {} as any } = ctx.request;\n\n if (!isObject(body.data)) {\n throw new errors.ValidationError('Missing \"data\" payload in the request body');\n }\n\n const sanitizedInputData = await this.sanitizeInput(body.data, ctx);\n\n const entity = await strapi.service(uid).update(id, {\n ...sanitizedQuery,\n data: sanitizedInputData,\n });\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * Destroy a record.\n */\n async delete(ctx) {\n const { id } = ctx.params;\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n await strapi.service(uid).delete(id, sanitizedQuery);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createCollectionTypeController };\n"],"names":["isObject","errors"],"mappings":";;;;AAaA,MAAM,iCAAiC,CAAC;AAAA,EACtC;AACF,MAA8E;AAC5E,QAAM,MAAM,YAAY;AAGjB,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,KAAK,KAAK;AACR,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAE7C,YAAA,EAAE,SAAS,WAAA,IAAe,MAAM,OAAO,QAAQ,GAAG,EAAE,KAAK,cAAc;AAC7E,YAAM,mBAAmB,MAAM,KAAK,eAAe,SAAS,GAAG;AAC/D,aAAO,KAAK,kBAAkB,kBAAkB,EAAE,WAAY,CAAA;AAAA,IAChE;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,QAAQ,KAAK;AACX,YAAA,EAAE,GAAG,IAAI,IAAI;AACb,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAE7C,YAAA,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,QAAQ,IAAI,cAAc;AACnE,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAK;AACV,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,EAAE,OAAO,CAAA,MAAc,IAAI;AAEjC,UAAI,CAACA,EAAA,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAIC,YAAO,OAAA,gBAAgB,4CAA4C;AAAA,MAC/E;AAEA,YAAM,qBAAqB,MAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAElE,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,OAAO;AAAA,QAC9C,GAAG;AAAA,QACH,MAAM;AAAA,MAAA,CACP;AAED,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAkB;AACvB,YAAA,EAAE,GAAG,IAAI,IAAI;AACb,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,EAAE,OAAO,CAAA,MAAc,IAAI;AAEjC,UAAI,CAACD,EAAA,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAIC,YAAO,OAAA,gBAAgB,4CAA4C;AAAA,MAC/E;AAEA,YAAM,qBAAqB,MAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAElE,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,IAAI;AAAA,QAClD,GAAG;AAAA,QACH,MAAM;AAAA,MAAA,CACP;AAED,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAK;AACV,YAAA,EAAE,GAAG,IAAI,IAAI;AACb,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,IAAI,cAAc;AAEnD,UAAI,SAAS;AAAA,IACf;AAAA,EAAA;AAEJ;;"}
@@ -1,81 +0,0 @@
1
- import { isObject } from "lodash/fp";
2
- import { errors } from "@strapi/utils";
3
- const createCollectionTypeController = ({
4
- contentType
5
- }) => {
6
- const uid = contentType.uid;
7
- return {
8
- /**
9
- * Retrieve records.
10
- */
11
- async find(ctx) {
12
- await this.validateQuery(ctx);
13
- const sanitizedQuery = await this.sanitizeQuery(ctx);
14
- const { results, pagination } = await strapi.service(uid).find(sanitizedQuery);
15
- const sanitizedResults = await this.sanitizeOutput(results, ctx);
16
- return this.transformResponse(sanitizedResults, { pagination });
17
- },
18
- /**
19
- * Retrieve a record
20
- */
21
- async findOne(ctx) {
22
- const { id } = ctx.params;
23
- await this.validateQuery(ctx);
24
- const sanitizedQuery = await this.sanitizeQuery(ctx);
25
- const entity = await strapi.service(uid).findOne(id, sanitizedQuery);
26
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
27
- return this.transformResponse(sanitizedEntity);
28
- },
29
- /**
30
- * Create a record.
31
- */
32
- async create(ctx) {
33
- await this.validateQuery(ctx);
34
- const sanitizedQuery = await this.sanitizeQuery(ctx);
35
- const { body = {} } = ctx.request;
36
- if (!isObject(body.data)) {
37
- throw new errors.ValidationError('Missing "data" payload in the request body');
38
- }
39
- const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
40
- const entity = await strapi.service(uid).create({
41
- ...sanitizedQuery,
42
- data: sanitizedInputData
43
- });
44
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
45
- return this.transformResponse(sanitizedEntity);
46
- },
47
- /**
48
- * Update a record.
49
- */
50
- async update(ctx) {
51
- const { id } = ctx.params;
52
- await this.validateQuery(ctx);
53
- const sanitizedQuery = await this.sanitizeQuery(ctx);
54
- const { body = {} } = ctx.request;
55
- if (!isObject(body.data)) {
56
- throw new errors.ValidationError('Missing "data" payload in the request body');
57
- }
58
- const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
59
- const entity = await strapi.service(uid).update(id, {
60
- ...sanitizedQuery,
61
- data: sanitizedInputData
62
- });
63
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
64
- return this.transformResponse(sanitizedEntity);
65
- },
66
- /**
67
- * Destroy a record.
68
- */
69
- async delete(ctx) {
70
- const { id } = ctx.params;
71
- await this.validateQuery(ctx);
72
- const sanitizedQuery = await this.sanitizeQuery(ctx);
73
- await strapi.service(uid).delete(id, sanitizedQuery);
74
- ctx.status = 204;
75
- }
76
- };
77
- };
78
- export {
79
- createCollectionTypeController
80
- };
81
- //# sourceMappingURL=collection-type.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collection-type.mjs","sources":["../../../src/core-api/controller/collection-type.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Core, Struct, Utils, UID } from '@strapi/types';\nimport type Koa from 'koa';\n\ninterface Options {\n contentType: Struct.CollectionTypeSchema;\n}\n\n/**\n *\n * Returns a collection type controller to handle default core-api actions\n */\nconst createCollectionTypeController = ({\n contentType,\n}: Options): Utils.PartialWithThis<Core.CoreAPI.Controller.CollectionType> => {\n const uid = contentType.uid as UID.Service;\n\n // TODO: transform into a class\n return {\n /**\n * Retrieve records.\n */\n async find(ctx) {\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const { results, pagination } = await strapi.service(uid).find(sanitizedQuery);\n const sanitizedResults = await this.sanitizeOutput(results, ctx);\n return this.transformResponse(sanitizedResults, { pagination });\n },\n\n /**\n * Retrieve a record\n */\n async findOne(ctx) {\n const { id } = ctx.params;\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const entity = await strapi.service(uid).findOne(id, sanitizedQuery);\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * Create a record.\n */\n async create(ctx) {\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const { body = {} as any } = ctx.request;\n\n if (!isObject(body.data)) {\n throw new errors.ValidationError('Missing \"data\" payload in the request body');\n }\n\n const sanitizedInputData = await this.sanitizeInput(body.data, ctx);\n\n const entity = await strapi.service(uid).create({\n ...sanitizedQuery,\n data: sanitizedInputData,\n });\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * Update a record.\n */\n async update(ctx: Koa.Context) {\n const { id } = ctx.params;\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const { body = {} as any } = ctx.request;\n\n if (!isObject(body.data)) {\n throw new errors.ValidationError('Missing \"data\" payload in the request body');\n }\n\n const sanitizedInputData = await this.sanitizeInput(body.data, ctx);\n\n const entity = await strapi.service(uid).update(id, {\n ...sanitizedQuery,\n data: sanitizedInputData,\n });\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * Destroy a record.\n */\n async delete(ctx) {\n const { id } = ctx.params;\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n await strapi.service(uid).delete(id, sanitizedQuery);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createCollectionTypeController };\n"],"names":[],"mappings":";;AAaA,MAAM,iCAAiC,CAAC;AAAA,EACtC;AACF,MAA8E;AAC5E,QAAM,MAAM,YAAY;AAGjB,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,KAAK,KAAK;AACR,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAE7C,YAAA,EAAE,SAAS,WAAA,IAAe,MAAM,OAAO,QAAQ,GAAG,EAAE,KAAK,cAAc;AAC7E,YAAM,mBAAmB,MAAM,KAAK,eAAe,SAAS,GAAG;AAC/D,aAAO,KAAK,kBAAkB,kBAAkB,EAAE,WAAY,CAAA;AAAA,IAChE;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,QAAQ,KAAK;AACX,YAAA,EAAE,GAAG,IAAI,IAAI;AACb,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAE7C,YAAA,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,QAAQ,IAAI,cAAc;AACnE,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAK;AACV,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,EAAE,OAAO,CAAA,MAAc,IAAI;AAEjC,UAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAI,OAAO,gBAAgB,4CAA4C;AAAA,MAC/E;AAEA,YAAM,qBAAqB,MAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAElE,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,OAAO;AAAA,QAC9C,GAAG;AAAA,QACH,MAAM;AAAA,MAAA,CACP;AAED,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAkB;AACvB,YAAA,EAAE,GAAG,IAAI,IAAI;AACb,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,EAAE,OAAO,CAAA,MAAc,IAAI;AAEjC,UAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAI,OAAO,gBAAgB,4CAA4C;AAAA,MAC/E;AAEA,YAAM,qBAAqB,MAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAElE,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,IAAI;AAAA,QAClD,GAAG;AAAA,QACH,MAAM;AAAA,MAAA,CACP;AAED,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAK;AACV,YAAA,EAAE,GAAG,IAAI,IAAI;AACb,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,IAAI,cAAc;AAEnD,UAAI,SAAS;AAAA,IACf;AAAA,EAAA;AAEJ;"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
4
- const strapiUtils = require("@strapi/utils");
5
- const transform = require("./transform.js");
6
- const singleType = require("./single-type.js");
7
- const collectionType = require("./collection-type.js");
8
- const requestContext = require("../../services/request-context.js");
9
- const isSingleType = (contentType) => strapiUtils.contentTypes.isSingleType(contentType);
10
- const getAuthFromKoaContext = (ctx) => _.prop("state.auth", ctx) ?? {};
11
- function createController({
12
- contentType
13
- }) {
14
- const proto = {
15
- transformResponse(data, meta) {
16
- const ctx = requestContext.get();
17
- return transform.transformResponse(data, meta, {
18
- contentType,
19
- useJsonAPIFormat: ctx?.headers?.["strapi-response-format"] === "v4"
20
- });
21
- },
22
- async sanitizeOutput(data, ctx) {
23
- const auth = getAuthFromKoaContext(ctx);
24
- return strapi.contentAPI.sanitize.output(data, contentType, { auth });
25
- },
26
- async sanitizeInput(data, ctx) {
27
- const auth = getAuthFromKoaContext(ctx);
28
- return strapi.contentAPI.sanitize.input(data, contentType, { auth });
29
- },
30
- async sanitizeQuery(ctx) {
31
- const auth = getAuthFromKoaContext(ctx);
32
- return strapi.contentAPI.sanitize.query(ctx.query, contentType, { auth });
33
- },
34
- async validateQuery(ctx) {
35
- const auth = getAuthFromKoaContext(ctx);
36
- return strapi.contentAPI.validate.query(ctx.query, contentType, { auth });
37
- },
38
- async validateInput(data, ctx) {
39
- const auth = getAuthFromKoaContext(ctx);
40
- return strapi.contentAPI.validate.input(data, contentType, { auth });
41
- }
42
- };
43
- let ctrl;
44
- if (isSingleType(contentType)) {
45
- ctrl = singleType.createSingleTypeController({ contentType });
46
- } else {
47
- ctrl = collectionType.createCollectionTypeController({ contentType });
48
- }
49
- return Object.assign(Object.create(proto), ctrl);
50
- }
51
- exports.createController = createController;
52
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/core-api/controller/index.ts"],"sourcesContent":["import { prop } from 'lodash/fp';\nimport type Koa from 'koa';\nimport { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nimport { transformResponse } from './transform';\nimport { createSingleTypeController } from './single-type';\nimport { createCollectionTypeController } from './collection-type';\nimport requestCtx from '../../services/request-context';\n\nconst isSingleType = (\n contentType: Struct.ContentTypeSchema\n): contentType is Struct.SingleTypeSchema => contentTypeUtils.isSingleType(contentType);\n\nconst getAuthFromKoaContext = (ctx: Koa.Context) => prop('state.auth', ctx) ?? {};\n\nfunction createController<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Controller.SingleType\n : Core.CoreAPI.Controller.CollectionType;\nfunction createController({\n contentType,\n}: {\n contentType: Struct.SingleTypeSchema | Struct.CollectionTypeSchema;\n}) {\n // TODO: replace with Base class + SingleType and CollectionType classes\n\n const proto: Core.CoreAPI.Controller.Base = {\n transformResponse(data, meta) {\n const ctx = requestCtx.get();\n return transformResponse(data, meta, {\n contentType,\n useJsonAPIFormat: ctx?.headers?.['strapi-response-format'] === 'v4',\n });\n },\n\n async sanitizeOutput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.output(data, contentType, { auth });\n },\n\n async sanitizeInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.input(data, contentType, { auth });\n },\n\n async sanitizeQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.query(ctx.query, contentType, { auth });\n },\n\n async validateQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.validate.query(ctx.query, contentType, { auth });\n },\n\n async validateInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.validate.input(data, contentType, { auth });\n },\n };\n\n let ctrl;\n\n if (isSingleType(contentType)) {\n ctrl = createSingleTypeController({ contentType });\n } else {\n ctrl = createCollectionTypeController({ contentType });\n }\n\n return Object.assign(Object.create(proto), ctrl);\n}\n\nexport { createController };\n"],"names":["contentTypeUtils","prop","requestCtx","transformResponse","createSingleTypeController","createCollectionTypeController"],"mappings":";;;;;;;;AAUA,MAAM,eAAe,CACnB,gBAC2CA,YAAA,aAAiB,aAAa,WAAW;AAEtF,MAAM,wBAAwB,CAAC,QAAqBC,EAAAA,KAAK,cAAc,GAAG,KAAK;AAO/E,SAAS,iBAAiB;AAAA,EACxB;AACF,GAEG;AAGD,QAAM,QAAsC;AAAA,IAC1C,kBAAkB,MAAM,MAAM;AACtB,YAAA,MAAMC,eAAW;AAChB,aAAAC,UAAA,kBAAkB,MAAM,MAAM;AAAA,QACnC;AAAA,QACA,kBAAkB,KAAK,UAAU,wBAAwB,MAAM;AAAA,MAAA,CAChE;AAAA,IACH;AAAA,IAEA,MAAM,eAAe,MAAM,KAAK;AACxB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,OAAO,MAAM,aAAa,EAAE,MAAM;AAAA,IACtE;AAAA,IAEA,MAAM,cAAc,MAAM,KAAK;AACvB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,MAAM,aAAa,EAAE,MAAM;AAAA,IACrE;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,IAAI,OAAO,aAAa,EAAE,KAAA,CAAM;AAAA,IAC1E;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,IAAI,OAAO,aAAa,EAAE,KAAA,CAAM;AAAA,IAC1E;AAAA,IAEA,MAAM,cAAc,MAAM,KAAK;AACvB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,MAAM,aAAa,EAAE,MAAM;AAAA,IACrE;AAAA,EAAA;AAGE,MAAA;AAEA,MAAA,aAAa,WAAW,GAAG;AACtB,WAAAC,WAAA,2BAA2B,EAAE,YAAA,CAAa;AAAA,EAAA,OAC5C;AACE,WAAAC,eAAA,+BAA+B,EAAE,YAAA,CAAa;AAAA,EACvD;AAEA,SAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG,IAAI;AACjD;;"}
@@ -1,52 +0,0 @@
1
- import { prop } from "lodash/fp";
2
- import { contentTypes } from "@strapi/utils";
3
- import { transformResponse } from "./transform.mjs";
4
- import { createSingleTypeController } from "./single-type.mjs";
5
- import { createCollectionTypeController } from "./collection-type.mjs";
6
- import requestCtx from "../../services/request-context.mjs";
7
- const isSingleType = (contentType) => contentTypes.isSingleType(contentType);
8
- const getAuthFromKoaContext = (ctx) => prop("state.auth", ctx) ?? {};
9
- function createController({
10
- contentType
11
- }) {
12
- const proto = {
13
- transformResponse(data, meta) {
14
- const ctx = requestCtx.get();
15
- return transformResponse(data, meta, {
16
- contentType,
17
- useJsonAPIFormat: ctx?.headers?.["strapi-response-format"] === "v4"
18
- });
19
- },
20
- async sanitizeOutput(data, ctx) {
21
- const auth = getAuthFromKoaContext(ctx);
22
- return strapi.contentAPI.sanitize.output(data, contentType, { auth });
23
- },
24
- async sanitizeInput(data, ctx) {
25
- const auth = getAuthFromKoaContext(ctx);
26
- return strapi.contentAPI.sanitize.input(data, contentType, { auth });
27
- },
28
- async sanitizeQuery(ctx) {
29
- const auth = getAuthFromKoaContext(ctx);
30
- return strapi.contentAPI.sanitize.query(ctx.query, contentType, { auth });
31
- },
32
- async validateQuery(ctx) {
33
- const auth = getAuthFromKoaContext(ctx);
34
- return strapi.contentAPI.validate.query(ctx.query, contentType, { auth });
35
- },
36
- async validateInput(data, ctx) {
37
- const auth = getAuthFromKoaContext(ctx);
38
- return strapi.contentAPI.validate.input(data, contentType, { auth });
39
- }
40
- };
41
- let ctrl;
42
- if (isSingleType(contentType)) {
43
- ctrl = createSingleTypeController({ contentType });
44
- } else {
45
- ctrl = createCollectionTypeController({ contentType });
46
- }
47
- return Object.assign(Object.create(proto), ctrl);
48
- }
49
- export {
50
- createController
51
- };
52
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/core-api/controller/index.ts"],"sourcesContent":["import { prop } from 'lodash/fp';\nimport type Koa from 'koa';\nimport { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nimport { transformResponse } from './transform';\nimport { createSingleTypeController } from './single-type';\nimport { createCollectionTypeController } from './collection-type';\nimport requestCtx from '../../services/request-context';\n\nconst isSingleType = (\n contentType: Struct.ContentTypeSchema\n): contentType is Struct.SingleTypeSchema => contentTypeUtils.isSingleType(contentType);\n\nconst getAuthFromKoaContext = (ctx: Koa.Context) => prop('state.auth', ctx) ?? {};\n\nfunction createController<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Controller.SingleType\n : Core.CoreAPI.Controller.CollectionType;\nfunction createController({\n contentType,\n}: {\n contentType: Struct.SingleTypeSchema | Struct.CollectionTypeSchema;\n}) {\n // TODO: replace with Base class + SingleType and CollectionType classes\n\n const proto: Core.CoreAPI.Controller.Base = {\n transformResponse(data, meta) {\n const ctx = requestCtx.get();\n return transformResponse(data, meta, {\n contentType,\n useJsonAPIFormat: ctx?.headers?.['strapi-response-format'] === 'v4',\n });\n },\n\n async sanitizeOutput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.output(data, contentType, { auth });\n },\n\n async sanitizeInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.input(data, contentType, { auth });\n },\n\n async sanitizeQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.query(ctx.query, contentType, { auth });\n },\n\n async validateQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.validate.query(ctx.query, contentType, { auth });\n },\n\n async validateInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.validate.input(data, contentType, { auth });\n },\n };\n\n let ctrl;\n\n if (isSingleType(contentType)) {\n ctrl = createSingleTypeController({ contentType });\n } else {\n ctrl = createCollectionTypeController({ contentType });\n }\n\n return Object.assign(Object.create(proto), ctrl);\n}\n\nexport { createController };\n"],"names":["contentTypeUtils"],"mappings":";;;;;;AAUA,MAAM,eAAe,CACnB,gBAC2CA,aAAiB,aAAa,WAAW;AAEtF,MAAM,wBAAwB,CAAC,QAAqB,KAAK,cAAc,GAAG,KAAK;AAO/E,SAAS,iBAAiB;AAAA,EACxB;AACF,GAEG;AAGD,QAAM,QAAsC;AAAA,IAC1C,kBAAkB,MAAM,MAAM;AACtB,YAAA,MAAM,WAAW;AAChB,aAAA,kBAAkB,MAAM,MAAM;AAAA,QACnC;AAAA,QACA,kBAAkB,KAAK,UAAU,wBAAwB,MAAM;AAAA,MAAA,CAChE;AAAA,IACH;AAAA,IAEA,MAAM,eAAe,MAAM,KAAK;AACxB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,OAAO,MAAM,aAAa,EAAE,MAAM;AAAA,IACtE;AAAA,IAEA,MAAM,cAAc,MAAM,KAAK;AACvB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,MAAM,aAAa,EAAE,MAAM;AAAA,IACrE;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,IAAI,OAAO,aAAa,EAAE,KAAA,CAAM;AAAA,IAC1E;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,IAAI,OAAO,aAAa,EAAE,KAAA,CAAM;AAAA,IAC1E;AAAA,IAEA,MAAM,cAAc,MAAM,KAAK;AACvB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,MAAM,aAAa,EAAE,MAAM;AAAA,IACrE;AAAA,EAAA;AAGE,MAAA;AAEA,MAAA,aAAa,WAAW,GAAG;AACtB,WAAA,2BAA2B,EAAE,YAAA,CAAa;AAAA,EAAA,OAC5C;AACE,WAAA,+BAA+B,EAAE,YAAA,CAAa;AAAA,EACvD;AAEA,SAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG,IAAI;AACjD;"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
4
- const strapiUtils = require("@strapi/utils");
5
- const createSingleTypeController = ({
6
- contentType
7
- }) => {
8
- const uid = contentType.uid;
9
- return {
10
- /**
11
- * Retrieve single type content
12
- *
13
- */
14
- async find(ctx) {
15
- await this.validateQuery(ctx);
16
- const sanitizedQuery = await this.sanitizeQuery(ctx);
17
- const entity = await strapi.service(uid).find(sanitizedQuery);
18
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
19
- return this.transformResponse(sanitizedEntity);
20
- },
21
- /**
22
- * create or update single type content.
23
- */
24
- async update(ctx) {
25
- const { query, body = {} } = ctx.request;
26
- if (!_.isObject(body.data)) {
27
- throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
28
- }
29
- const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
30
- const entity = await strapi.service(uid).createOrUpdate({
31
- ...query,
32
- data: sanitizedInputData
33
- });
34
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
35
- return this.transformResponse(sanitizedEntity);
36
- },
37
- async delete(ctx) {
38
- const { query } = ctx;
39
- await strapi.service(uid).delete(query);
40
- ctx.status = 204;
41
- }
42
- };
43
- };
44
- exports.createSingleTypeController = createSingleTypeController;
45
- //# sourceMappingURL=single-type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"single-type.js","sources":["../../../src/core-api/controller/single-type.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Struct, Core, Utils, UID } from '@strapi/types';\n\ninterface Options {\n contentType: Struct.SingleTypeSchema;\n}\n\n/**\n * Returns a single type controller to handle default core-api actions\n */\nconst createSingleTypeController = ({\n contentType,\n}: Options): Utils.PartialWithThis<Core.CoreAPI.Controller.SingleType> => {\n const uid = contentType.uid as UID.Service;\n\n // TODO: transform into a class\n return {\n /**\n * Retrieve single type content\n *\n */\n async find(ctx) {\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const entity = await strapi.service(uid).find(sanitizedQuery);\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * create or update single type content.\n */\n async update(ctx) {\n const { query, body = {} as any } = ctx.request;\n\n if (!isObject(body.data)) {\n throw new errors.ValidationError('Missing \"data\" payload in the request body');\n }\n\n const sanitizedInputData = await this.sanitizeInput(body.data, ctx);\n\n const entity = await strapi.service(uid).createOrUpdate({\n ...query,\n data: sanitizedInputData,\n });\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n async delete(ctx) {\n const { query } = ctx;\n\n await strapi.service(uid).delete(query);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createSingleTypeController };\n"],"names":["isObject","errors"],"mappings":";;;;AAWA,MAAM,6BAA6B,CAAC;AAAA,EAClC;AACF,MAA0E;AACxE,QAAM,MAAM,YAAY;AAGjB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,MAAM,KAAK,KAAK;AACR,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,KAAK,cAAc;AAE5D,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAK;AAChB,YAAM,EAAE,OAAO,OAAO,CAAC,EAAA,IAAa,IAAI;AAExC,UAAI,CAACA,EAAA,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAIC,YAAO,OAAA,gBAAgB,4CAA4C;AAAA,MAC/E;AAEA,YAAM,qBAAqB,MAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAElE,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,eAAe;AAAA,QACtD,GAAG;AAAA,QACH,MAAM;AAAA,MAAA,CACP;AAED,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA,IAEA,MAAM,OAAO,KAAK;AACV,YAAA,EAAE,MAAU,IAAA;AAElB,YAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,KAAK;AAEtC,UAAI,SAAS;AAAA,IACf;AAAA,EAAA;AAEJ;;"}
@@ -1,45 +0,0 @@
1
- import { isObject } from "lodash/fp";
2
- import { errors } from "@strapi/utils";
3
- const createSingleTypeController = ({
4
- contentType
5
- }) => {
6
- const uid = contentType.uid;
7
- return {
8
- /**
9
- * Retrieve single type content
10
- *
11
- */
12
- async find(ctx) {
13
- await this.validateQuery(ctx);
14
- const sanitizedQuery = await this.sanitizeQuery(ctx);
15
- const entity = await strapi.service(uid).find(sanitizedQuery);
16
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
17
- return this.transformResponse(sanitizedEntity);
18
- },
19
- /**
20
- * create or update single type content.
21
- */
22
- async update(ctx) {
23
- const { query, body = {} } = ctx.request;
24
- if (!isObject(body.data)) {
25
- throw new errors.ValidationError('Missing "data" payload in the request body');
26
- }
27
- const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
28
- const entity = await strapi.service(uid).createOrUpdate({
29
- ...query,
30
- data: sanitizedInputData
31
- });
32
- const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
33
- return this.transformResponse(sanitizedEntity);
34
- },
35
- async delete(ctx) {
36
- const { query } = ctx;
37
- await strapi.service(uid).delete(query);
38
- ctx.status = 204;
39
- }
40
- };
41
- };
42
- export {
43
- createSingleTypeController
44
- };
45
- //# sourceMappingURL=single-type.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"single-type.mjs","sources":["../../../src/core-api/controller/single-type.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Struct, Core, Utils, UID } from '@strapi/types';\n\ninterface Options {\n contentType: Struct.SingleTypeSchema;\n}\n\n/**\n * Returns a single type controller to handle default core-api actions\n */\nconst createSingleTypeController = ({\n contentType,\n}: Options): Utils.PartialWithThis<Core.CoreAPI.Controller.SingleType> => {\n const uid = contentType.uid as UID.Service;\n\n // TODO: transform into a class\n return {\n /**\n * Retrieve single type content\n *\n */\n async find(ctx) {\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const entity = await strapi.service(uid).find(sanitizedQuery);\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * create or update single type content.\n */\n async update(ctx) {\n const { query, body = {} as any } = ctx.request;\n\n if (!isObject(body.data)) {\n throw new errors.ValidationError('Missing \"data\" payload in the request body');\n }\n\n const sanitizedInputData = await this.sanitizeInput(body.data, ctx);\n\n const entity = await strapi.service(uid).createOrUpdate({\n ...query,\n data: sanitizedInputData,\n });\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n async delete(ctx) {\n const { query } = ctx;\n\n await strapi.service(uid).delete(query);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createSingleTypeController };\n"],"names":[],"mappings":";;AAWA,MAAM,6BAA6B,CAAC;AAAA,EAClC;AACF,MAA0E;AACxE,QAAM,MAAM,YAAY;AAGjB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,MAAM,KAAK,KAAK;AACR,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,KAAK,cAAc;AAE5D,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAK;AAChB,YAAM,EAAE,OAAO,OAAO,CAAC,EAAA,IAAa,IAAI;AAExC,UAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAI,OAAO,gBAAgB,4CAA4C;AAAA,MAC/E;AAEA,YAAM,qBAAqB,MAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAElE,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,eAAe;AAAA,QACtD,GAAG;AAAA,QACH,MAAM;AAAA,MAAA,CACP;AAED,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA,IAEA,MAAM,OAAO,KAAK;AACV,YAAA,EAAE,MAAU,IAAA;AAElB,YAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,KAAK;AAEtC,UAAI,SAAS;AAAA,IACf;AAAA,EAAA;AAEJ;"}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
4
- function isEntry(property) {
5
- return property === null || _.isPlainObject(property) || Array.isArray(property);
6
- }
7
- function isDZEntries(property) {
8
- return Array.isArray(property);
9
- }
10
- const transformResponse = (resource, meta = {}, opts = {
11
- useJsonAPIFormat: false
12
- }) => {
13
- if (_.isNil(resource)) {
14
- return resource;
15
- }
16
- if (!_.isPlainObject(resource) && !Array.isArray(resource)) {
17
- throw new Error("Entry must be an object or an array of objects");
18
- }
19
- return {
20
- data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,
21
- meta
22
- };
23
- };
24
- function transformComponent(data, component) {
25
- if (Array.isArray(data)) {
26
- return data.map((datum) => transformComponent(datum, component));
27
- }
28
- const res = transformEntry(data, component);
29
- if (_.isNil(res)) {
30
- return res;
31
- }
32
- const { id, attributes } = res;
33
- return { id, ...attributes };
34
- }
35
- function transformEntry(entry, type) {
36
- if (_.isNil(entry)) {
37
- return entry;
38
- }
39
- if (Array.isArray(entry)) {
40
- return entry.map((singleEntry) => transformEntry(singleEntry, type));
41
- }
42
- if (!_.isPlainObject(entry)) {
43
- throw new Error("Entry must be an object");
44
- }
45
- const { id, documentId, ...properties } = entry;
46
- const attributeValues = {};
47
- for (const key of Object.keys(properties)) {
48
- const property = properties[key];
49
- const attribute = type && type.attributes[key];
50
- if (attribute && attribute.type === "relation" && isEntry(property) && "target" in attribute) {
51
- const data = transformEntry(property, strapi.contentType(attribute.target));
52
- attributeValues[key] = { data };
53
- } else if (attribute && attribute.type === "component" && isEntry(property)) {
54
- attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);
55
- } else if (attribute && attribute.type === "dynamiczone" && isDZEntries(property)) {
56
- if (_.isNil(property)) {
57
- attributeValues[key] = property;
58
- }
59
- attributeValues[key] = property.map((subProperty) => {
60
- return transformComponent(subProperty, strapi.components[subProperty.__component]);
61
- });
62
- } else if (attribute && attribute.type === "media" && isEntry(property)) {
63
- const data = transformEntry(property, strapi.contentType("plugin::upload.file"));
64
- attributeValues[key] = { data };
65
- } else {
66
- attributeValues[key] = property;
67
- }
68
- }
69
- return {
70
- id,
71
- documentId,
72
- attributes: attributeValues
73
- };
74
- }
75
- exports.transformResponse = transformResponse;
76
- //# sourceMappingURL=transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.js","sources":["../../../src/core-api/controller/transform.ts"],"sourcesContent":["import { isNil, isPlainObject } from 'lodash/fp';\nimport type { UID, Struct, Data } from '@strapi/types';\n\ntype TransformedEntry = {\n id: string;\n documentId?: Data.DocumentID | null;\n attributes: Record<string, unknown>;\n};\n\ntype TransformedComponent = {\n id: string;\n [key: string]: unknown;\n};\n\ntype Entry = {\n id: string;\n documentId: Data.DocumentID | null;\n [key: string]: Entry | Entry[] | string | number | null | boolean | Date;\n};\n\nfunction isEntry(property: unknown): property is Entry | Entry[] {\n return property === null || isPlainObject(property) || Array.isArray(property);\n}\n\nfunction isDZEntries(property: unknown): property is (Entry & { __component: UID.Component })[] {\n return Array.isArray(property);\n}\n\ninterface TransformOptions {\n contentType?: Struct.ContentTypeSchema | Struct.ComponentSchema;\n /**\n * @deprecated this option is deprecated and will be removed in the next major version\n */\n useJsonAPIFormat?: boolean;\n}\n\nconst transformResponse = (\n resource: any,\n meta: unknown = {},\n opts: TransformOptions = {\n useJsonAPIFormat: false,\n }\n) => {\n if (isNil(resource)) {\n return resource;\n }\n\n if (!isPlainObject(resource) && !Array.isArray(resource)) {\n throw new Error('Entry must be an object or an array of objects');\n }\n\n return {\n data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,\n meta,\n };\n};\n\nfunction transformComponent<T extends Entry | Entry[] | null>(\n data: T,\n component: Struct.ComponentSchema\n): T extends Entry[] ? TransformedComponent[] : T extends Entry ? TransformedComponent : null;\nfunction transformComponent(\n data: Entry | Entry[] | null,\n component: Struct.ComponentSchema\n): TransformedComponent | TransformedComponent[] | null {\n if (Array.isArray(data)) {\n return data.map((datum) => transformComponent(datum, component));\n }\n\n const res = transformEntry(data, component);\n\n if (isNil(res)) {\n return res;\n }\n\n const { id, attributes } = res;\n return { id, ...attributes };\n}\n\nfunction transformEntry<T extends Entry | Entry[] | null>(\n entry: T,\n type?: Struct.Schema\n): T extends Entry[] ? TransformedEntry[] : T extends Entry ? TransformedEntry : null;\nfunction transformEntry(\n entry: Entry | Entry[] | null,\n type?: Struct.Schema\n): TransformedEntry | TransformedEntry[] | null {\n if (isNil(entry)) {\n return entry;\n }\n\n if (Array.isArray(entry)) {\n return entry.map((singleEntry) => transformEntry(singleEntry, type));\n }\n\n if (!isPlainObject(entry)) {\n throw new Error('Entry must be an object');\n }\n\n const { id, documentId, ...properties } = entry;\n\n const attributeValues: Record<string, unknown> = {};\n\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n const attribute = type && type.attributes[key];\n\n if (attribute && attribute.type === 'relation' && isEntry(property) && 'target' in attribute) {\n const data = transformEntry(property, strapi.contentType(attribute.target));\n\n attributeValues[key] = { data };\n } else if (attribute && attribute.type === 'component' && isEntry(property)) {\n attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);\n } else if (attribute && attribute.type === 'dynamiczone' && isDZEntries(property)) {\n if (isNil(property)) {\n attributeValues[key] = property;\n }\n\n attributeValues[key] = property.map((subProperty) => {\n return transformComponent(subProperty, strapi.components[subProperty.__component]);\n });\n } else if (attribute && attribute.type === 'media' && isEntry(property)) {\n const data = transformEntry(property, strapi.contentType('plugin::upload.file'));\n\n attributeValues[key] = { data };\n } else {\n attributeValues[key] = property;\n }\n }\n\n return {\n id,\n documentId,\n attributes: attributeValues,\n };\n}\n\nexport { transformResponse };\n"],"names":["isPlainObject","isNil"],"mappings":";;;AAoBA,SAAS,QAAQ,UAAgD;AAC/D,SAAO,aAAa,QAAQA,gBAAc,QAAQ,KAAK,MAAM,QAAQ,QAAQ;AAC/E;AAEA,SAAS,YAAY,UAA2E;AACvF,SAAA,MAAM,QAAQ,QAAQ;AAC/B;AAUA,MAAM,oBAAoB,CACxB,UACA,OAAgB,CAAA,GAChB,OAAyB;AAAA,EACvB,kBAAkB;AACpB,MACG;AACC,MAAAC,EAAAA,MAAM,QAAQ,GAAG;AACZ,WAAA;AAAA,EACT;AAEI,MAAA,CAACD,gBAAc,QAAQ,KAAK,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAClD,UAAA,IAAI,MAAM,gDAAgD;AAAA,EAClE;AAEO,SAAA;AAAA,IACL,MAAM,KAAK,mBAAmB,eAAe,UAAU,MAAM,WAAW,IAAI;AAAA,IAC5E;AAAA,EAAA;AAEJ;AAMA,SAAS,mBACP,MACA,WACsD;AAClD,MAAA,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,KAAK,IAAI,CAAC,UAAU,mBAAmB,OAAO,SAAS,CAAC;AAAA,EACjE;AAEM,QAAA,MAAM,eAAe,MAAM,SAAS;AAEtC,MAAAC,EAAAA,MAAM,GAAG,GAAG;AACP,WAAA;AAAA,EACT;AAEM,QAAA,EAAE,IAAI,WAAe,IAAA;AACpB,SAAA,EAAE,IAAI,GAAG;AAClB;AAMA,SAAS,eACP,OACA,MAC8C;AAC1C,MAAAA,EAAAA,MAAM,KAAK,GAAG;AACT,WAAA;AAAA,EACT;AAEI,MAAA,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,gBAAgB,eAAe,aAAa,IAAI,CAAC;AAAA,EACrE;AAEI,MAAA,CAACD,EAAAA,cAAc,KAAK,GAAG;AACnB,UAAA,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,QAAM,EAAE,IAAI,YAAY,GAAG,eAAe;AAE1C,QAAM,kBAA2C,CAAA;AAEjD,aAAW,OAAO,OAAO,KAAK,UAAU,GAAG;AACnC,UAAA,WAAW,WAAW,GAAG;AAC/B,UAAM,YAAY,QAAQ,KAAK,WAAW,GAAG;AAEzC,QAAA,aAAa,UAAU,SAAS,cAAc,QAAQ,QAAQ,KAAK,YAAY,WAAW;AAC5F,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,UAAU,MAAM,CAAC;AAE1D,sBAAA,GAAG,IAAI,EAAE;IAAK,WACrB,aAAa,UAAU,SAAS,eAAe,QAAQ,QAAQ,GAAG;AAC3D,sBAAA,GAAG,IAAI,mBAAmB,UAAU,OAAO,WAAW,UAAU,SAAS,CAAC;AAAA,IAAA,WACjF,aAAa,UAAU,SAAS,iBAAiB,YAAY,QAAQ,GAAG;AAC7E,UAAAC,EAAAA,MAAM,QAAQ,GAAG;AACnB,wBAAgB,GAAG,IAAI;AAAA,MACzB;AAEA,sBAAgB,GAAG,IAAI,SAAS,IAAI,CAAC,gBAAgB;AACnD,eAAO,mBAAmB,aAAa,OAAO,WAAW,YAAY,WAAW,CAAC;AAAA,MAAA,CAClF;AAAA,IAAA,WACQ,aAAa,UAAU,SAAS,WAAW,QAAQ,QAAQ,GAAG;AACvE,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,qBAAqB,CAAC;AAE/D,sBAAA,GAAG,IAAI,EAAE;IAAK,OACzB;AACL,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAAA,EACF;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EAAA;AAEhB;;"}
@@ -1,76 +0,0 @@
1
- import { isNil, isPlainObject } from "lodash/fp";
2
- function isEntry(property) {
3
- return property === null || isPlainObject(property) || Array.isArray(property);
4
- }
5
- function isDZEntries(property) {
6
- return Array.isArray(property);
7
- }
8
- const transformResponse = (resource, meta = {}, opts = {
9
- useJsonAPIFormat: false
10
- }) => {
11
- if (isNil(resource)) {
12
- return resource;
13
- }
14
- if (!isPlainObject(resource) && !Array.isArray(resource)) {
15
- throw new Error("Entry must be an object or an array of objects");
16
- }
17
- return {
18
- data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,
19
- meta
20
- };
21
- };
22
- function transformComponent(data, component) {
23
- if (Array.isArray(data)) {
24
- return data.map((datum) => transformComponent(datum, component));
25
- }
26
- const res = transformEntry(data, component);
27
- if (isNil(res)) {
28
- return res;
29
- }
30
- const { id, attributes } = res;
31
- return { id, ...attributes };
32
- }
33
- function transformEntry(entry, type) {
34
- if (isNil(entry)) {
35
- return entry;
36
- }
37
- if (Array.isArray(entry)) {
38
- return entry.map((singleEntry) => transformEntry(singleEntry, type));
39
- }
40
- if (!isPlainObject(entry)) {
41
- throw new Error("Entry must be an object");
42
- }
43
- const { id, documentId, ...properties } = entry;
44
- const attributeValues = {};
45
- for (const key of Object.keys(properties)) {
46
- const property = properties[key];
47
- const attribute = type && type.attributes[key];
48
- if (attribute && attribute.type === "relation" && isEntry(property) && "target" in attribute) {
49
- const data = transformEntry(property, strapi.contentType(attribute.target));
50
- attributeValues[key] = { data };
51
- } else if (attribute && attribute.type === "component" && isEntry(property)) {
52
- attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);
53
- } else if (attribute && attribute.type === "dynamiczone" && isDZEntries(property)) {
54
- if (isNil(property)) {
55
- attributeValues[key] = property;
56
- }
57
- attributeValues[key] = property.map((subProperty) => {
58
- return transformComponent(subProperty, strapi.components[subProperty.__component]);
59
- });
60
- } else if (attribute && attribute.type === "media" && isEntry(property)) {
61
- const data = transformEntry(property, strapi.contentType("plugin::upload.file"));
62
- attributeValues[key] = { data };
63
- } else {
64
- attributeValues[key] = property;
65
- }
66
- }
67
- return {
68
- id,
69
- documentId,
70
- attributes: attributeValues
71
- };
72
- }
73
- export {
74
- transformResponse
75
- };
76
- //# sourceMappingURL=transform.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.mjs","sources":["../../../src/core-api/controller/transform.ts"],"sourcesContent":["import { isNil, isPlainObject } from 'lodash/fp';\nimport type { UID, Struct, Data } from '@strapi/types';\n\ntype TransformedEntry = {\n id: string;\n documentId?: Data.DocumentID | null;\n attributes: Record<string, unknown>;\n};\n\ntype TransformedComponent = {\n id: string;\n [key: string]: unknown;\n};\n\ntype Entry = {\n id: string;\n documentId: Data.DocumentID | null;\n [key: string]: Entry | Entry[] | string | number | null | boolean | Date;\n};\n\nfunction isEntry(property: unknown): property is Entry | Entry[] {\n return property === null || isPlainObject(property) || Array.isArray(property);\n}\n\nfunction isDZEntries(property: unknown): property is (Entry & { __component: UID.Component })[] {\n return Array.isArray(property);\n}\n\ninterface TransformOptions {\n contentType?: Struct.ContentTypeSchema | Struct.ComponentSchema;\n /**\n * @deprecated this option is deprecated and will be removed in the next major version\n */\n useJsonAPIFormat?: boolean;\n}\n\nconst transformResponse = (\n resource: any,\n meta: unknown = {},\n opts: TransformOptions = {\n useJsonAPIFormat: false,\n }\n) => {\n if (isNil(resource)) {\n return resource;\n }\n\n if (!isPlainObject(resource) && !Array.isArray(resource)) {\n throw new Error('Entry must be an object or an array of objects');\n }\n\n return {\n data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,\n meta,\n };\n};\n\nfunction transformComponent<T extends Entry | Entry[] | null>(\n data: T,\n component: Struct.ComponentSchema\n): T extends Entry[] ? TransformedComponent[] : T extends Entry ? TransformedComponent : null;\nfunction transformComponent(\n data: Entry | Entry[] | null,\n component: Struct.ComponentSchema\n): TransformedComponent | TransformedComponent[] | null {\n if (Array.isArray(data)) {\n return data.map((datum) => transformComponent(datum, component));\n }\n\n const res = transformEntry(data, component);\n\n if (isNil(res)) {\n return res;\n }\n\n const { id, attributes } = res;\n return { id, ...attributes };\n}\n\nfunction transformEntry<T extends Entry | Entry[] | null>(\n entry: T,\n type?: Struct.Schema\n): T extends Entry[] ? TransformedEntry[] : T extends Entry ? TransformedEntry : null;\nfunction transformEntry(\n entry: Entry | Entry[] | null,\n type?: Struct.Schema\n): TransformedEntry | TransformedEntry[] | null {\n if (isNil(entry)) {\n return entry;\n }\n\n if (Array.isArray(entry)) {\n return entry.map((singleEntry) => transformEntry(singleEntry, type));\n }\n\n if (!isPlainObject(entry)) {\n throw new Error('Entry must be an object');\n }\n\n const { id, documentId, ...properties } = entry;\n\n const attributeValues: Record<string, unknown> = {};\n\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n const attribute = type && type.attributes[key];\n\n if (attribute && attribute.type === 'relation' && isEntry(property) && 'target' in attribute) {\n const data = transformEntry(property, strapi.contentType(attribute.target));\n\n attributeValues[key] = { data };\n } else if (attribute && attribute.type === 'component' && isEntry(property)) {\n attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);\n } else if (attribute && attribute.type === 'dynamiczone' && isDZEntries(property)) {\n if (isNil(property)) {\n attributeValues[key] = property;\n }\n\n attributeValues[key] = property.map((subProperty) => {\n return transformComponent(subProperty, strapi.components[subProperty.__component]);\n });\n } else if (attribute && attribute.type === 'media' && isEntry(property)) {\n const data = transformEntry(property, strapi.contentType('plugin::upload.file'));\n\n attributeValues[key] = { data };\n } else {\n attributeValues[key] = property;\n }\n }\n\n return {\n id,\n documentId,\n attributes: attributeValues,\n };\n}\n\nexport { transformResponse };\n"],"names":[],"mappings":";AAoBA,SAAS,QAAQ,UAAgD;AAC/D,SAAO,aAAa,QAAQ,cAAc,QAAQ,KAAK,MAAM,QAAQ,QAAQ;AAC/E;AAEA,SAAS,YAAY,UAA2E;AACvF,SAAA,MAAM,QAAQ,QAAQ;AAC/B;AAUA,MAAM,oBAAoB,CACxB,UACA,OAAgB,CAAA,GAChB,OAAyB;AAAA,EACvB,kBAAkB;AACpB,MACG;AACC,MAAA,MAAM,QAAQ,GAAG;AACZ,WAAA;AAAA,EACT;AAEI,MAAA,CAAC,cAAc,QAAQ,KAAK,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAClD,UAAA,IAAI,MAAM,gDAAgD;AAAA,EAClE;AAEO,SAAA;AAAA,IACL,MAAM,KAAK,mBAAmB,eAAe,UAAU,MAAM,WAAW,IAAI;AAAA,IAC5E;AAAA,EAAA;AAEJ;AAMA,SAAS,mBACP,MACA,WACsD;AAClD,MAAA,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,KAAK,IAAI,CAAC,UAAU,mBAAmB,OAAO,SAAS,CAAC;AAAA,EACjE;AAEM,QAAA,MAAM,eAAe,MAAM,SAAS;AAEtC,MAAA,MAAM,GAAG,GAAG;AACP,WAAA;AAAA,EACT;AAEM,QAAA,EAAE,IAAI,WAAe,IAAA;AACpB,SAAA,EAAE,IAAI,GAAG;AAClB;AAMA,SAAS,eACP,OACA,MAC8C;AAC1C,MAAA,MAAM,KAAK,GAAG;AACT,WAAA;AAAA,EACT;AAEI,MAAA,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,gBAAgB,eAAe,aAAa,IAAI,CAAC;AAAA,EACrE;AAEI,MAAA,CAAC,cAAc,KAAK,GAAG;AACnB,UAAA,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,QAAM,EAAE,IAAI,YAAY,GAAG,eAAe;AAE1C,QAAM,kBAA2C,CAAA;AAEjD,aAAW,OAAO,OAAO,KAAK,UAAU,GAAG;AACnC,UAAA,WAAW,WAAW,GAAG;AAC/B,UAAM,YAAY,QAAQ,KAAK,WAAW,GAAG;AAEzC,QAAA,aAAa,UAAU,SAAS,cAAc,QAAQ,QAAQ,KAAK,YAAY,WAAW;AAC5F,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,UAAU,MAAM,CAAC;AAE1D,sBAAA,GAAG,IAAI,EAAE;IAAK,WACrB,aAAa,UAAU,SAAS,eAAe,QAAQ,QAAQ,GAAG;AAC3D,sBAAA,GAAG,IAAI,mBAAmB,UAAU,OAAO,WAAW,UAAU,SAAS,CAAC;AAAA,IAAA,WACjF,aAAa,UAAU,SAAS,iBAAiB,YAAY,QAAQ,GAAG;AAC7E,UAAA,MAAM,QAAQ,GAAG;AACnB,wBAAgB,GAAG,IAAI;AAAA,MACzB;AAEA,sBAAgB,GAAG,IAAI,SAAS,IAAI,CAAC,gBAAgB;AACnD,eAAO,mBAAmB,aAAa,OAAO,WAAW,YAAY,WAAW,CAAC;AAAA,MAAA,CAClF;AAAA,IAAA,WACQ,aAAa,UAAU,SAAS,WAAW,QAAQ,QAAQ,GAAG;AACvE,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,qBAAqB,CAAC;AAE/D,sBAAA,GAAG,IAAI,EAAE;IAAK,OACzB;AACL,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAAA,EACF;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EAAA;AAEhB;"}