@strapi/core 5.56.0 → 5.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/dist/Strapi.d.ts +29 -0
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +10 -3
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +10 -3
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/get-dirs.js +2 -2
  8. package/dist/configuration/get-dirs.js.map +1 -1
  9. package/dist/configuration/get-dirs.mjs +2 -2
  10. package/dist/configuration/get-dirs.mjs.map +1 -1
  11. package/dist/configuration/index.d.ts +1 -2
  12. package/dist/configuration/index.d.ts.map +1 -1
  13. package/dist/configuration/index.js +1 -2
  14. package/dist/configuration/index.js.map +1 -1
  15. package/dist/configuration/index.mjs +2 -3
  16. package/dist/configuration/index.mjs.map +1 -1
  17. package/dist/core-api/controller/collection-type.js +3 -3
  18. package/dist/core-api/controller/collection-type.js.map +1 -1
  19. package/dist/core-api/controller/collection-type.mjs +1 -1
  20. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  21. package/dist/core-api/controller/index.js +2 -2
  22. package/dist/core-api/controller/index.js.map +1 -1
  23. package/dist/core-api/controller/index.mjs +2 -2
  24. package/dist/core-api/controller/index.mjs.map +1 -1
  25. package/dist/core-api/controller/single-type.js +2 -2
  26. package/dist/core-api/controller/single-type.js.map +1 -1
  27. package/dist/core-api/controller/single-type.mjs +1 -1
  28. package/dist/core-api/controller/single-type.mjs.map +1 -1
  29. package/dist/core-api/controller/transform.d.ts +1 -4
  30. package/dist/core-api/controller/transform.d.ts.map +1 -1
  31. package/dist/core-api/controller/transform.js +8 -8
  32. package/dist/core-api/controller/transform.js.map +1 -1
  33. package/dist/core-api/controller/transform.mjs +5 -5
  34. package/dist/core-api/controller/transform.mjs.map +1 -1
  35. package/dist/core-api/routes/index.js +1 -1
  36. package/dist/core-api/routes/index.js.map +1 -1
  37. package/dist/core-api/routes/index.mjs +1 -1
  38. package/dist/core-api/routes/index.mjs.map +1 -1
  39. package/dist/core-api/service/pagination.js +9 -9
  40. package/dist/core-api/service/pagination.js.map +1 -1
  41. package/dist/core-api/service/pagination.mjs +7 -7
  42. package/dist/core-api/service/pagination.mjs.map +1 -1
  43. package/dist/domain/content-type/index.d.ts.map +1 -1
  44. package/dist/domain/content-type/index.js +1 -2
  45. package/dist/domain/content-type/index.js.map +1 -1
  46. package/dist/domain/content-type/index.mjs +1 -2
  47. package/dist/domain/content-type/index.mjs.map +1 -1
  48. package/dist/ee/entitlements.d.ts +44 -0
  49. package/dist/ee/entitlements.d.ts.map +1 -0
  50. package/dist/ee/entitlements.js +54 -0
  51. package/dist/ee/entitlements.js.map +1 -0
  52. package/dist/ee/entitlements.mjs +51 -0
  53. package/dist/ee/entitlements.mjs.map +1 -0
  54. package/dist/ee/index.d.ts +33 -0
  55. package/dist/ee/index.d.ts.map +1 -1
  56. package/dist/ee/index.js +74 -7
  57. package/dist/ee/index.js.map +1 -1
  58. package/dist/ee/index.mjs +74 -7
  59. package/dist/ee/index.mjs.map +1 -1
  60. package/dist/ee/license.d.ts +10 -0
  61. package/dist/ee/license.d.ts.map +1 -1
  62. package/dist/ee/license.js +25 -1
  63. package/dist/ee/license.js.map +1 -1
  64. package/dist/ee/license.mjs +25 -2
  65. package/dist/ee/license.mjs.map +1 -1
  66. package/dist/factories.d.ts.map +1 -1
  67. package/dist/factories.js +3 -2
  68. package/dist/factories.js.map +1 -1
  69. package/dist/factories.mjs +3 -2
  70. package/dist/factories.mjs.map +1 -1
  71. package/dist/index.js +1 -1
  72. package/dist/index.mjs +1 -1
  73. package/dist/loaders/apis.d.ts.map +1 -1
  74. package/dist/loaders/apis.js +1 -2
  75. package/dist/loaders/apis.js.map +1 -1
  76. package/dist/loaders/apis.mjs +1 -2
  77. package/dist/loaders/apis.mjs.map +1 -1
  78. package/dist/loaders/plugins/get-enabled-plugins.d.ts +1 -1
  79. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  80. package/dist/loaders/plugins/get-enabled-plugins.js +6 -5
  81. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  82. package/dist/loaders/plugins/get-enabled-plugins.mjs +6 -5
  83. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  84. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  85. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  86. package/dist/loaders/plugins/get-user-plugins-config.mjs +2 -2
  87. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  88. package/dist/loaders/plugins/index.js +9 -12
  89. package/dist/loaders/plugins/index.js.map +1 -1
  90. package/dist/loaders/plugins/index.mjs +9 -12
  91. package/dist/loaders/plugins/index.mjs.map +1 -1
  92. package/dist/middlewares/body.js +2 -2
  93. package/dist/middlewares/body.js.map +1 -1
  94. package/dist/middlewares/body.mjs +2 -2
  95. package/dist/middlewares/body.mjs.map +1 -1
  96. package/dist/middlewares/public.js +2 -2
  97. package/dist/middlewares/public.js.map +1 -1
  98. package/dist/middlewares/public.mjs +2 -2
  99. package/dist/middlewares/public.mjs.map +1 -1
  100. package/dist/middlewares/responses.d.ts.map +1 -1
  101. package/dist/middlewares/responses.js +1 -3
  102. package/dist/middlewares/responses.js.map +1 -1
  103. package/dist/middlewares/responses.mjs +1 -3
  104. package/dist/middlewares/responses.mjs.map +1 -1
  105. package/dist/middlewares/security.d.ts.map +1 -1
  106. package/dist/middlewares/security.js +3 -3
  107. package/dist/middlewares/security.js.map +1 -1
  108. package/dist/middlewares/security.mjs +3 -3
  109. package/dist/middlewares/security.mjs.map +1 -1
  110. package/dist/middlewares/session.js +2 -2
  111. package/dist/middlewares/session.js.map +1 -1
  112. package/dist/middlewares/session.mjs +2 -2
  113. package/dist/middlewares/session.mjs.map +1 -1
  114. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  115. package/dist/migrations/database/5.0.0-discard-drafts.js +1 -2
  116. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  117. package/dist/migrations/database/5.0.0-discard-drafts.mjs +1 -2
  118. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  119. package/dist/migrations/i18n.d.ts.map +1 -1
  120. package/dist/migrations/i18n.js +6 -4
  121. package/dist/migrations/i18n.js.map +1 -1
  122. package/dist/migrations/i18n.mjs +6 -4
  123. package/dist/migrations/i18n.mjs.map +1 -1
  124. package/dist/package.json.js +16 -16
  125. package/dist/package.json.mjs +16 -16
  126. package/dist/registries/apis.js +2 -2
  127. package/dist/registries/apis.js.map +1 -1
  128. package/dist/registries/apis.mjs +2 -2
  129. package/dist/registries/apis.mjs.map +1 -1
  130. package/dist/registries/components.js +2 -2
  131. package/dist/registries/components.js.map +1 -1
  132. package/dist/registries/components.mjs +2 -2
  133. package/dist/registries/components.mjs.map +1 -1
  134. package/dist/registries/content-types.d.ts +1 -1
  135. package/dist/registries/content-types.js +3 -3
  136. package/dist/registries/content-types.js.map +1 -1
  137. package/dist/registries/content-types.mjs +3 -3
  138. package/dist/registries/content-types.mjs.map +1 -1
  139. package/dist/registries/controllers.js +3 -3
  140. package/dist/registries/controllers.js.map +1 -1
  141. package/dist/registries/controllers.mjs +3 -3
  142. package/dist/registries/controllers.mjs.map +1 -1
  143. package/dist/registries/custom-fields.js +4 -4
  144. package/dist/registries/custom-fields.js.map +1 -1
  145. package/dist/registries/custom-fields.mjs +4 -4
  146. package/dist/registries/custom-fields.mjs.map +1 -1
  147. package/dist/registries/hooks.d.ts +1 -1
  148. package/dist/registries/hooks.js +2 -2
  149. package/dist/registries/hooks.js.map +1 -1
  150. package/dist/registries/hooks.mjs +2 -2
  151. package/dist/registries/hooks.mjs.map +1 -1
  152. package/dist/registries/middlewares.d.ts +1 -1
  153. package/dist/registries/middlewares.js +3 -3
  154. package/dist/registries/middlewares.js.map +1 -1
  155. package/dist/registries/middlewares.mjs +3 -3
  156. package/dist/registries/middlewares.mjs.map +1 -1
  157. package/dist/registries/modules.d.ts +1 -4
  158. package/dist/registries/modules.d.ts.map +1 -1
  159. package/dist/registries/modules.js +3 -3
  160. package/dist/registries/modules.js.map +1 -1
  161. package/dist/registries/modules.mjs +3 -3
  162. package/dist/registries/modules.mjs.map +1 -1
  163. package/dist/registries/plugins.js +2 -2
  164. package/dist/registries/plugins.js.map +1 -1
  165. package/dist/registries/plugins.mjs +2 -2
  166. package/dist/registries/plugins.mjs.map +1 -1
  167. package/dist/registries/policies.d.ts +1 -1
  168. package/dist/registries/policies.js +4 -4
  169. package/dist/registries/policies.js.map +1 -1
  170. package/dist/registries/policies.mjs +3 -3
  171. package/dist/registries/policies.mjs.map +1 -1
  172. package/dist/registries/services.js +3 -3
  173. package/dist/registries/services.js.map +1 -1
  174. package/dist/registries/services.mjs +3 -3
  175. package/dist/registries/services.mjs.map +1 -1
  176. package/dist/services/auth/index.js +3 -3
  177. package/dist/services/auth/index.js.map +1 -1
  178. package/dist/services/auth/index.mjs +3 -3
  179. package/dist/services/auth/index.mjs.map +1 -1
  180. package/dist/services/core-store.js +3 -3
  181. package/dist/services/core-store.js.map +1 -1
  182. package/dist/services/core-store.mjs +1 -1
  183. package/dist/services/core-store.mjs.map +1 -1
  184. package/dist/services/cron.d.ts.map +1 -1
  185. package/dist/services/cron.js +2 -4
  186. package/dist/services/cron.js.map +1 -1
  187. package/dist/services/cron.mjs +2 -4
  188. package/dist/services/cron.mjs.map +1 -1
  189. package/dist/services/document-service/attributes/index.js +2 -2
  190. package/dist/services/document-service/attributes/index.js.map +1 -1
  191. package/dist/services/document-service/attributes/index.mjs +1 -1
  192. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  193. package/dist/services/document-service/attributes/transforms.js +3 -3
  194. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  195. package/dist/services/document-service/attributes/transforms.mjs +2 -2
  196. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  197. package/dist/services/document-service/components.d.ts.map +1 -1
  198. package/dist/services/document-service/components.js +13 -14
  199. package/dist/services/document-service/components.js.map +1 -1
  200. package/dist/services/document-service/components.mjs +12 -13
  201. package/dist/services/document-service/components.mjs.map +1 -1
  202. package/dist/services/document-service/draft-and-publish.js +65 -38
  203. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  204. package/dist/services/document-service/draft-and-publish.mjs +59 -32
  205. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  206. package/dist/services/document-service/entries.d.ts +2 -2
  207. package/dist/services/document-service/entries.d.ts.map +1 -1
  208. package/dist/services/document-service/entries.js +16 -8
  209. package/dist/services/document-service/entries.js.map +1 -1
  210. package/dist/services/document-service/entries.mjs +17 -9
  211. package/dist/services/document-service/entries.mjs.map +1 -1
  212. package/dist/services/document-service/first-published-at.js +7 -5
  213. package/dist/services/document-service/first-published-at.js.map +1 -1
  214. package/dist/services/document-service/first-published-at.mjs +7 -5
  215. package/dist/services/document-service/first-published-at.mjs.map +1 -1
  216. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  217. package/dist/services/document-service/internationalization.js +37 -28
  218. package/dist/services/document-service/internationalization.js.map +1 -1
  219. package/dist/services/document-service/internationalization.mjs +33 -24
  220. package/dist/services/document-service/internationalization.mjs.map +1 -1
  221. package/dist/services/document-service/params.d.ts +1 -0
  222. package/dist/services/document-service/params.d.ts.map +1 -1
  223. package/dist/services/document-service/params.js +6 -4
  224. package/dist/services/document-service/params.js.map +1 -1
  225. package/dist/services/document-service/params.mjs +6 -5
  226. package/dist/services/document-service/params.mjs.map +1 -1
  227. package/dist/services/document-service/repository.d.ts.map +1 -1
  228. package/dist/services/document-service/repository.js +84 -61
  229. package/dist/services/document-service/repository.js.map +1 -1
  230. package/dist/services/document-service/repository.mjs +47 -24
  231. package/dist/services/document-service/repository.mjs.map +1 -1
  232. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  233. package/dist/services/document-service/transform/fields.js +7 -1
  234. package/dist/services/document-service/transform/fields.js.map +1 -1
  235. package/dist/services/document-service/transform/fields.mjs +7 -1
  236. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  237. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  238. package/dist/services/document-service/transform/id-map.js +2 -1
  239. package/dist/services/document-service/transform/id-map.js.map +1 -1
  240. package/dist/services/document-service/transform/id-map.mjs +2 -1
  241. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  242. package/dist/services/document-service/transform/id-transform.js +2 -2
  243. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  244. package/dist/services/document-service/transform/id-transform.mjs +1 -1
  245. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  246. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  247. package/dist/services/document-service/transform/populate.js +8 -1
  248. package/dist/services/document-service/transform/populate.js.map +1 -1
  249. package/dist/services/document-service/transform/populate.mjs +8 -1
  250. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  251. package/dist/services/document-service/transform/query.d.ts +3 -1
  252. package/dist/services/document-service/transform/query.d.ts.map +1 -1
  253. package/dist/services/document-service/transform/query.js +12 -6
  254. package/dist/services/document-service/transform/query.js.map +1 -1
  255. package/dist/services/document-service/transform/query.mjs +11 -5
  256. package/dist/services/document-service/transform/query.mjs.map +1 -1
  257. package/dist/services/document-service/transform/relations/extract/data-ids.js +2 -2
  258. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  259. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +1 -1
  260. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  261. package/dist/services/document-service/transform/relations/transform/data-ids.js +2 -2
  262. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  263. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +1 -1
  264. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  265. package/dist/services/document-service/transform/relations/transform/default-locale.js +1 -1
  266. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  267. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +1 -1
  268. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  269. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  270. package/dist/services/document-service/transform/relations/utils/dp.js +1 -2
  271. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  272. package/dist/services/document-service/transform/relations/utils/dp.mjs +1 -2
  273. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  274. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +2 -2
  275. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  276. package/dist/services/document-service/transform/relations/utils/i18n.js +2 -2
  277. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  278. package/dist/services/document-service/transform/relations/utils/i18n.mjs +2 -2
  279. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  280. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  281. package/dist/services/document-service/transform/relations/utils/map-relation.js +16 -10
  282. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  283. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +13 -7
  284. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  285. package/dist/services/document-service/transform/relations/utils/xto-one.js +3 -3
  286. package/dist/services/document-service/transform/relations/utils/xto-one.js.map +1 -1
  287. package/dist/services/document-service/transform/relations/utils/xto-one.mjs +2 -2
  288. package/dist/services/document-service/transform/relations/utils/xto-one.mjs.map +1 -1
  289. package/dist/services/document-service/utils/bidirectional-relations.js +3 -3
  290. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -1
  291. package/dist/services/document-service/utils/bidirectional-relations.mjs +3 -3
  292. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -1
  293. package/dist/services/document-service/utils/clone-relations.js +3 -3
  294. package/dist/services/document-service/utils/clone-relations.js.map +1 -1
  295. package/dist/services/document-service/utils/clone-relations.mjs +3 -3
  296. package/dist/services/document-service/utils/clone-relations.mjs.map +1 -1
  297. package/dist/services/document-service/utils/self-referential-relations.js +4 -4
  298. package/dist/services/document-service/utils/self-referential-relations.js.map +1 -1
  299. package/dist/services/document-service/utils/self-referential-relations.mjs +4 -4
  300. package/dist/services/document-service/utils/self-referential-relations.mjs.map +1 -1
  301. package/dist/services/document-service/utils/unidirectional-relations.js +3 -3
  302. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
  303. package/dist/services/document-service/utils/unidirectional-relations.mjs +3 -3
  304. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
  305. package/dist/services/entity-validator/index.d.ts.map +1 -1
  306. package/dist/services/entity-validator/index.js +9 -10
  307. package/dist/services/entity-validator/index.js.map +1 -1
  308. package/dist/services/entity-validator/index.mjs +4 -5
  309. package/dist/services/entity-validator/index.mjs.map +1 -1
  310. package/dist/services/localization.d.ts +4 -0
  311. package/dist/services/localization.d.ts.map +1 -0
  312. package/dist/services/localization.js +51 -0
  313. package/dist/services/localization.js.map +1 -0
  314. package/dist/services/localization.mjs +49 -0
  315. package/dist/services/localization.mjs.map +1 -0
  316. package/dist/services/server/compose-endpoint.js +7 -7
  317. package/dist/services/server/compose-endpoint.js.map +1 -1
  318. package/dist/services/server/compose-endpoint.mjs +3 -3
  319. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  320. package/dist/services/server/koa-methods.js +2 -2
  321. package/dist/services/server/koa-methods.js.map +1 -1
  322. package/dist/services/server/koa-methods.mjs +1 -1
  323. package/dist/services/server/koa-methods.mjs.map +1 -1
  324. package/dist/services/server/koa.d.ts.map +1 -1
  325. package/dist/services/server/koa.js +1 -2
  326. package/dist/services/server/koa.js.map +1 -1
  327. package/dist/services/server/koa.mjs +1 -2
  328. package/dist/services/server/koa.mjs.map +1 -1
  329. package/dist/services/server/middleware.d.ts.map +1 -1
  330. package/dist/services/server/middleware.js +1 -2
  331. package/dist/services/server/middleware.js.map +1 -1
  332. package/dist/services/server/middleware.mjs +1 -2
  333. package/dist/services/server/middleware.mjs.map +1 -1
  334. package/dist/services/server/routing.js +2 -2
  335. package/dist/services/server/routing.js.map +1 -1
  336. package/dist/services/server/routing.mjs +2 -2
  337. package/dist/services/server/routing.mjs.map +1 -1
  338. package/dist/services/utils/conditional-fields.d.ts +1 -1
  339. package/dist/services/utils/conditional-fields.d.ts.map +1 -1
  340. package/dist/services/utils/conditional-fields.js +2 -8
  341. package/dist/services/utils/conditional-fields.js.map +1 -1
  342. package/dist/services/utils/conditional-fields.mjs +2 -8
  343. package/dist/services/utils/conditional-fields.mjs.map +1 -1
  344. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  345. package/dist/services/utils/dynamic-zones.js +2 -8
  346. package/dist/services/utils/dynamic-zones.js.map +1 -1
  347. package/dist/services/utils/dynamic-zones.mjs +2 -8
  348. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  349. package/dist/utils/cron.js +2 -2
  350. package/dist/utils/cron.js.map +1 -1
  351. package/dist/utils/cron.mjs +1 -1
  352. package/dist/utils/cron.mjs.map +1 -1
  353. package/dist/utils/detect-customizations.d.ts +31 -0
  354. package/dist/utils/detect-customizations.d.ts.map +1 -0
  355. package/dist/utils/detect-customizations.js +173 -0
  356. package/dist/utils/detect-customizations.js.map +1 -0
  357. package/dist/utils/detect-customizations.mjs +165 -0
  358. package/dist/utils/detect-customizations.mjs.map +1 -0
  359. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  360. package/dist/utils/filepath-to-prop-path.js +5 -12
  361. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  362. package/dist/utils/filepath-to-prop-path.mjs +5 -11
  363. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  364. package/dist/utils/is-initialized.js +3 -3
  365. package/dist/utils/is-initialized.js.map +1 -1
  366. package/dist/utils/is-initialized.mjs +2 -2
  367. package/dist/utils/is-initialized.mjs.map +1 -1
  368. package/dist/utils/startup-logger.d.ts.map +1 -1
  369. package/dist/utils/startup-logger.js +2 -4
  370. package/dist/utils/startup-logger.js.map +1 -1
  371. package/dist/utils/startup-logger.mjs +2 -3
  372. package/dist/utils/startup-logger.mjs.map +1 -1
  373. package/dist/utils/transform-content-types-to-models.js +4 -4
  374. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  375. package/dist/utils/transform-content-types-to-models.mjs +3 -3
  376. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  377. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"get-dirs.mjs","sources":["../../src/configuration/get-dirs.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { get } from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\nimport type { StrapiOptions } from '../Strapi';\n\nexport type Options = {\n app: string;\n dist: string;\n};\n\nexport const getDirs = (\n { appDir, distDir }: StrapiOptions,\n config: { server: Partial<Core.Config.Server> }\n): Core.StrapiDirectories => ({\n dist: {\n root: distDir,\n src: join(distDir, 'src'),\n api: join(distDir, 'src', 'api'),\n components: join(distDir, 'src', 'components'),\n extensions: join(distDir, 'src', 'extensions'),\n policies: join(distDir, 'src', 'policies'),\n middlewares: join(distDir, 'src', 'middlewares'),\n config: join(distDir, 'config'),\n contentStructure: join(distDir, 'src', 'content-structure'),\n },\n app: {\n root: appDir,\n src: join(appDir, 'src'),\n api: join(appDir, 'src', 'api'),\n components: join(appDir, 'src', 'components'),\n extensions: join(appDir, 'src', 'extensions'),\n policies: join(appDir, 'src', 'policies'),\n middlewares: join(appDir, 'src', 'middlewares'),\n config: join(appDir, 'config'),\n contentStructure: join(appDir, 'src', 'content-structure'),\n },\n static: {\n public: resolve(appDir, get('server.dirs.public', config)),\n },\n});\n"],"names":["getDirs","appDir","distDir","config","dist","root","src","join","api","components","extensions","policies","middlewares","contentStructure","app","static","public","resolve","get"],"mappings":";;;AAWO,MAAMA,OAAAA,GAAU,CACrB,EAAEC,MAAM,EAAEC,OAAO,EAAiB,EAClCC,MAAAA,IAC4B;QAC5BC,IAAAA,EAAM;YACJC,IAAAA,EAAMH,OAAAA;AACNI,YAAAA,GAAAA,EAAKC,KAAKL,OAAAA,EAAS,KAAA,CAAA;YACnBM,GAAAA,EAAKD,IAAAA,CAAKL,SAAS,KAAA,EAAO,KAAA,CAAA;YAC1BO,UAAAA,EAAYF,IAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCQ,UAAAA,EAAYH,IAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCS,QAAAA,EAAUJ,IAAAA,CAAKL,SAAS,KAAA,EAAO,UAAA,CAAA;YAC/BU,WAAAA,EAAaL,IAAAA,CAAKL,SAAS,KAAA,EAAO,aAAA,CAAA;AAClCC,YAAAA,MAAAA,EAAQI,KAAKL,OAAAA,EAAS,QAAA,CAAA;YACtBW,gBAAAA,EAAkBN,IAAAA,CAAKL,SAAS,KAAA,EAAO,mBAAA;AACzC,SAAA;QACAY,GAAAA,EAAK;YACHT,IAAAA,EAAMJ,MAAAA;AACNK,YAAAA,GAAAA,EAAKC,KAAKN,MAAAA,EAAQ,KAAA,CAAA;YAClBO,GAAAA,EAAKD,IAAAA,CAAKN,QAAQ,KAAA,EAAO,KAAA,CAAA;YACzBQ,UAAAA,EAAYF,IAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCS,UAAAA,EAAYH,IAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCU,QAAAA,EAAUJ,IAAAA,CAAKN,QAAQ,KAAA,EAAO,UAAA,CAAA;YAC9BW,WAAAA,EAAaL,IAAAA,CAAKN,QAAQ,KAAA,EAAO,aAAA,CAAA;AACjCE,YAAAA,MAAAA,EAAQI,KAAKN,MAAAA,EAAQ,QAAA,CAAA;YACrBY,gBAAAA,EAAkBN,IAAAA,CAAKN,QAAQ,KAAA,EAAO,mBAAA;AACxC,SAAA;QACAc,MAAAA,EAAQ;YACNC,MAAAA,EAAQC,OAAAA,CAAQhB,MAAAA,EAAQiB,GAAAA,CAAI,oBAAA,EAAsBf,MAAAA,CAAAA;AACpD;AACF,KAAA;;;;"}
1
+ {"version":3,"file":"get-dirs.mjs","sources":["../../src/configuration/get-dirs.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { get } from 'lodash';\n\nimport type { Core } from '@strapi/types';\nimport type { StrapiOptions } from '../Strapi';\n\nexport type Options = {\n app: string;\n dist: string;\n};\n\nexport const getDirs = (\n { appDir, distDir }: StrapiOptions,\n config: { server: Partial<Core.Config.Server> }\n): Core.StrapiDirectories => ({\n dist: {\n root: distDir,\n src: join(distDir, 'src'),\n api: join(distDir, 'src', 'api'),\n components: join(distDir, 'src', 'components'),\n extensions: join(distDir, 'src', 'extensions'),\n policies: join(distDir, 'src', 'policies'),\n middlewares: join(distDir, 'src', 'middlewares'),\n config: join(distDir, 'config'),\n contentStructure: join(distDir, 'src', 'content-structure'),\n },\n app: {\n root: appDir,\n src: join(appDir, 'src'),\n api: join(appDir, 'src', 'api'),\n components: join(appDir, 'src', 'components'),\n extensions: join(appDir, 'src', 'extensions'),\n policies: join(appDir, 'src', 'policies'),\n middlewares: join(appDir, 'src', 'middlewares'),\n config: join(appDir, 'config'),\n contentStructure: join(appDir, 'src', 'content-structure'),\n },\n static: {\n public: resolve(appDir, get(config, 'server.dirs.public')!),\n },\n});\n"],"names":["getDirs","appDir","distDir","config","dist","root","src","join","api","components","extensions","policies","middlewares","contentStructure","app","static","public","resolve","get"],"mappings":";;;AAWO,MAAMA,OAAAA,GAAU,CACrB,EAAEC,MAAM,EAAEC,OAAO,EAAiB,EAClCC,MAAAA,IAC4B;QAC5BC,IAAAA,EAAM;YACJC,IAAAA,EAAMH,OAAAA;AACNI,YAAAA,GAAAA,EAAKC,KAAKL,OAAAA,EAAS,KAAA,CAAA;YACnBM,GAAAA,EAAKD,IAAAA,CAAKL,SAAS,KAAA,EAAO,KAAA,CAAA;YAC1BO,UAAAA,EAAYF,IAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCQ,UAAAA,EAAYH,IAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCS,QAAAA,EAAUJ,IAAAA,CAAKL,SAAS,KAAA,EAAO,UAAA,CAAA;YAC/BU,WAAAA,EAAaL,IAAAA,CAAKL,SAAS,KAAA,EAAO,aAAA,CAAA;AAClCC,YAAAA,MAAAA,EAAQI,KAAKL,OAAAA,EAAS,QAAA,CAAA;YACtBW,gBAAAA,EAAkBN,IAAAA,CAAKL,SAAS,KAAA,EAAO,mBAAA;AACzC,SAAA;QACAY,GAAAA,EAAK;YACHT,IAAAA,EAAMJ,MAAAA;AACNK,YAAAA,GAAAA,EAAKC,KAAKN,MAAAA,EAAQ,KAAA,CAAA;YAClBO,GAAAA,EAAKD,IAAAA,CAAKN,QAAQ,KAAA,EAAO,KAAA,CAAA;YACzBQ,UAAAA,EAAYF,IAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCS,UAAAA,EAAYH,IAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCU,QAAAA,EAAUJ,IAAAA,CAAKN,QAAQ,KAAA,EAAO,UAAA,CAAA;YAC9BW,WAAAA,EAAaL,IAAAA,CAAKN,QAAQ,KAAA,EAAO,aAAA,CAAA;AACjCE,YAAAA,MAAAA,EAAQI,KAAKN,MAAAA,EAAQ,QAAA,CAAA;YACrBY,gBAAAA,EAAkBN,IAAAA,CAAKN,QAAQ,KAAA,EAAO,mBAAA;AACxC,SAAA;QACAc,MAAAA,EAAQ;YACNC,MAAAA,EAAQC,OAAAA,CAAQhB,MAAAA,EAAQiB,GAAAA,CAAIf,MAAAA,EAAQ,oBAAA,CAAA;AACtC;AACF,KAAA;;;;"}
@@ -1,4 +1,3 @@
1
- import _ from 'lodash';
2
1
  import type { StrapiOptions } from '../Strapi';
3
2
  export declare const loadConfiguration: (opts: StrapiOptions) => {
4
3
  launchedAt: number;
@@ -66,5 +65,5 @@ export declare const loadConfiguration: (opts: StrapiOptions) => {
66
65
  prefix: string;
67
66
  };
68
67
  };
69
- } & _.Omit<Record<string, unknown>, "plugins"> & Record<string, unknown>;
68
+ } & Pick<Record<string, unknown>, string> & Record<string, unknown>;
70
69
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configuration/index.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAUvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AA8D/C,eAAO,MAAM,iBAAiB,GAAI,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAkDpD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configuration/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AA8D/C,eAAO,MAAM,iBAAiB,GAAI,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAkDpD,CAAC"}
@@ -3,7 +3,6 @@
3
3
  var os = require('os');
4
4
  var path = require('path');
5
5
  var _ = require('lodash');
6
- var fp = require('lodash/fp');
7
6
  var dotenv = require('dotenv');
8
7
  var strapiUtils = require('@strapi/utils');
9
8
  var urls = require('./urls.js');
@@ -99,7 +98,7 @@ const loadConfiguration = (opts)=>{
99
98
  }
100
99
  };
101
100
  // See packages/core/core/src/domain/module/index.ts for plugin config loading
102
- const baseConfig = fp.omit('plugins', configLoader(configDir)); // plugin config will be loaded later
101
+ const baseConfig = _.omit(configLoader(configDir), 'plugins'); // plugin config will be loaded later
103
102
  const envDir = path__default.default.resolve(configDir, 'env', process.env.NODE_ENV);
104
103
  const envConfig = configLoader(envDir);
105
104
  const config = ___default.default.merge(rootConfig, defaultConfig, baseConfig, envConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport { omit } from 'lodash/fp';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultServerConfig = {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n openapi: {\n 'content-api': {\n access: 'disabled',\n route: {\n path: '/openapi.json',\n },\n cache: {\n enabled: true,\n maxAgeMs: 60_000,\n filePath: '.strapi/openapi/content-api.json',\n },\n },\n admin: {\n access: 'disabled',\n route: {\n path: '/openapi.json',\n },\n cache: {\n enabled: true,\n maxAgeMs: 60_000,\n filePath: '.strapi/openapi/admin.json',\n },\n },\n },\n} satisfies Partial<Core.Config.Server>;\n\nconst defaultConfig = {\n server: defaultServerConfig,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n installId: _.get(pkgJSON, 'strapi.installId'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultServerConfig","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","dirs","public","transfer","remote","logger","updates","startup","openapi","access","route","cache","maxAgeMs","filePath","admin","defaultConfig","server","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","installId","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _, { omit } from 'lodash';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultServerConfig = {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n openapi: {\n 'content-api': {\n access: 'disabled',\n route: {\n path: '/openapi.json',\n },\n cache: {\n enabled: true,\n maxAgeMs: 60_000,\n filePath: '.strapi/openapi/content-api.json',\n },\n },\n admin: {\n access: 'disabled',\n route: {\n path: '/openapi.json',\n },\n cache: {\n enabled: true,\n maxAgeMs: 60_000,\n filePath: '.strapi/openapi/admin.json',\n },\n },\n },\n} satisfies Partial<Core.Config.Server>;\n\nconst defaultConfig = {\n server: defaultServerConfig,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n installId: _.get(pkgJSON, 'strapi.installId'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit(loadConfigDir(configDir), 'plugins'); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultServerConfig","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","dirs","public","transfer","remote","logger","updates","startup","openapi","access","route","cache","maxAgeMs","filePath","admin","defaultConfig","server","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","installId","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import os from 'os';
2
2
  import path from 'path';
3
- import _ from 'lodash';
4
- import { omit } from 'lodash/fp';
3
+ import _, { omit } from 'lodash';
5
4
  import dotenv from 'dotenv';
6
5
  import { strings } from '@strapi/utils';
7
6
  import { getConfigUrls, getAbsoluteServerUrl, getAbsoluteAdminUrl } from './urls.mjs';
@@ -90,7 +89,7 @@ const loadConfiguration = (opts)=>{
90
89
  }
91
90
  };
92
91
  // See packages/core/core/src/domain/module/index.ts for plugin config loading
93
- const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later
92
+ const baseConfig = omit(loadConfigDir(configDir), 'plugins'); // plugin config will be loaded later
94
93
  const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV);
95
94
  const envConfig = loadConfigDir(envDir);
96
95
  const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport { omit } from 'lodash/fp';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultServerConfig = {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n openapi: {\n 'content-api': {\n access: 'disabled',\n route: {\n path: '/openapi.json',\n },\n cache: {\n enabled: true,\n maxAgeMs: 60_000,\n filePath: '.strapi/openapi/content-api.json',\n },\n },\n admin: {\n access: 'disabled',\n route: {\n path: '/openapi.json',\n },\n cache: {\n enabled: true,\n maxAgeMs: 60_000,\n filePath: '.strapi/openapi/admin.json',\n },\n },\n },\n} satisfies Partial<Core.Config.Server>;\n\nconst defaultConfig = {\n server: defaultServerConfig,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n installId: _.get(pkgJSON, 'strapi.installId'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultServerConfig","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","dirs","public","transfer","remote","logger","updates","startup","openapi","access","route","cache","maxAgeMs","filePath","admin","defaultConfig","server","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","installId","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _, { omit } from 'lodash';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultServerConfig = {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n openapi: {\n 'content-api': {\n access: 'disabled',\n route: {\n path: '/openapi.json',\n },\n cache: {\n enabled: true,\n maxAgeMs: 60_000,\n filePath: '.strapi/openapi/content-api.json',\n },\n },\n admin: {\n access: 'disabled',\n route: {\n path: '/openapi.json',\n },\n cache: {\n enabled: true,\n maxAgeMs: 60_000,\n filePath: '.strapi/openapi/admin.json',\n },\n },\n },\n} satisfies Partial<Core.Config.Server>;\n\nconst defaultConfig = {\n server: defaultServerConfig,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n installId: _.get(pkgJSON, 'strapi.installId'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit(loadConfigDir(configDir), 'plugins'); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultServerConfig","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","dirs","public","transfer","remote","logger","updates","startup","openapi","access","route","cache","maxAgeMs","filePath","admin","defaultConfig","server","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","installId","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var _ = require('lodash');
4
4
  var strapiUtils = require('@strapi/utils');
5
5
 
6
6
  /**
@@ -37,7 +37,7 @@ var strapiUtils = require('@strapi/utils');
37
37
  await this.validateQuery(ctx);
38
38
  const sanitizedQuery = await this.sanitizeQuery(ctx);
39
39
  const { body = {} } = ctx.request;
40
- if (!fp.isObject(body.data)) {
40
+ if (!_.isObject(body.data)) {
41
41
  throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
42
42
  }
43
43
  await this.validateInput(body.data, ctx);
@@ -57,7 +57,7 @@ var strapiUtils = require('@strapi/utils');
57
57
  await this.validateQuery(ctx);
58
58
  const sanitizedQuery = await this.sanitizeQuery(ctx);
59
59
  const { body = {} } = ctx.request;
60
- if (!fp.isObject(body.data)) {
60
+ if (!_.isObject(body.data)) {
61
61
  throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
62
62
  }
63
63
  await this.validateInput(body.data, ctx);
@@ -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 { 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":["createCollectionTypeController","contentType","uid","find","ctx","validateQuery","sanitizedQuery","sanitizeQuery","results","pagination","strapi","service","sanitizedResults","sanitizeOutput","transformResponse","findOne","id","params","entity","sanitizedEntity","create","body","request","isObject","data","errors","ValidationError","validateInput","sanitizedInputData","sanitizeInput","status","update","delete"],"mappings":"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"}
1
+ {"version":3,"file":"collection-type.js","sources":["../../../src/core-api/controller/collection-type.ts"],"sourcesContent":["import { isObject } from 'lodash';\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":["createCollectionTypeController","contentType","uid","find","ctx","validateQuery","sanitizedQuery","sanitizeQuery","results","pagination","strapi","service","sanitizedResults","sanitizeOutput","transformResponse","findOne","id","params","entity","sanitizedEntity","create","body","request","isObject","data","errors","ValidationError","validateInput","sanitizedInputData","sanitizeInput","status","update","delete"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isObject } from 'lodash/fp';
1
+ import { isObject } from 'lodash';
2
2
  import { errors } from '@strapi/utils';
3
3
 
4
4
  /**
@@ -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 { 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":["createCollectionTypeController","contentType","uid","find","ctx","validateQuery","sanitizedQuery","sanitizeQuery","results","pagination","strapi","service","sanitizedResults","sanitizeOutput","transformResponse","findOne","id","params","entity","sanitizedEntity","create","body","request","isObject","data","errors","ValidationError","validateInput","sanitizedInputData","sanitizeInput","status","update","delete"],"mappings":"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"}
1
+ {"version":3,"file":"collection-type.mjs","sources":["../../../src/core-api/controller/collection-type.ts"],"sourcesContent":["import { isObject } from 'lodash';\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":["createCollectionTypeController","contentType","uid","find","ctx","validateQuery","sanitizedQuery","sanitizeQuery","results","pagination","strapi","service","sanitizedResults","sanitizeOutput","transformResponse","findOne","id","params","entity","sanitizedEntity","create","body","request","isObject","data","errors","ValidationError","validateInput","sanitizedInputData","sanitizeInput","status","update","delete"],"mappings":";;;AASA;;;AAGC,IACD,MAAMA,8BAAAA,GAAiC,CAAC,EACtCC,WAAW,EACH,GAAA;IACR,MAAMC,GAAAA,GAAMD,YAAYC,GAAG;;IAG3B,OAAO;AACL;;QAGA,MAAMC,MAAKC,GAAG,EAAA;YACZ,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEI,OAAO,EAAEC,UAAU,EAAE,GAAG,MAAMC,MAAAA,CAAOC,OAAO,CAACT,GAAAA,CAAAA,CAAKC,IAAI,CAACG,cAAAA,CAAAA;AAC/D,YAAA,MAAMM,mBAAmB,MAAM,IAAI,CAACC,cAAc,CAACL,OAAAA,EAASJ,GAAAA,CAAAA;AAC5D,YAAA,OAAO,IAAI,CAACU,iBAAiB,CAACF,gBAAAA,EAAkB;AAAEH,gBAAAA;AAAW,aAAA,CAAA;AAC/D,QAAA,CAAA;AAEA;;QAGA,MAAMM,SAAQX,GAAG,EAAA;AACf,YAAA,MAAM,EAAEY,EAAE,EAAE,GAAGZ,IAAIa,MAAM;YACzB,MAAM,IAAI,CAACZ,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;YAEhD,MAAMc,MAAAA,GAAS,MAAMR,MAAAA,CAAOC,OAAO,CAACT,GAAAA,CAAAA,CAAKa,OAAO,CAACC,EAAAA,EAAIV,cAAAA,CAAAA;AACrD,YAAA,MAAMa,kBAAkB,MAAM,IAAI,CAACN,cAAc,CAACK,MAAAA,EAAQd,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACU,iBAAiB,CAACK,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA;;QAGA,MAAMC,QAAOhB,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEiB,IAAAA,GAAO,EAAS,EAAE,GAAGjB,IAAIkB,OAAO;AAExC,YAAA,IAAI,CAACC,QAAAA,CAASF,IAAAA,CAAKG,IAAI,CAAA,EAAG;gBACxB,MAAM,IAAIC,MAAAA,CAAOC,eAAe,CAAC,4CAAA,CAAA;AACnC,YAAA;AAEA,YAAA,MAAM,IAAI,CAACC,aAAa,CAACN,IAAAA,CAAKG,IAAI,EAAEpB,GAAAA,CAAAA;YAEpC,MAAMwB,kBAAAA,GAAqB,MAAM,IAAI,CAACC,aAAa,CAACR,IAAAA,CAAKG,IAAI,EAAEpB,GAAAA,CAAAA;AAE/D,YAAA,MAAMc,SAAS,MAAMR,MAAAA,CAAOC,OAAO,CAACT,GAAAA,CAAAA,CAAKkB,MAAM,CAAC;AAC9C,gBAAA,GAAGd,cAAc;gBACjBkB,IAAAA,EAAMI;AACR,aAAA,CAAA;AAEA,YAAA,MAAMT,kBAAkB,MAAM,IAAI,CAACN,cAAc,CAACK,MAAAA,EAAQd,GAAAA,CAAAA;AAE1DA,YAAAA,GAAAA,CAAI0B,MAAM,GAAG,GAAA;YACb,OAAO,IAAI,CAAChB,iBAAiB,CAACK,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA;;QAGA,MAAMY,QAAO3B,GAAgB,EAAA;AAC3B,YAAA,MAAM,EAAEY,EAAE,EAAE,GAAGZ,IAAIa,MAAM;YACzB,MAAM,IAAI,CAACZ,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEiB,IAAAA,GAAO,EAAS,EAAE,GAAGjB,IAAIkB,OAAO;AAExC,YAAA,IAAI,CAACC,QAAAA,CAASF,IAAAA,CAAKG,IAAI,CAAA,EAAG;gBACxB,MAAM,IAAIC,MAAAA,CAAOC,eAAe,CAAC,4CAAA,CAAA;AACnC,YAAA;AAEA,YAAA,MAAM,IAAI,CAACC,aAAa,CAACN,IAAAA,CAAKG,IAAI,EAAEpB,GAAAA,CAAAA;YAEpC,MAAMwB,kBAAAA,GAAqB,MAAM,IAAI,CAACC,aAAa,CAACR,IAAAA,CAAKG,IAAI,EAAEpB,GAAAA,CAAAA;YAE/D,MAAMc,MAAAA,GAAS,MAAMR,MAAAA,CAAOC,OAAO,CAACT,GAAAA,CAAAA,CAAK6B,MAAM,CAACf,EAAAA,EAAI;AAClD,gBAAA,GAAGV,cAAc;gBACjBkB,IAAAA,EAAMI;AACR,aAAA,CAAA;AAEA,YAAA,MAAMT,kBAAkB,MAAM,IAAI,CAACN,cAAc,CAACK,MAAAA,EAAQd,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACU,iBAAiB,CAACK,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA;;QAGA,MAAMa,QAAO5B,GAAG,EAAA;AACd,YAAA,MAAM,EAAEY,EAAE,EAAE,GAAGZ,IAAIa,MAAM;YACzB,MAAM,IAAI,CAACZ,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMM,OAAOC,OAAO,CAACT,GAAAA,CAAAA,CAAK8B,MAAM,CAAChB,EAAAA,EAAIV,cAAAA,CAAAA;AAErCF,YAAAA,GAAAA,CAAI0B,MAAM,GAAG,GAAA;AACf,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var _ = require('lodash');
4
4
  var strapiUtils = require('@strapi/utils');
5
5
  var transform = require('./transform.js');
6
6
  var singleType = require('./single-type.js');
@@ -8,7 +8,7 @@ var collectionType = require('./collection-type.js');
8
8
  var requestContext = require('../../services/request-context.js');
9
9
 
10
10
  const isSingleType = (contentType)=>strapiUtils.contentTypes.isSingleType(contentType);
11
- const getAuthFromKoaContext = (ctx)=>fp.prop('state.auth', ctx) ?? {};
11
+ const getAuthFromKoaContext = (ctx)=>_.get(ctx, 'state.auth') ?? {};
12
12
  /** Build options for contentAPI.sanitize/validate from the request context (auth, route, strictParams). */ const getContentAPIOptions = (ctx)=>{
13
13
  const auth = getAuthFromKoaContext(ctx);
14
14
  const route = ctx.state?.route;
@@ -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 } 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\n/** Build options for contentAPI.sanitize/validate from the request context (auth, route, strictParams). */\nconst getContentAPIOptions = (ctx: Koa.Context) => {\n const auth = getAuthFromKoaContext(ctx);\n const route = ctx.state?.route;\n const options: { auth: unknown; strictParams?: boolean; route?: typeof route } = { auth, route };\n const apiStrictParams = strapi.config.get('api.rest.strictParams');\n if (typeof apiStrictParams === 'boolean') {\n options.strictParams = apiStrictParams;\n }\n return options;\n};\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 encodeSourceMaps: ctx?.headers?.['strapi-encode-source-maps'] === 'true',\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 return strapi.contentAPI.sanitize.input(data, contentType, getContentAPIOptions(ctx));\n },\n\n async sanitizeQuery(ctx) {\n return strapi.contentAPI.sanitize.query(ctx.query, contentType, getContentAPIOptions(ctx));\n },\n\n async validateQuery(ctx) {\n return strapi.contentAPI.validate.query(ctx.query, contentType, getContentAPIOptions(ctx));\n },\n\n async validateInput(data, ctx) {\n return strapi.contentAPI.validate.input(data, contentType, getContentAPIOptions(ctx));\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":["isSingleType","contentType","contentTypeUtils","getAuthFromKoaContext","ctx","prop","getContentAPIOptions","auth","route","state","options","apiStrictParams","strapi","config","get","strictParams","createController","proto","transformResponse","data","meta","requestCtx","useJsonAPIFormat","headers","encodeSourceMaps","sanitizeOutput","contentAPI","sanitize","output","sanitizeInput","input","sanitizeQuery","query","validateQuery","validate","validateInput","ctrl","createSingleTypeController","createCollectionTypeController","Object","assign","create"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/core-api/controller/index.ts"],"sourcesContent":["import { get } from 'lodash';\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) => get(ctx, 'state.auth') ?? {};\n\n/** Build options for contentAPI.sanitize/validate from the request context (auth, route, strictParams). */\nconst getContentAPIOptions = (ctx: Koa.Context) => {\n const auth = getAuthFromKoaContext(ctx);\n const route = ctx.state?.route;\n const options: { auth: unknown; strictParams?: boolean; route?: typeof route } = { auth, route };\n const apiStrictParams = strapi.config.get('api.rest.strictParams');\n if (typeof apiStrictParams === 'boolean') {\n options.strictParams = apiStrictParams;\n }\n return options;\n};\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 encodeSourceMaps: ctx?.headers?.['strapi-encode-source-maps'] === 'true',\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 return strapi.contentAPI.sanitize.input(data, contentType, getContentAPIOptions(ctx));\n },\n\n async sanitizeQuery(ctx) {\n return strapi.contentAPI.sanitize.query(ctx.query, contentType, getContentAPIOptions(ctx));\n },\n\n async validateQuery(ctx) {\n return strapi.contentAPI.validate.query(ctx.query, contentType, getContentAPIOptions(ctx));\n },\n\n async validateInput(data, ctx) {\n return strapi.contentAPI.validate.input(data, contentType, getContentAPIOptions(ctx));\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":["isSingleType","contentType","contentTypeUtils","getAuthFromKoaContext","ctx","get","getContentAPIOptions","auth","route","state","options","apiStrictParams","strapi","config","strictParams","createController","proto","transformResponse","data","meta","requestCtx","useJsonAPIFormat","headers","encodeSourceMaps","sanitizeOutput","contentAPI","sanitize","output","sanitizeInput","input","sanitizeQuery","query","validateQuery","validate","validateInput","ctrl","createSingleTypeController","createCollectionTypeController","Object","assign","create"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { prop } from 'lodash/fp';
1
+ import { get } from 'lodash';
2
2
  import { contentTypes } from '@strapi/utils';
3
3
  import { transformResponse } from './transform.mjs';
4
4
  import { createSingleTypeController } from './single-type.mjs';
@@ -6,7 +6,7 @@ import { createCollectionTypeController } from './collection-type.mjs';
6
6
  import requestCtx from '../../services/request-context.mjs';
7
7
 
8
8
  const isSingleType = (contentType)=>contentTypes.isSingleType(contentType);
9
- const getAuthFromKoaContext = (ctx)=>prop('state.auth', ctx) ?? {};
9
+ const getAuthFromKoaContext = (ctx)=>get(ctx, 'state.auth') ?? {};
10
10
  /** Build options for contentAPI.sanitize/validate from the request context (auth, route, strictParams). */ const getContentAPIOptions = (ctx)=>{
11
11
  const auth = getAuthFromKoaContext(ctx);
12
12
  const route = ctx.state?.route;
@@ -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 } 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\n/** Build options for contentAPI.sanitize/validate from the request context (auth, route, strictParams). */\nconst getContentAPIOptions = (ctx: Koa.Context) => {\n const auth = getAuthFromKoaContext(ctx);\n const route = ctx.state?.route;\n const options: { auth: unknown; strictParams?: boolean; route?: typeof route } = { auth, route };\n const apiStrictParams = strapi.config.get('api.rest.strictParams');\n if (typeof apiStrictParams === 'boolean') {\n options.strictParams = apiStrictParams;\n }\n return options;\n};\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 encodeSourceMaps: ctx?.headers?.['strapi-encode-source-maps'] === 'true',\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 return strapi.contentAPI.sanitize.input(data, contentType, getContentAPIOptions(ctx));\n },\n\n async sanitizeQuery(ctx) {\n return strapi.contentAPI.sanitize.query(ctx.query, contentType, getContentAPIOptions(ctx));\n },\n\n async validateQuery(ctx) {\n return strapi.contentAPI.validate.query(ctx.query, contentType, getContentAPIOptions(ctx));\n },\n\n async validateInput(data, ctx) {\n return strapi.contentAPI.validate.input(data, contentType, getContentAPIOptions(ctx));\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":["isSingleType","contentType","contentTypeUtils","getAuthFromKoaContext","ctx","prop","getContentAPIOptions","auth","route","state","options","apiStrictParams","strapi","config","get","strictParams","createController","proto","transformResponse","data","meta","requestCtx","useJsonAPIFormat","headers","encodeSourceMaps","sanitizeOutput","contentAPI","sanitize","output","sanitizeInput","input","sanitizeQuery","query","validateQuery","validate","validateInput","ctrl","createSingleTypeController","createCollectionTypeController","Object","assign","create"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/core-api/controller/index.ts"],"sourcesContent":["import { get } from 'lodash';\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) => get(ctx, 'state.auth') ?? {};\n\n/** Build options for contentAPI.sanitize/validate from the request context (auth, route, strictParams). */\nconst getContentAPIOptions = (ctx: Koa.Context) => {\n const auth = getAuthFromKoaContext(ctx);\n const route = ctx.state?.route;\n const options: { auth: unknown; strictParams?: boolean; route?: typeof route } = { auth, route };\n const apiStrictParams = strapi.config.get('api.rest.strictParams');\n if (typeof apiStrictParams === 'boolean') {\n options.strictParams = apiStrictParams;\n }\n return options;\n};\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 encodeSourceMaps: ctx?.headers?.['strapi-encode-source-maps'] === 'true',\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 return strapi.contentAPI.sanitize.input(data, contentType, getContentAPIOptions(ctx));\n },\n\n async sanitizeQuery(ctx) {\n return strapi.contentAPI.sanitize.query(ctx.query, contentType, getContentAPIOptions(ctx));\n },\n\n async validateQuery(ctx) {\n return strapi.contentAPI.validate.query(ctx.query, contentType, getContentAPIOptions(ctx));\n },\n\n async validateInput(data, ctx) {\n return strapi.contentAPI.validate.input(data, contentType, getContentAPIOptions(ctx));\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":["isSingleType","contentType","contentTypeUtils","getAuthFromKoaContext","ctx","get","getContentAPIOptions","auth","route","state","options","apiStrictParams","strapi","config","strictParams","createController","proto","transformResponse","data","meta","requestCtx","useJsonAPIFormat","headers","encodeSourceMaps","sanitizeOutput","contentAPI","sanitize","output","sanitizeInput","input","sanitizeQuery","query","validateQuery","validate","validateInput","ctrl","createSingleTypeController","createCollectionTypeController","Object","assign","create"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var _ = require('lodash');
4
4
  var strapiUtils = require('@strapi/utils');
5
5
 
6
6
  /**
@@ -25,7 +25,7 @@ var strapiUtils = require('@strapi/utils');
25
25
  await this.validateQuery(ctx);
26
26
  const sanitizedQuery = await this.sanitizeQuery(ctx);
27
27
  const { body = {} } = ctx.request;
28
- if (!fp.isObject(body.data)) {
28
+ if (!_.isObject(body.data)) {
29
29
  throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
30
30
  }
31
31
  await this.validateInput(body.data, ctx);
@@ -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 { 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 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).createOrUpdate({\n ...sanitizedQuery,\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 await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n await strapi.service(uid).delete(sanitizedQuery);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createSingleTypeController };\n"],"names":["createSingleTypeController","contentType","uid","find","ctx","validateQuery","sanitizedQuery","sanitizeQuery","entity","strapi","service","sanitizedEntity","sanitizeOutput","transformResponse","update","body","request","isObject","data","errors","ValidationError","validateInput","sanitizedInputData","sanitizeInput","createOrUpdate","delete","status"],"mappings":";;;;;AAQA;;AAEC,IACD,MAAMA,0BAAAA,GAA6B,CAAC,EAClCC,WAAW,EACH,GAAA;IACR,MAAMC,GAAAA,GAAMD,YAAYC,GAAG;;IAG3B,OAAO;AACL;;;QAIA,MAAMC,MAAKC,GAAG,EAAA;YACZ,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMI,SAAS,MAAMC,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKC,IAAI,CAACG,cAAAA,CAAAA;AAE9C,YAAA,MAAMK,kBAAkB,MAAM,IAAI,CAACC,cAAc,CAACJ,MAAAA,EAAQJ,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACS,iBAAiB,CAACF,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA;;QAGA,MAAMG,QAAOV,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEW,IAAAA,GAAO,EAAS,EAAE,GAAGX,IAAIY,OAAO;AAExC,YAAA,IAAI,CAACC,WAAAA,CAASF,IAAAA,CAAKG,IAAI,CAAA,EAAG;gBACxB,MAAM,IAAIC,kBAAAA,CAAOC,eAAe,CAAC,4CAAA,CAAA;AACnC,YAAA;AAEA,YAAA,MAAM,IAAI,CAACC,aAAa,CAACN,IAAAA,CAAKG,IAAI,EAAEd,GAAAA,CAAAA;YAEpC,MAAMkB,kBAAAA,GAAqB,MAAM,IAAI,CAACC,aAAa,CAACR,IAAAA,CAAKG,IAAI,EAAEd,GAAAA,CAAAA;AAE/D,YAAA,MAAMI,SAAS,MAAMC,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKsB,cAAc,CAAC;AACtD,gBAAA,GAAGlB,cAAc;gBACjBY,IAAAA,EAAMI;AACR,aAAA,CAAA;AAEA,YAAA,MAAMX,kBAAkB,MAAM,IAAI,CAACC,cAAc,CAACJ,MAAAA,EAAQJ,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACS,iBAAiB,CAACF,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA,QAAA,MAAMc,QAAOrB,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMK,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKuB,MAAM,CAACnB,cAAAA,CAAAA;AAEjCF,YAAAA,GAAAA,CAAIsB,MAAM,GAAG,GAAA;AACf,QAAA;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"single-type.js","sources":["../../../src/core-api/controller/single-type.ts"],"sourcesContent":["import { isObject } from 'lodash';\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 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).createOrUpdate({\n ...sanitizedQuery,\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 await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n await strapi.service(uid).delete(sanitizedQuery);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createSingleTypeController };\n"],"names":["createSingleTypeController","contentType","uid","find","ctx","validateQuery","sanitizedQuery","sanitizeQuery","entity","strapi","service","sanitizedEntity","sanitizeOutput","transformResponse","update","body","request","isObject","data","errors","ValidationError","validateInput","sanitizedInputData","sanitizeInput","createOrUpdate","delete","status"],"mappings":";;;;;AAQA;;AAEC,IACD,MAAMA,0BAAAA,GAA6B,CAAC,EAClCC,WAAW,EACH,GAAA;IACR,MAAMC,GAAAA,GAAMD,YAAYC,GAAG;;IAG3B,OAAO;AACL;;;QAIA,MAAMC,MAAKC,GAAG,EAAA;YACZ,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMI,SAAS,MAAMC,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKC,IAAI,CAACG,cAAAA,CAAAA;AAE9C,YAAA,MAAMK,kBAAkB,MAAM,IAAI,CAACC,cAAc,CAACJ,MAAAA,EAAQJ,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACS,iBAAiB,CAACF,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA;;QAGA,MAAMG,QAAOV,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEW,IAAAA,GAAO,EAAS,EAAE,GAAGX,IAAIY,OAAO;AAExC,YAAA,IAAI,CAACC,UAAAA,CAASF,IAAAA,CAAKG,IAAI,CAAA,EAAG;gBACxB,MAAM,IAAIC,kBAAAA,CAAOC,eAAe,CAAC,4CAAA,CAAA;AACnC,YAAA;AAEA,YAAA,MAAM,IAAI,CAACC,aAAa,CAACN,IAAAA,CAAKG,IAAI,EAAEd,GAAAA,CAAAA;YAEpC,MAAMkB,kBAAAA,GAAqB,MAAM,IAAI,CAACC,aAAa,CAACR,IAAAA,CAAKG,IAAI,EAAEd,GAAAA,CAAAA;AAE/D,YAAA,MAAMI,SAAS,MAAMC,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKsB,cAAc,CAAC;AACtD,gBAAA,GAAGlB,cAAc;gBACjBY,IAAAA,EAAMI;AACR,aAAA,CAAA;AAEA,YAAA,MAAMX,kBAAkB,MAAM,IAAI,CAACC,cAAc,CAACJ,MAAAA,EAAQJ,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACS,iBAAiB,CAACF,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA,QAAA,MAAMc,QAAOrB,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMK,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKuB,MAAM,CAACnB,cAAAA,CAAAA;AAEjCF,YAAAA,GAAAA,CAAIsB,MAAM,GAAG,GAAA;AACf,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- import { isObject } from 'lodash/fp';
1
+ import { isObject } from 'lodash';
2
2
  import { errors } from '@strapi/utils';
3
3
 
4
4
  /**
@@ -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 { 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 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).createOrUpdate({\n ...sanitizedQuery,\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 await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n await strapi.service(uid).delete(sanitizedQuery);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createSingleTypeController };\n"],"names":["createSingleTypeController","contentType","uid","find","ctx","validateQuery","sanitizedQuery","sanitizeQuery","entity","strapi","service","sanitizedEntity","sanitizeOutput","transformResponse","update","body","request","isObject","data","errors","ValidationError","validateInput","sanitizedInputData","sanitizeInput","createOrUpdate","delete","status"],"mappings":";;;AAQA;;AAEC,IACD,MAAMA,0BAAAA,GAA6B,CAAC,EAClCC,WAAW,EACH,GAAA;IACR,MAAMC,GAAAA,GAAMD,YAAYC,GAAG;;IAG3B,OAAO;AACL;;;QAIA,MAAMC,MAAKC,GAAG,EAAA;YACZ,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMI,SAAS,MAAMC,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKC,IAAI,CAACG,cAAAA,CAAAA;AAE9C,YAAA,MAAMK,kBAAkB,MAAM,IAAI,CAACC,cAAc,CAACJ,MAAAA,EAAQJ,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACS,iBAAiB,CAACF,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA;;QAGA,MAAMG,QAAOV,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEW,IAAAA,GAAO,EAAS,EAAE,GAAGX,IAAIY,OAAO;AAExC,YAAA,IAAI,CAACC,QAAAA,CAASF,IAAAA,CAAKG,IAAI,CAAA,EAAG;gBACxB,MAAM,IAAIC,MAAAA,CAAOC,eAAe,CAAC,4CAAA,CAAA;AACnC,YAAA;AAEA,YAAA,MAAM,IAAI,CAACC,aAAa,CAACN,IAAAA,CAAKG,IAAI,EAAEd,GAAAA,CAAAA;YAEpC,MAAMkB,kBAAAA,GAAqB,MAAM,IAAI,CAACC,aAAa,CAACR,IAAAA,CAAKG,IAAI,EAAEd,GAAAA,CAAAA;AAE/D,YAAA,MAAMI,SAAS,MAAMC,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKsB,cAAc,CAAC;AACtD,gBAAA,GAAGlB,cAAc;gBACjBY,IAAAA,EAAMI;AACR,aAAA,CAAA;AAEA,YAAA,MAAMX,kBAAkB,MAAM,IAAI,CAACC,cAAc,CAACJ,MAAAA,EAAQJ,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACS,iBAAiB,CAACF,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA,QAAA,MAAMc,QAAOrB,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMK,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKuB,MAAM,CAACnB,cAAAA,CAAAA;AAEjCF,YAAAA,GAAAA,CAAIsB,MAAM,GAAG,GAAA;AACf,QAAA;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"single-type.mjs","sources":["../../../src/core-api/controller/single-type.ts"],"sourcesContent":["import { isObject } from 'lodash';\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 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).createOrUpdate({\n ...sanitizedQuery,\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 await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n await strapi.service(uid).delete(sanitizedQuery);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createSingleTypeController };\n"],"names":["createSingleTypeController","contentType","uid","find","ctx","validateQuery","sanitizedQuery","sanitizeQuery","entity","strapi","service","sanitizedEntity","sanitizeOutput","transformResponse","update","body","request","isObject","data","errors","ValidationError","validateInput","sanitizedInputData","sanitizeInput","createOrUpdate","delete","status"],"mappings":";;;AAQA;;AAEC,IACD,MAAMA,0BAAAA,GAA6B,CAAC,EAClCC,WAAW,EACH,GAAA;IACR,MAAMC,GAAAA,GAAMD,YAAYC,GAAG;;IAG3B,OAAO;AACL;;;QAIA,MAAMC,MAAKC,GAAG,EAAA;YACZ,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMI,SAAS,MAAMC,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKC,IAAI,CAACG,cAAAA,CAAAA;AAE9C,YAAA,MAAMK,kBAAkB,MAAM,IAAI,CAACC,cAAc,CAACJ,MAAAA,EAAQJ,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACS,iBAAiB,CAACF,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA;;QAGA,MAAMG,QAAOV,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEW,IAAAA,GAAO,EAAS,EAAE,GAAGX,IAAIY,OAAO;AAExC,YAAA,IAAI,CAACC,QAAAA,CAASF,IAAAA,CAAKG,IAAI,CAAA,EAAG;gBACxB,MAAM,IAAIC,MAAAA,CAAOC,eAAe,CAAC,4CAAA,CAAA;AACnC,YAAA;AAEA,YAAA,MAAM,IAAI,CAACC,aAAa,CAACN,IAAAA,CAAKG,IAAI,EAAEd,GAAAA,CAAAA;YAEpC,MAAMkB,kBAAAA,GAAqB,MAAM,IAAI,CAACC,aAAa,CAACR,IAAAA,CAAKG,IAAI,EAAEd,GAAAA,CAAAA;AAE/D,YAAA,MAAMI,SAAS,MAAMC,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKsB,cAAc,CAAC;AACtD,gBAAA,GAAGlB,cAAc;gBACjBY,IAAAA,EAAMI;AACR,aAAA,CAAA;AAEA,YAAA,MAAMX,kBAAkB,MAAM,IAAI,CAACC,cAAc,CAACJ,MAAAA,EAAQJ,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACS,iBAAiB,CAACF,eAAAA,CAAAA;AAChC,QAAA,CAAA;AAEA,QAAA,MAAMc,QAAOrB,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAAA,GAAiB,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMK,MAAAA,CAAOC,OAAO,CAACR,GAAAA,CAAAA,CAAKuB,MAAM,CAACnB,cAAAA,CAAAA;AAEjCF,YAAAA,GAAAA,CAAIsB,MAAM,GAAG,GAAA;AACf,QAAA;AACF,KAAA;AACF;;;;"}
@@ -7,9 +7,6 @@ interface TransformOptions {
7
7
  useJsonAPIFormat?: boolean;
8
8
  encodeSourceMaps?: boolean;
9
9
  }
10
- declare const transformResponse: (resource: any, meta?: unknown, opts?: TransformOptions) => Promise<{
11
- data: any;
12
- meta: unknown;
13
- } | null | undefined>;
10
+ declare const transformResponse: (resource: any, meta?: unknown, opts?: TransformOptions) => Promise<any>;
14
11
  export { transformResponse };
15
12
  //# sourceMappingURL=transform.d.ts.map
@@ -1 +1 @@
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;AA4BvD,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,eAAe,CAAC;IAChE;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,QAAA,MAAM,iBAAiB,GACrB,UAAU,GAAG,EACb,OAAM,OAAY,EAClB,OAAM,gBAGL;;;qBA0BF,CAAC;AAkFF,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;AA4BvD,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,eAAe,CAAC;IAChE;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,QAAA,MAAM,iBAAiB,GACrB,UAAU,GAAG,EACb,OAAM,OAAY,EAClB,OAAM,gBAGL,iBA0BF,CAAC;AAkFF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var _ = require('lodash');
4
4
  var strapiUtils = require('@strapi/utils');
5
5
 
6
6
  function isEntry(property) {
7
- return property === null || fp.isPlainObject(property) || Array.isArray(property);
7
+ return property === null || _.isPlainObject(property) || Array.isArray(property);
8
8
  }
9
9
  function isDZEntries(property) {
10
10
  return Array.isArray(property);
@@ -13,10 +13,10 @@ const transformResponse = async (resource, meta = {}, opts = {
13
13
  useJsonAPIFormat: false,
14
14
  encodeSourceMaps: false
15
15
  })=>{
16
- if (fp.isNil(resource)) {
16
+ if (resource == null) {
17
17
  return resource;
18
18
  }
19
- if (!fp.isPlainObject(resource) && !Array.isArray(resource)) {
19
+ if (!_.isPlainObject(resource) && !Array.isArray(resource)) {
20
20
  throw new Error('Entry must be an object or an array of objects');
21
21
  }
22
22
  // Transform pipeline functions
@@ -37,7 +37,7 @@ function transformComponent(data, component) {
37
37
  return data.map((datum)=>transformComponent(datum, component));
38
38
  }
39
39
  const res = transformEntry(data, component);
40
- if (fp.isNil(res)) {
40
+ if (res == null) {
41
41
  return res;
42
42
  }
43
43
  const { id, attributes } = res;
@@ -47,13 +47,13 @@ function transformComponent(data, component) {
47
47
  };
48
48
  }
49
49
  function transformEntry(entry, type) {
50
- if (fp.isNil(entry)) {
50
+ if (entry == null) {
51
51
  return entry;
52
52
  }
53
53
  if (Array.isArray(entry)) {
54
54
  return entry.map((singleEntry)=>transformEntry(singleEntry, type));
55
55
  }
56
- if (!fp.isPlainObject(entry)) {
56
+ if (!_.isPlainObject(entry)) {
57
57
  throw new Error('Entry must be an object');
58
58
  }
59
59
  const { id, documentId, ...properties } = entry;
@@ -69,7 +69,7 @@ function transformEntry(entry, type) {
69
69
  } else if (attribute && attribute.type === 'component' && isEntry(property)) {
70
70
  attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);
71
71
  } else if (attribute && attribute.type === 'dynamiczone' && isDZEntries(property)) {
72
- if (fp.isNil(property)) {
72
+ if (property == null) {
73
73
  attributeValues[key] = property;
74
74
  }
75
75
  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 { UID, Struct, Data } from '@strapi/types';\nimport { async } from '@strapi/utils';\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 encodeSourceMaps?: boolean;\n}\n\nconst transformResponse = async (\n resource: any,\n meta: unknown = {},\n opts: TransformOptions = {\n useJsonAPIFormat: false,\n encodeSourceMaps: 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 // Transform pipeline functions\n const applyJsonApiFormat = async (data: any) =>\n opts.useJsonAPIFormat ? transformEntry(data, opts?.contentType) : data;\n\n const applySourceMapEncoding = async (data: any) =>\n opts.encodeSourceMaps && opts.contentType\n ? strapi.get('content-source-maps').encodeSourceMaps({ data, schema: opts.contentType })\n : data;\n\n // Process data through transformation pipeline\n const data = await async.pipe(applyJsonApiFormat, applySourceMapEncoding)(resource);\n\n return {\n data,\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":["isEntry","property","isPlainObject","Array","isArray","isDZEntries","transformResponse","resource","meta","opts","useJsonAPIFormat","encodeSourceMaps","isNil","Error","applyJsonApiFormat","data","transformEntry","contentType","applySourceMapEncoding","strapi","get","schema","async","pipe","transformComponent","component","map","datum","res","id","attributes","entry","type","singleEntry","documentId","properties","attributeValues","key","Object","keys","attribute","target","components","subProperty","__component"],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sources":["../../../src/core-api/controller/transform.ts"],"sourcesContent":["import { isPlainObject } from 'lodash';\nimport type { UID, Struct, Data } from '@strapi/types';\nimport { async } from '@strapi/utils';\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 encodeSourceMaps?: boolean;\n}\n\nconst transformResponse = async (\n resource: any,\n meta: unknown = {},\n opts: TransformOptions = {\n useJsonAPIFormat: false,\n encodeSourceMaps: false,\n }\n) => {\n if (resource == null) {\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 // Transform pipeline functions\n const applyJsonApiFormat = async (data: any) =>\n opts.useJsonAPIFormat ? transformEntry(data, opts?.contentType) : data;\n\n const applySourceMapEncoding = async (data: any) =>\n opts.encodeSourceMaps && opts.contentType\n ? strapi.get('content-source-maps').encodeSourceMaps({ data, schema: opts.contentType })\n : data;\n\n // Process data through transformation pipeline\n const data = await async.pipe(applyJsonApiFormat, applySourceMapEncoding)(resource);\n\n return {\n data,\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 (res == null) {\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 (entry == null) {\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 (property == null) {\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":["isEntry","property","isPlainObject","Array","isArray","isDZEntries","transformResponse","resource","meta","opts","useJsonAPIFormat","encodeSourceMaps","Error","applyJsonApiFormat","data","transformEntry","contentType","applySourceMapEncoding","strapi","get","schema","async","pipe","transformComponent","component","map","datum","res","id","attributes","entry","type","singleEntry","documentId","properties","attributeValues","key","Object","keys","attribute","target","components","subProperty","__component"],"mappings":"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"}