@strapi/core 0.0.0-next.c57731c6e91ae024fa544ad986d80a3c4a489dbf → 0.0.0-next.c72b48da735f44a3ccafb7a6dc9ba5213f3844db

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 (671) hide show
  1. package/dist/Strapi.js +455 -0
  2. package/dist/Strapi.js.map +1 -0
  3. package/dist/Strapi.mjs +434 -0
  4. package/dist/Strapi.mjs.map +1 -0
  5. package/dist/compile.js +27 -0
  6. package/dist/compile.js.map +1 -0
  7. package/dist/compile.mjs +25 -0
  8. package/dist/compile.mjs.map +1 -0
  9. package/dist/configuration/config-loader.js +119 -0
  10. package/dist/configuration/config-loader.js.map +1 -0
  11. package/dist/configuration/config-loader.mjs +117 -0
  12. package/dist/configuration/config-loader.mjs.map +1 -0
  13. package/dist/configuration/get-dirs.js +33 -0
  14. package/dist/configuration/get-dirs.js.map +1 -0
  15. package/dist/configuration/get-dirs.mjs +31 -0
  16. package/dist/configuration/get-dirs.mjs.map +1 -0
  17. package/dist/configuration/index.d.ts +1 -0
  18. package/dist/configuration/index.d.ts.map +1 -1
  19. package/dist/configuration/index.js +92 -0
  20. package/dist/configuration/index.js.map +1 -0
  21. package/dist/configuration/index.mjs +90 -0
  22. package/dist/configuration/index.mjs.map +1 -0
  23. package/dist/configuration/urls.d.ts.map +1 -1
  24. package/dist/configuration/urls.js +81 -0
  25. package/dist/configuration/urls.js.map +1 -0
  26. package/dist/configuration/urls.mjs +77 -0
  27. package/dist/configuration/urls.mjs.map +1 -0
  28. package/dist/container.js +34 -0
  29. package/dist/container.js.map +1 -0
  30. package/dist/container.mjs +32 -0
  31. package/dist/container.mjs.map +1 -0
  32. package/dist/core-api/controller/collection-type.js +85 -0
  33. package/dist/core-api/controller/collection-type.js.map +1 -0
  34. package/dist/core-api/controller/collection-type.mjs +83 -0
  35. package/dist/core-api/controller/collection-type.mjs.map +1 -0
  36. package/dist/core-api/controller/index.js +67 -0
  37. package/dist/core-api/controller/index.js.map +1 -0
  38. package/dist/core-api/controller/index.mjs +65 -0
  39. package/dist/core-api/controller/index.mjs.map +1 -0
  40. package/dist/core-api/controller/single-type.js +47 -0
  41. package/dist/core-api/controller/single-type.js.map +1 -0
  42. package/dist/core-api/controller/single-type.mjs +45 -0
  43. package/dist/core-api/controller/single-type.mjs.map +1 -0
  44. package/dist/core-api/controller/transform.js +85 -0
  45. package/dist/core-api/controller/transform.js.map +1 -0
  46. package/dist/core-api/controller/transform.mjs +83 -0
  47. package/dist/core-api/controller/transform.mjs.map +1 -0
  48. package/dist/core-api/routes/index.js +69 -0
  49. package/dist/core-api/routes/index.js.map +1 -0
  50. package/dist/core-api/routes/index.mjs +67 -0
  51. package/dist/core-api/routes/index.mjs.map +1 -0
  52. package/dist/core-api/service/collection-type.js +80 -0
  53. package/dist/core-api/service/collection-type.js.map +1 -0
  54. package/dist/core-api/service/collection-type.mjs +77 -0
  55. package/dist/core-api/service/collection-type.mjs.map +1 -0
  56. package/dist/core-api/service/core-service.js +13 -0
  57. package/dist/core-api/service/core-service.js.map +1 -0
  58. package/dist/core-api/service/core-service.mjs +11 -0
  59. package/dist/core-api/service/core-service.mjs.map +1 -0
  60. package/dist/core-api/service/index.js +16 -0
  61. package/dist/core-api/service/index.js.map +1 -0
  62. package/dist/core-api/service/index.mjs +14 -0
  63. package/dist/core-api/service/index.mjs.map +1 -0
  64. package/dist/core-api/service/pagination.js +78 -0
  65. package/dist/core-api/service/pagination.js.map +1 -0
  66. package/dist/core-api/service/pagination.mjs +73 -0
  67. package/dist/core-api/service/pagination.mjs.map +1 -0
  68. package/dist/core-api/service/single-type.js +50 -0
  69. package/dist/core-api/service/single-type.js.map +1 -0
  70. package/dist/core-api/service/single-type.mjs +47 -0
  71. package/dist/core-api/service/single-type.mjs.map +1 -0
  72. package/dist/domain/content-type/index.js +106 -0
  73. package/dist/domain/content-type/index.js.map +1 -0
  74. package/dist/domain/content-type/index.mjs +103 -0
  75. package/dist/domain/content-type/index.mjs.map +1 -0
  76. package/dist/domain/content-type/validator.js +92 -0
  77. package/dist/domain/content-type/validator.js.map +1 -0
  78. package/dist/domain/content-type/validator.mjs +90 -0
  79. package/dist/domain/content-type/validator.mjs.map +1 -0
  80. package/dist/domain/module/index.js +116 -0
  81. package/dist/domain/module/index.js.map +1 -0
  82. package/dist/domain/module/index.mjs +114 -0
  83. package/dist/domain/module/index.mjs.map +1 -0
  84. package/dist/domain/module/validation.js +30 -0
  85. package/dist/domain/module/validation.js.map +1 -0
  86. package/dist/domain/module/validation.mjs +28 -0
  87. package/dist/domain/module/validation.mjs.map +1 -0
  88. package/dist/ee/index.d.ts +1 -0
  89. package/dist/ee/index.d.ts.map +1 -1
  90. package/dist/ee/index.js +192 -0
  91. package/dist/ee/index.js.map +1 -0
  92. package/dist/ee/index.mjs +190 -0
  93. package/dist/ee/index.mjs.map +1 -0
  94. package/dist/ee/license.d.ts.map +1 -1
  95. package/dist/ee/license.js +116 -0
  96. package/dist/ee/license.js.map +1 -0
  97. package/dist/ee/license.mjs +111 -0
  98. package/dist/ee/license.mjs.map +1 -0
  99. package/dist/factories.js +85 -0
  100. package/dist/factories.js.map +1 -0
  101. package/dist/factories.mjs +80 -0
  102. package/dist/factories.mjs.map +1 -0
  103. package/dist/index.js +19 -10090
  104. package/dist/index.js.map +1 -1
  105. package/dist/index.mjs +17 -10067
  106. package/dist/index.mjs.map +1 -1
  107. package/dist/loaders/admin.d.ts.map +1 -1
  108. package/dist/loaders/admin.js +27 -0
  109. package/dist/loaders/admin.js.map +1 -0
  110. package/dist/loaders/admin.mjs +25 -0
  111. package/dist/loaders/admin.mjs.map +1 -0
  112. package/dist/loaders/apis.js +160 -0
  113. package/dist/loaders/apis.js.map +1 -0
  114. package/dist/loaders/apis.mjs +158 -0
  115. package/dist/loaders/apis.mjs.map +1 -0
  116. package/dist/loaders/components.js +37 -0
  117. package/dist/loaders/components.js.map +1 -0
  118. package/dist/loaders/components.mjs +35 -0
  119. package/dist/loaders/components.mjs.map +1 -0
  120. package/dist/loaders/index.js +26 -0
  121. package/dist/loaders/index.js.map +1 -0
  122. package/dist/loaders/index.mjs +24 -0
  123. package/dist/loaders/index.mjs.map +1 -0
  124. package/dist/loaders/middlewares.js +35 -0
  125. package/dist/loaders/middlewares.js.map +1 -0
  126. package/dist/loaders/middlewares.mjs +33 -0
  127. package/dist/loaders/middlewares.mjs.map +1 -0
  128. package/dist/loaders/plugins/get-enabled-plugins.js +136 -0
  129. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
  130. package/dist/loaders/plugins/get-enabled-plugins.mjs +134 -0
  131. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
  132. package/dist/loaders/plugins/get-user-plugins-config.js +28 -0
  133. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
  134. package/dist/loaders/plugins/get-user-plugins-config.mjs +26 -0
  135. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
  136. package/dist/loaders/plugins/index.js +155 -0
  137. package/dist/loaders/plugins/index.js.map +1 -0
  138. package/dist/loaders/plugins/index.mjs +134 -0
  139. package/dist/loaders/plugins/index.mjs.map +1 -0
  140. package/dist/loaders/policies.js +29 -0
  141. package/dist/loaders/policies.js.map +1 -0
  142. package/dist/loaders/policies.mjs +27 -0
  143. package/dist/loaders/policies.mjs.map +1 -0
  144. package/dist/loaders/sanitizers.js +12 -0
  145. package/dist/loaders/sanitizers.js.map +1 -0
  146. package/dist/loaders/sanitizers.mjs +10 -0
  147. package/dist/loaders/sanitizers.mjs.map +1 -0
  148. package/dist/loaders/src-index.js +41 -0
  149. package/dist/loaders/src-index.js.map +1 -0
  150. package/dist/loaders/src-index.mjs +39 -0
  151. package/dist/loaders/src-index.mjs.map +1 -0
  152. package/dist/loaders/validators.js +11 -0
  153. package/dist/loaders/validators.js.map +1 -0
  154. package/dist/loaders/validators.mjs +9 -0
  155. package/dist/loaders/validators.mjs.map +1 -0
  156. package/dist/middlewares/body.js +69 -0
  157. package/dist/middlewares/body.js.map +1 -0
  158. package/dist/middlewares/body.mjs +67 -0
  159. package/dist/middlewares/body.mjs.map +1 -0
  160. package/dist/middlewares/compression.js +8 -0
  161. package/dist/middlewares/compression.js.map +1 -0
  162. package/dist/middlewares/compression.mjs +6 -0
  163. package/dist/middlewares/compression.mjs.map +1 -0
  164. package/dist/middlewares/cors.js +64 -0
  165. package/dist/middlewares/cors.js.map +1 -0
  166. package/dist/middlewares/cors.mjs +62 -0
  167. package/dist/middlewares/cors.mjs.map +1 -0
  168. package/dist/middlewares/errors.js +35 -0
  169. package/dist/middlewares/errors.js.map +1 -0
  170. package/dist/middlewares/errors.mjs +33 -0
  171. package/dist/middlewares/errors.mjs.map +1 -0
  172. package/dist/middlewares/favicon.js +32 -0
  173. package/dist/middlewares/favicon.js.map +1 -0
  174. package/dist/middlewares/favicon.mjs +30 -0
  175. package/dist/middlewares/favicon.mjs.map +1 -0
  176. package/dist/middlewares/index.js +36 -0
  177. package/dist/middlewares/index.js.map +1 -0
  178. package/dist/middlewares/index.mjs +34 -0
  179. package/dist/middlewares/index.mjs.map +1 -0
  180. package/dist/middlewares/ip.js +8 -0
  181. package/dist/middlewares/ip.js.map +1 -0
  182. package/dist/middlewares/ip.mjs +6 -0
  183. package/dist/middlewares/ip.mjs.map +1 -0
  184. package/dist/middlewares/logger.js +13 -0
  185. package/dist/middlewares/logger.js.map +1 -0
  186. package/dist/middlewares/logger.mjs +11 -0
  187. package/dist/middlewares/logger.mjs.map +1 -0
  188. package/dist/middlewares/powered-by.js +18 -0
  189. package/dist/middlewares/powered-by.js.map +1 -0
  190. package/dist/middlewares/powered-by.mjs +16 -0
  191. package/dist/middlewares/powered-by.mjs.map +1 -0
  192. package/dist/middlewares/public.js +38 -0
  193. package/dist/middlewares/public.js.map +1 -0
  194. package/dist/middlewares/public.mjs +36 -0
  195. package/dist/middlewares/public.mjs.map +1 -0
  196. package/dist/middlewares/query.js +43 -0
  197. package/dist/middlewares/query.js.map +1 -0
  198. package/dist/middlewares/query.mjs +41 -0
  199. package/dist/middlewares/query.mjs.map +1 -0
  200. package/dist/middlewares/response-time.js +13 -0
  201. package/dist/middlewares/response-time.js.map +1 -0
  202. package/dist/middlewares/response-time.mjs +11 -0
  203. package/dist/middlewares/response-time.mjs.map +1 -0
  204. package/dist/middlewares/responses.js +17 -0
  205. package/dist/middlewares/responses.js.map +1 -0
  206. package/dist/middlewares/responses.mjs +15 -0
  207. package/dist/middlewares/responses.mjs.map +1 -0
  208. package/dist/middlewares/security.js +116 -0
  209. package/dist/middlewares/security.js.map +1 -0
  210. package/dist/middlewares/security.mjs +114 -0
  211. package/dist/middlewares/security.mjs.map +1 -0
  212. package/dist/middlewares/session.js +31 -0
  213. package/dist/middlewares/session.js.map +1 -0
  214. package/dist/middlewares/session.mjs +29 -0
  215. package/dist/middlewares/session.mjs.map +1 -0
  216. package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
  217. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  218. package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
  219. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  220. package/dist/migrations/draft-publish.js +69 -0
  221. package/dist/migrations/draft-publish.js.map +1 -0
  222. package/dist/migrations/draft-publish.mjs +66 -0
  223. package/dist/migrations/draft-publish.mjs.map +1 -0
  224. package/dist/migrations/i18n.js +71 -0
  225. package/dist/migrations/i18n.js.map +1 -0
  226. package/dist/migrations/i18n.mjs +68 -0
  227. package/dist/migrations/i18n.mjs.map +1 -0
  228. package/dist/migrations/index.js +29 -0
  229. package/dist/migrations/index.js.map +1 -0
  230. package/dist/migrations/index.mjs +26 -0
  231. package/dist/migrations/index.mjs.map +1 -0
  232. package/dist/package.json.js +182 -0
  233. package/dist/package.json.js.map +1 -0
  234. package/dist/package.json.mjs +159 -0
  235. package/dist/package.json.mjs.map +1 -0
  236. package/dist/providers/admin.js +30 -0
  237. package/dist/providers/admin.js.map +1 -0
  238. package/dist/providers/admin.mjs +28 -0
  239. package/dist/providers/admin.mjs.map +1 -0
  240. package/dist/providers/coreStore.js +16 -0
  241. package/dist/providers/coreStore.js.map +1 -0
  242. package/dist/providers/coreStore.mjs +14 -0
  243. package/dist/providers/coreStore.mjs.map +1 -0
  244. package/dist/providers/cron.js +23 -0
  245. package/dist/providers/cron.js.map +1 -0
  246. package/dist/providers/cron.mjs +21 -0
  247. package/dist/providers/cron.mjs.map +1 -0
  248. package/dist/providers/index.js +20 -0
  249. package/dist/providers/index.js.map +1 -0
  250. package/dist/providers/index.mjs +18 -0
  251. package/dist/providers/index.mjs.map +1 -0
  252. package/dist/providers/provider.js +6 -0
  253. package/dist/providers/provider.js.map +1 -0
  254. package/dist/providers/provider.mjs +4 -0
  255. package/dist/providers/provider.mjs.map +1 -0
  256. package/dist/providers/registries.js +40 -0
  257. package/dist/providers/registries.js.map +1 -0
  258. package/dist/providers/registries.mjs +38 -0
  259. package/dist/providers/registries.mjs.map +1 -0
  260. package/dist/providers/telemetry.js +22 -0
  261. package/dist/providers/telemetry.js.map +1 -0
  262. package/dist/providers/telemetry.mjs +20 -0
  263. package/dist/providers/telemetry.mjs.map +1 -0
  264. package/dist/providers/webhooks.js +32 -0
  265. package/dist/providers/webhooks.js.map +1 -0
  266. package/dist/providers/webhooks.mjs +30 -0
  267. package/dist/providers/webhooks.mjs.map +1 -0
  268. package/dist/registries/apis.js +26 -0
  269. package/dist/registries/apis.js.map +1 -0
  270. package/dist/registries/apis.mjs +24 -0
  271. package/dist/registries/apis.mjs.map +1 -0
  272. package/dist/registries/components.js +43 -0
  273. package/dist/registries/components.js.map +1 -0
  274. package/dist/registries/components.mjs +41 -0
  275. package/dist/registries/components.mjs.map +1 -0
  276. package/dist/registries/content-types.js +65 -0
  277. package/dist/registries/content-types.js.map +1 -0
  278. package/dist/registries/content-types.mjs +63 -0
  279. package/dist/registries/content-types.mjs.map +1 -0
  280. package/dist/registries/controllers.js +79 -0
  281. package/dist/registries/controllers.js.map +1 -0
  282. package/dist/registries/controllers.mjs +77 -0
  283. package/dist/registries/controllers.mjs.map +1 -0
  284. package/dist/registries/custom-fields.js +81 -0
  285. package/dist/registries/custom-fields.js.map +1 -0
  286. package/dist/registries/custom-fields.mjs +79 -0
  287. package/dist/registries/custom-fields.mjs.map +1 -0
  288. package/dist/registries/hooks.js +55 -0
  289. package/dist/registries/hooks.js.map +1 -0
  290. package/dist/registries/hooks.mjs +53 -0
  291. package/dist/registries/hooks.mjs.map +1 -0
  292. package/dist/registries/middlewares.js +58 -0
  293. package/dist/registries/middlewares.js.map +1 -0
  294. package/dist/registries/middlewares.mjs +56 -0
  295. package/dist/registries/middlewares.mjs.map +1 -0
  296. package/dist/registries/models.js +17 -0
  297. package/dist/registries/models.js.map +1 -0
  298. package/dist/registries/models.mjs +15 -0
  299. package/dist/registries/models.mjs.map +1 -0
  300. package/dist/registries/modules.js +42 -0
  301. package/dist/registries/modules.js.map +1 -0
  302. package/dist/registries/modules.mjs +40 -0
  303. package/dist/registries/modules.mjs.map +1 -0
  304. package/dist/registries/namespace.js +28 -0
  305. package/dist/registries/namespace.js.map +1 -0
  306. package/dist/registries/namespace.mjs +24 -0
  307. package/dist/registries/namespace.mjs.map +1 -0
  308. package/dist/registries/plugins.js +26 -0
  309. package/dist/registries/plugins.js.map +1 -0
  310. package/dist/registries/plugins.mjs +24 -0
  311. package/dist/registries/plugins.mjs.map +1 -0
  312. package/dist/registries/policies.js +115 -0
  313. package/dist/registries/policies.js.map +1 -0
  314. package/dist/registries/policies.mjs +113 -0
  315. package/dist/registries/policies.mjs.map +1 -0
  316. package/dist/registries/sanitizers.js +26 -0
  317. package/dist/registries/sanitizers.js.map +1 -0
  318. package/dist/registries/sanitizers.mjs +24 -0
  319. package/dist/registries/sanitizers.mjs.map +1 -0
  320. package/dist/registries/services.js +80 -0
  321. package/dist/registries/services.js.map +1 -0
  322. package/dist/registries/services.mjs +78 -0
  323. package/dist/registries/services.mjs.map +1 -0
  324. package/dist/registries/validators.js +26 -0
  325. package/dist/registries/validators.js.map +1 -0
  326. package/dist/registries/validators.mjs +24 -0
  327. package/dist/registries/validators.mjs.map +1 -0
  328. package/dist/services/auth/index.js +81 -0
  329. package/dist/services/auth/index.js.map +1 -0
  330. package/dist/services/auth/index.mjs +79 -0
  331. package/dist/services/auth/index.mjs.map +1 -0
  332. package/dist/services/config.js +51 -0
  333. package/dist/services/config.js.map +1 -0
  334. package/dist/services/config.mjs +49 -0
  335. package/dist/services/config.mjs.map +1 -0
  336. package/dist/services/content-api/index.js +86 -0
  337. package/dist/services/content-api/index.js.map +1 -0
  338. package/dist/services/content-api/index.mjs +84 -0
  339. package/dist/services/content-api/index.mjs.map +1 -0
  340. package/dist/services/content-api/permissions/engine.js +10 -0
  341. package/dist/services/content-api/permissions/engine.js.map +1 -0
  342. package/dist/services/content-api/permissions/engine.mjs +8 -0
  343. package/dist/services/content-api/permissions/engine.mjs.map +1 -0
  344. package/dist/services/content-api/permissions/index.js +107 -0
  345. package/dist/services/content-api/permissions/index.js.map +1 -0
  346. package/dist/services/content-api/permissions/index.mjs +105 -0
  347. package/dist/services/content-api/permissions/index.mjs.map +1 -0
  348. package/dist/services/content-api/permissions/providers/action.js +19 -0
  349. package/dist/services/content-api/permissions/providers/action.js.map +1 -0
  350. package/dist/services/content-api/permissions/providers/action.mjs +17 -0
  351. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -0
  352. package/dist/services/content-api/permissions/providers/condition.js +19 -0
  353. package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
  354. package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
  355. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
  356. package/dist/services/core-store.js +127 -0
  357. package/dist/services/core-store.js.map +1 -0
  358. package/dist/services/core-store.mjs +124 -0
  359. package/dist/services/core-store.mjs.map +1 -0
  360. package/dist/services/cron.js +77 -0
  361. package/dist/services/cron.js.map +1 -0
  362. package/dist/services/cron.mjs +75 -0
  363. package/dist/services/cron.mjs.map +1 -0
  364. package/dist/services/custom-fields.js +12 -0
  365. package/dist/services/custom-fields.js.map +1 -0
  366. package/dist/services/custom-fields.mjs +10 -0
  367. package/dist/services/custom-fields.mjs.map +1 -0
  368. package/dist/services/document-service/attributes/index.js +27 -0
  369. package/dist/services/document-service/attributes/index.js.map +1 -0
  370. package/dist/services/document-service/attributes/index.mjs +25 -0
  371. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  372. package/dist/services/document-service/attributes/transforms.js +21 -0
  373. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  374. package/dist/services/document-service/attributes/transforms.mjs +19 -0
  375. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  376. package/dist/services/document-service/common.js +8 -0
  377. package/dist/services/document-service/common.js.map +1 -0
  378. package/dist/services/document-service/common.mjs +6 -0
  379. package/dist/services/document-service/common.mjs.map +1 -0
  380. package/dist/services/document-service/components.js +286 -0
  381. package/dist/services/document-service/components.js.map +1 -0
  382. package/dist/services/document-service/components.mjs +278 -0
  383. package/dist/services/document-service/components.mjs.map +1 -0
  384. package/dist/services/document-service/draft-and-publish.js +109 -0
  385. package/dist/services/document-service/draft-and-publish.js.map +1 -0
  386. package/dist/services/document-service/draft-and-publish.mjs +102 -0
  387. package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
  388. package/dist/services/document-service/entries.js +113 -0
  389. package/dist/services/document-service/entries.js.map +1 -0
  390. package/dist/services/document-service/entries.mjs +111 -0
  391. package/dist/services/document-service/entries.mjs.map +1 -0
  392. package/dist/services/document-service/events.js +59 -0
  393. package/dist/services/document-service/events.js.map +1 -0
  394. package/dist/services/document-service/events.mjs +57 -0
  395. package/dist/services/document-service/events.mjs.map +1 -0
  396. package/dist/services/document-service/index.js +56 -0
  397. package/dist/services/document-service/index.js.map +1 -0
  398. package/dist/services/document-service/index.mjs +54 -0
  399. package/dist/services/document-service/index.mjs.map +1 -0
  400. package/dist/services/document-service/internationalization.js +79 -0
  401. package/dist/services/document-service/internationalization.js.map +1 -0
  402. package/dist/services/document-service/internationalization.mjs +74 -0
  403. package/dist/services/document-service/internationalization.mjs.map +1 -0
  404. package/dist/services/document-service/middlewares/errors.js +29 -0
  405. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  406. package/dist/services/document-service/middlewares/errors.mjs +27 -0
  407. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  408. package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
  409. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  410. package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
  411. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  412. package/dist/services/document-service/params.js +14 -0
  413. package/dist/services/document-service/params.js.map +1 -0
  414. package/dist/services/document-service/params.mjs +12 -0
  415. package/dist/services/document-service/params.mjs.map +1 -0
  416. package/dist/services/document-service/repository.js +364 -0
  417. package/dist/services/document-service/repository.js.map +1 -0
  418. package/dist/services/document-service/repository.mjs +362 -0
  419. package/dist/services/document-service/repository.mjs.map +1 -0
  420. package/dist/services/document-service/transform/data.js +25 -0
  421. package/dist/services/document-service/transform/data.js.map +1 -0
  422. package/dist/services/document-service/transform/data.mjs +23 -0
  423. package/dist/services/document-service/transform/data.mjs.map +1 -0
  424. package/dist/services/document-service/transform/fields.js +33 -0
  425. package/dist/services/document-service/transform/fields.js.map +1 -0
  426. package/dist/services/document-service/transform/fields.mjs +31 -0
  427. package/dist/services/document-service/transform/fields.mjs.map +1 -0
  428. package/dist/services/document-service/transform/id-map.js +125 -0
  429. package/dist/services/document-service/transform/id-map.js.map +1 -0
  430. package/dist/services/document-service/transform/id-map.mjs +123 -0
  431. package/dist/services/document-service/transform/id-map.mjs.map +1 -0
  432. package/dist/services/document-service/transform/id-transform.js +41 -0
  433. package/dist/services/document-service/transform/id-transform.js.map +1 -0
  434. package/dist/services/document-service/transform/id-transform.mjs +39 -0
  435. package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
  436. package/dist/services/document-service/transform/populate.js +26 -0
  437. package/dist/services/document-service/transform/populate.js.map +1 -0
  438. package/dist/services/document-service/transform/populate.mjs +24 -0
  439. package/dist/services/document-service/transform/populate.mjs.map +1 -0
  440. package/dist/services/document-service/transform/query.js +14 -0
  441. package/dist/services/document-service/transform/query.js.map +1 -0
  442. package/dist/services/document-service/transform/query.mjs +12 -0
  443. package/dist/services/document-service/transform/query.mjs.map +1 -0
  444. package/dist/services/document-service/transform/relations/extract/data-ids.js +80 -0
  445. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
  446. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +78 -0
  447. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
  448. package/dist/services/document-service/transform/relations/transform/data-ids.js +110 -0
  449. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
  450. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +108 -0
  451. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
  452. package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
  453. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  454. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
  455. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  456. package/dist/services/document-service/transform/relations/utils/dp.js +56 -0
  457. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  458. package/dist/services/document-service/transform/relations/utils/dp.mjs +54 -0
  459. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  460. package/dist/services/document-service/transform/relations/utils/i18n.js +27 -0
  461. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
  462. package/dist/services/document-service/transform/relations/utils/i18n.mjs +23 -0
  463. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
  464. package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
  465. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  466. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
  467. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  468. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -1
  469. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  470. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  471. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  472. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  473. package/dist/services/document-service/utils/populate.js +71 -0
  474. package/dist/services/document-service/utils/populate.js.map +1 -0
  475. package/dist/services/document-service/utils/populate.mjs +69 -0
  476. package/dist/services/document-service/utils/populate.mjs.map +1 -0
  477. package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
  478. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  479. package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
  480. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  481. package/dist/services/entity-service/index.js +238 -0
  482. package/dist/services/entity-service/index.js.map +1 -0
  483. package/dist/services/entity-service/index.mjs +236 -0
  484. package/dist/services/entity-service/index.mjs.map +1 -0
  485. package/dist/services/entity-validator/blocks-validator.js +160 -0
  486. package/dist/services/entity-validator/blocks-validator.js.map +1 -0
  487. package/dist/services/entity-validator/blocks-validator.mjs +158 -0
  488. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
  489. package/dist/services/entity-validator/index.js +384 -0
  490. package/dist/services/entity-validator/index.js.map +1 -0
  491. package/dist/services/entity-validator/index.mjs +382 -0
  492. package/dist/services/entity-validator/index.mjs.map +1 -0
  493. package/dist/services/entity-validator/validators.js +299 -0
  494. package/dist/services/entity-validator/validators.js.map +1 -0
  495. package/dist/services/entity-validator/validators.mjs +290 -0
  496. package/dist/services/entity-validator/validators.mjs.map +1 -0
  497. package/dist/services/errors.js +76 -0
  498. package/dist/services/errors.js.map +1 -0
  499. package/dist/services/errors.mjs +72 -0
  500. package/dist/services/errors.mjs.map +1 -0
  501. package/dist/services/event-hub.js +85 -0
  502. package/dist/services/event-hub.js.map +1 -0
  503. package/dist/services/event-hub.mjs +83 -0
  504. package/dist/services/event-hub.mjs.map +1 -0
  505. package/dist/services/features.js +22 -0
  506. package/dist/services/features.js.map +1 -0
  507. package/dist/services/features.mjs +20 -0
  508. package/dist/services/features.mjs.map +1 -0
  509. package/dist/services/fs.js +52 -0
  510. package/dist/services/fs.js.map +1 -0
  511. package/dist/services/fs.mjs +50 -0
  512. package/dist/services/fs.mjs.map +1 -0
  513. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  514. package/dist/services/metrics/admin-user-hash.js +16 -0
  515. package/dist/services/metrics/admin-user-hash.js.map +1 -0
  516. package/dist/services/metrics/admin-user-hash.mjs +14 -0
  517. package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
  518. package/dist/services/metrics/index.js +51 -0
  519. package/dist/services/metrics/index.js.map +1 -0
  520. package/dist/services/metrics/index.mjs +49 -0
  521. package/dist/services/metrics/index.mjs.map +1 -0
  522. package/dist/services/metrics/is-truthy.js +16 -0
  523. package/dist/services/metrics/is-truthy.js.map +1 -0
  524. package/dist/services/metrics/is-truthy.mjs +14 -0
  525. package/dist/services/metrics/is-truthy.mjs.map +1 -0
  526. package/dist/services/metrics/middleware.js +40 -0
  527. package/dist/services/metrics/middleware.js.map +1 -0
  528. package/dist/services/metrics/middleware.mjs +38 -0
  529. package/dist/services/metrics/middleware.mjs.map +1 -0
  530. package/dist/services/metrics/rate-limiter.js +26 -0
  531. package/dist/services/metrics/rate-limiter.js.map +1 -0
  532. package/dist/services/metrics/rate-limiter.mjs +24 -0
  533. package/dist/services/metrics/rate-limiter.mjs.map +1 -0
  534. package/dist/services/metrics/sender.d.ts.map +1 -1
  535. package/dist/services/metrics/sender.js +85 -0
  536. package/dist/services/metrics/sender.js.map +1 -0
  537. package/dist/services/metrics/sender.mjs +83 -0
  538. package/dist/services/metrics/sender.mjs.map +1 -0
  539. package/dist/services/query-params.js +15 -0
  540. package/dist/services/query-params.js.map +1 -0
  541. package/dist/services/query-params.mjs +13 -0
  542. package/dist/services/query-params.mjs.map +1 -0
  543. package/dist/services/reloader.js +39 -0
  544. package/dist/services/reloader.js.map +1 -0
  545. package/dist/services/reloader.mjs +37 -0
  546. package/dist/services/reloader.mjs.map +1 -0
  547. package/dist/services/request-context.js +16 -0
  548. package/dist/services/request-context.js.map +1 -0
  549. package/dist/services/request-context.mjs +14 -0
  550. package/dist/services/request-context.mjs.map +1 -0
  551. package/dist/services/server/admin-api.js +14 -0
  552. package/dist/services/server/admin-api.js.map +1 -0
  553. package/dist/services/server/admin-api.mjs +12 -0
  554. package/dist/services/server/admin-api.mjs.map +1 -0
  555. package/dist/services/server/api.js +36 -0
  556. package/dist/services/server/api.js.map +1 -0
  557. package/dist/services/server/api.mjs +34 -0
  558. package/dist/services/server/api.mjs.map +1 -0
  559. package/dist/services/server/compose-endpoint.js +128 -0
  560. package/dist/services/server/compose-endpoint.js.map +1 -0
  561. package/dist/services/server/compose-endpoint.mjs +126 -0
  562. package/dist/services/server/compose-endpoint.mjs.map +1 -0
  563. package/dist/services/server/content-api.js +14 -0
  564. package/dist/services/server/content-api.js.map +1 -0
  565. package/dist/services/server/content-api.mjs +12 -0
  566. package/dist/services/server/content-api.mjs.map +1 -0
  567. package/dist/services/server/http-server.js +54 -0
  568. package/dist/services/server/http-server.js.map +1 -0
  569. package/dist/services/server/http-server.mjs +52 -0
  570. package/dist/services/server/http-server.mjs.map +1 -0
  571. package/dist/services/server/index.js +90 -0
  572. package/dist/services/server/index.js.map +1 -0
  573. package/dist/services/server/index.mjs +88 -0
  574. package/dist/services/server/index.mjs.map +1 -0
  575. package/dist/services/server/koa.js +54 -0
  576. package/dist/services/server/koa.js.map +1 -0
  577. package/dist/services/server/koa.mjs +52 -0
  578. package/dist/services/server/koa.mjs.map +1 -0
  579. package/dist/services/server/middleware.js +96 -0
  580. package/dist/services/server/middleware.js.map +1 -0
  581. package/dist/services/server/middleware.mjs +93 -0
  582. package/dist/services/server/middleware.mjs.map +1 -0
  583. package/dist/services/server/policy.js +27 -0
  584. package/dist/services/server/policy.js.map +1 -0
  585. package/dist/services/server/policy.mjs +25 -0
  586. package/dist/services/server/policy.mjs.map +1 -0
  587. package/dist/services/server/register-middlewares.js +79 -0
  588. package/dist/services/server/register-middlewares.js.map +1 -0
  589. package/dist/services/server/register-middlewares.mjs +77 -0
  590. package/dist/services/server/register-middlewares.mjs.map +1 -0
  591. package/dist/services/server/register-routes.js +99 -0
  592. package/dist/services/server/register-routes.js.map +1 -0
  593. package/dist/services/server/register-routes.mjs +97 -0
  594. package/dist/services/server/register-routes.mjs.map +1 -0
  595. package/dist/services/server/routing.js +104 -0
  596. package/dist/services/server/routing.js.map +1 -0
  597. package/dist/services/server/routing.mjs +101 -0
  598. package/dist/services/server/routing.mjs.map +1 -0
  599. package/dist/services/utils/dynamic-zones.js +16 -0
  600. package/dist/services/utils/dynamic-zones.js.map +1 -0
  601. package/dist/services/utils/dynamic-zones.mjs +14 -0
  602. package/dist/services/utils/dynamic-zones.mjs.map +1 -0
  603. package/dist/services/webhook-runner.js +135 -0
  604. package/dist/services/webhook-runner.js.map +1 -0
  605. package/dist/services/webhook-runner.mjs +133 -0
  606. package/dist/services/webhook-runner.mjs.map +1 -0
  607. package/dist/services/webhook-store.js +143 -0
  608. package/dist/services/webhook-store.js.map +1 -0
  609. package/dist/services/webhook-store.mjs +140 -0
  610. package/dist/services/webhook-store.mjs.map +1 -0
  611. package/dist/services/worker-queue.js +51 -0
  612. package/dist/services/worker-queue.js.map +1 -0
  613. package/dist/services/worker-queue.mjs +49 -0
  614. package/dist/services/worker-queue.mjs.map +1 -0
  615. package/dist/utils/convert-custom-field-type.js +21 -0
  616. package/dist/utils/convert-custom-field-type.js.map +1 -0
  617. package/dist/utils/convert-custom-field-type.mjs +19 -0
  618. package/dist/utils/convert-custom-field-type.mjs.map +1 -0
  619. package/dist/utils/cron.js +72 -0
  620. package/dist/utils/cron.js.map +1 -0
  621. package/dist/utils/cron.mjs +70 -0
  622. package/dist/utils/cron.mjs.map +1 -0
  623. package/dist/utils/fetch.js +27 -0
  624. package/dist/utils/fetch.js.map +1 -0
  625. package/dist/utils/fetch.mjs +25 -0
  626. package/dist/utils/fetch.mjs.map +1 -0
  627. package/dist/utils/filepath-to-prop-path.js +25 -0
  628. package/dist/utils/filepath-to-prop-path.js.map +1 -0
  629. package/dist/utils/filepath-to-prop-path.mjs +23 -0
  630. package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
  631. package/dist/utils/is-initialized.js +25 -0
  632. package/dist/utils/is-initialized.js.map +1 -0
  633. package/dist/utils/is-initialized.mjs +23 -0
  634. package/dist/utils/is-initialized.mjs.map +1 -0
  635. package/dist/utils/lifecycles.js +10 -0
  636. package/dist/utils/lifecycles.js.map +1 -0
  637. package/dist/utils/lifecycles.mjs +8 -0
  638. package/dist/utils/lifecycles.mjs.map +1 -0
  639. package/dist/utils/load-config-file.js +47 -0
  640. package/dist/utils/load-config-file.js.map +1 -0
  641. package/dist/utils/load-config-file.mjs +45 -0
  642. package/dist/utils/load-config-file.mjs.map +1 -0
  643. package/dist/utils/load-files.js +44 -0
  644. package/dist/utils/load-files.js.map +1 -0
  645. package/dist/utils/load-files.mjs +42 -0
  646. package/dist/utils/load-files.mjs.map +1 -0
  647. package/dist/utils/open-browser.js +11 -0
  648. package/dist/utils/open-browser.js.map +1 -0
  649. package/dist/utils/open-browser.mjs +9 -0
  650. package/dist/utils/open-browser.mjs.map +1 -0
  651. package/dist/utils/resolve-working-dirs.js +26 -0
  652. package/dist/utils/resolve-working-dirs.js.map +1 -0
  653. package/dist/utils/resolve-working-dirs.mjs +24 -0
  654. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  655. package/dist/utils/signals.js +23 -0
  656. package/dist/utils/signals.js.map +1 -0
  657. package/dist/utils/signals.mjs +21 -0
  658. package/dist/utils/signals.mjs.map +1 -0
  659. package/dist/utils/startup-logger.js +110 -0
  660. package/dist/utils/startup-logger.js.map +1 -0
  661. package/dist/utils/startup-logger.mjs +108 -0
  662. package/dist/utils/startup-logger.mjs.map +1 -0
  663. package/dist/utils/transform-content-types-to-models.js +377 -0
  664. package/dist/utils/transform-content-types-to-models.js.map +1 -0
  665. package/dist/utils/transform-content-types-to-models.mjs +365 -0
  666. package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
  667. package/dist/utils/update-notifier/index.js +80 -0
  668. package/dist/utils/update-notifier/index.js.map +1 -0
  669. package/dist/utils/update-notifier/index.mjs +78 -0
  670. package/dist/utils/update-notifier/index.mjs.map +1 -0
  671. package/package.json +12 -12
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+
3
+ var _ = require('lodash');
4
+ var strapiUtils = require('@strapi/utils');
5
+ var node_net = require('node:net');
6
+
7
+ const getConfigUrls = (config, forAdminBuild = false)=>{
8
+ const serverConfig = config.server;
9
+ const adminConfig = config.admin;
10
+ // Defines serverUrl value
11
+ let serverUrl = _.get(serverConfig, 'url', '');
12
+ serverUrl = _.trim(serverUrl, '/ ');
13
+ if (typeof serverUrl !== 'string') {
14
+ throw new Error('Invalid server url config. Make sure the url is a string.');
15
+ }
16
+ if (serverUrl.startsWith('http')) {
17
+ try {
18
+ serverUrl = _.trim(new URL(serverConfig.url).toString(), '/');
19
+ } catch (e) {
20
+ throw new Error('Invalid server url config. Make sure the url defined in server.js is valid.');
21
+ }
22
+ } else if (serverUrl !== '') {
23
+ serverUrl = `/${serverUrl}`;
24
+ }
25
+ // Defines adminUrl value
26
+ let adminUrl = _.get(adminConfig, 'url', '/admin');
27
+ adminUrl = _.trim(adminUrl, '/ ');
28
+ if (typeof adminUrl !== 'string') {
29
+ throw new Error('Invalid admin url config. Make sure the url is a non-empty string.');
30
+ }
31
+ if (adminUrl.startsWith('http')) {
32
+ try {
33
+ adminUrl = _.trim(new URL(adminUrl).toString(), '/');
34
+ } catch (e) {
35
+ throw new Error('Invalid admin url config. Make sure the url defined in server.js is valid.');
36
+ }
37
+ } else {
38
+ adminUrl = `${serverUrl}/${adminUrl}`;
39
+ }
40
+ // Defines adminPath value
41
+ let adminPath = adminUrl;
42
+ if (serverUrl.startsWith('http') && adminUrl.startsWith('http') && new URL(adminUrl).origin === new URL(serverUrl).origin && !forAdminBuild) {
43
+ adminPath = adminUrl.replace(strapiUtils.strings.getCommonPath(serverUrl, adminUrl), '');
44
+ adminPath = `/${_.trim(adminPath, '/')}`;
45
+ } else if (adminUrl.startsWith('http')) {
46
+ adminPath = new URL(adminUrl).pathname;
47
+ }
48
+ return {
49
+ serverUrl,
50
+ adminUrl,
51
+ adminPath
52
+ };
53
+ };
54
+ const getAbsoluteUrl = (adminOrServer)=>(config, forAdminBuild = false)=>{
55
+ const { serverUrl, adminUrl } = getConfigUrls(config, forAdminBuild);
56
+ const url = adminOrServer === 'server' ? serverUrl : adminUrl;
57
+ if (url.startsWith('http')) {
58
+ return url;
59
+ }
60
+ const serverConfig = config.server;
61
+ const isLocalhost = config.environment === 'development' && [
62
+ '127.0.0.1',
63
+ '0.0.0.0',
64
+ '::1',
65
+ '::'
66
+ ].includes(serverConfig.host);
67
+ if (isLocalhost) {
68
+ return `http://localhost:${serverConfig.port}${url}`;
69
+ }
70
+ if (node_net.isIP(serverConfig.host) === 6) {
71
+ return `http://[${serverConfig.host}]:${serverConfig.port}${url}`;
72
+ }
73
+ return `http://${serverConfig.host}:${serverConfig.port}${url}`;
74
+ };
75
+ const getAbsoluteAdminUrl = getAbsoluteUrl('admin');
76
+ const getAbsoluteServerUrl = getAbsoluteUrl('server');
77
+
78
+ exports.getAbsoluteAdminUrl = getAbsoluteAdminUrl;
79
+ exports.getAbsoluteServerUrl = getAbsoluteServerUrl;
80
+ exports.getConfigUrls = getConfigUrls;
81
+ //# sourceMappingURL=urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.js","sources":["../../src/configuration/urls.ts"],"sourcesContent":["import _ from 'lodash';\nimport { strings } from '@strapi/utils';\nimport { isIP } from 'node:net';\n\ninterface ServerConfig {\n url: string;\n host: string;\n port: number | string;\n}\n\nexport const getConfigUrls = (config: Record<string, unknown>, forAdminBuild = false) => {\n const serverConfig = config.server as ServerConfig;\n const adminConfig = config.admin;\n\n // Defines serverUrl value\n let serverUrl = _.get(serverConfig, 'url', '');\n serverUrl = _.trim(serverUrl, '/ ');\n if (typeof serverUrl !== 'string') {\n throw new Error('Invalid server url config. Make sure the url is a string.');\n }\n\n if (serverUrl.startsWith('http')) {\n try {\n serverUrl = _.trim(new URL(serverConfig.url).toString(), '/');\n } catch (e) {\n throw new Error(\n 'Invalid server url config. Make sure the url defined in server.js is valid.'\n );\n }\n } else if (serverUrl !== '') {\n serverUrl = `/${serverUrl}`;\n }\n\n // Defines adminUrl value\n let adminUrl = _.get(adminConfig, 'url', '/admin');\n adminUrl = _.trim(adminUrl, '/ ');\n if (typeof adminUrl !== 'string') {\n throw new Error('Invalid admin url config. Make sure the url is a non-empty string.');\n }\n if (adminUrl.startsWith('http')) {\n try {\n adminUrl = _.trim(new URL(adminUrl).toString(), '/');\n } catch (e) {\n throw new Error('Invalid admin url config. Make sure the url defined in server.js is valid.');\n }\n } else {\n adminUrl = `${serverUrl}/${adminUrl}`;\n }\n\n // Defines adminPath value\n let adminPath = adminUrl;\n if (\n serverUrl.startsWith('http') &&\n adminUrl.startsWith('http') &&\n new URL(adminUrl).origin === new URL(serverUrl).origin &&\n !forAdminBuild\n ) {\n adminPath = adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '');\n adminPath = `/${_.trim(adminPath, '/')}`;\n } else if (adminUrl.startsWith('http')) {\n adminPath = new URL(adminUrl).pathname;\n }\n\n return {\n serverUrl,\n adminUrl,\n adminPath,\n };\n};\n\nconst getAbsoluteUrl =\n (adminOrServer: 'admin' | 'server') =>\n (config: Record<string, unknown>, forAdminBuild = false) => {\n const { serverUrl, adminUrl } = getConfigUrls(config, forAdminBuild);\n const url = adminOrServer === 'server' ? serverUrl : adminUrl;\n\n if (url.startsWith('http')) {\n return url;\n }\n\n const serverConfig = config.server as ServerConfig;\n\n const isLocalhost =\n config.environment === 'development' &&\n ['127.0.0.1', '0.0.0.0', '::1', '::'].includes(serverConfig.host);\n\n if (isLocalhost) {\n return `http://localhost:${serverConfig.port}${url}`;\n }\n\n if (isIP(serverConfig.host) === 6) {\n return `http://[${serverConfig.host}]:${serverConfig.port}${url}`;\n }\n\n return `http://${serverConfig.host}:${serverConfig.port}${url}`;\n };\n\nexport const getAbsoluteAdminUrl = getAbsoluteUrl('admin');\nexport const getAbsoluteServerUrl = getAbsoluteUrl('server');\n"],"names":["getConfigUrls","config","forAdminBuild","serverConfig","server","adminConfig","admin","serverUrl","_","get","trim","Error","startsWith","URL","url","toString","e","adminUrl","adminPath","origin","replace","strings","getCommonPath","pathname","getAbsoluteUrl","adminOrServer","isLocalhost","environment","includes","host","port","isIP","getAbsoluteAdminUrl","getAbsoluteServerUrl"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import _ from 'lodash';
2
+ import { strings } from '@strapi/utils';
3
+ import { isIP } from 'node:net';
4
+
5
+ const getConfigUrls = (config, forAdminBuild = false)=>{
6
+ const serverConfig = config.server;
7
+ const adminConfig = config.admin;
8
+ // Defines serverUrl value
9
+ let serverUrl = _.get(serverConfig, 'url', '');
10
+ serverUrl = _.trim(serverUrl, '/ ');
11
+ if (typeof serverUrl !== 'string') {
12
+ throw new Error('Invalid server url config. Make sure the url is a string.');
13
+ }
14
+ if (serverUrl.startsWith('http')) {
15
+ try {
16
+ serverUrl = _.trim(new URL(serverConfig.url).toString(), '/');
17
+ } catch (e) {
18
+ throw new Error('Invalid server url config. Make sure the url defined in server.js is valid.');
19
+ }
20
+ } else if (serverUrl !== '') {
21
+ serverUrl = `/${serverUrl}`;
22
+ }
23
+ // Defines adminUrl value
24
+ let adminUrl = _.get(adminConfig, 'url', '/admin');
25
+ adminUrl = _.trim(adminUrl, '/ ');
26
+ if (typeof adminUrl !== 'string') {
27
+ throw new Error('Invalid admin url config. Make sure the url is a non-empty string.');
28
+ }
29
+ if (adminUrl.startsWith('http')) {
30
+ try {
31
+ adminUrl = _.trim(new URL(adminUrl).toString(), '/');
32
+ } catch (e) {
33
+ throw new Error('Invalid admin url config. Make sure the url defined in server.js is valid.');
34
+ }
35
+ } else {
36
+ adminUrl = `${serverUrl}/${adminUrl}`;
37
+ }
38
+ // Defines adminPath value
39
+ let adminPath = adminUrl;
40
+ if (serverUrl.startsWith('http') && adminUrl.startsWith('http') && new URL(adminUrl).origin === new URL(serverUrl).origin && !forAdminBuild) {
41
+ adminPath = adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '');
42
+ adminPath = `/${_.trim(adminPath, '/')}`;
43
+ } else if (adminUrl.startsWith('http')) {
44
+ adminPath = new URL(adminUrl).pathname;
45
+ }
46
+ return {
47
+ serverUrl,
48
+ adminUrl,
49
+ adminPath
50
+ };
51
+ };
52
+ const getAbsoluteUrl = (adminOrServer)=>(config, forAdminBuild = false)=>{
53
+ const { serverUrl, adminUrl } = getConfigUrls(config, forAdminBuild);
54
+ const url = adminOrServer === 'server' ? serverUrl : adminUrl;
55
+ if (url.startsWith('http')) {
56
+ return url;
57
+ }
58
+ const serverConfig = config.server;
59
+ const isLocalhost = config.environment === 'development' && [
60
+ '127.0.0.1',
61
+ '0.0.0.0',
62
+ '::1',
63
+ '::'
64
+ ].includes(serverConfig.host);
65
+ if (isLocalhost) {
66
+ return `http://localhost:${serverConfig.port}${url}`;
67
+ }
68
+ if (isIP(serverConfig.host) === 6) {
69
+ return `http://[${serverConfig.host}]:${serverConfig.port}${url}`;
70
+ }
71
+ return `http://${serverConfig.host}:${serverConfig.port}${url}`;
72
+ };
73
+ const getAbsoluteAdminUrl = getAbsoluteUrl('admin');
74
+ const getAbsoluteServerUrl = getAbsoluteUrl('server');
75
+
76
+ export { getAbsoluteAdminUrl, getAbsoluteServerUrl, getConfigUrls };
77
+ //# sourceMappingURL=urls.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.mjs","sources":["../../src/configuration/urls.ts"],"sourcesContent":["import _ from 'lodash';\nimport { strings } from '@strapi/utils';\nimport { isIP } from 'node:net';\n\ninterface ServerConfig {\n url: string;\n host: string;\n port: number | string;\n}\n\nexport const getConfigUrls = (config: Record<string, unknown>, forAdminBuild = false) => {\n const serverConfig = config.server as ServerConfig;\n const adminConfig = config.admin;\n\n // Defines serverUrl value\n let serverUrl = _.get(serverConfig, 'url', '');\n serverUrl = _.trim(serverUrl, '/ ');\n if (typeof serverUrl !== 'string') {\n throw new Error('Invalid server url config. Make sure the url is a string.');\n }\n\n if (serverUrl.startsWith('http')) {\n try {\n serverUrl = _.trim(new URL(serverConfig.url).toString(), '/');\n } catch (e) {\n throw new Error(\n 'Invalid server url config. Make sure the url defined in server.js is valid.'\n );\n }\n } else if (serverUrl !== '') {\n serverUrl = `/${serverUrl}`;\n }\n\n // Defines adminUrl value\n let adminUrl = _.get(adminConfig, 'url', '/admin');\n adminUrl = _.trim(adminUrl, '/ ');\n if (typeof adminUrl !== 'string') {\n throw new Error('Invalid admin url config. Make sure the url is a non-empty string.');\n }\n if (adminUrl.startsWith('http')) {\n try {\n adminUrl = _.trim(new URL(adminUrl).toString(), '/');\n } catch (e) {\n throw new Error('Invalid admin url config. Make sure the url defined in server.js is valid.');\n }\n } else {\n adminUrl = `${serverUrl}/${adminUrl}`;\n }\n\n // Defines adminPath value\n let adminPath = adminUrl;\n if (\n serverUrl.startsWith('http') &&\n adminUrl.startsWith('http') &&\n new URL(adminUrl).origin === new URL(serverUrl).origin &&\n !forAdminBuild\n ) {\n adminPath = adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '');\n adminPath = `/${_.trim(adminPath, '/')}`;\n } else if (adminUrl.startsWith('http')) {\n adminPath = new URL(adminUrl).pathname;\n }\n\n return {\n serverUrl,\n adminUrl,\n adminPath,\n };\n};\n\nconst getAbsoluteUrl =\n (adminOrServer: 'admin' | 'server') =>\n (config: Record<string, unknown>, forAdminBuild = false) => {\n const { serverUrl, adminUrl } = getConfigUrls(config, forAdminBuild);\n const url = adminOrServer === 'server' ? serverUrl : adminUrl;\n\n if (url.startsWith('http')) {\n return url;\n }\n\n const serverConfig = config.server as ServerConfig;\n\n const isLocalhost =\n config.environment === 'development' &&\n ['127.0.0.1', '0.0.0.0', '::1', '::'].includes(serverConfig.host);\n\n if (isLocalhost) {\n return `http://localhost:${serverConfig.port}${url}`;\n }\n\n if (isIP(serverConfig.host) === 6) {\n return `http://[${serverConfig.host}]:${serverConfig.port}${url}`;\n }\n\n return `http://${serverConfig.host}:${serverConfig.port}${url}`;\n };\n\nexport const getAbsoluteAdminUrl = getAbsoluteUrl('admin');\nexport const getAbsoluteServerUrl = getAbsoluteUrl('server');\n"],"names":["getConfigUrls","config","forAdminBuild","serverConfig","server","adminConfig","admin","serverUrl","_","get","trim","Error","startsWith","URL","url","toString","e","adminUrl","adminPath","origin","replace","strings","getCommonPath","pathname","getAbsoluteUrl","adminOrServer","isLocalhost","environment","includes","host","port","isIP","getAbsoluteAdminUrl","getAbsoluteServerUrl"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ class Container {
4
+ add(name, resolver) {
5
+ if (this.registerMap.has(name)) {
6
+ throw new Error(`Cannot register already registered service ${name}`);
7
+ }
8
+ this.registerMap.set(name, resolver);
9
+ return this;
10
+ }
11
+ get(name, args) {
12
+ // TODO: handle singleton vs instantiation everytime
13
+ if (this.serviceMap.has(name)) {
14
+ return this.serviceMap.get(name);
15
+ }
16
+ if (this.registerMap.has(name)) {
17
+ const resolver = this.registerMap.get(name);
18
+ if (typeof resolver === 'function') {
19
+ this.serviceMap.set(name, resolver(this, args));
20
+ } else {
21
+ this.serviceMap.set(name, resolver);
22
+ }
23
+ return this.serviceMap.get(name);
24
+ }
25
+ throw new Error(`Could not resolve service ${name}`);
26
+ }
27
+ constructor(){
28
+ this.registerMap = new Map();
29
+ this.serviceMap = new Map();
30
+ }
31
+ }
32
+
33
+ exports.Container = Container;
34
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sources":["../src/container.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport class Container implements Core.Container {\n private registerMap = new Map<string, unknown>();\n\n private serviceMap = new Map();\n\n add(name: string, resolver: unknown) {\n if (this.registerMap.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n this.registerMap.set(name, resolver);\n return this;\n }\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs instantiation everytime\n if (this.serviceMap.has(name)) {\n return this.serviceMap.get(name);\n }\n\n if (this.registerMap.has(name)) {\n const resolver = this.registerMap.get(name);\n\n if (typeof resolver === 'function') {\n this.serviceMap.set(name, resolver(this, args));\n } else {\n this.serviceMap.set(name, resolver);\n }\n\n return this.serviceMap.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n }\n}\n"],"names":["Container","add","name","resolver","registerMap","has","Error","set","get","args","serviceMap","Map"],"mappings":";;AAEO,MAAMA,SAAAA,CAAAA;IAKXC,GAAIC,CAAAA,IAAY,EAAEC,QAAiB,EAAE;AACnC,QAAA,IAAI,IAAI,CAACC,WAAW,CAACC,GAAG,CAACH,IAAO,CAAA,EAAA;AAC9B,YAAA,MAAM,IAAII,KAAM,CAAA,CAAC,2CAA2C,EAAEJ,KAAK,CAAC,CAAA;AACtE;AAEA,QAAA,IAAI,CAACE,WAAW,CAACG,GAAG,CAACL,IAAMC,EAAAA,QAAAA,CAAAA;AAC3B,QAAA,OAAO,IAAI;AACb;IAEAK,GAAIN,CAAAA,IAAY,EAAEO,IAAc,EAAE;;AAEhC,QAAA,IAAI,IAAI,CAACC,UAAU,CAACL,GAAG,CAACH,IAAO,CAAA,EAAA;AAC7B,YAAA,OAAO,IAAI,CAACQ,UAAU,CAACF,GAAG,CAACN,IAAAA,CAAAA;AAC7B;AAEA,QAAA,IAAI,IAAI,CAACE,WAAW,CAACC,GAAG,CAACH,IAAO,CAAA,EAAA;AAC9B,YAAA,MAAMC,WAAW,IAAI,CAACC,WAAW,CAACI,GAAG,CAACN,IAAAA,CAAAA;YAEtC,IAAI,OAAOC,aAAa,UAAY,EAAA;gBAClC,IAAI,CAACO,UAAU,CAACH,GAAG,CAACL,IAAMC,EAAAA,QAAAA,CAAS,IAAI,EAAEM,IAAAA,CAAAA,CAAAA;aACpC,MAAA;AACL,gBAAA,IAAI,CAACC,UAAU,CAACH,GAAG,CAACL,IAAMC,EAAAA,QAAAA,CAAAA;AAC5B;AAEA,YAAA,OAAO,IAAI,CAACO,UAAU,CAACF,GAAG,CAACN,IAAAA,CAAAA;AAC7B;AAEA,QAAA,MAAM,IAAII,KAAM,CAAA,CAAC,0BAA0B,EAAEJ,KAAK,CAAC,CAAA;AACrD;;AAhCQE,QAAAA,IAAAA,CAAAA,WAAAA,GAAc,IAAIO,GAAAA,EAAAA;AAElBD,QAAAA,IAAAA,CAAAA,UAAAA,GAAa,IAAIC,GAAAA,EAAAA;;AA+B3B;;;;"}
@@ -0,0 +1,32 @@
1
+ class Container {
2
+ add(name, resolver) {
3
+ if (this.registerMap.has(name)) {
4
+ throw new Error(`Cannot register already registered service ${name}`);
5
+ }
6
+ this.registerMap.set(name, resolver);
7
+ return this;
8
+ }
9
+ get(name, args) {
10
+ // TODO: handle singleton vs instantiation everytime
11
+ if (this.serviceMap.has(name)) {
12
+ return this.serviceMap.get(name);
13
+ }
14
+ if (this.registerMap.has(name)) {
15
+ const resolver = this.registerMap.get(name);
16
+ if (typeof resolver === 'function') {
17
+ this.serviceMap.set(name, resolver(this, args));
18
+ } else {
19
+ this.serviceMap.set(name, resolver);
20
+ }
21
+ return this.serviceMap.get(name);
22
+ }
23
+ throw new Error(`Could not resolve service ${name}`);
24
+ }
25
+ constructor(){
26
+ this.registerMap = new Map();
27
+ this.serviceMap = new Map();
28
+ }
29
+ }
30
+
31
+ export { Container };
32
+ //# sourceMappingURL=container.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.mjs","sources":["../src/container.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport class Container implements Core.Container {\n private registerMap = new Map<string, unknown>();\n\n private serviceMap = new Map();\n\n add(name: string, resolver: unknown) {\n if (this.registerMap.has(name)) {\n throw new Error(`Cannot register already registered service ${name}`);\n }\n\n this.registerMap.set(name, resolver);\n return this;\n }\n\n get(name: string, args?: unknown) {\n // TODO: handle singleton vs instantiation everytime\n if (this.serviceMap.has(name)) {\n return this.serviceMap.get(name);\n }\n\n if (this.registerMap.has(name)) {\n const resolver = this.registerMap.get(name);\n\n if (typeof resolver === 'function') {\n this.serviceMap.set(name, resolver(this, args));\n } else {\n this.serviceMap.set(name, resolver);\n }\n\n return this.serviceMap.get(name);\n }\n\n throw new Error(`Could not resolve service ${name}`);\n }\n}\n"],"names":["Container","add","name","resolver","registerMap","has","Error","set","get","args","serviceMap","Map"],"mappings":"AAEO,MAAMA,SAAAA,CAAAA;IAKXC,GAAIC,CAAAA,IAAY,EAAEC,QAAiB,EAAE;AACnC,QAAA,IAAI,IAAI,CAACC,WAAW,CAACC,GAAG,CAACH,IAAO,CAAA,EAAA;AAC9B,YAAA,MAAM,IAAII,KAAM,CAAA,CAAC,2CAA2C,EAAEJ,KAAK,CAAC,CAAA;AACtE;AAEA,QAAA,IAAI,CAACE,WAAW,CAACG,GAAG,CAACL,IAAMC,EAAAA,QAAAA,CAAAA;AAC3B,QAAA,OAAO,IAAI;AACb;IAEAK,GAAIN,CAAAA,IAAY,EAAEO,IAAc,EAAE;;AAEhC,QAAA,IAAI,IAAI,CAACC,UAAU,CAACL,GAAG,CAACH,IAAO,CAAA,EAAA;AAC7B,YAAA,OAAO,IAAI,CAACQ,UAAU,CAACF,GAAG,CAACN,IAAAA,CAAAA;AAC7B;AAEA,QAAA,IAAI,IAAI,CAACE,WAAW,CAACC,GAAG,CAACH,IAAO,CAAA,EAAA;AAC9B,YAAA,MAAMC,WAAW,IAAI,CAACC,WAAW,CAACI,GAAG,CAACN,IAAAA,CAAAA;YAEtC,IAAI,OAAOC,aAAa,UAAY,EAAA;gBAClC,IAAI,CAACO,UAAU,CAACH,GAAG,CAACL,IAAMC,EAAAA,QAAAA,CAAS,IAAI,EAAEM,IAAAA,CAAAA,CAAAA;aACpC,MAAA;AACL,gBAAA,IAAI,CAACC,UAAU,CAACH,GAAG,CAACL,IAAMC,EAAAA,QAAAA,CAAAA;AAC5B;AAEA,YAAA,OAAO,IAAI,CAACO,UAAU,CAACF,GAAG,CAACN,IAAAA,CAAAA;AAC7B;AAEA,QAAA,MAAM,IAAII,KAAM,CAAA,CAAC,0BAA0B,EAAEJ,KAAK,CAAC,CAAA;AACrD;;AAhCQE,QAAAA,IAAAA,CAAAA,WAAAA,GAAc,IAAIO,GAAAA,EAAAA;AAElBD,QAAAA,IAAAA,CAAAA,UAAAA,GAAa,IAAIC,GAAAA,EAAAA;;AA+B3B;;;;"}
@@ -0,0 +1,85 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var strapiUtils = require('@strapi/utils');
5
+
6
+ /**
7
+ *
8
+ * Returns a collection type controller to handle default core-api actions
9
+ */ const createCollectionTypeController = ({ contentType })=>{
10
+ const uid = contentType.uid;
11
+ // TODO: transform into a class
12
+ return {
13
+ /**
14
+ * Retrieve records.
15
+ */ async find (ctx) {
16
+ await this.validateQuery(ctx);
17
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
18
+ const { results, pagination } = await strapi.service(uid).find(sanitizedQuery);
19
+ const sanitizedResults = await this.sanitizeOutput(results, ctx);
20
+ return this.transformResponse(sanitizedResults, {
21
+ pagination
22
+ });
23
+ },
24
+ /**
25
+ * Retrieve a record
26
+ */ async findOne (ctx) {
27
+ const { id } = ctx.params;
28
+ await this.validateQuery(ctx);
29
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
30
+ const entity = await strapi.service(uid).findOne(id, sanitizedQuery);
31
+ const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
32
+ return this.transformResponse(sanitizedEntity);
33
+ },
34
+ /**
35
+ * Create a record.
36
+ */ async create (ctx) {
37
+ await this.validateQuery(ctx);
38
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
39
+ const { body = {} } = ctx.request;
40
+ if (!fp.isObject(body.data)) {
41
+ throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
42
+ }
43
+ await this.validateInput(body.data, ctx);
44
+ const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
45
+ const entity = await strapi.service(uid).create({
46
+ ...sanitizedQuery,
47
+ data: sanitizedInputData
48
+ });
49
+ const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
50
+ ctx.status = 201;
51
+ return this.transformResponse(sanitizedEntity);
52
+ },
53
+ /**
54
+ * Update a record.
55
+ */ async update (ctx) {
56
+ const { id } = ctx.params;
57
+ await this.validateQuery(ctx);
58
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
59
+ const { body = {} } = ctx.request;
60
+ if (!fp.isObject(body.data)) {
61
+ throw new strapiUtils.errors.ValidationError('Missing "data" payload in the request body');
62
+ }
63
+ await this.validateInput(body.data, ctx);
64
+ const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
65
+ const entity = await strapi.service(uid).update(id, {
66
+ ...sanitizedQuery,
67
+ data: sanitizedInputData
68
+ });
69
+ const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
70
+ return this.transformResponse(sanitizedEntity);
71
+ },
72
+ /**
73
+ * Destroy a record.
74
+ */ async delete (ctx) {
75
+ const { id } = ctx.params;
76
+ await this.validateQuery(ctx);
77
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
78
+ await strapi.service(uid).delete(id, sanitizedQuery);
79
+ ctx.status = 204;
80
+ }
81
+ };
82
+ };
83
+
84
+ exports.createCollectionTypeController = createCollectionTypeController;
85
+ //# sourceMappingURL=collection-type.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,83 @@
1
+ import { isObject } from 'lodash/fp';
2
+ import { errors } from '@strapi/utils';
3
+
4
+ /**
5
+ *
6
+ * Returns a collection type controller to handle default core-api actions
7
+ */ const createCollectionTypeController = ({ contentType })=>{
8
+ const uid = contentType.uid;
9
+ // TODO: transform into a class
10
+ return {
11
+ /**
12
+ * Retrieve records.
13
+ */ async find (ctx) {
14
+ await this.validateQuery(ctx);
15
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
16
+ const { results, pagination } = await strapi.service(uid).find(sanitizedQuery);
17
+ const sanitizedResults = await this.sanitizeOutput(results, ctx);
18
+ return this.transformResponse(sanitizedResults, {
19
+ pagination
20
+ });
21
+ },
22
+ /**
23
+ * Retrieve a record
24
+ */ async findOne (ctx) {
25
+ const { id } = ctx.params;
26
+ await this.validateQuery(ctx);
27
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
28
+ const entity = await strapi.service(uid).findOne(id, sanitizedQuery);
29
+ const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
30
+ return this.transformResponse(sanitizedEntity);
31
+ },
32
+ /**
33
+ * Create a record.
34
+ */ async create (ctx) {
35
+ await this.validateQuery(ctx);
36
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
37
+ const { body = {} } = ctx.request;
38
+ if (!isObject(body.data)) {
39
+ throw new errors.ValidationError('Missing "data" payload in the request body');
40
+ }
41
+ await this.validateInput(body.data, ctx);
42
+ const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
43
+ const entity = await strapi.service(uid).create({
44
+ ...sanitizedQuery,
45
+ data: sanitizedInputData
46
+ });
47
+ const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
48
+ ctx.status = 201;
49
+ return this.transformResponse(sanitizedEntity);
50
+ },
51
+ /**
52
+ * Update a record.
53
+ */ async update (ctx) {
54
+ const { id } = ctx.params;
55
+ await this.validateQuery(ctx);
56
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
57
+ const { body = {} } = ctx.request;
58
+ if (!isObject(body.data)) {
59
+ throw new errors.ValidationError('Missing "data" payload in the request body');
60
+ }
61
+ await this.validateInput(body.data, ctx);
62
+ const sanitizedInputData = await this.sanitizeInput(body.data, ctx);
63
+ const entity = await strapi.service(uid).update(id, {
64
+ ...sanitizedQuery,
65
+ data: sanitizedInputData
66
+ });
67
+ const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
68
+ return this.transformResponse(sanitizedEntity);
69
+ },
70
+ /**
71
+ * Destroy a record.
72
+ */ async delete (ctx) {
73
+ const { id } = ctx.params;
74
+ await this.validateQuery(ctx);
75
+ const sanitizedQuery = await this.sanitizeQuery(ctx);
76
+ await strapi.service(uid).delete(id, sanitizedQuery);
77
+ ctx.status = 204;
78
+ }
79
+ };
80
+ };
81
+
82
+ export { createCollectionTypeController };
83
+ //# sourceMappingURL=collection-type.mjs.map
@@ -0,0 +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":";;;AASA;;;AAGC,IACKA,MAAAA,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,cAAiB,GAAA,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEI,OAAO,EAAEC,UAAU,EAAE,GAAG,MAAMC,MAAAA,CAAOC,OAAO,CAACT,GAAKC,CAAAA,CAAAA,IAAI,CAACG,cAAAA,CAAAA;AAC/D,YAAA,MAAMM,mBAAmB,MAAM,IAAI,CAACC,cAAc,CAACL,OAASJ,EAAAA,GAAAA,CAAAA;AAC5D,YAAA,OAAO,IAAI,CAACU,iBAAiB,CAACF,gBAAkB,EAAA;AAAEH,gBAAAA;AAAW,aAAA,CAAA;AAC/D,SAAA;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,cAAiB,GAAA,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;YAEhD,MAAMc,MAAAA,GAAS,MAAMR,MAAOC,CAAAA,OAAO,CAACT,GAAKa,CAAAA,CAAAA,OAAO,CAACC,EAAIV,EAAAA,cAAAA,CAAAA;AACrD,YAAA,MAAMa,kBAAkB,MAAM,IAAI,CAACN,cAAc,CAACK,MAAQd,EAAAA,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACU,iBAAiB,CAACK,eAAAA,CAAAA;AAChC,SAAA;AAEA;;QAGA,MAAMC,QAAOhB,GAAG,EAAA;YACd,MAAM,IAAI,CAACC,aAAa,CAACD,GAAAA,CAAAA;AACzB,YAAA,MAAME,cAAiB,GAAA,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEiB,IAAO,GAAA,EAAS,EAAE,GAAGjB,IAAIkB,OAAO;AAExC,YAAA,IAAI,CAACC,QAAAA,CAASF,IAAKG,CAAAA,IAAI,CAAG,EAAA;gBACxB,MAAM,IAAIC,MAAOC,CAAAA,eAAe,CAAC,4CAAA,CAAA;AACnC;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,IAAMI,EAAAA;AACR,aAAA,CAAA;AAEA,YAAA,MAAMT,kBAAkB,MAAM,IAAI,CAACN,cAAc,CAACK,MAAQd,EAAAA,GAAAA,CAAAA;AAE1DA,YAAAA,GAAAA,CAAI0B,MAAM,GAAG,GAAA;YACb,OAAO,IAAI,CAAChB,iBAAiB,CAACK,eAAAA,CAAAA;AAChC,SAAA;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,cAAiB,GAAA,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAM,EAAEiB,IAAO,GAAA,EAAS,EAAE,GAAGjB,IAAIkB,OAAO;AAExC,YAAA,IAAI,CAACC,QAAAA,CAASF,IAAKG,CAAAA,IAAI,CAAG,EAAA;gBACxB,MAAM,IAAIC,MAAOC,CAAAA,eAAe,CAAC,4CAAA,CAAA;AACnC;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,MAAOC,CAAAA,OAAO,CAACT,GAAK6B,CAAAA,CAAAA,MAAM,CAACf,EAAI,EAAA;AAClD,gBAAA,GAAGV,cAAc;gBACjBkB,IAAMI,EAAAA;AACR,aAAA,CAAA;AAEA,YAAA,MAAMT,kBAAkB,MAAM,IAAI,CAACN,cAAc,CAACK,MAAQd,EAAAA,GAAAA,CAAAA;YAE1D,OAAO,IAAI,CAACU,iBAAiB,CAACK,eAAAA,CAAAA;AAChC,SAAA;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,cAAiB,GAAA,MAAM,IAAI,CAACC,aAAa,CAACH,GAAAA,CAAAA;AAEhD,YAAA,MAAMM,OAAOC,OAAO,CAACT,GAAK8B,CAAAA,CAAAA,MAAM,CAAChB,EAAIV,EAAAA,cAAAA,CAAAA;AAErCF,YAAAA,GAAAA,CAAI0B,MAAM,GAAG,GAAA;AACf;AACF,KAAA;AACF;;;;"}
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var strapiUtils = require('@strapi/utils');
5
+ var transform = require('./transform.js');
6
+ var singleType = require('./single-type.js');
7
+ var collectionType = require('./collection-type.js');
8
+ var requestContext = require('../../services/request-context.js');
9
+
10
+ const isSingleType = (contentType)=>strapiUtils.contentTypes.isSingleType(contentType);
11
+ const getAuthFromKoaContext = (ctx)=>fp.prop('state.auth', ctx) ?? {};
12
+ function createController({ contentType }) {
13
+ // TODO: replace with Base class + SingleType and CollectionType classes
14
+ const proto = {
15
+ transformResponse (data, meta) {
16
+ const ctx = requestContext.get();
17
+ return transform.transformResponse(data, meta, {
18
+ contentType,
19
+ useJsonAPIFormat: ctx?.headers?.['strapi-response-format'] === 'v4'
20
+ });
21
+ },
22
+ async sanitizeOutput (data, ctx) {
23
+ const auth = getAuthFromKoaContext(ctx);
24
+ return strapi.contentAPI.sanitize.output(data, contentType, {
25
+ auth
26
+ });
27
+ },
28
+ async sanitizeInput (data, ctx) {
29
+ const auth = getAuthFromKoaContext(ctx);
30
+ return strapi.contentAPI.sanitize.input(data, contentType, {
31
+ auth
32
+ });
33
+ },
34
+ async sanitizeQuery (ctx) {
35
+ const auth = getAuthFromKoaContext(ctx);
36
+ return strapi.contentAPI.sanitize.query(ctx.query, contentType, {
37
+ auth
38
+ });
39
+ },
40
+ async validateQuery (ctx) {
41
+ const auth = getAuthFromKoaContext(ctx);
42
+ return strapi.contentAPI.validate.query(ctx.query, contentType, {
43
+ auth
44
+ });
45
+ },
46
+ async validateInput (data, ctx) {
47
+ const auth = getAuthFromKoaContext(ctx);
48
+ return strapi.contentAPI.validate.input(data, contentType, {
49
+ auth
50
+ });
51
+ }
52
+ };
53
+ let ctrl;
54
+ if (isSingleType(contentType)) {
55
+ ctrl = singleType.createSingleTypeController({
56
+ contentType
57
+ });
58
+ } else {
59
+ ctrl = collectionType.createCollectionTypeController({
60
+ contentType
61
+ });
62
+ }
63
+ return Object.assign(Object.create(proto), ctrl);
64
+ }
65
+
66
+ exports.createController = createController;
67
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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\nfunction createController<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Controller.SingleType\n : Core.CoreAPI.Controller.CollectionType;\nfunction createController({\n contentType,\n}: {\n contentType: Struct.SingleTypeSchema | Struct.CollectionTypeSchema;\n}) {\n // TODO: replace with Base class + SingleType and CollectionType classes\n\n const proto: Core.CoreAPI.Controller.Base = {\n transformResponse(data, meta) {\n const ctx = requestCtx.get();\n return transformResponse(data, meta, {\n contentType,\n useJsonAPIFormat: ctx?.headers?.['strapi-response-format'] === 'v4',\n });\n },\n\n async sanitizeOutput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.output(data, contentType, { auth });\n },\n\n async sanitizeInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.input(data, contentType, { auth });\n },\n\n async sanitizeQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.query(ctx.query, contentType, { auth });\n },\n\n async validateQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.validate.query(ctx.query, contentType, { auth });\n },\n\n async validateInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.validate.input(data, contentType, { auth });\n },\n };\n\n let ctrl;\n\n if (isSingleType(contentType)) {\n ctrl = createSingleTypeController({ contentType });\n } else {\n ctrl = createCollectionTypeController({ contentType });\n }\n\n return Object.assign(Object.create(proto), ctrl);\n}\n\nexport { createController };\n"],"names":["isSingleType","contentType","contentTypeUtils","getAuthFromKoaContext","ctx","prop","createController","proto","transformResponse","data","meta","requestCtx","get","useJsonAPIFormat","headers","sanitizeOutput","auth","strapi","contentAPI","sanitize","output","sanitizeInput","input","sanitizeQuery","query","validateQuery","validate","validateInput","ctrl","createSingleTypeController","createCollectionTypeController","Object","assign","create"],"mappings":";;;;;;;;;AAUA,MAAMA,YAAe,GAAA,CACnBC,WAC2CC,GAAAA,wBAAAA,CAAiBF,YAAY,CAACC,WAAAA,CAAAA;AAE3E,MAAME,wBAAwB,CAACC,GAAAA,GAAqBC,OAAK,CAAA,YAAA,EAAcD,QAAQ,EAAC;AAOhF,SAASE,gBAAAA,CAAiB,EACxBL,WAAW,EAGZ,EAAA;;AAGC,IAAA,MAAMM,KAAsC,GAAA;QAC1CC,iBAAkBC,CAAAA,CAAAA,IAAI,EAAEC,IAAI,EAAA;YAC1B,MAAMN,GAAAA,GAAMO,eAAWC,GAAG,EAAA;YAC1B,OAAOJ,2BAAAA,CAAkBC,MAAMC,IAAM,EAAA;AACnCT,gBAAAA,WAAAA;AACAY,gBAAAA,gBAAAA,EAAkBT,GAAKU,EAAAA,OAAAA,GAAU,wBAAA,CAAyB,KAAK;AACjE,aAAA,CAAA;AACF,SAAA;QAEA,MAAMC,cAAAA,CAAAA,CAAeN,IAAI,EAAEL,GAAG,EAAA;AAC5B,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACC,QAAQ,CAACC,MAAM,CAACX,MAAMR,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACrE,SAAA;QAEA,MAAMK,aAAAA,CAAAA,CAAcZ,IAAI,EAAEL,GAAG,EAAA;AAC3B,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACC,QAAQ,CAACG,KAAK,CAACb,MAAMR,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACpE,SAAA;AAEA,QAAA,MAAMO,eAAcnB,GAAG,EAAA;AACrB,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACC,QAAQ,CAACK,KAAK,CAACpB,GAAAA,CAAIoB,KAAK,EAAEvB,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACzE,SAAA;AAEA,QAAA,MAAMS,eAAcrB,GAAG,EAAA;AACrB,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACQ,QAAQ,CAACF,KAAK,CAACpB,GAAAA,CAAIoB,KAAK,EAAEvB,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACzE,SAAA;QAEA,MAAMW,aAAAA,CAAAA,CAAclB,IAAI,EAAEL,GAAG,EAAA;AAC3B,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACQ,QAAQ,CAACJ,KAAK,CAACb,MAAMR,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACpE;AACF,KAAA;IAEA,IAAIY,IAAAA;AAEJ,IAAA,IAAI5B,aAAaC,WAAc,CAAA,EAAA;AAC7B2B,QAAAA,IAAAA,GAAOC,qCAA2B,CAAA;AAAE5B,YAAAA;AAAY,SAAA,CAAA;KAC3C,MAAA;AACL2B,QAAAA,IAAAA,GAAOE,6CAA+B,CAAA;AAAE7B,YAAAA;AAAY,SAAA,CAAA;AACtD;AAEA,IAAA,OAAO8B,OAAOC,MAAM,CAACD,MAAOE,CAAAA,MAAM,CAAC1B,KAAQqB,CAAAA,EAAAA,IAAAA,CAAAA;AAC7C;;;;"}
@@ -0,0 +1,65 @@
1
+ import { prop } from 'lodash/fp';
2
+ import { contentTypes } from '@strapi/utils';
3
+ import { transformResponse } from './transform.mjs';
4
+ import { createSingleTypeController } from './single-type.mjs';
5
+ import { createCollectionTypeController } from './collection-type.mjs';
6
+ import requestCtx from '../../services/request-context.mjs';
7
+
8
+ const isSingleType = (contentType)=>contentTypes.isSingleType(contentType);
9
+ const getAuthFromKoaContext = (ctx)=>prop('state.auth', ctx) ?? {};
10
+ function createController({ contentType }) {
11
+ // TODO: replace with Base class + SingleType and CollectionType classes
12
+ const proto = {
13
+ transformResponse (data, meta) {
14
+ const ctx = requestCtx.get();
15
+ return transformResponse(data, meta, {
16
+ contentType,
17
+ useJsonAPIFormat: ctx?.headers?.['strapi-response-format'] === 'v4'
18
+ });
19
+ },
20
+ async sanitizeOutput (data, ctx) {
21
+ const auth = getAuthFromKoaContext(ctx);
22
+ return strapi.contentAPI.sanitize.output(data, contentType, {
23
+ auth
24
+ });
25
+ },
26
+ async sanitizeInput (data, ctx) {
27
+ const auth = getAuthFromKoaContext(ctx);
28
+ return strapi.contentAPI.sanitize.input(data, contentType, {
29
+ auth
30
+ });
31
+ },
32
+ async sanitizeQuery (ctx) {
33
+ const auth = getAuthFromKoaContext(ctx);
34
+ return strapi.contentAPI.sanitize.query(ctx.query, contentType, {
35
+ auth
36
+ });
37
+ },
38
+ async validateQuery (ctx) {
39
+ const auth = getAuthFromKoaContext(ctx);
40
+ return strapi.contentAPI.validate.query(ctx.query, contentType, {
41
+ auth
42
+ });
43
+ },
44
+ async validateInput (data, ctx) {
45
+ const auth = getAuthFromKoaContext(ctx);
46
+ return strapi.contentAPI.validate.input(data, contentType, {
47
+ auth
48
+ });
49
+ }
50
+ };
51
+ let ctrl;
52
+ if (isSingleType(contentType)) {
53
+ ctrl = createSingleTypeController({
54
+ contentType
55
+ });
56
+ } else {
57
+ ctrl = createCollectionTypeController({
58
+ contentType
59
+ });
60
+ }
61
+ return Object.assign(Object.create(proto), ctrl);
62
+ }
63
+
64
+ export { createController };
65
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +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\nfunction createController<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Controller.SingleType\n : Core.CoreAPI.Controller.CollectionType;\nfunction createController({\n contentType,\n}: {\n contentType: Struct.SingleTypeSchema | Struct.CollectionTypeSchema;\n}) {\n // TODO: replace with Base class + SingleType and CollectionType classes\n\n const proto: Core.CoreAPI.Controller.Base = {\n transformResponse(data, meta) {\n const ctx = requestCtx.get();\n return transformResponse(data, meta, {\n contentType,\n useJsonAPIFormat: ctx?.headers?.['strapi-response-format'] === 'v4',\n });\n },\n\n async sanitizeOutput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.output(data, contentType, { auth });\n },\n\n async sanitizeInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.input(data, contentType, { auth });\n },\n\n async sanitizeQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.sanitize.query(ctx.query, contentType, { auth });\n },\n\n async validateQuery(ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.validate.query(ctx.query, contentType, { auth });\n },\n\n async validateInput(data, ctx) {\n const auth = getAuthFromKoaContext(ctx);\n\n return strapi.contentAPI.validate.input(data, contentType, { auth });\n },\n };\n\n let ctrl;\n\n if (isSingleType(contentType)) {\n ctrl = createSingleTypeController({ contentType });\n } else {\n ctrl = createCollectionTypeController({ contentType });\n }\n\n return Object.assign(Object.create(proto), ctrl);\n}\n\nexport { createController };\n"],"names":["isSingleType","contentType","contentTypeUtils","getAuthFromKoaContext","ctx","prop","createController","proto","transformResponse","data","meta","requestCtx","get","useJsonAPIFormat","headers","sanitizeOutput","auth","strapi","contentAPI","sanitize","output","sanitizeInput","input","sanitizeQuery","query","validateQuery","validate","validateInput","ctrl","createSingleTypeController","createCollectionTypeController","Object","assign","create"],"mappings":";;;;;;;AAUA,MAAMA,YAAe,GAAA,CACnBC,WAC2CC,GAAAA,YAAAA,CAAiBF,YAAY,CAACC,WAAAA,CAAAA;AAE3E,MAAME,wBAAwB,CAACC,GAAAA,GAAqBC,IAAK,CAAA,YAAA,EAAcD,QAAQ,EAAC;AAOhF,SAASE,gBAAAA,CAAiB,EACxBL,WAAW,EAGZ,EAAA;;AAGC,IAAA,MAAMM,KAAsC,GAAA;QAC1CC,iBAAkBC,CAAAA,CAAAA,IAAI,EAAEC,IAAI,EAAA;YAC1B,MAAMN,GAAAA,GAAMO,WAAWC,GAAG,EAAA;YAC1B,OAAOJ,iBAAAA,CAAkBC,MAAMC,IAAM,EAAA;AACnCT,gBAAAA,WAAAA;AACAY,gBAAAA,gBAAAA,EAAkBT,GAAKU,EAAAA,OAAAA,GAAU,wBAAA,CAAyB,KAAK;AACjE,aAAA,CAAA;AACF,SAAA;QAEA,MAAMC,cAAAA,CAAAA,CAAeN,IAAI,EAAEL,GAAG,EAAA;AAC5B,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACC,QAAQ,CAACC,MAAM,CAACX,MAAMR,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACrE,SAAA;QAEA,MAAMK,aAAAA,CAAAA,CAAcZ,IAAI,EAAEL,GAAG,EAAA;AAC3B,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACC,QAAQ,CAACG,KAAK,CAACb,MAAMR,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACpE,SAAA;AAEA,QAAA,MAAMO,eAAcnB,GAAG,EAAA;AACrB,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACC,QAAQ,CAACK,KAAK,CAACpB,GAAAA,CAAIoB,KAAK,EAAEvB,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACzE,SAAA;AAEA,QAAA,MAAMS,eAAcrB,GAAG,EAAA;AACrB,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACQ,QAAQ,CAACF,KAAK,CAACpB,GAAAA,CAAIoB,KAAK,EAAEvB,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACzE,SAAA;QAEA,MAAMW,aAAAA,CAAAA,CAAclB,IAAI,EAAEL,GAAG,EAAA;AAC3B,YAAA,MAAMY,OAAOb,qBAAsBC,CAAAA,GAAAA,CAAAA;YAEnC,OAAOa,MAAAA,CAAOC,UAAU,CAACQ,QAAQ,CAACJ,KAAK,CAACb,MAAMR,WAAa,EAAA;AAAEe,gBAAAA;AAAK,aAAA,CAAA;AACpE;AACF,KAAA;IAEA,IAAIY,IAAAA;AAEJ,IAAA,IAAI5B,aAAaC,WAAc,CAAA,EAAA;AAC7B2B,QAAAA,IAAAA,GAAOC,0BAA2B,CAAA;AAAE5B,YAAAA;AAAY,SAAA,CAAA;KAC3C,MAAA;AACL2B,QAAAA,IAAAA,GAAOE,8BAA+B,CAAA;AAAE7B,YAAAA;AAAY,SAAA,CAAA;AACtD;AAEA,IAAA,OAAO8B,OAAOC,MAAM,CAACD,MAAOE,CAAAA,MAAM,CAAC1B,KAAQqB,CAAAA,EAAAA,IAAAA,CAAAA;AAC7C;;;;"}