@strapi/core 0.0.0-experimental.e3e48deb89bd0a1b6cc69b698696566fa7854a95 → 0.0.0-experimental.e8d8fc824d0f6a695b2a9ebaa4680ed21c3645ca

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (850) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +49 -58
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +199 -221
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +168 -210
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/compile.js.map +1 -1
  9. package/dist/compile.mjs.map +1 -1
  10. package/dist/configuration/config-loader.d.ts.map +1 -1
  11. package/dist/configuration/config-loader.js +10 -7
  12. package/dist/configuration/config-loader.js.map +1 -1
  13. package/dist/configuration/config-loader.mjs +10 -7
  14. package/dist/configuration/config-loader.mjs.map +1 -1
  15. package/dist/configuration/get-dirs.d.ts +10 -0
  16. package/dist/configuration/get-dirs.d.ts.map +1 -0
  17. package/dist/{utils → configuration}/get-dirs.js +3 -2
  18. package/dist/configuration/get-dirs.js.map +1 -0
  19. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  20. package/dist/configuration/get-dirs.mjs.map +1 -0
  21. package/dist/configuration/index.d.ts +4 -7
  22. package/dist/configuration/index.d.ts.map +1 -1
  23. package/dist/configuration/index.js +16 -9
  24. package/dist/configuration/index.js.map +1 -1
  25. package/dist/configuration/index.mjs +13 -7
  26. package/dist/configuration/index.mjs.map +1 -1
  27. package/dist/configuration/urls.js.map +1 -1
  28. package/dist/configuration/urls.mjs.map +1 -1
  29. package/dist/container.d.ts +2 -2
  30. package/dist/container.d.ts.map +1 -1
  31. package/dist/container.js.map +1 -1
  32. package/dist/container.mjs.map +1 -1
  33. package/dist/core-api/controller/collection-type.d.ts +3 -3
  34. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  35. package/dist/core-api/controller/collection-type.js +6 -3
  36. package/dist/core-api/controller/collection-type.js.map +1 -1
  37. package/dist/core-api/controller/collection-type.mjs +3 -0
  38. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  39. package/dist/core-api/controller/index.d.ts +3 -3
  40. package/dist/core-api/controller/index.d.ts.map +1 -1
  41. package/dist/core-api/controller/index.js +7 -7
  42. package/dist/core-api/controller/index.js.map +1 -1
  43. package/dist/core-api/controller/index.mjs +6 -6
  44. package/dist/core-api/controller/index.mjs.map +1 -1
  45. package/dist/core-api/controller/single-type.d.ts +3 -3
  46. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  47. package/dist/core-api/controller/single-type.js +3 -2
  48. package/dist/core-api/controller/single-type.js.map +1 -1
  49. package/dist/core-api/controller/single-type.mjs +1 -0
  50. package/dist/core-api/controller/single-type.mjs.map +1 -1
  51. package/dist/core-api/controller/transform.d.ts +2 -2
  52. package/dist/core-api/controller/transform.d.ts.map +1 -1
  53. package/dist/core-api/controller/transform.js +10 -13
  54. package/dist/core-api/controller/transform.js.map +1 -1
  55. package/dist/core-api/controller/transform.mjs +2 -5
  56. package/dist/core-api/controller/transform.mjs.map +1 -1
  57. package/dist/core-api/routes/index.d.ts.map +1 -1
  58. package/dist/core-api/routes/index.js.map +1 -1
  59. package/dist/core-api/routes/index.mjs.map +1 -1
  60. package/dist/core-api/service/collection-type.d.ts +11 -17
  61. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  62. package/dist/core-api/service/collection-type.js +18 -7
  63. package/dist/core-api/service/collection-type.js.map +1 -1
  64. package/dist/core-api/service/collection-type.mjs +19 -8
  65. package/dist/core-api/service/collection-type.mjs.map +1 -1
  66. package/dist/core-api/service/core-service.js.map +1 -1
  67. package/dist/core-api/service/core-service.mjs.map +1 -1
  68. package/dist/core-api/service/index.d.ts +3 -3
  69. package/dist/core-api/service/index.d.ts.map +1 -1
  70. package/dist/core-api/service/index.js.map +1 -1
  71. package/dist/core-api/service/index.mjs.map +1 -1
  72. package/dist/core-api/service/pagination.d.ts +4 -11
  73. package/dist/core-api/service/pagination.d.ts.map +1 -1
  74. package/dist/core-api/service/pagination.js +18 -44
  75. package/dist/core-api/service/pagination.js.map +1 -1
  76. package/dist/core-api/service/pagination.mjs +16 -42
  77. package/dist/core-api/service/pagination.mjs.map +1 -1
  78. package/dist/core-api/service/single-type.d.ts +4 -4
  79. package/dist/core-api/service/single-type.d.ts.map +1 -1
  80. package/dist/core-api/service/single-type.js +10 -4
  81. package/dist/core-api/service/single-type.js.map +1 -1
  82. package/dist/core-api/service/single-type.mjs +10 -4
  83. package/dist/core-api/service/single-type.mjs.map +1 -1
  84. package/dist/domain/content-type/index.d.ts +1 -1
  85. package/dist/domain/content-type/index.d.ts.map +1 -1
  86. package/dist/domain/content-type/index.js +4 -4
  87. package/dist/domain/content-type/index.js.map +1 -1
  88. package/dist/domain/content-type/index.mjs.map +1 -1
  89. package/dist/domain/content-type/validator.js.map +1 -1
  90. package/dist/domain/content-type/validator.mjs.map +1 -1
  91. package/dist/domain/module/index.d.ts +24 -23
  92. package/dist/domain/module/index.d.ts.map +1 -1
  93. package/dist/domain/module/index.js +2 -1
  94. package/dist/domain/module/index.js.map +1 -1
  95. package/dist/domain/module/index.mjs +3 -2
  96. package/dist/domain/module/index.mjs.map +1 -1
  97. package/dist/domain/module/validation.js.map +1 -1
  98. package/dist/domain/module/validation.mjs.map +1 -1
  99. package/dist/ee/index.d.ts +4 -2
  100. package/dist/ee/index.d.ts.map +1 -1
  101. package/dist/ee/index.js +9 -4
  102. package/dist/ee/index.js.map +1 -1
  103. package/dist/ee/index.mjs +6 -1
  104. package/dist/ee/index.mjs.map +1 -1
  105. package/dist/ee/license.d.ts +2 -2
  106. package/dist/ee/license.d.ts.map +1 -1
  107. package/dist/ee/license.js +2 -1
  108. package/dist/ee/license.js.map +1 -1
  109. package/dist/ee/license.mjs +2 -1
  110. package/dist/ee/license.mjs.map +1 -1
  111. package/dist/factories.d.ts +10 -10
  112. package/dist/factories.d.ts.map +1 -1
  113. package/dist/factories.js +10 -6
  114. package/dist/factories.js.map +1 -1
  115. package/dist/factories.mjs +6 -2
  116. package/dist/factories.mjs.map +1 -1
  117. package/dist/index.d.ts +18 -2
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +25 -1
  120. package/dist/index.js.map +1 -1
  121. package/dist/index.mjs +27 -3
  122. package/dist/index.mjs.map +1 -1
  123. package/dist/loaders/admin.d.ts +2 -2
  124. package/dist/loaders/admin.d.ts.map +1 -1
  125. package/dist/loaders/admin.js +0 -1
  126. package/dist/loaders/admin.js.map +1 -1
  127. package/dist/loaders/admin.mjs +0 -1
  128. package/dist/loaders/admin.mjs.map +1 -1
  129. package/dist/loaders/apis.d.ts +2 -2
  130. package/dist/loaders/apis.d.ts.map +1 -1
  131. package/dist/loaders/apis.js +12 -12
  132. package/dist/loaders/apis.js.map +1 -1
  133. package/dist/loaders/apis.mjs +10 -10
  134. package/dist/loaders/apis.mjs.map +1 -1
  135. package/dist/loaders/components.d.ts +2 -2
  136. package/dist/loaders/components.d.ts.map +1 -1
  137. package/dist/loaders/components.js.map +1 -1
  138. package/dist/loaders/components.mjs.map +1 -1
  139. package/dist/loaders/index.d.ts +2 -2
  140. package/dist/loaders/index.d.ts.map +1 -1
  141. package/dist/loaders/index.js +0 -2
  142. package/dist/loaders/index.js.map +1 -1
  143. package/dist/loaders/index.mjs +0 -2
  144. package/dist/loaders/index.mjs.map +1 -1
  145. package/dist/loaders/middlewares.d.ts +2 -2
  146. package/dist/loaders/middlewares.d.ts.map +1 -1
  147. package/dist/loaders/middlewares.js.map +1 -1
  148. package/dist/loaders/middlewares.mjs.map +1 -1
  149. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  150. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  151. package/dist/loaders/plugins/get-enabled-plugins.js +47 -17
  152. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  153. package/dist/loaders/plugins/get-enabled-plugins.mjs +17 -9
  154. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  155. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  156. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  157. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  158. package/dist/loaders/plugins/index.d.ts +2 -2
  159. package/dist/loaders/plugins/index.d.ts.map +1 -1
  160. package/dist/loaders/plugins/index.js +33 -7
  161. package/dist/loaders/plugins/index.js.map +1 -1
  162. package/dist/loaders/plugins/index.mjs +9 -1
  163. package/dist/loaders/plugins/index.mjs.map +1 -1
  164. package/dist/loaders/policies.d.ts +2 -2
  165. package/dist/loaders/policies.d.ts.map +1 -1
  166. package/dist/loaders/policies.js.map +1 -1
  167. package/dist/loaders/policies.mjs.map +1 -1
  168. package/dist/loaders/sanitizers.d.ts +2 -2
  169. package/dist/loaders/sanitizers.d.ts.map +1 -1
  170. package/dist/loaders/sanitizers.js.map +1 -1
  171. package/dist/loaders/sanitizers.mjs.map +1 -1
  172. package/dist/loaders/src-index.d.ts +2 -2
  173. package/dist/loaders/src-index.d.ts.map +1 -1
  174. package/dist/loaders/src-index.js.map +1 -1
  175. package/dist/loaders/src-index.mjs.map +1 -1
  176. package/dist/loaders/validators.d.ts +2 -2
  177. package/dist/loaders/validators.d.ts.map +1 -1
  178. package/dist/loaders/validators.js.map +1 -1
  179. package/dist/loaders/validators.mjs.map +1 -1
  180. package/dist/middlewares/body.d.ts +4 -4
  181. package/dist/middlewares/body.d.ts.map +1 -1
  182. package/dist/middlewares/body.js +6 -6
  183. package/dist/middlewares/body.js.map +1 -1
  184. package/dist/middlewares/body.mjs +4 -4
  185. package/dist/middlewares/body.mjs.map +1 -1
  186. package/dist/middlewares/compression.d.ts +2 -2
  187. package/dist/middlewares/compression.d.ts.map +1 -1
  188. package/dist/middlewares/compression.js.map +1 -1
  189. package/dist/middlewares/compression.mjs.map +1 -1
  190. package/dist/middlewares/cors.d.ts +2 -2
  191. package/dist/middlewares/cors.d.ts.map +1 -1
  192. package/dist/middlewares/cors.js +9 -7
  193. package/dist/middlewares/cors.js.map +1 -1
  194. package/dist/middlewares/cors.mjs +9 -7
  195. package/dist/middlewares/cors.mjs.map +1 -1
  196. package/dist/middlewares/errors.d.ts +2 -2
  197. package/dist/middlewares/errors.d.ts.map +1 -1
  198. package/dist/middlewares/errors.js.map +1 -1
  199. package/dist/middlewares/errors.mjs.map +1 -1
  200. package/dist/middlewares/favicon.d.ts +2 -2
  201. package/dist/middlewares/favicon.d.ts.map +1 -1
  202. package/dist/middlewares/favicon.js.map +1 -1
  203. package/dist/middlewares/favicon.mjs.map +1 -1
  204. package/dist/middlewares/index.d.ts +2 -2
  205. package/dist/middlewares/index.d.ts.map +1 -1
  206. package/dist/middlewares/index.js.map +1 -1
  207. package/dist/middlewares/index.mjs.map +1 -1
  208. package/dist/middlewares/ip.d.ts +2 -2
  209. package/dist/middlewares/ip.d.ts.map +1 -1
  210. package/dist/middlewares/ip.js.map +1 -1
  211. package/dist/middlewares/ip.mjs.map +1 -1
  212. package/dist/middlewares/logger.d.ts +2 -2
  213. package/dist/middlewares/logger.d.ts.map +1 -1
  214. package/dist/middlewares/logger.js.map +1 -1
  215. package/dist/middlewares/logger.mjs.map +1 -1
  216. package/dist/middlewares/powered-by.d.ts +2 -2
  217. package/dist/middlewares/powered-by.d.ts.map +1 -1
  218. package/dist/middlewares/powered-by.js.map +1 -1
  219. package/dist/middlewares/powered-by.mjs.map +1 -1
  220. package/dist/middlewares/public.d.ts +2 -2
  221. package/dist/middlewares/public.d.ts.map +1 -1
  222. package/dist/middlewares/public.js +3 -3
  223. package/dist/middlewares/public.js.map +1 -1
  224. package/dist/middlewares/public.mjs +1 -1
  225. package/dist/middlewares/public.mjs.map +1 -1
  226. package/dist/middlewares/query.d.ts +2 -2
  227. package/dist/middlewares/query.d.ts.map +1 -1
  228. package/dist/middlewares/query.js.map +1 -1
  229. package/dist/middlewares/query.mjs.map +1 -1
  230. package/dist/middlewares/response-time.d.ts +2 -2
  231. package/dist/middlewares/response-time.d.ts.map +1 -1
  232. package/dist/middlewares/response-time.js.map +1 -1
  233. package/dist/middlewares/response-time.mjs.map +1 -1
  234. package/dist/middlewares/responses.d.ts +3 -3
  235. package/dist/middlewares/responses.d.ts.map +1 -1
  236. package/dist/middlewares/responses.js +2 -2
  237. package/dist/middlewares/responses.js.map +1 -1
  238. package/dist/middlewares/responses.mjs.map +1 -1
  239. package/dist/middlewares/security.d.ts +2 -2
  240. package/dist/middlewares/security.d.ts.map +1 -1
  241. package/dist/middlewares/security.js +12 -5
  242. package/dist/middlewares/security.js.map +1 -1
  243. package/dist/middlewares/security.mjs +11 -4
  244. package/dist/middlewares/security.mjs.map +1 -1
  245. package/dist/middlewares/session.d.ts +2 -2
  246. package/dist/middlewares/session.d.ts.map +1 -1
  247. package/dist/middlewares/session.js +2 -2
  248. package/dist/middlewares/session.js.map +1 -1
  249. package/dist/middlewares/session.mjs.map +1 -1
  250. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  251. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  252. package/dist/migrations/database/5.0.0-discard-drafts.js +106 -0
  253. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  254. package/dist/migrations/database/5.0.0-discard-drafts.mjs +106 -0
  255. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  256. package/dist/migrations/draft-publish.d.ts +1 -1
  257. package/dist/migrations/draft-publish.d.ts.map +1 -1
  258. package/dist/migrations/draft-publish.js +14 -31
  259. package/dist/migrations/draft-publish.js.map +1 -1
  260. package/dist/migrations/draft-publish.mjs +15 -32
  261. package/dist/migrations/draft-publish.mjs.map +1 -1
  262. package/dist/migrations/i18n.d.ts +5 -0
  263. package/dist/migrations/i18n.d.ts.map +1 -0
  264. package/dist/migrations/i18n.js +54 -0
  265. package/dist/migrations/i18n.js.map +1 -0
  266. package/dist/migrations/i18n.mjs +54 -0
  267. package/dist/migrations/i18n.mjs.map +1 -0
  268. package/dist/migrations/index.d.ts +5 -0
  269. package/dist/migrations/index.d.ts.map +1 -0
  270. package/dist/migrations/index.js +15 -0
  271. package/dist/migrations/index.js.map +1 -0
  272. package/dist/migrations/index.mjs +15 -0
  273. package/dist/migrations/index.mjs.map +1 -0
  274. package/dist/providers/admin.d.ts +3 -0
  275. package/dist/providers/admin.d.ts.map +1 -0
  276. package/dist/providers/admin.js +20 -0
  277. package/dist/providers/admin.js.map +1 -0
  278. package/dist/providers/admin.mjs +21 -0
  279. package/dist/providers/admin.mjs.map +1 -0
  280. package/dist/providers/coreStore.d.ts +3 -0
  281. package/dist/providers/coreStore.d.ts.map +1 -0
  282. package/dist/providers/coreStore.js +11 -0
  283. package/dist/providers/coreStore.js.map +1 -0
  284. package/dist/providers/coreStore.mjs +12 -0
  285. package/dist/providers/coreStore.mjs.map +1 -0
  286. package/dist/providers/cron.d.ts +3 -0
  287. package/dist/providers/cron.d.ts.map +1 -0
  288. package/dist/providers/cron.js +20 -0
  289. package/dist/providers/cron.js.map +1 -0
  290. package/dist/providers/cron.mjs +21 -0
  291. package/dist/providers/cron.mjs.map +1 -0
  292. package/dist/providers/index.d.ts +3 -0
  293. package/dist/providers/index.d.ts.map +1 -0
  294. package/dist/providers/index.js +11 -0
  295. package/dist/providers/index.js.map +1 -0
  296. package/dist/providers/index.mjs +11 -0
  297. package/dist/providers/index.mjs.map +1 -0
  298. package/dist/providers/provider.d.ts +9 -0
  299. package/dist/providers/provider.d.ts.map +1 -0
  300. package/dist/providers/provider.js +5 -0
  301. package/dist/providers/provider.js.map +1 -0
  302. package/dist/providers/provider.mjs +5 -0
  303. package/dist/providers/provider.mjs.map +1 -0
  304. package/dist/providers/registries.d.ts +3 -0
  305. package/dist/providers/registries.d.ts.map +1 -0
  306. package/dist/providers/registries.js +35 -0
  307. package/dist/providers/registries.js.map +1 -0
  308. package/dist/providers/registries.mjs +36 -0
  309. package/dist/providers/registries.mjs.map +1 -0
  310. package/dist/providers/telemetry.d.ts +3 -0
  311. package/dist/providers/telemetry.d.ts.map +1 -0
  312. package/dist/providers/telemetry.js +19 -0
  313. package/dist/providers/telemetry.js.map +1 -0
  314. package/dist/providers/telemetry.mjs +20 -0
  315. package/dist/providers/telemetry.mjs.map +1 -0
  316. package/dist/providers/webhooks.d.ts +3 -0
  317. package/dist/providers/webhooks.d.ts.map +1 -0
  318. package/dist/providers/webhooks.js +30 -0
  319. package/dist/providers/webhooks.js.map +1 -0
  320. package/dist/providers/webhooks.mjs +31 -0
  321. package/dist/providers/webhooks.mjs.map +1 -0
  322. package/dist/registries/apis.d.ts +2 -2
  323. package/dist/registries/apis.d.ts.map +1 -1
  324. package/dist/registries/apis.js +2 -2
  325. package/dist/registries/apis.js.map +1 -1
  326. package/dist/registries/apis.mjs.map +1 -1
  327. package/dist/registries/components.d.ts +6 -6
  328. package/dist/registries/components.d.ts.map +1 -1
  329. package/dist/registries/components.js +2 -2
  330. package/dist/registries/components.js.map +1 -1
  331. package/dist/registries/components.mjs.map +1 -1
  332. package/dist/registries/content-types.d.ts +5 -5
  333. package/dist/registries/content-types.d.ts.map +1 -1
  334. package/dist/registries/content-types.js +3 -3
  335. package/dist/registries/content-types.js.map +1 -1
  336. package/dist/registries/content-types.mjs.map +1 -1
  337. package/dist/registries/controllers.d.ts +10 -10
  338. package/dist/registries/controllers.d.ts.map +1 -1
  339. package/dist/registries/controllers.js +3 -3
  340. package/dist/registries/controllers.js.map +1 -1
  341. package/dist/registries/controllers.mjs.map +1 -1
  342. package/dist/registries/custom-fields.d.ts +3 -3
  343. package/dist/registries/custom-fields.d.ts.map +1 -1
  344. package/dist/registries/custom-fields.js +4 -4
  345. package/dist/registries/custom-fields.js.map +1 -1
  346. package/dist/registries/custom-fields.mjs.map +1 -1
  347. package/dist/registries/hooks.js +2 -2
  348. package/dist/registries/hooks.js.map +1 -1
  349. package/dist/registries/hooks.mjs.map +1 -1
  350. package/dist/registries/index.d.ts +0 -1
  351. package/dist/registries/index.d.ts.map +1 -1
  352. package/dist/registries/middlewares.d.ts +6 -6
  353. package/dist/registries/middlewares.d.ts.map +1 -1
  354. package/dist/registries/middlewares.js +3 -3
  355. package/dist/registries/middlewares.js.map +1 -1
  356. package/dist/registries/middlewares.mjs.map +1 -1
  357. package/dist/registries/models.js.map +1 -1
  358. package/dist/registries/models.mjs.map +1 -1
  359. package/dist/registries/modules.d.ts +2 -2
  360. package/dist/registries/modules.d.ts.map +1 -1
  361. package/dist/registries/modules.js +3 -3
  362. package/dist/registries/modules.js.map +1 -1
  363. package/dist/registries/modules.mjs.map +1 -1
  364. package/dist/registries/namespace.js.map +1 -1
  365. package/dist/registries/namespace.mjs.map +1 -1
  366. package/dist/registries/plugins.d.ts +5 -5
  367. package/dist/registries/plugins.d.ts.map +1 -1
  368. package/dist/registries/plugins.js +2 -2
  369. package/dist/registries/plugins.js.map +1 -1
  370. package/dist/registries/plugins.mjs.map +1 -1
  371. package/dist/registries/policies.d.ts +22 -10
  372. package/dist/registries/policies.d.ts.map +1 -1
  373. package/dist/registries/policies.js +66 -20
  374. package/dist/registries/policies.js.map +1 -1
  375. package/dist/registries/policies.mjs +65 -19
  376. package/dist/registries/policies.mjs.map +1 -1
  377. package/dist/registries/sanitizers.js.map +1 -1
  378. package/dist/registries/sanitizers.mjs.map +1 -1
  379. package/dist/registries/services.d.ts +8 -8
  380. package/dist/registries/services.d.ts.map +1 -1
  381. package/dist/registries/services.js +3 -3
  382. package/dist/registries/services.js.map +1 -1
  383. package/dist/registries/services.mjs.map +1 -1
  384. package/dist/registries/validators.js.map +1 -1
  385. package/dist/registries/validators.mjs.map +1 -1
  386. package/dist/services/auth/index.d.ts +4 -4
  387. package/dist/services/auth/index.d.ts.map +1 -1
  388. package/dist/services/auth/index.js +3 -3
  389. package/dist/services/auth/index.js.map +1 -1
  390. package/dist/services/auth/index.mjs.map +1 -1
  391. package/dist/services/config.d.ts +3 -0
  392. package/dist/services/config.d.ts.map +1 -0
  393. package/dist/services/config.js +47 -0
  394. package/dist/services/config.js.map +1 -0
  395. package/dist/services/config.mjs +47 -0
  396. package/dist/services/config.mjs.map +1 -0
  397. package/dist/services/content-api/index.d.ts +31 -15
  398. package/dist/services/content-api/index.d.ts.map +1 -1
  399. package/dist/services/content-api/index.js +28 -2
  400. package/dist/services/content-api/index.js.map +1 -1
  401. package/dist/services/content-api/index.mjs +28 -2
  402. package/dist/services/content-api/index.mjs.map +1 -1
  403. package/dist/services/content-api/permissions/index.d.ts +13 -15
  404. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  405. package/dist/services/content-api/permissions/index.js +1 -1
  406. package/dist/services/content-api/permissions/index.js.map +1 -1
  407. package/dist/services/content-api/permissions/index.mjs +1 -1
  408. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  409. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  410. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  411. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  412. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  413. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  414. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  415. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  416. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  417. package/dist/services/core-store.d.ts.map +1 -1
  418. package/dist/services/core-store.js +3 -3
  419. package/dist/services/core-store.js.map +1 -1
  420. package/dist/services/core-store.mjs.map +1 -1
  421. package/dist/services/cron.d.ts +5 -5
  422. package/dist/services/cron.d.ts.map +1 -1
  423. package/dist/services/cron.js +12 -8
  424. package/dist/services/cron.js.map +1 -1
  425. package/dist/services/cron.mjs +9 -5
  426. package/dist/services/cron.mjs.map +1 -1
  427. package/dist/services/custom-fields.d.ts +2 -2
  428. package/dist/services/custom-fields.d.ts.map +1 -1
  429. package/dist/services/custom-fields.js.map +1 -1
  430. package/dist/services/custom-fields.mjs.map +1 -1
  431. package/dist/services/document-service/attributes/index.d.ts +6 -0
  432. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  433. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  434. package/dist/services/document-service/attributes/index.js.map +1 -0
  435. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  436. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  437. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  438. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  439. package/dist/services/{entity-service → document-service}/attributes/transforms.js +3 -3
  440. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  441. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  442. package/dist/services/document-service/common.d.ts +2 -2
  443. package/dist/services/document-service/common.d.ts.map +1 -1
  444. package/dist/services/document-service/common.js.map +1 -1
  445. package/dist/services/document-service/common.mjs.map +1 -1
  446. package/dist/services/document-service/components.d.ts +25 -1
  447. package/dist/services/document-service/components.d.ts.map +1 -1
  448. package/dist/services/{entity-service → document-service}/components.js +46 -56
  449. package/dist/services/document-service/components.js.map +1 -0
  450. package/dist/services/{entity-service → document-service}/components.mjs +36 -46
  451. package/dist/services/document-service/components.mjs.map +1 -0
  452. package/dist/services/document-service/draft-and-publish.d.ts +7 -7
  453. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  454. package/dist/services/document-service/draft-and-publish.js +16 -16
  455. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  456. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  457. package/dist/services/document-service/entries.d.ts +10 -0
  458. package/dist/services/document-service/entries.d.ts.map +1 -0
  459. package/dist/services/document-service/entries.js +95 -0
  460. package/dist/services/document-service/entries.js.map +1 -0
  461. package/dist/services/document-service/entries.mjs +95 -0
  462. package/dist/services/document-service/entries.mjs.map +1 -0
  463. package/dist/services/document-service/events.d.ts +25 -0
  464. package/dist/services/document-service/events.d.ts.map +1 -0
  465. package/dist/services/document-service/events.js +47 -0
  466. package/dist/services/document-service/events.js.map +1 -0
  467. package/dist/services/document-service/events.mjs +47 -0
  468. package/dist/services/document-service/events.mjs.map +1 -0
  469. package/dist/services/document-service/index.d.ts +3 -4
  470. package/dist/services/document-service/index.d.ts.map +1 -1
  471. package/dist/services/document-service/index.js +21 -7
  472. package/dist/services/document-service/index.js.map +1 -1
  473. package/dist/services/document-service/index.mjs +19 -5
  474. package/dist/services/document-service/index.mjs.map +1 -1
  475. package/dist/services/document-service/internationalization.d.ts +5 -5
  476. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  477. package/dist/services/document-service/internationalization.js +21 -12
  478. package/dist/services/document-service/internationalization.js.map +1 -1
  479. package/dist/services/document-service/internationalization.mjs +14 -5
  480. package/dist/services/document-service/internationalization.mjs.map +1 -1
  481. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  482. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  483. package/dist/services/document-service/middlewares/errors.js +25 -0
  484. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  485. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  486. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  487. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  488. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  489. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  490. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  491. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +9 -6
  492. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  493. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +9 -6
  494. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  495. package/dist/services/document-service/params.d.ts +3 -1
  496. package/dist/services/document-service/params.d.ts.map +1 -1
  497. package/dist/services/{entity-service → document-service}/params.js +2 -2
  498. package/dist/services/document-service/params.js.map +1 -0
  499. package/dist/services/document-service/params.mjs.map +1 -0
  500. package/dist/services/document-service/repository.d.ts.map +1 -1
  501. package/dist/services/document-service/repository.js +194 -157
  502. package/dist/services/document-service/repository.js.map +1 -1
  503. package/dist/services/document-service/repository.mjs +172 -135
  504. package/dist/services/document-service/repository.mjs.map +1 -1
  505. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  506. package/dist/services/document-service/transform/data.js +4 -2
  507. package/dist/services/document-service/transform/data.js.map +1 -1
  508. package/dist/services/document-service/transform/data.mjs +4 -2
  509. package/dist/services/document-service/transform/data.mjs.map +1 -1
  510. package/dist/services/document-service/transform/fields.d.ts +2 -2
  511. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  512. package/dist/services/document-service/transform/fields.js.map +1 -1
  513. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  514. package/dist/services/document-service/transform/id-map.d.ts +3 -3
  515. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  516. package/dist/services/document-service/transform/id-map.js +15 -8
  517. package/dist/services/document-service/transform/id-map.js.map +1 -1
  518. package/dist/services/document-service/transform/id-map.mjs +16 -9
  519. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  520. package/dist/services/document-service/transform/id-transform.d.ts +2 -2
  521. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  522. package/dist/services/document-service/transform/id-transform.js +2 -2
  523. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  524. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  525. package/dist/services/document-service/transform/populate.d.ts +2 -2
  526. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  527. package/dist/services/document-service/transform/populate.js +1 -1
  528. package/dist/services/document-service/transform/populate.js.map +1 -1
  529. package/dist/services/document-service/transform/populate.mjs +1 -1
  530. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  531. package/dist/services/document-service/transform/query.d.ts +5 -0
  532. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  533. package/dist/services/document-service/transform/query.js +9 -0
  534. package/dist/services/document-service/transform/query.js.map +1 -0
  535. package/dist/services/document-service/transform/query.mjs +9 -0
  536. package/dist/services/document-service/transform/query.mjs.map +1 -0
  537. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  538. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  539. package/dist/services/document-service/transform/relations/extract/data-ids.js +51 -77
  540. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  541. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +51 -77
  542. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  543. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +8 -4
  544. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  545. package/dist/services/document-service/transform/relations/transform/data-ids.js +69 -125
  546. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  547. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +69 -125
  548. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  549. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  550. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  551. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  552. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  553. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  554. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  555. package/dist/services/document-service/transform/relations/utils/dp.d.ts +3 -3
  556. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  557. package/dist/services/document-service/transform/relations/utils/dp.js +10 -5
  558. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  559. package/dist/services/document-service/transform/relations/utils/dp.mjs +9 -4
  560. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  561. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  562. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  563. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  564. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  565. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  566. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  567. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  568. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  569. package/dist/services/document-service/transform/relations/utils/map-relation.js +84 -0
  570. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  571. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +84 -0
  572. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  573. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  574. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  575. package/dist/services/document-service/transform/types.d.ts +3 -3
  576. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  577. package/dist/services/document-service/utils/populate.d.ts +2 -2
  578. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  579. package/dist/services/document-service/utils/populate.js +8 -2
  580. package/dist/services/document-service/utils/populate.js.map +1 -1
  581. package/dist/services/document-service/utils/populate.mjs +8 -2
  582. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  583. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  584. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  585. package/dist/services/document-service/utils/unidirectional-relations.js +68 -0
  586. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  587. package/dist/services/document-service/utils/unidirectional-relations.mjs +68 -0
  588. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  589. package/dist/services/entity-service/index.d.ts +4 -4
  590. package/dist/services/entity-service/index.d.ts.map +1 -1
  591. package/dist/services/entity-service/index.js +22 -16
  592. package/dist/services/entity-service/index.js.map +1 -1
  593. package/dist/services/entity-service/index.mjs +23 -17
  594. package/dist/services/entity-service/index.mjs.map +1 -1
  595. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  596. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  597. package/dist/services/entity-validator/blocks-validator.js +4 -3
  598. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  599. package/dist/services/entity-validator/blocks-validator.mjs +3 -3
  600. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  601. package/dist/services/entity-validator/index.d.ts +16 -2
  602. package/dist/services/entity-validator/index.d.ts.map +1 -1
  603. package/dist/services/entity-validator/index.js +196 -129
  604. package/dist/services/entity-validator/index.js.map +1 -1
  605. package/dist/services/entity-validator/index.mjs +191 -124
  606. package/dist/services/entity-validator/index.mjs.map +1 -1
  607. package/dist/services/entity-validator/validators.d.ts +36 -25
  608. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  609. package/dist/services/entity-validator/validators.js +153 -33
  610. package/dist/services/entity-validator/validators.js.map +1 -1
  611. package/dist/services/entity-validator/validators.mjs +145 -25
  612. package/dist/services/entity-validator/validators.mjs.map +1 -1
  613. package/dist/services/errors.js.map +1 -1
  614. package/dist/services/errors.mjs.map +1 -1
  615. package/dist/services/event-hub.d.ts +1 -0
  616. package/dist/services/event-hub.d.ts.map +1 -1
  617. package/dist/services/event-hub.js +9 -4
  618. package/dist/services/event-hub.js.map +1 -1
  619. package/dist/services/event-hub.mjs +9 -4
  620. package/dist/services/event-hub.mjs.map +1 -1
  621. package/dist/services/features.d.ts +3 -3
  622. package/dist/services/features.d.ts.map +1 -1
  623. package/dist/services/features.js.map +1 -1
  624. package/dist/services/features.mjs.map +1 -1
  625. package/dist/services/fs.d.ts +2 -2
  626. package/dist/services/fs.d.ts.map +1 -1
  627. package/dist/services/fs.js.map +1 -1
  628. package/dist/services/fs.mjs.map +1 -1
  629. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  630. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  631. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  632. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  633. package/dist/services/metrics/index.d.ts +2 -2
  634. package/dist/services/metrics/index.d.ts.map +1 -1
  635. package/dist/services/metrics/index.js +1 -2
  636. package/dist/services/metrics/index.js.map +1 -1
  637. package/dist/services/metrics/index.mjs +1 -2
  638. package/dist/services/metrics/index.mjs.map +1 -1
  639. package/dist/services/metrics/is-truthy.js.map +1 -1
  640. package/dist/services/metrics/middleware.d.ts +2 -2
  641. package/dist/services/metrics/middleware.d.ts.map +1 -1
  642. package/dist/services/metrics/middleware.js.map +1 -1
  643. package/dist/services/metrics/middleware.mjs.map +1 -1
  644. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  645. package/dist/services/metrics/rate-limiter.js.map +1 -1
  646. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  647. package/dist/services/metrics/sender.d.ts +3 -3
  648. package/dist/services/metrics/sender.d.ts.map +1 -1
  649. package/dist/services/metrics/sender.js.map +1 -1
  650. package/dist/services/metrics/sender.mjs.map +1 -1
  651. package/dist/services/query-params.d.ts +7 -0
  652. package/dist/services/query-params.d.ts.map +1 -0
  653. package/dist/services/query-params.js +12 -0
  654. package/dist/services/query-params.js.map +1 -0
  655. package/dist/services/query-params.mjs +13 -0
  656. package/dist/services/query-params.mjs.map +1 -0
  657. package/dist/services/reloader.d.ts +7 -0
  658. package/dist/services/reloader.d.ts.map +1 -0
  659. package/dist/services/reloader.js +36 -0
  660. package/dist/services/reloader.js.map +1 -0
  661. package/dist/services/reloader.mjs +36 -0
  662. package/dist/services/reloader.mjs.map +1 -0
  663. package/dist/services/request-context.js.map +1 -1
  664. package/dist/services/request-context.mjs.map +1 -1
  665. package/dist/services/server/admin-api.d.ts +3 -3
  666. package/dist/services/server/admin-api.d.ts.map +1 -1
  667. package/dist/services/server/admin-api.js.map +1 -1
  668. package/dist/services/server/admin-api.mjs.map +1 -1
  669. package/dist/services/server/api.d.ts +3 -3
  670. package/dist/services/server/api.d.ts.map +1 -1
  671. package/dist/services/server/api.js.map +1 -1
  672. package/dist/services/server/api.mjs.map +1 -1
  673. package/dist/services/server/compose-endpoint.d.ts +2 -2
  674. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  675. package/dist/services/server/compose-endpoint.js +8 -9
  676. package/dist/services/server/compose-endpoint.js.map +1 -1
  677. package/dist/services/server/compose-endpoint.mjs +2 -3
  678. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  679. package/dist/services/server/content-api.d.ts +3 -3
  680. package/dist/services/server/content-api.d.ts.map +1 -1
  681. package/dist/services/server/content-api.js.map +1 -1
  682. package/dist/services/server/content-api.mjs.map +1 -1
  683. package/dist/services/server/http-server.d.ts +2 -2
  684. package/dist/services/server/http-server.d.ts.map +1 -1
  685. package/dist/services/server/http-server.js.map +1 -1
  686. package/dist/services/server/http-server.mjs.map +1 -1
  687. package/dist/services/server/index.d.ts +2 -2
  688. package/dist/services/server/index.d.ts.map +1 -1
  689. package/dist/services/server/index.js +2 -3
  690. package/dist/services/server/index.js.map +1 -1
  691. package/dist/services/server/index.mjs +2 -3
  692. package/dist/services/server/index.mjs.map +1 -1
  693. package/dist/services/server/koa.d.ts.map +1 -1
  694. package/dist/services/server/koa.js +4 -4
  695. package/dist/services/server/koa.js.map +1 -1
  696. package/dist/services/server/koa.mjs +1 -1
  697. package/dist/services/server/koa.mjs.map +1 -1
  698. package/dist/services/server/middleware.d.ts +4 -4
  699. package/dist/services/server/middleware.d.ts.map +1 -1
  700. package/dist/services/server/middleware.js +3 -3
  701. package/dist/services/server/middleware.js.map +1 -1
  702. package/dist/services/server/middleware.mjs.map +1 -1
  703. package/dist/services/server/policy.d.ts +3 -3
  704. package/dist/services/server/policy.d.ts.map +1 -1
  705. package/dist/services/server/policy.js +4 -4
  706. package/dist/services/server/policy.js.map +1 -1
  707. package/dist/services/server/policy.mjs +4 -4
  708. package/dist/services/server/policy.mjs.map +1 -1
  709. package/dist/services/server/register-middlewares.d.ts +2 -2
  710. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  711. package/dist/services/server/register-middlewares.js.map +1 -1
  712. package/dist/services/server/register-middlewares.mjs.map +1 -1
  713. package/dist/services/server/register-routes.d.ts +2 -2
  714. package/dist/services/server/register-routes.d.ts.map +1 -1
  715. package/dist/services/server/register-routes.js +3 -3
  716. package/dist/services/server/register-routes.js.map +1 -1
  717. package/dist/services/server/register-routes.mjs +3 -3
  718. package/dist/services/server/register-routes.mjs.map +1 -1
  719. package/dist/services/server/routing.d.ts +5 -5
  720. package/dist/services/server/routing.d.ts.map +1 -1
  721. package/dist/services/server/routing.js +2 -2
  722. package/dist/services/server/routing.js.map +1 -1
  723. package/dist/services/server/routing.mjs.map +1 -1
  724. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  725. package/dist/services/utils/dynamic-zones.js +7 -6
  726. package/dist/services/utils/dynamic-zones.js.map +1 -1
  727. package/dist/services/utils/dynamic-zones.mjs +2 -1
  728. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  729. package/dist/services/webhook-runner.d.ts +2 -1
  730. package/dist/services/webhook-runner.d.ts.map +1 -1
  731. package/dist/services/webhook-runner.js.map +1 -1
  732. package/dist/services/webhook-runner.mjs.map +1 -1
  733. package/dist/services/webhook-store.d.ts +2 -8
  734. package/dist/services/webhook-store.d.ts.map +1 -1
  735. package/dist/services/webhook-store.js +14 -8
  736. package/dist/services/webhook-store.js.map +1 -1
  737. package/dist/services/webhook-store.mjs +14 -8
  738. package/dist/services/webhook-store.mjs.map +1 -1
  739. package/dist/services/worker-queue.js.map +1 -1
  740. package/dist/services/worker-queue.mjs.map +1 -1
  741. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  742. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  743. package/dist/utils/convert-custom-field-type.js.map +1 -1
  744. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  745. package/dist/utils/cron.js +3 -3
  746. package/dist/utils/cron.js.map +1 -1
  747. package/dist/utils/cron.mjs.map +1 -1
  748. package/dist/utils/fetch.d.ts +3 -3
  749. package/dist/utils/fetch.d.ts.map +1 -1
  750. package/dist/utils/fetch.js +4 -3
  751. package/dist/utils/fetch.js.map +1 -1
  752. package/dist/utils/fetch.mjs +4 -3
  753. package/dist/utils/fetch.mjs.map +1 -1
  754. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  755. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  756. package/dist/utils/filepath-to-prop-path.js +27 -6
  757. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  758. package/dist/utils/filepath-to-prop-path.mjs +25 -5
  759. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  760. package/dist/utils/index.d.ts +2 -1
  761. package/dist/utils/index.d.ts.map +1 -1
  762. package/dist/utils/is-initialized.d.ts +2 -2
  763. package/dist/utils/is-initialized.d.ts.map +1 -1
  764. package/dist/utils/is-initialized.js +3 -3
  765. package/dist/utils/is-initialized.js.map +1 -1
  766. package/dist/utils/is-initialized.mjs.map +1 -1
  767. package/dist/utils/load-config-file.js.map +1 -1
  768. package/dist/utils/load-config-file.mjs.map +1 -1
  769. package/dist/utils/load-files.d.ts.map +1 -1
  770. package/dist/utils/load-files.js +1 -2
  771. package/dist/utils/load-files.js.map +1 -1
  772. package/dist/utils/load-files.mjs +1 -2
  773. package/dist/utils/load-files.mjs.map +1 -1
  774. package/dist/utils/open-browser.d.ts +2 -2
  775. package/dist/utils/open-browser.d.ts.map +1 -1
  776. package/dist/utils/open-browser.js.map +1 -1
  777. package/dist/utils/open-browser.mjs.map +1 -1
  778. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  779. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  780. package/dist/utils/resolve-working-dirs.js +13 -0
  781. package/dist/utils/resolve-working-dirs.js.map +1 -0
  782. package/dist/utils/resolve-working-dirs.mjs +11 -0
  783. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  784. package/dist/utils/signals.d.ts +2 -2
  785. package/dist/utils/signals.d.ts.map +1 -1
  786. package/dist/utils/signals.js.map +1 -1
  787. package/dist/utils/signals.mjs.map +1 -1
  788. package/dist/utils/startup-logger.d.ts +2 -2
  789. package/dist/utils/startup-logger.d.ts.map +1 -1
  790. package/dist/utils/startup-logger.js +10 -5
  791. package/dist/utils/startup-logger.js.map +1 -1
  792. package/dist/utils/startup-logger.mjs +9 -4
  793. package/dist/utils/startup-logger.mjs.map +1 -1
  794. package/dist/utils/transform-content-types-to-models.d.ts +377 -90
  795. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  796. package/dist/utils/transform-content-types-to-models.js +112 -61
  797. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  798. package/dist/utils/transform-content-types-to-models.mjs +111 -60
  799. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  800. package/dist/utils/update-notifier/index.d.ts +2 -7
  801. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  802. package/dist/utils/update-notifier/index.js +11 -14
  803. package/dist/utils/update-notifier/index.js.map +1 -1
  804. package/dist/utils/update-notifier/index.mjs +11 -14
  805. package/dist/utils/update-notifier/index.mjs.map +1 -1
  806. package/package.json +36 -32
  807. package/dist/registries/config.d.ts +0 -4
  808. package/dist/registries/config.d.ts.map +0 -1
  809. package/dist/registries/config.js +0 -31
  810. package/dist/registries/config.js.map +0 -1
  811. package/dist/registries/config.mjs +0 -32
  812. package/dist/registries/config.mjs.map +0 -1
  813. package/dist/services/document-service/middlewares.d.ts +0 -8
  814. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  815. package/dist/services/document-service/middlewares.js.map +0 -1
  816. package/dist/services/document-service/middlewares.mjs.map +0 -1
  817. package/dist/services/document-service/transform/filters.d.ts +0 -3
  818. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  819. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  820. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  821. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  822. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  823. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  824. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  825. package/dist/services/document-service/transform/sort.d.ts +0 -5
  826. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  827. package/dist/services/document-service/transform/utils.d.ts +0 -9
  828. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  829. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  830. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  831. package/dist/services/entity-service/attributes/index.js.map +0 -1
  832. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  833. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  834. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  835. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  836. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  837. package/dist/services/entity-service/components.d.ts +0 -20
  838. package/dist/services/entity-service/components.d.ts.map +0 -1
  839. package/dist/services/entity-service/components.js.map +0 -1
  840. package/dist/services/entity-service/components.mjs.map +0 -1
  841. package/dist/services/entity-service/params.d.ts +0 -8
  842. package/dist/services/entity-service/params.d.ts.map +0 -1
  843. package/dist/services/entity-service/params.js.map +0 -1
  844. package/dist/services/entity-service/params.mjs.map +0 -1
  845. package/dist/utils/get-dirs.d.ts +0 -9
  846. package/dist/utils/get-dirs.d.ts.map +0 -1
  847. package/dist/utils/get-dirs.js.map +0 -1
  848. package/dist/utils/get-dirs.mjs.map +0 -1
  849. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  850. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"urls.mjs","sources":["../../src/configuration/urls.ts"],"sourcesContent":["import _ from 'lodash';\nimport { strings } from '@strapi/utils';\n\ninterface ServerConfig {\n url: string;\n host: string;\n port: number | string;\n}\n\nexport const getConfigUrls = (config: Record<string, unknown>, forAdminBuild = false) => {\n const serverConfig = config.server as ServerConfig;\n const adminConfig = config.admin;\n\n // Defines serverUrl value\n let serverUrl = _.get(serverConfig, 'url', '');\n serverUrl = _.trim(serverUrl, '/ ');\n if (typeof serverUrl !== 'string') {\n throw new Error('Invalid server url config. Make sure the url is a string.');\n }\n\n if (serverUrl.startsWith('http')) {\n try {\n serverUrl = _.trim(new URL(serverConfig.url).toString(), '/');\n } catch (e) {\n throw new Error(\n 'Invalid server url config. Make sure the url defined in server.js is valid.'\n );\n }\n } else if (serverUrl !== '') {\n serverUrl = `/${serverUrl}`;\n }\n\n // Defines adminUrl value\n let adminUrl = _.get(adminConfig, 'url', '/admin');\n adminUrl = _.trim(adminUrl, '/ ');\n if (typeof adminUrl !== 'string') {\n throw new Error('Invalid admin url config. Make sure the url is a non-empty string.');\n }\n if (adminUrl.startsWith('http')) {\n try {\n adminUrl = _.trim(new URL(adminUrl).toString(), '/');\n } catch (e) {\n throw new Error('Invalid admin url config. Make sure the url defined in server.js is valid.');\n }\n } else {\n adminUrl = `${serverUrl}/${adminUrl}`;\n }\n\n // Defines adminPath value\n let adminPath = adminUrl;\n if (\n serverUrl.startsWith('http') &&\n adminUrl.startsWith('http') &&\n new URL(adminUrl).origin === new URL(serverUrl).origin &&\n !forAdminBuild\n ) {\n adminPath = adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '');\n adminPath = `/${_.trim(adminPath, '/')}`;\n } else if (adminUrl.startsWith('http')) {\n adminPath = new URL(adminUrl).pathname;\n }\n\n return {\n serverUrl,\n adminUrl,\n adminPath,\n };\n};\n\nconst getAbsoluteUrl =\n (adminOrServer: 'admin' | 'server') =>\n (config: Record<string, unknown>, forAdminBuild = false) => {\n const { serverUrl, adminUrl } = getConfigUrls(config, forAdminBuild);\n const url = adminOrServer === 'server' ? serverUrl : adminUrl;\n\n if (url.startsWith('http')) {\n return url;\n }\n\n const serverConfig = config.server as ServerConfig;\n const hostname =\n config.environment === 'development' && ['127.0.0.1', '0.0.0.0'].includes(serverConfig.host)\n ? 'localhost'\n : serverConfig.host;\n\n return `http://${hostname}:${serverConfig.port}${url}`;\n };\n\nexport const getAbsoluteAdminUrl = getAbsoluteUrl('admin');\nexport const getAbsoluteServerUrl = getAbsoluteUrl('server');\n"],"names":[],"mappings":";;AASO,MAAM,gBAAgB,CAAC,QAAiC,gBAAgB,UAAU;AACvF,QAAM,eAAe,OAAO;AAC5B,QAAM,cAAc,OAAO;AAG3B,MAAI,YAAY,EAAE,IAAI,cAAc,OAAO,EAAE;AACjC,cAAA,EAAE,KAAK,WAAW,IAAI;AAC9B,MAAA,OAAO,cAAc,UAAU;AAC3B,UAAA,IAAI,MAAM,2DAA2D;AAAA,EAC7E;AAEI,MAAA,UAAU,WAAW,MAAM,GAAG;AAC5B,QAAA;AACU,kBAAA,EAAE,KAAK,IAAI,IAAI,aAAa,GAAG,EAAE,YAAY,GAAG;AAAA,aACrD,GAAG;AACV,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA,WACS,cAAc,IAAI;AAC3B,gBAAY,IAAI,SAAS;AAAA,EAC3B;AAGA,MAAI,WAAW,EAAE,IAAI,aAAa,OAAO,QAAQ;AACtC,aAAA,EAAE,KAAK,UAAU,IAAI;AAC5B,MAAA,OAAO,aAAa,UAAU;AAC1B,UAAA,IAAI,MAAM,oEAAoE;AAAA,EACtF;AACI,MAAA,SAAS,WAAW,MAAM,GAAG;AAC3B,QAAA;AACS,iBAAA,EAAE,KAAK,IAAI,IAAI,QAAQ,EAAE,YAAY,GAAG;AAAA,aAC5C,GAAG;AACJ,YAAA,IAAI,MAAM,4EAA4E;AAAA,IAC9F;AAAA,EAAA,OACK;AACM,eAAA,GAAG,SAAS,IAAI,QAAQ;AAAA,EACrC;AAGA,MAAI,YAAY;AAChB,MACE,UAAU,WAAW,MAAM,KAC3B,SAAS,WAAW,MAAM,KAC1B,IAAI,IAAI,QAAQ,EAAE,WAAW,IAAI,IAAI,SAAS,EAAE,UAChD,CAAC,eACD;AACA,gBAAY,SAAS,QAAQ,QAAQ,cAAc,WAAW,QAAQ,GAAG,EAAE;AAC3E,gBAAY,IAAI,EAAE,KAAK,WAAW,GAAG,CAAC;AAAA,EAC7B,WAAA,SAAS,WAAW,MAAM,GAAG;AAC1B,gBAAA,IAAI,IAAI,QAAQ,EAAE;AAAA,EAChC;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,MAAM,iBACJ,CAAC,kBACD,CAAC,QAAiC,gBAAgB,UAAU;AAC1D,QAAM,EAAE,WAAW,SAAA,IAAa,cAAc,QAAQ,aAAa;AAC7D,QAAA,MAAM,kBAAkB,WAAW,YAAY;AAEjD,MAAA,IAAI,WAAW,MAAM,GAAG;AACnB,WAAA;AAAA,EACT;AAEA,QAAM,eAAe,OAAO;AAC5B,QAAM,WACJ,OAAO,gBAAgB,iBAAiB,CAAC,aAAa,SAAS,EAAE,SAAS,aAAa,IAAI,IACvF,cACA,aAAa;AAEnB,SAAO,UAAU,QAAQ,IAAI,aAAa,IAAI,GAAG,GAAG;AACtD;AAEW,MAAA,sBAAsB,eAAe,OAAO;AAC5C,MAAA,uBAAuB,eAAe,QAAQ;"}
1
+ {"version":3,"file":"urls.mjs","sources":["../../src/configuration/urls.ts"],"sourcesContent":["import _ from 'lodash';\nimport { strings } from '@strapi/utils';\n\ninterface ServerConfig {\n url: string;\n host: string;\n port: number | string;\n}\n\nexport const getConfigUrls = (config: Record<string, unknown>, forAdminBuild = false) => {\n const serverConfig = config.server as ServerConfig;\n const adminConfig = config.admin;\n\n // Defines serverUrl value\n let serverUrl = _.get(serverConfig, 'url', '');\n serverUrl = _.trim(serverUrl, '/ ');\n if (typeof serverUrl !== 'string') {\n throw new Error('Invalid server url config. Make sure the url is a string.');\n }\n\n if (serverUrl.startsWith('http')) {\n try {\n serverUrl = _.trim(new URL(serverConfig.url).toString(), '/');\n } catch (e) {\n throw new Error(\n 'Invalid server url config. Make sure the url defined in server.js is valid.'\n );\n }\n } else if (serverUrl !== '') {\n serverUrl = `/${serverUrl}`;\n }\n\n // Defines adminUrl value\n let adminUrl = _.get(adminConfig, 'url', '/admin');\n adminUrl = _.trim(adminUrl, '/ ');\n if (typeof adminUrl !== 'string') {\n throw new Error('Invalid admin url config. Make sure the url is a non-empty string.');\n }\n if (adminUrl.startsWith('http')) {\n try {\n adminUrl = _.trim(new URL(adminUrl).toString(), '/');\n } catch (e) {\n throw new Error('Invalid admin url config. Make sure the url defined in server.js is valid.');\n }\n } else {\n adminUrl = `${serverUrl}/${adminUrl}`;\n }\n\n // Defines adminPath value\n let adminPath = adminUrl;\n if (\n serverUrl.startsWith('http') &&\n adminUrl.startsWith('http') &&\n new URL(adminUrl).origin === new URL(serverUrl).origin &&\n !forAdminBuild\n ) {\n adminPath = adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '');\n adminPath = `/${_.trim(adminPath, '/')}`;\n } else if (adminUrl.startsWith('http')) {\n adminPath = new URL(adminUrl).pathname;\n }\n\n return {\n serverUrl,\n adminUrl,\n adminPath,\n };\n};\n\nconst getAbsoluteUrl =\n (adminOrServer: 'admin' | 'server') =>\n (config: Record<string, unknown>, forAdminBuild = false) => {\n const { serverUrl, adminUrl } = getConfigUrls(config, forAdminBuild);\n const url = adminOrServer === 'server' ? serverUrl : adminUrl;\n\n if (url.startsWith('http')) {\n return url;\n }\n\n const serverConfig = config.server as ServerConfig;\n const hostname =\n config.environment === 'development' && ['127.0.0.1', '0.0.0.0'].includes(serverConfig.host)\n ? 'localhost'\n : serverConfig.host;\n\n return `http://${hostname}:${serverConfig.port}${url}`;\n };\n\nexport const getAbsoluteAdminUrl = getAbsoluteUrl('admin');\nexport const getAbsoluteServerUrl = getAbsoluteUrl('server');\n"],"names":[],"mappings":";;AASO,MAAM,gBAAgB,CAAC,QAAiC,gBAAgB,UAAU;AACvF,QAAM,eAAe,OAAO;AAC5B,QAAM,cAAc,OAAO;AAG3B,MAAI,YAAY,EAAE,IAAI,cAAc,OAAO,EAAE;AACjC,cAAA,EAAE,KAAK,WAAW,IAAI;AAC9B,MAAA,OAAO,cAAc,UAAU;AAC3B,UAAA,IAAI,MAAM,2DAA2D;AAAA,EAAA;AAGzE,MAAA,UAAU,WAAW,MAAM,GAAG;AAC5B,QAAA;AACU,kBAAA,EAAE,KAAK,IAAI,IAAI,aAAa,GAAG,EAAE,SAAS,GAAG,GAAG;AAAA,aACrD,GAAG;AACV,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IAAA;AAAA,EACF,WACS,cAAc,IAAI;AAC3B,gBAAY,IAAI,SAAS;AAAA,EAAA;AAI3B,MAAI,WAAW,EAAE,IAAI,aAAa,OAAO,QAAQ;AACtC,aAAA,EAAE,KAAK,UAAU,IAAI;AAC5B,MAAA,OAAO,aAAa,UAAU;AAC1B,UAAA,IAAI,MAAM,oEAAoE;AAAA,EAAA;AAElF,MAAA,SAAS,WAAW,MAAM,GAAG;AAC3B,QAAA;AACS,iBAAA,EAAE,KAAK,IAAI,IAAI,QAAQ,EAAE,YAAY,GAAG;AAAA,aAC5C,GAAG;AACJ,YAAA,IAAI,MAAM,4EAA4E;AAAA,IAAA;AAAA,EAC9F,OACK;AACM,eAAA,GAAG,SAAS,IAAI,QAAQ;AAAA,EAAA;AAIrC,MAAI,YAAY;AAChB,MACE,UAAU,WAAW,MAAM,KAC3B,SAAS,WAAW,MAAM,KAC1B,IAAI,IAAI,QAAQ,EAAE,WAAW,IAAI,IAAI,SAAS,EAAE,UAChD,CAAC,eACD;AACA,gBAAY,SAAS,QAAQ,QAAQ,cAAc,WAAW,QAAQ,GAAG,EAAE;AAC3E,gBAAY,IAAI,EAAE,KAAK,WAAW,GAAG,CAAC;AAAA,EAC7B,WAAA,SAAS,WAAW,MAAM,GAAG;AAC1B,gBAAA,IAAI,IAAI,QAAQ,EAAE;AAAA,EAAA;AAGzB,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,MAAM,iBACJ,CAAC,kBACD,CAAC,QAAiC,gBAAgB,UAAU;AAC1D,QAAM,EAAE,WAAW,SAAA,IAAa,cAAc,QAAQ,aAAa;AAC7D,QAAA,MAAM,kBAAkB,WAAW,YAAY;AAEjD,MAAA,IAAI,WAAW,MAAM,GAAG;AACnB,WAAA;AAAA,EAAA;AAGT,QAAM,eAAe,OAAO;AAC5B,QAAM,WACJ,OAAO,gBAAgB,iBAAiB,CAAC,aAAa,SAAS,EAAE,SAAS,aAAa,IAAI,IACvF,cACA,aAAa;AAEnB,SAAO,UAAU,QAAQ,IAAI,aAAa,IAAI,GAAG,GAAG;AACtD;AAEW,MAAA,sBAAsB,eAAe,OAAO;AAC5C,MAAA,uBAAuB,eAAe,QAAQ;"}
@@ -1,5 +1,5 @@
1
- import type { Container as ContainerContract } from '@strapi/types';
2
- export declare class Container implements ContainerContract {
1
+ import type { Core } from '@strapi/types';
2
+ export declare class Container implements Core.Container {
3
3
  private registerMap;
4
4
  private serviceMap;
5
5
  add(name: string, resolver: unknown): this;
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEpE,qBAAa,SAAU,YAAW,iBAAiB;IACjD,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,UAAU,CAAa;IAE/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IASnC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAoBjC"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,qBAAa,SAAU,YAAW,IAAI,CAAC,SAAS;IAC9C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,UAAU,CAAa;IAE/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IASnC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAoBjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sources":["../src/container.ts"],"sourcesContent":["import type { Container as ContainerContract } from '@strapi/types';\n\nexport class Container implements ContainerContract {\n private registerMap = new Map<string, unknown>();\n\n private serviceMap = new Map();\n\n add(name: string, resolver: unknown) {\n if (this.registerMap.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n this.registerMap.set(name, resolver);\n return this;\n }\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs reinstanciation everytime\n if (this.serviceMap.has(name)) {\n return this.serviceMap.get(name);\n }\n\n if (this.registerMap.has(name)) {\n const resolver = this.registerMap.get(name);\n\n if (typeof resolver === 'function') {\n this.serviceMap.set(name, resolver(this, args));\n } else {\n this.serviceMap.set(name, resolver);\n }\n\n return this.serviceMap.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n }\n}\n"],"names":[],"mappings":";;AAEO,MAAM,UAAuC;AAAA,EAC1C,kCAAkB;EAElB,iCAAiB;EAEzB,IAAI,MAAc,UAAmB;AACnC,QAAI,KAAK,YAAY,IAAI,IAAI,GAAG;AAC9B,YAAM,IAAI,MAAM,8CAA8C,IAAI,EAAE;AAAA,IACtE;AAEK,SAAA,YAAY,IAAI,MAAM,QAAQ;AAC5B,WAAA;AAAA,EACT;AAAA,EAEA,IAAI,MAAc,MAAgB;AAEhC,QAAI,KAAK,WAAW,IAAI,IAAI,GAAG;AACtB,aAAA,KAAK,WAAW,IAAI,IAAI;AAAA,IACjC;AAEA,QAAI,KAAK,YAAY,IAAI,IAAI,GAAG;AAC9B,YAAM,WAAW,KAAK,YAAY,IAAI,IAAI;AAEtC,UAAA,OAAO,aAAa,YAAY;AAClC,aAAK,WAAW,IAAI,MAAM,SAAS,MAAM,IAAI,CAAC;AAAA,MAAA,OACzC;AACA,aAAA,WAAW,IAAI,MAAM,QAAQ;AAAA,MACpC;AAEO,aAAA,KAAK,WAAW,IAAI,IAAI;AAAA,IACjC;AAEA,UAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAAA,EACrD;AACF;;"}
1
+ {"version":3,"file":"container.js","sources":["../src/container.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport class Container implements Core.Container {\n private registerMap = new Map<string, unknown>();\n\n private serviceMap = new Map();\n\n add(name: string, resolver: unknown) {\n if (this.registerMap.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n this.registerMap.set(name, resolver);\n return this;\n }\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs instantiation everytime\n if (this.serviceMap.has(name)) {\n return this.serviceMap.get(name);\n }\n\n if (this.registerMap.has(name)) {\n const resolver = this.registerMap.get(name);\n\n if (typeof resolver === 'function') {\n this.serviceMap.set(name, resolver(this, args));\n } else {\n this.serviceMap.set(name, resolver);\n }\n\n return this.serviceMap.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n }\n}\n"],"names":[],"mappings":";;AAEO,MAAM,UAAoC;AAAA,EACvC,kCAAkB,IAAqB;AAAA,EAEvC,iCAAiB,IAAI;AAAA,EAE7B,IAAI,MAAc,UAAmB;AACnC,QAAI,KAAK,YAAY,IAAI,IAAI,GAAG;AAC9B,YAAM,IAAI,MAAM,8CAA8C,IAAI,EAAE;AAAA,IAAA;AAGjE,SAAA,YAAY,IAAI,MAAM,QAAQ;AAC5B,WAAA;AAAA,EAAA;AAAA,EAGT,IAAI,MAAc,MAAgB;AAEhC,QAAI,KAAK,WAAW,IAAI,IAAI,GAAG;AACtB,aAAA,KAAK,WAAW,IAAI,IAAI;AAAA,IAAA;AAGjC,QAAI,KAAK,YAAY,IAAI,IAAI,GAAG;AAC9B,YAAM,WAAW,KAAK,YAAY,IAAI,IAAI;AAEtC,UAAA,OAAO,aAAa,YAAY;AAClC,aAAK,WAAW,IAAI,MAAM,SAAS,MAAM,IAAI,CAAC;AAAA,MAAA,OACzC;AACA,aAAA,WAAW,IAAI,MAAM,QAAQ;AAAA,MAAA;AAG7B,aAAA,KAAK,WAAW,IAAI,IAAI;AAAA,IAAA;AAGjC,UAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAAA,EAAA;AAEvD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"container.mjs","sources":["../src/container.ts"],"sourcesContent":["import type { Container as ContainerContract } from '@strapi/types';\n\nexport class Container implements ContainerContract {\n private registerMap = new Map<string, unknown>();\n\n private serviceMap = new Map();\n\n add(name: string, resolver: unknown) {\n if (this.registerMap.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n this.registerMap.set(name, resolver);\n return this;\n }\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs reinstanciation everytime\n if (this.serviceMap.has(name)) {\n return this.serviceMap.get(name);\n }\n\n if (this.registerMap.has(name)) {\n const resolver = this.registerMap.get(name);\n\n if (typeof resolver === 'function') {\n this.serviceMap.set(name, resolver(this, args));\n } else {\n this.serviceMap.set(name, resolver);\n }\n\n return this.serviceMap.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n }\n}\n"],"names":[],"mappings":"AAEO,MAAM,UAAuC;AAAA,EAC1C,kCAAkB;EAElB,iCAAiB;EAEzB,IAAI,MAAc,UAAmB;AACnC,QAAI,KAAK,YAAY,IAAI,IAAI,GAAG;AAC9B,YAAM,IAAI,MAAM,8CAA8C,IAAI,EAAE;AAAA,IACtE;AAEK,SAAA,YAAY,IAAI,MAAM,QAAQ;AAC5B,WAAA;AAAA,EACT;AAAA,EAEA,IAAI,MAAc,MAAgB;AAEhC,QAAI,KAAK,WAAW,IAAI,IAAI,GAAG;AACtB,aAAA,KAAK,WAAW,IAAI,IAAI;AAAA,IACjC;AAEA,QAAI,KAAK,YAAY,IAAI,IAAI,GAAG;AAC9B,YAAM,WAAW,KAAK,YAAY,IAAI,IAAI;AAEtC,UAAA,OAAO,aAAa,YAAY;AAClC,aAAK,WAAW,IAAI,MAAM,SAAS,MAAM,IAAI,CAAC;AAAA,MAAA,OACzC;AACA,aAAA,WAAW,IAAI,MAAM,QAAQ;AAAA,MACpC;AAEO,aAAA,KAAK,WAAW,IAAI,IAAI;AAAA,IACjC;AAEA,UAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAAA,EACrD;AACF;"}
1
+ {"version":3,"file":"container.mjs","sources":["../src/container.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport class Container implements Core.Container {\n private registerMap = new Map<string, unknown>();\n\n private serviceMap = new Map();\n\n add(name: string, resolver: unknown) {\n if (this.registerMap.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n this.registerMap.set(name, resolver);\n return this;\n }\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs instantiation everytime\n if (this.serviceMap.has(name)) {\n return this.serviceMap.get(name);\n }\n\n if (this.registerMap.has(name)) {\n const resolver = this.registerMap.get(name);\n\n if (typeof resolver === 'function') {\n this.serviceMap.set(name, resolver(this, args));\n } else {\n this.serviceMap.set(name, resolver);\n }\n\n return this.serviceMap.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n }\n}\n"],"names":[],"mappings":"AAEO,MAAM,UAAoC;AAAA,EACvC,kCAAkB,IAAqB;AAAA,EAEvC,iCAAiB,IAAI;AAAA,EAE7B,IAAI,MAAc,UAAmB;AACnC,QAAI,KAAK,YAAY,IAAI,IAAI,GAAG;AAC9B,YAAM,IAAI,MAAM,8CAA8C,IAAI,EAAE;AAAA,IAAA;AAGjE,SAAA,YAAY,IAAI,MAAM,QAAQ;AAC5B,WAAA;AAAA,EAAA;AAAA,EAGT,IAAI,MAAc,MAAgB;AAEhC,QAAI,KAAK,WAAW,IAAI,IAAI,GAAG;AACtB,aAAA,KAAK,WAAW,IAAI,IAAI;AAAA,IAAA;AAGjC,QAAI,KAAK,YAAY,IAAI,IAAI,GAAG;AAC9B,YAAM,WAAW,KAAK,YAAY,IAAI,IAAI;AAEtC,UAAA,OAAO,aAAa,YAAY;AAClC,aAAK,WAAW,IAAI,MAAM,SAAS,MAAM,IAAI,CAAC;AAAA,MAAA,OACzC;AACA,aAAA,WAAW,IAAI,MAAM,QAAQ;AAAA,MAAA;AAG7B,aAAA,KAAK,WAAW,IAAI,IAAI;AAAA,IAAA;AAGjC,UAAM,IAAI,MAAM,6BAA6B,IAAI,EAAE;AAAA,EAAA;AAEvD;"}
@@ -1,11 +1,11 @@
1
- import type { CoreApi, Schema, Utils } from '@strapi/types';
1
+ import type { Core, Struct, Utils } from '@strapi/types';
2
2
  interface Options {
3
- contentType: Schema.CollectionType;
3
+ contentType: Struct.CollectionTypeSchema;
4
4
  }
5
5
  /**
6
6
  *
7
7
  * Returns a collection type controller to handle default core-api actions
8
8
  */
9
- declare const createCollectionTypeController: ({ contentType, }: Options) => Utils.PartialWithThis<CoreApi.Controller.CollectionType>;
9
+ declare const createCollectionTypeController: ({ contentType, }: Options) => Utils.PartialWithThis<Core.CoreAPI.Controller.CollectionType>;
10
10
  export { createCollectionTypeController };
11
11
  //# sourceMappingURL=collection-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-type.d.ts","sourceRoot":"","sources":["../../../src/core-api/controller/collection-type.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AAGpE,UAAU,OAAO;IACf,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;CACpC;AAED;;;GAGG;AACH,QAAA,MAAM,8BAA8B,qBAEjC,OAAO,KAAG,MAAM,eAAe,CAAC,QAAQ,UAAU,CAAC,cAAc,CA+FnE,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
1
+ {"version":3,"file":"collection-type.d.ts","sourceRoot":"","sources":["../../../src/core-api/controller/collection-type.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAO,MAAM,eAAe,CAAC;AAG9D,UAAU,OAAO;IACf,WAAW,EAAE,MAAM,CAAC,oBAAoB,CAAC;CAC1C;AAED;;;GAGG;AACH,QAAA,MAAM,8BAA8B,qBAEjC,OAAO,KAAG,MAAM,eAAe,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,cAAc,CAoGxE,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
3
+ const fp = require("lodash/fp");
4
4
  const strapiUtils = require("@strapi/utils");
5
5
  const createCollectionTypeController = ({
6
6
  contentType
@@ -35,15 +35,17 @@ const createCollectionTypeController = ({
35
35
  await this.validateQuery(ctx);
36
36
  const sanitizedQuery = await this.sanitizeQuery(ctx);
37
37
  const { body = {} } = ctx.request;
38
- if (!_.isObject(body.data)) {
38
+ if (!fp.isObject(body.data)) {
39
39
  throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
40
40
  }
41
+ await this.validateInput(body.data, ctx);
41
42
  const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
42
43
  const entity = await strapi.service(uid).create({
43
44
  ...sanitizedQuery,
44
45
  data: sanitizedInputData
45
46
  });
46
47
  const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
48
+ ctx.status = 201;
47
49
  return this.transformResponse(sanitizedEntity);
48
50
  },
49
51
  /**
@@ -54,9 +56,10 @@ const createCollectionTypeController = ({
54
56
  await this.validateQuery(ctx);
55
57
  const sanitizedQuery = await this.sanitizeQuery(ctx);
56
58
  const { body = {} } = ctx.request;
57
- if (!_.isObject(body.data)) {
59
+ if (!fp.isObject(body.data)) {
58
60
  throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
59
61
  }
62
+ await this.validateInput(body.data, ctx);
60
63
  const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
61
64
  const entity = await strapi.service(uid).update(id, {
62
65
  ...sanitizedQuery,
@@ -1 +1 @@
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 { CoreApi, Schema, Utils, Common } from '@strapi/types';\nimport type Koa from 'koa';\n\ninterface Options {\n contentType: Schema.CollectionType;\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<CoreApi.Controller.CollectionType> => {\n const uid = contentType.uid as Common.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,MAAyE;AACvE,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
+ {"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 await this.validateInput(body.data, ctx);\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 ctx.status = 201;\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 await this.validateInput(body.data, ctx);\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,YAAY;AAAA,IAChE;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,QAAQ,KAAK;AACX,YAAA,EAAE,OAAO,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,OAAc,IAAI;AAEjC,UAAI,CAACA,GAAA,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAIC,YAAAA,OAAO,gBAAgB,4CAA4C;AAAA,MAAA;AAG/E,YAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAEvC,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;AAE7D,UAAI,SAAS;AACN,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAkB;AACvB,YAAA,EAAE,OAAO,IAAI;AACb,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,EAAE,OAAO,OAAc,IAAI;AAEjC,UAAI,CAACD,GAAA,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAIC,YAAAA,OAAO,gBAAgB,4CAA4C;AAAA,MAAA;AAG/E,YAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAEvC,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,OAAO,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,IAAA;AAAA,EAEjB;AACF;;"}
@@ -36,12 +36,14 @@ const createCollectionTypeController = ({
36
36
  if (!isObject(body.data)) {
37
37
  throw new errors.ValidationError('Missing "data" payload in the request body');
38
38
  }
39
+ await this.validateInput(body.data, ctx);
39
40
  const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
40
41
  const entity = await strapi.service(uid).create({
41
42
  ...sanitizedQuery,
42
43
  data: sanitizedInputData
43
44
  });
44
45
  const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
46
+ ctx.status = 201;
45
47
  return this.transformResponse(sanitizedEntity);
46
48
  },
47
49
  /**
@@ -55,6 +57,7 @@ const createCollectionTypeController = ({
55
57
  if (!isObject(body.data)) {
56
58
  throw new errors.ValidationError('Missing "data" payload in the request body');
57
59
  }
60
+ await this.validateInput(body.data, ctx);
58
61
  const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
59
62
  const entity = await strapi.service(uid).update(id, {
60
63
  ...sanitizedQuery,
@@ -1 +1 @@
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 { CoreApi, Schema, Utils, Common } from '@strapi/types';\nimport type Koa from 'koa';\n\ninterface Options {\n contentType: Schema.CollectionType;\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<CoreApi.Controller.CollectionType> => {\n const uid = contentType.uid as Common.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,MAAyE;AACvE,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
+ {"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 await this.validateInput(body.data, ctx);\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 ctx.status = 201;\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 await this.validateInput(body.data, ctx);\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,YAAY;AAAA,IAChE;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,QAAQ,KAAK;AACX,YAAA,EAAE,OAAO,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,OAAc,IAAI;AAEjC,UAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAI,OAAO,gBAAgB,4CAA4C;AAAA,MAAA;AAG/E,YAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAEvC,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;AAE7D,UAAI,SAAS;AACN,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAkB;AACvB,YAAA,EAAE,OAAO,IAAI;AACb,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,EAAE,OAAO,OAAc,IAAI;AAEjC,UAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAI,OAAO,gBAAgB,4CAA4C;AAAA,MAAA;AAG/E,YAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAEvC,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,OAAO,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,IAAA;AAAA,EAEjB;AACF;"}
@@ -1,6 +1,6 @@
1
- import type { CoreApi, Schema } from '@strapi/types';
2
- declare function createController<T extends Schema.SingleType | Schema.CollectionType>(opts: {
1
+ import type { Core, Struct } from '@strapi/types';
2
+ declare function createController<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {
3
3
  contentType: T;
4
- }): T extends Schema.SingleType ? CoreApi.Controller.SingleType : CoreApi.Controller.CollectionType;
4
+ }): T extends Struct.SingleTypeSchema ? Core.CoreAPI.Controller.SingleType : Core.CoreAPI.Controller.CollectionType;
5
5
  export { createController };
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core-api/controller/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAYrD,iBAAS,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE;IACnF,WAAW,EAAE,CAAC,CAAC;CAChB,GAAG,CAAC,SAAS,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;AA2DpG,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core-api/controller/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAalD,iBAAS,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,EAAE,IAAI,EAAE;IAC/F,WAAW,EAAE,CAAC,CAAC;CAChB,GAAG,CAAC,SAAS,MAAM,CAAC,gBAAgB,GACjC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,GAClC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;AA2D3C,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
3
+ const fp = require("lodash/fp");
4
4
  const strapiUtils = require("@strapi/utils");
5
5
  const transform = require("./transform.js");
6
6
  const singleType = require("./single-type.js");
7
7
  const collectionType = require("./collection-type.js");
8
8
  const requestContext = require("../../services/request-context.js");
9
9
  const isSingleType = (contentType) => strapiUtils.contentTypes.isSingleType(contentType);
10
- const getAuthFromKoaContext = (ctx) => _.prop("state.auth", ctx) ?? {};
10
+ const getAuthFromKoaContext = (ctx) => fp.prop("state.auth", ctx) ?? {};
11
11
  function createController({
12
12
  contentType
13
13
  }) {
@@ -21,23 +21,23 @@ function createController({
21
21
  },
22
22
  async sanitizeOutput(data, ctx) {
23
23
  const auth = getAuthFromKoaContext(ctx);
24
- return strapiUtils.sanitize.contentAPI.output(data, contentType, { auth });
24
+ return strapi.contentAPI.sanitize.output(data, contentType, { auth });
25
25
  },
26
26
  async sanitizeInput(data, ctx) {
27
27
  const auth = getAuthFromKoaContext(ctx);
28
- return strapiUtils.sanitize.contentAPI.input(data, contentType, { auth });
28
+ return strapi.contentAPI.sanitize.input(data, contentType, { auth });
29
29
  },
30
30
  async sanitizeQuery(ctx) {
31
31
  const auth = getAuthFromKoaContext(ctx);
32
- return strapiUtils.sanitize.contentAPI.query(ctx.query, contentType, { auth });
32
+ return strapi.contentAPI.sanitize.query(ctx.query, contentType, { auth });
33
33
  },
34
34
  async validateQuery(ctx) {
35
35
  const auth = getAuthFromKoaContext(ctx);
36
- return strapiUtils.validate.contentAPI.query(ctx.query, contentType, { auth });
36
+ return strapi.contentAPI.validate.query(ctx.query, contentType, { auth });
37
37
  },
38
38
  async validateInput(data, ctx) {
39
39
  const auth = getAuthFromKoaContext(ctx);
40
- return strapiUtils.validate.contentAPI.input(data, contentType, { auth });
40
+ return strapi.contentAPI.validate.input(data, contentType, { auth });
41
41
  }
42
42
  };
43
43
  let ctrl;
@@ -1 +1 @@
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, sanitize, validate } from '@strapi/utils';\nimport type { CoreApi, Schema } 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 = (contentType: Schema.ContentType): contentType is Schema.SingleType =>\n contentTypeUtils.isSingleType(contentType);\n\nconst getAuthFromKoaContext = (ctx: Koa.Context) => prop('state.auth', ctx) ?? {};\n\nfunction createController<T extends Schema.SingleType | Schema.CollectionType>(opts: {\n contentType: T;\n}): T extends Schema.SingleType ? CoreApi.Controller.SingleType : CoreApi.Controller.CollectionType;\nfunction createController({\n contentType,\n}: {\n contentType: Schema.SingleType | Schema.CollectionType;\n}) {\n // TODO: replace with Base class + SingleType and CollectionType classes\n\n const proto: 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 sanitize.contentAPI.output(data, contentType, { auth });\n },\n\n async sanitizeInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return sanitize.contentAPI.input(data, contentType, { auth });\n },\n\n async sanitizeQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return sanitize.contentAPI.query(ctx.query, contentType, { auth });\n },\n\n async validateQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return validate.contentAPI.query(ctx.query, contentType, { auth });\n },\n\n async validateInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return validate.contentAPI.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","sanitize","validate","createSingleTypeController","createCollectionTypeController"],"mappings":";;;;;;;;AAUA,MAAM,eAAe,CAAC,gBACpBA,YAAA,aAAiB,aAAa,WAAW;AAE3C,MAAM,wBAAwB,CAAC,QAAqBC,EAAAA,KAAK,cAAc,GAAG,KAAK;AAK/E,SAAS,iBAAiB;AAAA,EACxB;AACF,GAEG;AAGD,QAAM,QAAiC;AAAA,IACrC,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;AAEtC,aAAOC,YAAAA,SAAS,WAAW,OAAO,MAAM,aAAa,EAAE,MAAM;AAAA,IAC/D;AAAA,IAEA,MAAM,cAAc,MAAM,KAAK;AACvB,YAAA,OAAO,sBAAsB,GAAG;AAEtC,aAAOA,YAAAA,SAAS,WAAW,MAAM,MAAM,aAAa,EAAE,MAAM;AAAA,IAC9D;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAAA,YAAA,SAAS,WAAW,MAAM,IAAI,OAAO,aAAa,EAAE,MAAM;AAAA,IACnE;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAAC,YAAA,SAAS,WAAW,MAAM,IAAI,OAAO,aAAa,EAAE,MAAM;AAAA,IACnE;AAAA,IAEA,MAAM,cAAc,MAAM,KAAK;AACvB,YAAA,OAAO,sBAAsB,GAAG;AAEtC,aAAOA,YAAAA,SAAS,WAAW,MAAM,MAAM,aAAa,EAAE,MAAM;AAAA,IAC9D;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
+ {"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,yBAAiB,aAAa,WAAW;AAEtF,MAAM,wBAAwB,CAAC,QAAqBC,GAAAA,KAAK,cAAc,GAAG,KAAK,CAAC;AAOhF,SAAS,iBAAiB;AAAA,EACxB;AACF,GAEG;AAGD,QAAM,QAAsC;AAAA,IAC1C,kBAAkB,MAAM,MAAM;AACtB,YAAA,MAAMC,eAAW,IAAI;AACpB,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,MAAM;AAAA,IAC1E;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,IAAI,OAAO,aAAa,EAAE,MAAM;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,IAAA;AAAA,EAEvE;AAEI,MAAA;AAEA,MAAA,aAAa,WAAW,GAAG;AACtB,WAAAC,WAAAA,2BAA2B,EAAE,aAAa;AAAA,EAAA,OAC5C;AACE,WAAAC,eAAAA,+BAA+B,EAAE,aAAa;AAAA,EAAA;AAGvD,SAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG,IAAI;AACjD;;"}
@@ -1,5 +1,5 @@
1
1
  import { prop } from "lodash/fp";
2
- import { contentTypes, sanitize, validate } from "@strapi/utils";
2
+ import { contentTypes } from "@strapi/utils";
3
3
  import { transformResponse } from "./transform.mjs";
4
4
  import { createSingleTypeController } from "./single-type.mjs";
5
5
  import { createCollectionTypeController } from "./collection-type.mjs";
@@ -19,23 +19,23 @@ function createController({
19
19
  },
20
20
  async sanitizeOutput(data, ctx) {
21
21
  const auth = getAuthFromKoaContext(ctx);
22
- return sanitize.contentAPI.output(data, contentType, { auth });
22
+ return strapi.contentAPI.sanitize.output(data, contentType, { auth });
23
23
  },
24
24
  async sanitizeInput(data, ctx) {
25
25
  const auth = getAuthFromKoaContext(ctx);
26
- return sanitize.contentAPI.input(data, contentType, { auth });
26
+ return strapi.contentAPI.sanitize.input(data, contentType, { auth });
27
27
  },
28
28
  async sanitizeQuery(ctx) {
29
29
  const auth = getAuthFromKoaContext(ctx);
30
- return sanitize.contentAPI.query(ctx.query, contentType, { auth });
30
+ return strapi.contentAPI.sanitize.query(ctx.query, contentType, { auth });
31
31
  },
32
32
  async validateQuery(ctx) {
33
33
  const auth = getAuthFromKoaContext(ctx);
34
- return validate.contentAPI.query(ctx.query, contentType, { auth });
34
+ return strapi.contentAPI.validate.query(ctx.query, contentType, { auth });
35
35
  },
36
36
  async validateInput(data, ctx) {
37
37
  const auth = getAuthFromKoaContext(ctx);
38
- return validate.contentAPI.input(data, contentType, { auth });
38
+ return strapi.contentAPI.validate.input(data, contentType, { auth });
39
39
  }
40
40
  };
41
41
  let ctrl;
@@ -1 +1 @@
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, sanitize, validate } from '@strapi/utils';\nimport type { CoreApi, Schema } 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 = (contentType: Schema.ContentType): contentType is Schema.SingleType =>\n contentTypeUtils.isSingleType(contentType);\n\nconst getAuthFromKoaContext = (ctx: Koa.Context) => prop('state.auth', ctx) ?? {};\n\nfunction createController<T extends Schema.SingleType | Schema.CollectionType>(opts: {\n contentType: T;\n}): T extends Schema.SingleType ? CoreApi.Controller.SingleType : CoreApi.Controller.CollectionType;\nfunction createController({\n contentType,\n}: {\n contentType: Schema.SingleType | Schema.CollectionType;\n}) {\n // TODO: replace with Base class + SingleType and CollectionType classes\n\n const proto: 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 sanitize.contentAPI.output(data, contentType, { auth });\n },\n\n async sanitizeInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return sanitize.contentAPI.input(data, contentType, { auth });\n },\n\n async sanitizeQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return sanitize.contentAPI.query(ctx.query, contentType, { auth });\n },\n\n async validateQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return validate.contentAPI.query(ctx.query, contentType, { auth });\n },\n\n async validateInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return validate.contentAPI.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,CAAC,gBACpBA,aAAiB,aAAa,WAAW;AAE3C,MAAM,wBAAwB,CAAC,QAAqB,KAAK,cAAc,GAAG,KAAK;AAK/E,SAAS,iBAAiB;AAAA,EACxB;AACF,GAEG;AAGD,QAAM,QAAiC;AAAA,IACrC,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;AAEtC,aAAO,SAAS,WAAW,OAAO,MAAM,aAAa,EAAE,MAAM;AAAA,IAC/D;AAAA,IAEA,MAAM,cAAc,MAAM,KAAK;AACvB,YAAA,OAAO,sBAAsB,GAAG;AAEtC,aAAO,SAAS,WAAW,MAAM,MAAM,aAAa,EAAE,MAAM;AAAA,IAC9D;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,SAAS,WAAW,MAAM,IAAI,OAAO,aAAa,EAAE,MAAM;AAAA,IACnE;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,SAAS,WAAW,MAAM,IAAI,OAAO,aAAa,EAAE,MAAM;AAAA,IACnE;AAAA,IAEA,MAAM,cAAc,MAAM,KAAK;AACvB,YAAA,OAAO,sBAAsB,GAAG;AAEtC,aAAO,SAAS,WAAW,MAAM,MAAM,aAAa,EAAE,MAAM;AAAA,IAC9D;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
+ {"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,CAAC;AAOhF,SAAS,iBAAiB;AAAA,EACxB;AACF,GAEG;AAGD,QAAM,QAAsC;AAAA,IAC1C,kBAAkB,MAAM,MAAM;AACtB,YAAA,MAAM,WAAW,IAAI;AACpB,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,MAAM;AAAA,IAC1E;AAAA,IAEA,MAAM,cAAc,KAAK;AACjB,YAAA,OAAO,sBAAsB,GAAG;AAE/B,aAAA,OAAO,WAAW,SAAS,MAAM,IAAI,OAAO,aAAa,EAAE,MAAM;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,IAAA;AAAA,EAEvE;AAEI,MAAA;AAEA,MAAA,aAAa,WAAW,GAAG;AACtB,WAAA,2BAA2B,EAAE,aAAa;AAAA,EAAA,OAC5C;AACE,WAAA,+BAA+B,EAAE,aAAa;AAAA,EAAA;AAGvD,SAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG,IAAI;AACjD;"}
@@ -1,10 +1,10 @@
1
- import type { Schema, CoreApi, Utils } from '@strapi/types';
1
+ import type { Struct, Core, Utils } from '@strapi/types';
2
2
  interface Options {
3
- contentType: Schema.SingleType;
3
+ contentType: Struct.SingleTypeSchema;
4
4
  }
5
5
  /**
6
6
  * Returns a single type controller to handle default core-api actions
7
7
  */
8
- declare const createSingleTypeController: ({ contentType, }: Options) => Utils.PartialWithThis<CoreApi.Controller.SingleType>;
8
+ declare const createSingleTypeController: ({ contentType, }: Options) => Utils.PartialWithThis<Core.CoreAPI.Controller.SingleType>;
9
9
  export { createSingleTypeController };
10
10
  //# sourceMappingURL=single-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"single-type.d.ts","sourceRoot":"","sources":["../../../src/core-api/controller/single-type.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AAEpE,UAAU,OAAO;IACf,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC;AAED;;GAEG;AACH,QAAA,MAAM,0BAA0B,qBAE7B,OAAO,KAAG,MAAM,eAAe,CAAC,QAAQ,UAAU,CAAC,UAAU,CAkD/D,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"single-type.d.ts","sourceRoot":"","sources":["../../../src/core-api/controller/single-type.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAO,MAAM,eAAe,CAAC;AAE9D,UAAU,OAAO;IACf,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC;CACtC;AAED;;GAEG;AACH,QAAA,MAAM,0BAA0B,qBAE7B,OAAO,KAAG,MAAM,eAAe,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,CAoDpE,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
3
+ const fp = require("lodash/fp");
4
4
  const strapiUtils = require("@strapi/utils");
5
5
  const createSingleTypeController = ({
6
6
  contentType
@@ -23,9 +23,10 @@ const createSingleTypeController = ({
23
23
  */
24
24
  async update(ctx) {
25
25
  const { query, body = {} } = ctx.request;
26
- if (!_.isObject(body.data)) {
26
+ if (!fp.isObject(body.data)) {
27
27
  throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
28
28
  }
29
+ await this.validateInput(body.data, ctx);
29
30
  const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
30
31
  const entity = await strapi.service(uid).createOrUpdate({
31
32
  ...query,
@@ -1 +1 @@
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 { Schema, CoreApi, Utils, Common } from '@strapi/types';\n\ninterface Options {\n contentType: Schema.SingleType;\n}\n\n/**\n * Returns a single type controller to handle default core-api actions\n */\nconst createSingleTypeController = ({\n contentType,\n}: Options): Utils.PartialWithThis<CoreApi.Controller.SingleType> => {\n const uid = contentType.uid as Common.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,MAAqE;AACnE,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
+ {"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 await this.validateInput(body.data, ctx);\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,CAAA,MAAc,IAAI;AAExC,UAAI,CAACA,GAAA,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAIC,YAAAA,OAAO,gBAAgB,4CAA4C;AAAA,MAAA;AAG/E,YAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAEvC,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,UAAU;AAElB,YAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,KAAK;AAEtC,UAAI,SAAS;AAAA,IAAA;AAAA,EAEjB;AACF;;"}
@@ -24,6 +24,7 @@ const createSingleTypeController = ({
24
24
  if (!isObject(body.data)) {
25
25
  throw new errors.ValidationError('Missing "data" payload in the request body');
26
26
  }
27
+ await this.validateInput(body.data, ctx);
27
28
  const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
28
29
  const entity = await strapi.service(uid).createOrUpdate({
29
30
  ...query,
@@ -1 +1 @@
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 { Schema, CoreApi, Utils, Common } from '@strapi/types';\n\ninterface Options {\n contentType: Schema.SingleType;\n}\n\n/**\n * Returns a single type controller to handle default core-api actions\n */\nconst createSingleTypeController = ({\n contentType,\n}: Options): Utils.PartialWithThis<CoreApi.Controller.SingleType> => {\n const uid = contentType.uid as Common.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,MAAqE;AACnE,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
+ {"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 await this.validateInput(body.data, ctx);\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,CAAA,MAAc,IAAI;AAExC,UAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAI,OAAO,gBAAgB,4CAA4C;AAAA,MAAA;AAG/E,YAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAEvC,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,UAAU;AAElB,YAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,KAAK;AAEtC,UAAI,SAAS;AAAA,IAAA;AAAA,EAEjB;AACF;"}
@@ -1,6 +1,6 @@
1
- import type { Schema } from '@strapi/types';
1
+ import type { Struct } from '@strapi/types';
2
2
  interface TransformOptions {
3
- contentType?: Schema.ContentType | Schema.Component;
3
+ contentType?: Struct.ContentTypeSchema | Struct.ComponentSchema;
4
4
  /**
5
5
  * @deprecated this option is deprecated and will be removed in the next major version
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/core-api/controller/transform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAU,MAAM,EAAO,MAAM,eAAe,CAAC;AA2BzD,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;IACpD;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,QAAA,MAAM,iBAAiB,aACX,GAAG,SACP,OAAO,SACP,gBAAgB;;;oBAgBvB,CAAC;AAqFF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/core-api/controller/transform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAO,MAAM,EAAQ,MAAM,eAAe,CAAC;AA2BvD,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,eAAe,CAAC;IAChE;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,QAAA,MAAM,iBAAiB,aACX,GAAG,SACP,OAAO,SACP,gBAAgB;;;oBAgBvB,CAAC;AAkFF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
3
+ const fp = require("lodash/fp");
4
4
  function isEntry(property) {
5
- return property === null || _.isPlainObject(property) || Array.isArray(property);
5
+ return property === null || fp.isPlainObject(property) || Array.isArray(property);
6
6
  }
7
7
  function isDZEntries(property) {
8
8
  return Array.isArray(property);
@@ -10,11 +10,11 @@ function isDZEntries(property) {
10
10
  const transformResponse = (resource, meta = {}, opts = {
11
11
  useJsonAPIFormat: false
12
12
  }) => {
13
- if (_.isNil(resource)) {
13
+ if (fp.isNil(resource)) {
14
14
  return resource;
15
15
  }
16
- if (!_.isPlainObject(resource) && !Array.isArray(resource)) {
17
- throw new Error("Entry must be an object or an arrayy of objects");
16
+ if (!fp.isPlainObject(resource) && !Array.isArray(resource)) {
17
+ throw new Error("Entry must be an object or an array of objects");
18
18
  }
19
19
  return {
20
20
  data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,
@@ -26,20 +26,20 @@ function transformComponent(data, component) {
26
26
  return data.map((datum) => transformComponent(datum, component));
27
27
  }
28
28
  const res = transformEntry(data, component);
29
- if (_.isNil(res)) {
29
+ if (fp.isNil(res)) {
30
30
  return res;
31
31
  }
32
32
  const { id, attributes } = res;
33
33
  return { id, ...attributes };
34
34
  }
35
35
  function transformEntry(entry, type) {
36
- if (_.isNil(entry)) {
36
+ if (fp.isNil(entry)) {
37
37
  return entry;
38
38
  }
39
39
  if (Array.isArray(entry)) {
40
40
  return entry.map((singleEntry) => transformEntry(singleEntry, type));
41
41
  }
42
- if (!_.isPlainObject(entry)) {
42
+ if (!fp.isPlainObject(entry)) {
43
43
  throw new Error("Entry must be an object");
44
44
  }
45
45
  const { id, documentId, ...properties } = entry;
@@ -48,15 +48,12 @@ function transformEntry(entry, type) {
48
48
  const property = properties[key];
49
49
  const attribute = type && type.attributes[key];
50
50
  if (attribute && attribute.type === "relation" && isEntry(property) && "target" in attribute) {
51
- const data = transformEntry(
52
- property,
53
- strapi.contentType(attribute.target)
54
- );
51
+ const data = transformEntry(property, strapi.contentType(attribute.target));
55
52
  attributeValues[key] = { data };
56
53
  } else if (attribute && attribute.type === "component" && isEntry(property)) {
57
54
  attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);
58
55
  } else if (attribute && attribute.type === "dynamiczone" && isDZEntries(property)) {
59
- if (_.isNil(property)) {
56
+ if (fp.isNil(property)) {
60
57
  attributeValues[key] = property;
61
58
  }
62
59
  attributeValues[key] = property.map((subProperty) => {
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sources":["../../../src/core-api/controller/transform.ts"],"sourcesContent":["import { isNil, isPlainObject } from 'lodash/fp';\nimport type { Common, Schema, UID } from '@strapi/types';\n\ntype TransformedEntry = {\n id: string;\n documentId?: string | 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: string | 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?: Schema.ContentType | Schema.Component;\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 arrayy 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: Schema.Component\n): T extends Entry[] ? TransformedComponent[] : T extends Entry ? TransformedComponent : null;\nfunction transformComponent(\n data: Entry | Entry[] | null,\n component: Schema.Component\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?: Schema.ContentType | Schema.Component\n): T extends Entry[] ? TransformedEntry[] : T extends Entry ? TransformedEntry : null;\nfunction transformEntry(\n entry: Entry | Entry[] | null,\n type?: Schema.ContentType | Schema.Component\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(\n property,\n strapi.contentType(attribute.target as Common.UID.ContentType)\n );\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,iDAAiD;AAAA,EACnE;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;AAAA,QACX;AAAA,QACA,OAAO,YAAY,UAAU,MAAgC;AAAA,MAAA;AAG/C,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
+ {"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,GAAA,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,MAAAC,GAAAA,MAAM,QAAQ,GAAG;AACZ,WAAA;AAAA,EAAA;AAGL,MAAA,CAACD,iBAAc,QAAQ,KAAK,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAClD,UAAA,IAAI,MAAM,gDAAgD;AAAA,EAAA;AAG3D,SAAA;AAAA,IACL,MAAM,KAAK,mBAAmB,eAAe,UAAU,MAAM,WAAW,IAAI;AAAA,IAC5E;AAAA,EACF;AACF;AAMA,SAAS,mBACP,MACA,WACsD;AAClD,MAAA,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,KAAK,IAAI,CAAC,UAAU,mBAAmB,OAAO,SAAS,CAAC;AAAA,EAAA;AAG3D,QAAA,MAAM,eAAe,MAAM,SAAS;AAEtC,MAAAC,GAAAA,MAAM,GAAG,GAAG;AACP,WAAA;AAAA,EAAA;AAGH,QAAA,EAAE,IAAI,WAAA,IAAe;AACpB,SAAA,EAAE,IAAI,GAAG,WAAW;AAC7B;AAMA,SAAS,eACP,OACA,MAC8C;AAC1C,MAAAA,GAAAA,MAAM,KAAK,GAAG;AACT,WAAA;AAAA,EAAA;AAGL,MAAA,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,gBAAgB,eAAe,aAAa,IAAI,CAAC;AAAA,EAAA;AAGjE,MAAA,CAACD,GAAAA,cAAc,KAAK,GAAG;AACnB,UAAA,IAAI,MAAM,yBAAyB;AAAA,EAAA;AAG3C,QAAM,EAAE,IAAI,YAAY,GAAG,WAAe,IAAA;AAE1C,QAAM,kBAA2C,CAAC;AAElD,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,KAAK;AAAA,IAAA,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,GAAAA,MAAM,QAAQ,GAAG;AACnB,wBAAgB,GAAG,IAAI;AAAA,MAAA;AAGzB,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,KAAK;AAAA,IAAA,OACzB;AACL,sBAAgB,GAAG,IAAI;AAAA,IAAA;AAAA,EACzB;AAGK,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd;AACF;;"}
@@ -12,7 +12,7 @@ const transformResponse = (resource, meta = {}, opts = {
12
12
  return resource;
13
13
  }
14
14
  if (!isPlainObject(resource) && !Array.isArray(resource)) {
15
- throw new Error("Entry must be an object or an arrayy of objects");
15
+ throw new Error("Entry must be an object or an array of objects");
16
16
  }
17
17
  return {
18
18
  data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,
@@ -46,10 +46,7 @@ function transformEntry(entry, type) {
46
46
  const property = properties[key];
47
47
  const attribute = type && type.attributes[key];
48
48
  if (attribute && attribute.type === "relation" && isEntry(property) && "target" in attribute) {
49
- const data = transformEntry(
50
- property,
51
- strapi.contentType(attribute.target)
52
- );
49
+ const data = transformEntry(property, strapi.contentType(attribute.target));
53
50
  attributeValues[key] = { data };
54
51
  } else if (attribute && attribute.type === "component" && isEntry(property)) {
55
52
  attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);