@strapi/core 0.0.0-experimental.235f232c2d3f5110341c4933bf23785a81913797 → 0.0.0-experimental.3f7595ce0400b451ca4947408046e7b9b9cd4885

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (681) hide show
  1. package/dist/Strapi.d.ts +46 -57
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +145 -217
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +135 -208
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/config-loader.d.ts.map +1 -1
  8. package/dist/configuration/config-loader.js +9 -5
  9. package/dist/configuration/config-loader.js.map +1 -1
  10. package/dist/configuration/config-loader.mjs +9 -5
  11. package/dist/configuration/config-loader.mjs.map +1 -1
  12. package/dist/configuration/get-dirs.d.ts +10 -0
  13. package/dist/configuration/get-dirs.d.ts.map +1 -0
  14. package/dist/{utils → configuration}/get-dirs.js +3 -2
  15. package/dist/configuration/get-dirs.js.map +1 -0
  16. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  17. package/dist/configuration/get-dirs.mjs.map +1 -0
  18. package/dist/configuration/index.d.ts +4 -7
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +6 -4
  21. package/dist/configuration/index.js.map +1 -1
  22. package/dist/configuration/index.mjs +5 -4
  23. package/dist/configuration/index.mjs.map +1 -1
  24. package/dist/container.d.ts +2 -2
  25. package/dist/container.d.ts.map +1 -1
  26. package/dist/container.js.map +1 -1
  27. package/dist/container.mjs.map +1 -1
  28. package/dist/core-api/controller/collection-type.d.ts +3 -3
  29. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  30. package/dist/core-api/controller/collection-type.js.map +1 -1
  31. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  32. package/dist/core-api/controller/index.d.ts +3 -3
  33. package/dist/core-api/controller/index.d.ts.map +1 -1
  34. package/dist/core-api/controller/index.js +5 -5
  35. package/dist/core-api/controller/index.js.map +1 -1
  36. package/dist/core-api/controller/index.mjs +6 -6
  37. package/dist/core-api/controller/index.mjs.map +1 -1
  38. package/dist/core-api/controller/single-type.d.ts +3 -3
  39. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  40. package/dist/core-api/controller/single-type.js.map +1 -1
  41. package/dist/core-api/controller/single-type.mjs.map +1 -1
  42. package/dist/core-api/controller/transform.d.ts +2 -2
  43. package/dist/core-api/controller/transform.d.ts.map +1 -1
  44. package/dist/core-api/controller/transform.js +2 -5
  45. package/dist/core-api/controller/transform.js.map +1 -1
  46. package/dist/core-api/controller/transform.mjs +2 -5
  47. package/dist/core-api/controller/transform.mjs.map +1 -1
  48. package/dist/core-api/service/collection-type.d.ts +10 -10
  49. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  50. package/dist/core-api/service/collection-type.js +14 -5
  51. package/dist/core-api/service/collection-type.js.map +1 -1
  52. package/dist/core-api/service/collection-type.mjs +14 -5
  53. package/dist/core-api/service/collection-type.mjs.map +1 -1
  54. package/dist/core-api/service/index.d.ts +3 -3
  55. package/dist/core-api/service/index.d.ts.map +1 -1
  56. package/dist/core-api/service/index.js.map +1 -1
  57. package/dist/core-api/service/index.mjs.map +1 -1
  58. package/dist/core-api/service/single-type.d.ts +4 -4
  59. package/dist/core-api/service/single-type.d.ts.map +1 -1
  60. package/dist/core-api/service/single-type.js +8 -2
  61. package/dist/core-api/service/single-type.js.map +1 -1
  62. package/dist/core-api/service/single-type.mjs +8 -2
  63. package/dist/core-api/service/single-type.mjs.map +1 -1
  64. package/dist/domain/content-type/index.d.ts +1 -1
  65. package/dist/domain/content-type/index.d.ts.map +1 -1
  66. package/dist/domain/module/index.d.ts +24 -23
  67. package/dist/domain/module/index.d.ts.map +1 -1
  68. package/dist/domain/module/index.js +2 -1
  69. package/dist/domain/module/index.js.map +1 -1
  70. package/dist/domain/module/index.mjs +3 -2
  71. package/dist/domain/module/index.mjs.map +1 -1
  72. package/dist/ee/index.d.ts +4 -2
  73. package/dist/ee/index.d.ts.map +1 -1
  74. package/dist/ee/index.js.map +1 -1
  75. package/dist/ee/index.mjs.map +1 -1
  76. package/dist/ee/license.d.ts +2 -2
  77. package/dist/ee/license.d.ts.map +1 -1
  78. package/dist/ee/license.js.map +1 -1
  79. package/dist/ee/license.mjs.map +1 -1
  80. package/dist/factories.d.ts +10 -10
  81. package/dist/factories.d.ts.map +1 -1
  82. package/dist/factories.js +6 -2
  83. package/dist/factories.js.map +1 -1
  84. package/dist/factories.mjs +6 -2
  85. package/dist/factories.mjs.map +1 -1
  86. package/dist/index.d.ts +4 -2
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +25 -1
  89. package/dist/index.js.map +1 -1
  90. package/dist/index.mjs +27 -3
  91. package/dist/index.mjs.map +1 -1
  92. package/dist/loaders/admin.d.ts +2 -2
  93. package/dist/loaders/admin.d.ts.map +1 -1
  94. package/dist/loaders/admin.js +0 -1
  95. package/dist/loaders/admin.js.map +1 -1
  96. package/dist/loaders/admin.mjs +0 -1
  97. package/dist/loaders/admin.mjs.map +1 -1
  98. package/dist/loaders/apis.d.ts +2 -2
  99. package/dist/loaders/apis.d.ts.map +1 -1
  100. package/dist/loaders/apis.js.map +1 -1
  101. package/dist/loaders/apis.mjs.map +1 -1
  102. package/dist/loaders/components.d.ts +2 -2
  103. package/dist/loaders/components.d.ts.map +1 -1
  104. package/dist/loaders/components.js.map +1 -1
  105. package/dist/loaders/components.mjs.map +1 -1
  106. package/dist/loaders/index.d.ts +2 -2
  107. package/dist/loaders/index.d.ts.map +1 -1
  108. package/dist/loaders/index.js +0 -2
  109. package/dist/loaders/index.js.map +1 -1
  110. package/dist/loaders/index.mjs +0 -2
  111. package/dist/loaders/index.mjs.map +1 -1
  112. package/dist/loaders/middlewares.d.ts +2 -2
  113. package/dist/loaders/middlewares.d.ts.map +1 -1
  114. package/dist/loaders/middlewares.js.map +1 -1
  115. package/dist/loaders/middlewares.mjs.map +1 -1
  116. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  117. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  118. package/dist/loaders/plugins/get-enabled-plugins.js +3 -1
  119. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  120. package/dist/loaders/plugins/get-enabled-plugins.mjs +3 -1
  121. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  122. package/dist/loaders/plugins/index.d.ts +2 -2
  123. package/dist/loaders/plugins/index.d.ts.map +1 -1
  124. package/dist/loaders/plugins/index.js.map +1 -1
  125. package/dist/loaders/plugins/index.mjs.map +1 -1
  126. package/dist/loaders/policies.d.ts +2 -2
  127. package/dist/loaders/policies.d.ts.map +1 -1
  128. package/dist/loaders/policies.js.map +1 -1
  129. package/dist/loaders/policies.mjs.map +1 -1
  130. package/dist/loaders/sanitizers.d.ts +2 -2
  131. package/dist/loaders/sanitizers.d.ts.map +1 -1
  132. package/dist/loaders/sanitizers.js.map +1 -1
  133. package/dist/loaders/sanitizers.mjs.map +1 -1
  134. package/dist/loaders/src-index.d.ts +2 -2
  135. package/dist/loaders/src-index.d.ts.map +1 -1
  136. package/dist/loaders/src-index.js.map +1 -1
  137. package/dist/loaders/src-index.mjs.map +1 -1
  138. package/dist/loaders/validators.d.ts +2 -2
  139. package/dist/loaders/validators.d.ts.map +1 -1
  140. package/dist/loaders/validators.js.map +1 -1
  141. package/dist/loaders/validators.mjs.map +1 -1
  142. package/dist/middlewares/body.d.ts +4 -4
  143. package/dist/middlewares/body.d.ts.map +1 -1
  144. package/dist/middlewares/body.js +4 -4
  145. package/dist/middlewares/body.js.map +1 -1
  146. package/dist/middlewares/body.mjs +4 -4
  147. package/dist/middlewares/body.mjs.map +1 -1
  148. package/dist/middlewares/compression.d.ts +2 -2
  149. package/dist/middlewares/compression.d.ts.map +1 -1
  150. package/dist/middlewares/compression.js.map +1 -1
  151. package/dist/middlewares/compression.mjs.map +1 -1
  152. package/dist/middlewares/cors.d.ts +2 -2
  153. package/dist/middlewares/cors.d.ts.map +1 -1
  154. package/dist/middlewares/cors.js.map +1 -1
  155. package/dist/middlewares/cors.mjs.map +1 -1
  156. package/dist/middlewares/errors.d.ts +2 -2
  157. package/dist/middlewares/errors.d.ts.map +1 -1
  158. package/dist/middlewares/errors.js.map +1 -1
  159. package/dist/middlewares/errors.mjs.map +1 -1
  160. package/dist/middlewares/favicon.d.ts +2 -2
  161. package/dist/middlewares/favicon.d.ts.map +1 -1
  162. package/dist/middlewares/favicon.js.map +1 -1
  163. package/dist/middlewares/favicon.mjs.map +1 -1
  164. package/dist/middlewares/index.d.ts +2 -2
  165. package/dist/middlewares/index.d.ts.map +1 -1
  166. package/dist/middlewares/index.js.map +1 -1
  167. package/dist/middlewares/index.mjs.map +1 -1
  168. package/dist/middlewares/ip.d.ts +2 -2
  169. package/dist/middlewares/ip.d.ts.map +1 -1
  170. package/dist/middlewares/ip.js.map +1 -1
  171. package/dist/middlewares/ip.mjs.map +1 -1
  172. package/dist/middlewares/logger.d.ts +2 -2
  173. package/dist/middlewares/logger.d.ts.map +1 -1
  174. package/dist/middlewares/logger.js.map +1 -1
  175. package/dist/middlewares/logger.mjs.map +1 -1
  176. package/dist/middlewares/powered-by.d.ts +2 -2
  177. package/dist/middlewares/powered-by.d.ts.map +1 -1
  178. package/dist/middlewares/powered-by.js.map +1 -1
  179. package/dist/middlewares/powered-by.mjs.map +1 -1
  180. package/dist/middlewares/public.d.ts +2 -2
  181. package/dist/middlewares/public.d.ts.map +1 -1
  182. package/dist/middlewares/public.js +1 -1
  183. package/dist/middlewares/public.js.map +1 -1
  184. package/dist/middlewares/public.mjs +1 -1
  185. package/dist/middlewares/public.mjs.map +1 -1
  186. package/dist/middlewares/query.d.ts +2 -2
  187. package/dist/middlewares/query.d.ts.map +1 -1
  188. package/dist/middlewares/query.js.map +1 -1
  189. package/dist/middlewares/query.mjs.map +1 -1
  190. package/dist/middlewares/response-time.d.ts +2 -2
  191. package/dist/middlewares/response-time.d.ts.map +1 -1
  192. package/dist/middlewares/response-time.js.map +1 -1
  193. package/dist/middlewares/response-time.mjs.map +1 -1
  194. package/dist/middlewares/responses.d.ts +3 -3
  195. package/dist/middlewares/responses.d.ts.map +1 -1
  196. package/dist/middlewares/responses.js.map +1 -1
  197. package/dist/middlewares/responses.mjs.map +1 -1
  198. package/dist/middlewares/security.d.ts +2 -2
  199. package/dist/middlewares/security.d.ts.map +1 -1
  200. package/dist/middlewares/security.js.map +1 -1
  201. package/dist/middlewares/security.mjs.map +1 -1
  202. package/dist/middlewares/session.d.ts +2 -2
  203. package/dist/middlewares/session.d.ts.map +1 -1
  204. package/dist/middlewares/session.js.map +1 -1
  205. package/dist/middlewares/session.mjs.map +1 -1
  206. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +12 -0
  207. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  208. package/dist/migrations/database/5.0.0-discard-drafts.js +49 -0
  209. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  210. package/dist/migrations/database/5.0.0-discard-drafts.mjs +49 -0
  211. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  212. package/dist/providers/admin.d.ts +3 -0
  213. package/dist/providers/admin.d.ts.map +1 -0
  214. package/dist/providers/admin.js +20 -0
  215. package/dist/providers/admin.js.map +1 -0
  216. package/dist/providers/admin.mjs +21 -0
  217. package/dist/providers/admin.mjs.map +1 -0
  218. package/dist/providers/coreStore.d.ts +3 -0
  219. package/dist/providers/coreStore.d.ts.map +1 -0
  220. package/dist/providers/coreStore.js +11 -0
  221. package/dist/providers/coreStore.js.map +1 -0
  222. package/dist/providers/coreStore.mjs +12 -0
  223. package/dist/providers/coreStore.mjs.map +1 -0
  224. package/dist/providers/cron.d.ts +3 -0
  225. package/dist/providers/cron.d.ts.map +1 -0
  226. package/dist/providers/cron.js +20 -0
  227. package/dist/providers/cron.js.map +1 -0
  228. package/dist/providers/cron.mjs +21 -0
  229. package/dist/providers/cron.mjs.map +1 -0
  230. package/dist/providers/index.d.ts +3 -0
  231. package/dist/providers/index.d.ts.map +1 -0
  232. package/dist/providers/index.js +11 -0
  233. package/dist/providers/index.js.map +1 -0
  234. package/dist/providers/index.mjs +11 -0
  235. package/dist/providers/index.mjs.map +1 -0
  236. package/dist/providers/provider.d.ts +9 -0
  237. package/dist/providers/provider.d.ts.map +1 -0
  238. package/dist/providers/provider.js +5 -0
  239. package/dist/providers/provider.js.map +1 -0
  240. package/dist/providers/provider.mjs +5 -0
  241. package/dist/providers/provider.mjs.map +1 -0
  242. package/dist/providers/registries.d.ts +3 -0
  243. package/dist/providers/registries.d.ts.map +1 -0
  244. package/dist/providers/registries.js +35 -0
  245. package/dist/providers/registries.js.map +1 -0
  246. package/dist/providers/registries.mjs +36 -0
  247. package/dist/providers/registries.mjs.map +1 -0
  248. package/dist/providers/telemetry.d.ts +3 -0
  249. package/dist/providers/telemetry.d.ts.map +1 -0
  250. package/dist/providers/telemetry.js +19 -0
  251. package/dist/providers/telemetry.js.map +1 -0
  252. package/dist/providers/telemetry.mjs +20 -0
  253. package/dist/providers/telemetry.mjs.map +1 -0
  254. package/dist/providers/webhooks.d.ts +3 -0
  255. package/dist/providers/webhooks.d.ts.map +1 -0
  256. package/dist/providers/webhooks.js +30 -0
  257. package/dist/providers/webhooks.js.map +1 -0
  258. package/dist/providers/webhooks.mjs +31 -0
  259. package/dist/providers/webhooks.mjs.map +1 -0
  260. package/dist/registries/apis.d.ts +2 -2
  261. package/dist/registries/apis.d.ts.map +1 -1
  262. package/dist/registries/apis.js.map +1 -1
  263. package/dist/registries/apis.mjs.map +1 -1
  264. package/dist/registries/components.d.ts +6 -6
  265. package/dist/registries/components.d.ts.map +1 -1
  266. package/dist/registries/components.js.map +1 -1
  267. package/dist/registries/components.mjs.map +1 -1
  268. package/dist/registries/content-types.d.ts +5 -5
  269. package/dist/registries/content-types.d.ts.map +1 -1
  270. package/dist/registries/content-types.js.map +1 -1
  271. package/dist/registries/content-types.mjs.map +1 -1
  272. package/dist/registries/controllers.d.ts +10 -10
  273. package/dist/registries/controllers.d.ts.map +1 -1
  274. package/dist/registries/controllers.js.map +1 -1
  275. package/dist/registries/controllers.mjs.map +1 -1
  276. package/dist/registries/custom-fields.d.ts +3 -3
  277. package/dist/registries/custom-fields.d.ts.map +1 -1
  278. package/dist/registries/custom-fields.js.map +1 -1
  279. package/dist/registries/custom-fields.mjs.map +1 -1
  280. package/dist/registries/index.d.ts +0 -1
  281. package/dist/registries/index.d.ts.map +1 -1
  282. package/dist/registries/middlewares.d.ts +6 -6
  283. package/dist/registries/middlewares.d.ts.map +1 -1
  284. package/dist/registries/middlewares.js.map +1 -1
  285. package/dist/registries/middlewares.mjs.map +1 -1
  286. package/dist/registries/modules.d.ts +2 -2
  287. package/dist/registries/modules.d.ts.map +1 -1
  288. package/dist/registries/modules.js.map +1 -1
  289. package/dist/registries/modules.mjs.map +1 -1
  290. package/dist/registries/plugins.d.ts +5 -5
  291. package/dist/registries/plugins.d.ts.map +1 -1
  292. package/dist/registries/plugins.js.map +1 -1
  293. package/dist/registries/plugins.mjs.map +1 -1
  294. package/dist/registries/policies.d.ts +23 -11
  295. package/dist/registries/policies.d.ts.map +1 -1
  296. package/dist/registries/policies.js +64 -18
  297. package/dist/registries/policies.js.map +1 -1
  298. package/dist/registries/policies.mjs +65 -19
  299. package/dist/registries/policies.mjs.map +1 -1
  300. package/dist/registries/services.d.ts +8 -8
  301. package/dist/registries/services.d.ts.map +1 -1
  302. package/dist/registries/services.js.map +1 -1
  303. package/dist/registries/services.mjs.map +1 -1
  304. package/dist/services/auth/index.d.ts +4 -4
  305. package/dist/services/auth/index.d.ts.map +1 -1
  306. package/dist/services/auth/index.js.map +1 -1
  307. package/dist/services/auth/index.mjs.map +1 -1
  308. package/dist/services/config.d.ts +3 -0
  309. package/dist/services/config.d.ts.map +1 -0
  310. package/dist/services/config.js +47 -0
  311. package/dist/services/config.js.map +1 -0
  312. package/dist/services/config.mjs +47 -0
  313. package/dist/services/config.mjs.map +1 -0
  314. package/dist/services/content-api/index.d.ts +21 -3
  315. package/dist/services/content-api/index.d.ts.map +1 -1
  316. package/dist/services/content-api/index.js +28 -2
  317. package/dist/services/content-api/index.js.map +1 -1
  318. package/dist/services/content-api/index.mjs +28 -2
  319. package/dist/services/content-api/index.mjs.map +1 -1
  320. package/dist/services/content-api/permissions/index.d.ts +3 -3
  321. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  322. package/dist/services/content-api/permissions/index.js +1 -1
  323. package/dist/services/content-api/permissions/index.js.map +1 -1
  324. package/dist/services/content-api/permissions/index.mjs +1 -1
  325. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  326. package/dist/services/cron.d.ts +2 -2
  327. package/dist/services/cron.d.ts.map +1 -1
  328. package/dist/services/cron.js.map +1 -1
  329. package/dist/services/cron.mjs.map +1 -1
  330. package/dist/services/custom-fields.d.ts +2 -2
  331. package/dist/services/custom-fields.d.ts.map +1 -1
  332. package/dist/services/custom-fields.js.map +1 -1
  333. package/dist/services/custom-fields.mjs.map +1 -1
  334. package/dist/services/document-service/attributes/index.d.ts +6 -0
  335. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  336. package/dist/services/document-service/attributes/index.js.map +1 -0
  337. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  338. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  339. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  340. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  341. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  342. package/dist/services/document-service/common.d.ts +2 -2
  343. package/dist/services/document-service/common.d.ts.map +1 -1
  344. package/dist/services/document-service/common.js.map +1 -1
  345. package/dist/services/document-service/common.mjs.map +1 -1
  346. package/dist/services/document-service/components.d.ts +97 -1
  347. package/dist/services/document-service/components.d.ts.map +1 -1
  348. package/dist/services/{entity-service → document-service}/components.js +22 -31
  349. package/dist/services/document-service/components.js.map +1 -0
  350. package/dist/services/{entity-service → document-service}/components.mjs +22 -31
  351. package/dist/services/document-service/components.mjs.map +1 -0
  352. package/dist/services/document-service/draft-and-publish.d.ts +7 -7
  353. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  354. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  355. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  356. package/dist/services/document-service/entries.d.ts +8 -0
  357. package/dist/services/document-service/entries.d.ts.map +1 -0
  358. package/dist/services/document-service/entries.js +62 -0
  359. package/dist/services/document-service/entries.js.map +1 -0
  360. package/dist/services/document-service/entries.mjs +62 -0
  361. package/dist/services/document-service/entries.mjs.map +1 -0
  362. package/dist/services/document-service/index.d.ts +2 -4
  363. package/dist/services/document-service/index.d.ts.map +1 -1
  364. package/dist/services/document-service/index.js +19 -4
  365. package/dist/services/document-service/index.js.map +1 -1
  366. package/dist/services/document-service/index.mjs +17 -2
  367. package/dist/services/document-service/index.mjs.map +1 -1
  368. package/dist/services/document-service/internationalization.d.ts +5 -5
  369. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  370. package/dist/services/document-service/internationalization.js.map +1 -1
  371. package/dist/services/document-service/internationalization.mjs.map +1 -1
  372. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  373. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  374. package/dist/services/document-service/middlewares/errors.js +25 -0
  375. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  376. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  377. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  378. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  379. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  380. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  381. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  382. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +9 -6
  383. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  384. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +9 -6
  385. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  386. package/dist/services/document-service/params.d.ts +7 -1
  387. package/dist/services/document-service/params.d.ts.map +1 -1
  388. package/dist/services/document-service/params.js.map +1 -0
  389. package/dist/services/document-service/params.mjs.map +1 -0
  390. package/dist/services/document-service/repository.d.ts.map +1 -1
  391. package/dist/services/document-service/repository.js +74 -93
  392. package/dist/services/document-service/repository.js.map +1 -1
  393. package/dist/services/document-service/repository.mjs +59 -78
  394. package/dist/services/document-service/repository.mjs.map +1 -1
  395. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  396. package/dist/services/document-service/transform/data.js +4 -2
  397. package/dist/services/document-service/transform/data.js.map +1 -1
  398. package/dist/services/document-service/transform/data.mjs +4 -2
  399. package/dist/services/document-service/transform/data.mjs.map +1 -1
  400. package/dist/services/document-service/transform/fields.d.ts +2 -2
  401. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  402. package/dist/services/document-service/transform/fields.js.map +1 -1
  403. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  404. package/dist/services/document-service/transform/id-map.d.ts +3 -3
  405. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  406. package/dist/services/document-service/transform/id-map.js.map +1 -1
  407. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  408. package/dist/services/document-service/transform/id-transform.d.ts +2 -2
  409. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  410. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  411. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  412. package/dist/services/document-service/transform/populate.d.ts +2 -2
  413. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  414. package/dist/services/document-service/transform/populate.js +1 -1
  415. package/dist/services/document-service/transform/populate.js.map +1 -1
  416. package/dist/services/document-service/transform/populate.mjs +1 -1
  417. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  418. package/dist/services/document-service/transform/query.d.ts +5 -0
  419. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  420. package/dist/services/document-service/transform/query.js +9 -0
  421. package/dist/services/document-service/transform/query.js.map +1 -0
  422. package/dist/services/document-service/transform/query.mjs +9 -0
  423. package/dist/services/document-service/transform/query.mjs.map +1 -0
  424. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  425. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  426. package/dist/services/document-service/transform/relations/extract/data-ids.js +42 -78
  427. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  428. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +42 -78
  429. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  430. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +8 -4
  431. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  432. package/dist/services/document-service/transform/relations/transform/data-ids.js +57 -125
  433. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  434. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +58 -126
  435. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  436. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  437. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  438. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  439. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  440. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  441. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  442. package/dist/services/document-service/transform/relations/utils/dp.d.ts +3 -3
  443. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  444. package/dist/services/document-service/transform/relations/utils/dp.js +9 -4
  445. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  446. package/dist/services/document-service/transform/relations/utils/dp.mjs +9 -4
  447. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  448. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  449. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  450. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  451. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  452. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  453. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  454. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  455. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  456. package/dist/services/document-service/transform/relations/utils/map-relation.js +87 -0
  457. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  458. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +87 -0
  459. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  460. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  461. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  462. package/dist/services/document-service/transform/types.d.ts +3 -3
  463. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  464. package/dist/services/document-service/utils/populate.d.ts +2 -2
  465. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  466. package/dist/services/document-service/utils/populate.js.map +1 -1
  467. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  468. package/dist/services/entity-service/index.d.ts +4 -4
  469. package/dist/services/entity-service/index.d.ts.map +1 -1
  470. package/dist/services/entity-service/index.js +22 -16
  471. package/dist/services/entity-service/index.js.map +1 -1
  472. package/dist/services/entity-service/index.mjs +23 -17
  473. package/dist/services/entity-service/index.mjs.map +1 -1
  474. package/dist/services/entity-validator/index.d.ts +2 -2
  475. package/dist/services/entity-validator/index.d.ts.map +1 -1
  476. package/dist/services/entity-validator/index.js +100 -89
  477. package/dist/services/entity-validator/index.js.map +1 -1
  478. package/dist/services/entity-validator/index.mjs +100 -89
  479. package/dist/services/entity-validator/index.mjs.map +1 -1
  480. package/dist/services/entity-validator/validators.d.ts +18 -18
  481. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  482. package/dist/services/entity-validator/validators.js +6 -1
  483. package/dist/services/entity-validator/validators.js.map +1 -1
  484. package/dist/services/entity-validator/validators.mjs +6 -1
  485. package/dist/services/entity-validator/validators.mjs.map +1 -1
  486. package/dist/services/features.d.ts +3 -3
  487. package/dist/services/features.d.ts.map +1 -1
  488. package/dist/services/features.js.map +1 -1
  489. package/dist/services/features.mjs.map +1 -1
  490. package/dist/services/fs.d.ts +2 -2
  491. package/dist/services/fs.d.ts.map +1 -1
  492. package/dist/services/fs.js.map +1 -1
  493. package/dist/services/fs.mjs.map +1 -1
  494. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  495. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  496. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  497. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  498. package/dist/services/metrics/index.d.ts +2 -2
  499. package/dist/services/metrics/index.d.ts.map +1 -1
  500. package/dist/services/metrics/index.js.map +1 -1
  501. package/dist/services/metrics/index.mjs.map +1 -1
  502. package/dist/services/metrics/middleware.d.ts +2 -2
  503. package/dist/services/metrics/middleware.d.ts.map +1 -1
  504. package/dist/services/metrics/middleware.js.map +1 -1
  505. package/dist/services/metrics/middleware.mjs.map +1 -1
  506. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  507. package/dist/services/metrics/rate-limiter.js.map +1 -1
  508. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  509. package/dist/services/metrics/sender.d.ts +3 -3
  510. package/dist/services/metrics/sender.d.ts.map +1 -1
  511. package/dist/services/metrics/sender.js.map +1 -1
  512. package/dist/services/metrics/sender.mjs.map +1 -1
  513. package/dist/services/query-params.d.ts +7 -0
  514. package/dist/services/query-params.d.ts.map +1 -0
  515. package/dist/services/query-params.js +12 -0
  516. package/dist/services/query-params.js.map +1 -0
  517. package/dist/services/query-params.mjs +13 -0
  518. package/dist/services/query-params.mjs.map +1 -0
  519. package/dist/services/reloader.d.ts +7 -0
  520. package/dist/services/reloader.d.ts.map +1 -0
  521. package/dist/services/reloader.js +36 -0
  522. package/dist/services/reloader.js.map +1 -0
  523. package/dist/services/reloader.mjs +36 -0
  524. package/dist/services/reloader.mjs.map +1 -0
  525. package/dist/services/server/admin-api.d.ts +3 -3
  526. package/dist/services/server/admin-api.d.ts.map +1 -1
  527. package/dist/services/server/admin-api.js.map +1 -1
  528. package/dist/services/server/admin-api.mjs.map +1 -1
  529. package/dist/services/server/api.d.ts +3 -3
  530. package/dist/services/server/api.d.ts.map +1 -1
  531. package/dist/services/server/api.js.map +1 -1
  532. package/dist/services/server/api.mjs.map +1 -1
  533. package/dist/services/server/compose-endpoint.d.ts +2 -2
  534. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  535. package/dist/services/server/compose-endpoint.js +1 -2
  536. package/dist/services/server/compose-endpoint.js.map +1 -1
  537. package/dist/services/server/compose-endpoint.mjs +2 -3
  538. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  539. package/dist/services/server/content-api.d.ts +3 -3
  540. package/dist/services/server/content-api.d.ts.map +1 -1
  541. package/dist/services/server/content-api.js.map +1 -1
  542. package/dist/services/server/content-api.mjs.map +1 -1
  543. package/dist/services/server/http-server.d.ts +2 -2
  544. package/dist/services/server/http-server.d.ts.map +1 -1
  545. package/dist/services/server/http-server.js.map +1 -1
  546. package/dist/services/server/http-server.mjs.map +1 -1
  547. package/dist/services/server/index.d.ts +2 -2
  548. package/dist/services/server/index.d.ts.map +1 -1
  549. package/dist/services/server/index.js +1 -2
  550. package/dist/services/server/index.js.map +1 -1
  551. package/dist/services/server/index.mjs +1 -2
  552. package/dist/services/server/index.mjs.map +1 -1
  553. package/dist/services/server/middleware.d.ts +4 -4
  554. package/dist/services/server/middleware.d.ts.map +1 -1
  555. package/dist/services/server/middleware.js.map +1 -1
  556. package/dist/services/server/middleware.mjs.map +1 -1
  557. package/dist/services/server/policy.d.ts +3 -3
  558. package/dist/services/server/policy.d.ts.map +1 -1
  559. package/dist/services/server/policy.js +4 -4
  560. package/dist/services/server/policy.js.map +1 -1
  561. package/dist/services/server/policy.mjs +4 -4
  562. package/dist/services/server/policy.mjs.map +1 -1
  563. package/dist/services/server/register-middlewares.d.ts +2 -2
  564. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  565. package/dist/services/server/register-middlewares.js.map +1 -1
  566. package/dist/services/server/register-middlewares.mjs.map +1 -1
  567. package/dist/services/server/register-routes.d.ts +2 -2
  568. package/dist/services/server/register-routes.d.ts.map +1 -1
  569. package/dist/services/server/register-routes.js +3 -3
  570. package/dist/services/server/register-routes.js.map +1 -1
  571. package/dist/services/server/register-routes.mjs +3 -3
  572. package/dist/services/server/register-routes.mjs.map +1 -1
  573. package/dist/services/server/routing.d.ts +5 -5
  574. package/dist/services/server/routing.d.ts.map +1 -1
  575. package/dist/services/server/routing.js.map +1 -1
  576. package/dist/services/server/routing.mjs.map +1 -1
  577. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  578. package/dist/services/utils/dynamic-zones.js +2 -1
  579. package/dist/services/utils/dynamic-zones.js.map +1 -1
  580. package/dist/services/utils/dynamic-zones.mjs +2 -1
  581. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  582. package/dist/services/webhook-runner.js.map +1 -1
  583. package/dist/services/webhook-runner.mjs.map +1 -1
  584. package/dist/services/webhook-store.d.ts.map +1 -1
  585. package/dist/services/webhook-store.js +5 -6
  586. package/dist/services/webhook-store.js.map +1 -1
  587. package/dist/services/webhook-store.mjs +5 -6
  588. package/dist/services/webhook-store.mjs.map +1 -1
  589. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  590. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  591. package/dist/utils/convert-custom-field-type.js.map +1 -1
  592. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  593. package/dist/utils/fetch.d.ts +3 -3
  594. package/dist/utils/fetch.d.ts.map +1 -1
  595. package/dist/utils/fetch.js.map +1 -1
  596. package/dist/utils/fetch.mjs.map +1 -1
  597. package/dist/utils/index.d.ts +2 -1
  598. package/dist/utils/index.d.ts.map +1 -1
  599. package/dist/utils/is-initialized.d.ts +2 -2
  600. package/dist/utils/is-initialized.d.ts.map +1 -1
  601. package/dist/utils/is-initialized.js.map +1 -1
  602. package/dist/utils/is-initialized.mjs.map +1 -1
  603. package/dist/utils/open-browser.d.ts +2 -2
  604. package/dist/utils/open-browser.d.ts.map +1 -1
  605. package/dist/utils/open-browser.js.map +1 -1
  606. package/dist/utils/open-browser.mjs.map +1 -1
  607. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  608. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  609. package/dist/utils/resolve-working-dirs.js +13 -0
  610. package/dist/utils/resolve-working-dirs.js.map +1 -0
  611. package/dist/utils/resolve-working-dirs.mjs +11 -0
  612. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  613. package/dist/utils/signals.d.ts +2 -2
  614. package/dist/utils/signals.d.ts.map +1 -1
  615. package/dist/utils/signals.js.map +1 -1
  616. package/dist/utils/signals.mjs.map +1 -1
  617. package/dist/utils/startup-logger.d.ts +2 -2
  618. package/dist/utils/startup-logger.d.ts.map +1 -1
  619. package/dist/utils/startup-logger.js.map +1 -1
  620. package/dist/utils/startup-logger.mjs.map +1 -1
  621. package/dist/utils/transform-content-types-to-models.d.ts +54 -99
  622. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  623. package/dist/utils/transform-content-types-to-models.js +95 -57
  624. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  625. package/dist/utils/transform-content-types-to-models.mjs +95 -57
  626. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  627. package/dist/utils/update-notifier/index.d.ts +2 -7
  628. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  629. package/dist/utils/update-notifier/index.js +11 -14
  630. package/dist/utils/update-notifier/index.js.map +1 -1
  631. package/dist/utils/update-notifier/index.mjs +11 -14
  632. package/dist/utils/update-notifier/index.mjs.map +1 -1
  633. package/package.json +21 -21
  634. package/dist/registries/config.d.ts +0 -4
  635. package/dist/registries/config.d.ts.map +0 -1
  636. package/dist/registries/config.js +0 -31
  637. package/dist/registries/config.js.map +0 -1
  638. package/dist/registries/config.mjs +0 -32
  639. package/dist/registries/config.mjs.map +0 -1
  640. package/dist/services/document-service/middlewares.d.ts +0 -8
  641. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  642. package/dist/services/document-service/middlewares.js.map +0 -1
  643. package/dist/services/document-service/middlewares.mjs.map +0 -1
  644. package/dist/services/document-service/transform/filters.d.ts +0 -3
  645. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  646. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  647. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  648. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  649. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  650. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  651. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  652. package/dist/services/document-service/transform/sort.d.ts +0 -5
  653. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  654. package/dist/services/document-service/transform/utils.d.ts +0 -9
  655. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  656. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  657. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  658. package/dist/services/entity-service/attributes/index.js.map +0 -1
  659. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  660. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  661. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  662. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  663. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  664. package/dist/services/entity-service/components.d.ts +0 -20
  665. package/dist/services/entity-service/components.d.ts.map +0 -1
  666. package/dist/services/entity-service/components.js.map +0 -1
  667. package/dist/services/entity-service/components.mjs.map +0 -1
  668. package/dist/services/entity-service/params.d.ts +0 -8
  669. package/dist/services/entity-service/params.d.ts.map +0 -1
  670. package/dist/services/entity-service/params.js.map +0 -1
  671. package/dist/services/entity-service/params.mjs.map +0 -1
  672. package/dist/utils/get-dirs.d.ts +0 -9
  673. package/dist/utils/get-dirs.d.ts.map +0 -1
  674. package/dist/utils/get-dirs.js.map +0 -1
  675. package/dist/utils/get-dirs.mjs.map +0 -1
  676. /package/dist/services/{entity-service → document-service}/attributes/index.js +0 -0
  677. /package/dist/services/{entity-service → document-service}/attributes/index.mjs +0 -0
  678. /package/dist/services/{entity-service → document-service}/attributes/transforms.js +0 -0
  679. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  680. /package/dist/services/{entity-service → document-service}/params.js +0 -0
  681. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
@@ -1,4 +1,5 @@
1
1
  import _ from "lodash";
2
+ import { sanitize, validate } from "@strapi/utils";
2
3
  import instantiatePermissionsUtilities from "./permissions/index.mjs";
3
4
  const transformRoutePrefixFor = (pluginName) => (route) => {
4
5
  const prefix = route.config && route.config.prefix;
@@ -12,7 +13,7 @@ const filterContentAPI = (route) => route.info.type === "content-api";
12
13
  const createContentAPI = (strapi) => {
13
14
  const getRoutesMap = async () => {
14
15
  const routesMap = {};
15
- _.forEach(strapi.api, (api, apiName) => {
16
+ _.forEach(strapi.apis, (api, apiName) => {
16
17
  const routes = _.flatMap(api.routes, (route) => {
17
18
  if ("routes" in route) {
18
19
  return route.routes;
@@ -47,9 +48,34 @@ const createContentAPI = (strapi) => {
47
48
  });
48
49
  return routesMap;
49
50
  };
51
+ const sanitizer = sanitize.createAPISanitizers({
52
+ getModel(uid) {
53
+ return strapi.getModel(uid);
54
+ },
55
+ // NOTE: use lazy access to allow registration of sanitizers after the creation of the container
56
+ get sanitizers() {
57
+ return {
58
+ input: strapi.sanitizers.get("content-api.input"),
59
+ output: strapi.sanitizers.get("content-api.output")
60
+ };
61
+ }
62
+ });
63
+ const validator = validate.createAPIValidators({
64
+ getModel(uid) {
65
+ return strapi.getModel(uid);
66
+ },
67
+ // NOTE: use lazy access to allow registration of validators after the creation of the container
68
+ get validators() {
69
+ return {
70
+ input: strapi.validators.get("content-api.input")
71
+ };
72
+ }
73
+ });
50
74
  return {
51
75
  permissions: instantiatePermissionsUtilities(strapi),
52
- getRoutesMap
76
+ getRoutesMap,
77
+ sanitize: sanitizer,
78
+ validate: validator
53
79
  };
54
80
  };
55
81
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/services/content-api/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Strapi, Common } from '@strapi/types';\nimport instantiatePermissionsUtilities from './permissions';\n\nconst transformRoutePrefixFor = (pluginName: string) => (route: Common.Route) => {\n const prefix = route.config && route.config.prefix;\n const path = prefix !== undefined ? `${prefix}${route.path}` : `/${pluginName}${route.path}`;\n\n return {\n ...route,\n path,\n };\n};\n\nconst filterContentAPI = (route: Common.Route) => route.info.type === 'content-api';\n\n/**\n * Create a content API container that holds logic, tools and utils. (eg: permissions, ...)\n */\nconst createContentAPI = (strapi: Strapi) => {\n const getRoutesMap = async () => {\n const routesMap: Record<string, Common.Route[]> = {};\n\n _.forEach(strapi.api, (api, apiName) => {\n const routes = _.flatMap(api.routes, (route) => {\n if ('routes' in route) {\n return route.routes;\n }\n\n return route;\n }).filter(filterContentAPI);\n\n if (routes.length === 0) {\n return;\n }\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n routesMap[`api::${apiName}`] = routes.map((route) => ({\n ...route,\n path: `${apiPrefix}${route.path}`,\n }));\n });\n\n _.forEach(strapi.plugins, (plugin, pluginName) => {\n const transformPrefix = transformRoutePrefixFor(pluginName);\n\n if (Array.isArray(plugin.routes)) {\n return plugin.routes.map(transformPrefix).filter(filterContentAPI);\n }\n\n const routes = _.flatMap(plugin.routes, (route) => route.routes.map(transformPrefix)).filter(\n filterContentAPI\n );\n\n if (routes.length === 0) {\n return;\n }\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n routesMap[`plugin::${pluginName}`] = routes.map((route) => ({\n ...route,\n path: `${apiPrefix}${route.path}`,\n }));\n });\n\n return routesMap;\n };\n\n return {\n permissions: instantiatePermissionsUtilities(strapi),\n getRoutesMap,\n };\n};\n\nexport default createContentAPI;\n"],"names":[],"mappings":";;AAIA,MAAM,0BAA0B,CAAC,eAAuB,CAAC,UAAwB;AAC/E,QAAM,SAAS,MAAM,UAAU,MAAM,OAAO;AAC5C,QAAM,OAAO,WAAW,SAAY,GAAG,MAAM,GAAG,MAAM,IAAI,KAAK,IAAI,UAAU,GAAG,MAAM,IAAI;AAEnF,SAAA;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EAAA;AAEJ;AAEA,MAAM,mBAAmB,CAAC,UAAwB,MAAM,KAAK,SAAS;AAKhE,MAAA,mBAAmB,CAAC,WAAmB;AAC3C,QAAM,eAAe,YAAY;AAC/B,UAAM,YAA4C,CAAA;AAElD,MAAE,QAAQ,OAAO,KAAK,CAAC,KAAK,YAAY;AACtC,YAAM,SAAS,EAAE,QAAQ,IAAI,QAAQ,CAAC,UAAU;AAC9C,YAAI,YAAY,OAAO;AACrB,iBAAO,MAAM;AAAA,QACf;AAEO,eAAA;AAAA,MAAA,CACR,EAAE,OAAO,gBAAgB;AAEtB,UAAA,OAAO,WAAW,GAAG;AACvB;AAAA,MACF;AAEA,YAAM,YAAY,OAAO,OAAO,IAAI,iBAAiB;AACrD,gBAAU,QAAQ,OAAO,EAAE,IAAI,OAAO,IAAI,CAAC,WAAW;AAAA,QACpD,GAAG;AAAA,QACH,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI;AAAA,MAC/B,EAAA;AAAA,IAAA,CACH;AAED,MAAE,QAAQ,OAAO,SAAS,CAAC,QAAQ,eAAe;AAC1C,YAAA,kBAAkB,wBAAwB,UAAU;AAE1D,UAAI,MAAM,QAAQ,OAAO,MAAM,GAAG;AAChC,eAAO,OAAO,OAAO,IAAI,eAAe,EAAE,OAAO,gBAAgB;AAAA,MACnE;AAEA,YAAM,SAAS,EAAE,QAAQ,OAAO,QAAQ,CAAC,UAAU,MAAM,OAAO,IAAI,eAAe,CAAC,EAAE;AAAA,QACpF;AAAA,MAAA;AAGE,UAAA,OAAO,WAAW,GAAG;AACvB;AAAA,MACF;AAEA,YAAM,YAAY,OAAO,OAAO,IAAI,iBAAiB;AACrD,gBAAU,WAAW,UAAU,EAAE,IAAI,OAAO,IAAI,CAAC,WAAW;AAAA,QAC1D,GAAG;AAAA,QACH,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI;AAAA,MAC/B,EAAA;AAAA,IAAA,CACH;AAEM,WAAA;AAAA,EAAA;AAGF,SAAA;AAAA,IACL,aAAa,gCAAgC,MAAM;AAAA,IACnD;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/services/content-api/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport { sanitize, validate } from '@strapi/utils';\n\nimport type { Core, UID } from '@strapi/types';\n\nimport instantiatePermissionsUtilities from './permissions';\n\nconst transformRoutePrefixFor = (pluginName: string) => (route: Core.Route) => {\n const prefix = route.config && route.config.prefix;\n const path = prefix !== undefined ? `${prefix}${route.path}` : `/${pluginName}${route.path}`;\n\n return {\n ...route,\n path,\n };\n};\n\nconst filterContentAPI = (route: Core.Route) => route.info.type === 'content-api';\n\n/**\n * Create a content API container that holds logic, tools and utils. (eg: permissions, ...)\n */\nconst createContentAPI = (strapi: Core.Strapi) => {\n const getRoutesMap = async () => {\n const routesMap: Record<string, Core.Route[]> = {};\n\n _.forEach(strapi.apis, (api, apiName) => {\n const routes = _.flatMap(api.routes, (route) => {\n if ('routes' in route) {\n return route.routes;\n }\n\n return route;\n }).filter(filterContentAPI);\n\n if (routes.length === 0) {\n return;\n }\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n routesMap[`api::${apiName}`] = routes.map((route) => ({\n ...route,\n path: `${apiPrefix}${route.path}`,\n }));\n });\n\n _.forEach(strapi.plugins, (plugin, pluginName) => {\n const transformPrefix = transformRoutePrefixFor(pluginName);\n\n if (Array.isArray(plugin.routes)) {\n return plugin.routes.map(transformPrefix).filter(filterContentAPI);\n }\n\n const routes = _.flatMap(plugin.routes, (route) => route.routes.map(transformPrefix)).filter(\n filterContentAPI\n );\n\n if (routes.length === 0) {\n return;\n }\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n routesMap[`plugin::${pluginName}`] = routes.map((route) => ({\n ...route,\n path: `${apiPrefix}${route.path}`,\n }));\n });\n\n return routesMap;\n };\n\n const sanitizer = sanitize.createAPISanitizers({\n getModel(uid: string) {\n return strapi.getModel(uid as UID.Schema);\n },\n // NOTE: use lazy access to allow registration of sanitizers after the creation of the container\n get sanitizers() {\n return {\n input: strapi.sanitizers.get('content-api.input'),\n output: strapi.sanitizers.get('content-api.output'),\n };\n },\n });\n\n const validator = validate.createAPIValidators({\n getModel(uid: string) {\n return strapi.getModel(uid as UID.Schema);\n },\n // NOTE: use lazy access to allow registration of validators after the creation of the container\n get validators() {\n return {\n input: strapi.validators.get('content-api.input'),\n };\n },\n });\n\n return {\n permissions: instantiatePermissionsUtilities(strapi),\n getRoutesMap,\n sanitize: sanitizer,\n validate: validator,\n };\n};\n\nexport default createContentAPI;\n"],"names":[],"mappings":";;;AAOA,MAAM,0BAA0B,CAAC,eAAuB,CAAC,UAAsB;AAC7E,QAAM,SAAS,MAAM,UAAU,MAAM,OAAO;AAC5C,QAAM,OAAO,WAAW,SAAY,GAAG,MAAM,GAAG,MAAM,IAAI,KAAK,IAAI,UAAU,GAAG,MAAM,IAAI;AAEnF,SAAA;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EAAA;AAEJ;AAEA,MAAM,mBAAmB,CAAC,UAAsB,MAAM,KAAK,SAAS;AAK9D,MAAA,mBAAmB,CAAC,WAAwB;AAChD,QAAM,eAAe,YAAY;AAC/B,UAAM,YAA0C,CAAA;AAEhD,MAAE,QAAQ,OAAO,MAAM,CAAC,KAAK,YAAY;AACvC,YAAM,SAAS,EAAE,QAAQ,IAAI,QAAQ,CAAC,UAAU;AAC9C,YAAI,YAAY,OAAO;AACrB,iBAAO,MAAM;AAAA,QACf;AAEO,eAAA;AAAA,MAAA,CACR,EAAE,OAAO,gBAAgB;AAEtB,UAAA,OAAO,WAAW,GAAG;AACvB;AAAA,MACF;AAEA,YAAM,YAAY,OAAO,OAAO,IAAI,iBAAiB;AACrD,gBAAU,QAAQ,OAAO,EAAE,IAAI,OAAO,IAAI,CAAC,WAAW;AAAA,QACpD,GAAG;AAAA,QACH,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI;AAAA,MAC/B,EAAA;AAAA,IAAA,CACH;AAED,MAAE,QAAQ,OAAO,SAAS,CAAC,QAAQ,eAAe;AAC1C,YAAA,kBAAkB,wBAAwB,UAAU;AAE1D,UAAI,MAAM,QAAQ,OAAO,MAAM,GAAG;AAChC,eAAO,OAAO,OAAO,IAAI,eAAe,EAAE,OAAO,gBAAgB;AAAA,MACnE;AAEA,YAAM,SAAS,EAAE,QAAQ,OAAO,QAAQ,CAAC,UAAU,MAAM,OAAO,IAAI,eAAe,CAAC,EAAE;AAAA,QACpF;AAAA,MAAA;AAGE,UAAA,OAAO,WAAW,GAAG;AACvB;AAAA,MACF;AAEA,YAAM,YAAY,OAAO,OAAO,IAAI,iBAAiB;AACrD,gBAAU,WAAW,UAAU,EAAE,IAAI,OAAO,IAAI,CAAC,WAAW;AAAA,QAC1D,GAAG;AAAA,QACH,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI;AAAA,MAC/B,EAAA;AAAA,IAAA,CACH;AAEM,WAAA;AAAA,EAAA;AAGH,QAAA,YAAY,SAAS,oBAAoB;AAAA,IAC7C,SAAS,KAAa;AACb,aAAA,OAAO,SAAS,GAAiB;AAAA,IAC1C;AAAA;AAAA,IAEA,IAAI,aAAa;AACR,aAAA;AAAA,QACL,OAAO,OAAO,WAAW,IAAI,mBAAmB;AAAA,QAChD,QAAQ,OAAO,WAAW,IAAI,oBAAoB;AAAA,MAAA;AAAA,IAEtD;AAAA,EAAA,CACD;AAEK,QAAA,YAAY,SAAS,oBAAoB;AAAA,IAC7C,SAAS,KAAa;AACb,aAAA,OAAO,SAAS,GAAiB;AAAA,IAC1C;AAAA;AAAA,IAEA,IAAI,aAAa;AACR,aAAA;AAAA,QACL,OAAO,OAAO,WAAW,IAAI,mBAAmB;AAAA,MAAA;AAAA,IAEpD;AAAA,EAAA,CACD;AAEM,SAAA;AAAA,IACL,aAAa,gCAAgC,MAAM;AAAA,IACnD;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAEd;"}
@@ -1,9 +1,9 @@
1
- import type { Strapi } from '@strapi/types';
1
+ import type { Core } from '@strapi/types';
2
2
  /**
3
3
  * Create instances of providers and permission engine for the core content-API service.
4
- * Also, expose utilities to get informations about available actions and such.
4
+ * Also, expose utilities to get information about available actions and such.
5
5
  */
6
- declare const _default: (strapi: Strapi) => {
6
+ declare const _default: (strapi: Core.Strapi) => {
7
7
  engine: import("@strapi/permissions/dist/engine").Engine;
8
8
  providers: {
9
9
  action: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/content-api/permissions/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AA8BpD;;;GAGG;iCACqB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkBT,OAAO,MAAM,EAAE,MAAM,EAAE,CAAC;;;AAlB7C,wBAqHE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/content-api/permissions/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AA8B1C;;;GAGG;iCACqB,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkBd,OAAO,MAAM,EAAE,MAAM,EAAE,CAAC;;;AAlB7C,wBAmHE"}
@@ -48,7 +48,7 @@ const instantiatePermissionsUtilities = (strapi2) => {
48
48
  }
49
49
  });
50
50
  };
51
- registerAPIsActions(strapi2.api, "api");
51
+ registerAPIsActions(strapi2.apis, "api");
52
52
  registerAPIsActions(strapi2.plugins, "plugin");
53
53
  return actionMap;
54
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/services/content-api/permissions/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Strapi, Common } from '@strapi/types';\nimport { createActionProvider, createConditionProvider } from './providers';\nimport createPermissionEngine from './engine';\n\nconst typeSymbol = Symbol.for('__type__');\n\ninterface ValidatePermissionHandler {\n (params: { permission: { action: string } }): boolean;\n}\n\n/**\n * Creates an handler that checks if the permission's action exists in the action registry\n */\nconst createValidatePermissionHandler =\n (actionProvider: ReturnType<typeof createActionProvider>): ValidatePermissionHandler =>\n ({ permission }) => {\n const action = actionProvider.get(permission.action);\n\n // If the action isn't registered into the action provider, then ignore the permission and warn the user\n if (!action) {\n strapi.log.debug(\n `Unknown action \"${permission.action}\" supplied when registering a new permission`\n );\n\n return false;\n }\n\n return true;\n };\n\n/**\n * Create instances of providers and permission engine for the core content-API service.\n * Also, expose utilities to get informations about available actions and such.\n */\nexport default (strapi: Strapi) => {\n // NOTE: Here we define both an action and condition provider,\n // but at the moment, we're only using the action one.\n const providers = {\n action: createActionProvider(),\n condition: createConditionProvider(),\n };\n\n /**\n * Get a tree representation of the available Content API actions\n * based on the methods of the Content API controllers.\n *\n * @note Only actions bound to a content-API route are returned.\n */\n const getActionsMap = () => {\n const actionMap: Record<\n string,\n {\n controllers: Record<string, string[]>;\n }\n > = {};\n\n /**\n * Check if a controller's action is bound to the\n * content-api by looking at a potential __type__ symbol\n */\n const isContentApi = (action: Common.ControllerHandler & { [s: symbol]: any }) => {\n if (!_.has(action, typeSymbol)) {\n return false;\n }\n\n return action[typeSymbol].includes('content-api');\n };\n\n /**\n * Register actions from a specific API source into the result tree\n */\n const registerAPIsActions = (\n apis: Record<string, Common.Plugin | Common.Module>,\n source: 'api' | 'plugin'\n ) => {\n _.forEach(apis, (api, apiName) => {\n const controllers = _.reduce(\n api.controllers,\n (acc, controller, controllerName) => {\n const contentApiActions = _.pickBy(controller, isContentApi);\n\n if (_.isEmpty(contentApiActions)) {\n return acc;\n }\n\n acc[controllerName] = Object.keys(contentApiActions);\n\n return acc;\n },\n {} as Record<string, string[]>\n );\n\n if (!_.isEmpty(controllers)) {\n actionMap[`${source}::${apiName}`] = { controllers };\n }\n });\n };\n\n registerAPIsActions(strapi.api, 'api');\n registerAPIsActions(strapi.plugins, 'plugin');\n\n return actionMap;\n };\n\n /**\n * Register all the content-API's controllers actions into the action provider.\n * This method make use of the {@link getActionsMap} to generate the list of actions to register.\n *\n * @return {void}\n */\n const registerActions = async () => {\n const actionsMap = getActionsMap();\n\n // For each API\n for (const [api, value] of Object.entries(actionsMap)) {\n const { controllers } = value;\n\n // Register controllers methods as actions\n for (const [controller, actions] of Object.entries(controllers)) {\n // Register each action individually\n await Promise.all(\n actions.map((action) => {\n const actionUID = `${api}.${controller}.${action}`;\n\n return providers.action.register(actionUID, {\n api,\n controller,\n action,\n uid: actionUID,\n });\n })\n );\n }\n }\n };\n\n // Create an instance of a content-API permission engine\n // and binds a custom validation handler to it\n const engine = createPermissionEngine({ providers });\n\n engine.on(\n 'before-format::validate.permission',\n createValidatePermissionHandler(providers.action)\n );\n\n return {\n engine,\n providers,\n registerActions,\n getActionsMap,\n };\n};\n"],"names":["action","strapi","createActionProvider","createConditionProvider","_","engine","createPermissionEngine"],"mappings":";;;;;;;AAKA,MAAM,aAAa,OAAO,IAAI,UAAU;AASxC,MAAM,kCACJ,CAAC,mBACD,CAAC,EAAE,iBAAiB;AAClB,QAAMA,UAAS,eAAe,IAAI,WAAW,MAAM;AAGnD,MAAI,CAACA,SAAQ;AACX,WAAO,IAAI;AAAA,MACT,mBAAmB,WAAW,MAAM;AAAA,IAAA;AAG/B,WAAA;AAAA,EACT;AAEO,SAAA;AACT;AAMF,MAAe,kCAAA,CAACC,YAAmB;AAGjC,QAAM,YAAY;AAAA,IAChB,QAAQC,OAAqB;AAAA,IAC7B,WAAWC,UAAwB;AAAA,EAAA;AASrC,QAAM,gBAAgB,MAAM;AAC1B,UAAM,YAKF,CAAA;AAME,UAAA,eAAe,CAACH,YAA4D;AAChF,UAAI,CAACI,WAAAA,QAAE,IAAIJ,SAAQ,UAAU,GAAG;AACvB,eAAA;AAAA,MACT;AAEA,aAAOA,QAAO,UAAU,EAAE,SAAS,aAAa;AAAA,IAAA;AAM5C,UAAA,sBAAsB,CAC1B,MACA,WACG;AACHI,iBAAAA,QAAE,QAAQ,MAAM,CAAC,KAAK,YAAY;AAChC,cAAM,cAAcA,WAAAA,QAAE;AAAA,UACpB,IAAI;AAAA,UACJ,CAAC,KAAK,YAAY,mBAAmB;AACnC,kBAAM,oBAAoBA,WAAA,QAAE,OAAO,YAAY,YAAY;AAEvD,gBAAAA,WAAA,QAAE,QAAQ,iBAAiB,GAAG;AACzB,qBAAA;AAAA,YACT;AAEA,gBAAI,cAAc,IAAI,OAAO,KAAK,iBAAiB;AAE5C,mBAAA;AAAA,UACT;AAAA,UACA,CAAC;AAAA,QAAA;AAGH,YAAI,CAACA,WAAA,QAAE,QAAQ,WAAW,GAAG;AAC3B,oBAAU,GAAG,MAAM,KAAK,OAAO,EAAE,IAAI,EAAE;QACzC;AAAA,MAAA,CACD;AAAA,IAAA;AAGiBH,wBAAAA,QAAO,KAAK,KAAK;AACjBA,wBAAAA,QAAO,SAAS,QAAQ;AAErC,WAAA;AAAA,EAAA;AAST,QAAM,kBAAkB,YAAY;AAClC,UAAM,aAAa;AAGnB,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC/C,YAAA,EAAE,YAAgB,IAAA;AAGxB,iBAAW,CAAC,YAAY,OAAO,KAAK,OAAO,QAAQ,WAAW,GAAG;AAE/D,cAAM,QAAQ;AAAA,UACZ,QAAQ,IAAI,CAACD,YAAW;AACtB,kBAAM,YAAY,GAAG,GAAG,IAAI,UAAU,IAAIA,OAAM;AAEzC,mBAAA,UAAU,OAAO,SAAS,WAAW;AAAA,cAC1C;AAAA,cACA;AAAA,cACA,QAAAA;AAAA,cACA,KAAK;AAAA,YAAA,CACN;AAAA,UAAA,CACF;AAAA,QAAA;AAAA,MAEL;AAAA,IACF;AAAA,EAAA;AAKF,QAAMK,WAASC,OAAuB,EAAE,UAAW,CAAA;AAE5CD,WAAA;AAAA,IACL;AAAA,IACA,gCAAgC,UAAU,MAAM;AAAA,EAAA;AAG3C,SAAA;AAAA,IAAA,QACLA;AAAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/services/content-api/permissions/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\nimport { createActionProvider, createConditionProvider } from './providers';\nimport createPermissionEngine from './engine';\n\nconst typeSymbol = Symbol.for('__type__');\n\ninterface ValidatePermissionHandler {\n (params: { permission: { action: string } }): boolean;\n}\n\n/**\n * Creates a handler that checks if the permission's action exists in the action registry\n */\nconst createValidatePermissionHandler =\n (actionProvider: ReturnType<typeof createActionProvider>): ValidatePermissionHandler =>\n ({ permission }) => {\n const action = actionProvider.get(permission.action);\n\n // If the action isn't registered into the action provider, then ignore the permission and warn the user\n if (!action) {\n strapi.log.debug(\n `Unknown action \"${permission.action}\" supplied when registering a new permission`\n );\n\n return false;\n }\n\n return true;\n };\n\n/**\n * Create instances of providers and permission engine for the core content-API service.\n * Also, expose utilities to get information about available actions and such.\n */\nexport default (strapi: Core.Strapi) => {\n // NOTE: Here we define both an action and condition provider,\n // but at the moment, we're only using the action one.\n const providers = {\n action: createActionProvider(),\n condition: createConditionProvider(),\n };\n\n /**\n * Get a tree representation of the available Content API actions\n * based on the methods of the Content API controllers.\n *\n * @note Only actions bound to a content-API route are returned.\n */\n const getActionsMap = () => {\n const actionMap: Record<\n string,\n {\n controllers: Record<string, string[]>;\n }\n > = {};\n\n /**\n * Check if a controller's action is bound to the\n * content-api by looking at a potential __type__ symbol\n */\n const isContentApi = (action: Core.ControllerHandler & { [s: symbol]: any }) => {\n if (!_.has(action, typeSymbol)) {\n return false;\n }\n\n return action[typeSymbol].includes('content-api');\n };\n\n /**\n * Register actions from a specific API source into the result tree\n */\n const registerAPIsActions = (\n apis: Record<string, Core.Plugin | Core.Module>,\n source: 'api' | 'plugin'\n ) => {\n _.forEach(apis, (api, apiName) => {\n const controllers = _.reduce(\n api.controllers,\n (acc, controller, controllerName) => {\n const contentApiActions = _.pickBy(controller, isContentApi);\n\n if (_.isEmpty(contentApiActions)) {\n return acc;\n }\n\n acc[controllerName] = Object.keys(contentApiActions);\n\n return acc;\n },\n {} as Record<string, string[]>\n );\n\n if (!_.isEmpty(controllers)) {\n actionMap[`${source}::${apiName}`] = { controllers };\n }\n });\n };\n\n registerAPIsActions(strapi.apis, 'api');\n registerAPIsActions(strapi.plugins, 'plugin');\n\n return actionMap;\n };\n\n /**\n * Register all the content-API controllers actions into the action provider.\n * This method make use of the {@link getActionsMap} to generate the list of actions to register.\n */\n const registerActions = async () => {\n const actionsMap = getActionsMap();\n\n // For each API\n for (const [api, value] of Object.entries(actionsMap)) {\n const { controllers } = value;\n\n // Register controllers methods as actions\n for (const [controller, actions] of Object.entries(controllers)) {\n // Register each action individually\n await Promise.all(\n actions.map((action) => {\n const actionUID = `${api}.${controller}.${action}`;\n\n return providers.action.register(actionUID, {\n api,\n controller,\n action,\n uid: actionUID,\n });\n })\n );\n }\n }\n };\n\n // Create an instance of a content-API permission engine\n // and binds a custom validation handler to it\n const engine = createPermissionEngine({ providers });\n\n engine.on(\n 'before-format::validate.permission',\n createValidatePermissionHandler(providers.action)\n );\n\n return {\n engine,\n providers,\n registerActions,\n getActionsMap,\n };\n};\n"],"names":["action","strapi","createActionProvider","createConditionProvider","_","engine","createPermissionEngine"],"mappings":";;;;;;;AAKA,MAAM,aAAa,OAAO,IAAI,UAAU;AASxC,MAAM,kCACJ,CAAC,mBACD,CAAC,EAAE,iBAAiB;AAClB,QAAMA,UAAS,eAAe,IAAI,WAAW,MAAM;AAGnD,MAAI,CAACA,SAAQ;AACX,WAAO,IAAI;AAAA,MACT,mBAAmB,WAAW,MAAM;AAAA,IAAA;AAG/B,WAAA;AAAA,EACT;AAEO,SAAA;AACT;AAMF,MAAe,kCAAA,CAACC,YAAwB;AAGtC,QAAM,YAAY;AAAA,IAChB,QAAQC,OAAqB;AAAA,IAC7B,WAAWC,UAAwB;AAAA,EAAA;AASrC,QAAM,gBAAgB,MAAM;AAC1B,UAAM,YAKF,CAAA;AAME,UAAA,eAAe,CAACH,YAA0D;AAC9E,UAAI,CAACI,WAAAA,QAAE,IAAIJ,SAAQ,UAAU,GAAG;AACvB,eAAA;AAAA,MACT;AAEA,aAAOA,QAAO,UAAU,EAAE,SAAS,aAAa;AAAA,IAAA;AAM5C,UAAA,sBAAsB,CAC1B,MACA,WACG;AACHI,iBAAAA,QAAE,QAAQ,MAAM,CAAC,KAAK,YAAY;AAChC,cAAM,cAAcA,WAAAA,QAAE;AAAA,UACpB,IAAI;AAAA,UACJ,CAAC,KAAK,YAAY,mBAAmB;AACnC,kBAAM,oBAAoBA,WAAA,QAAE,OAAO,YAAY,YAAY;AAEvD,gBAAAA,WAAA,QAAE,QAAQ,iBAAiB,GAAG;AACzB,qBAAA;AAAA,YACT;AAEA,gBAAI,cAAc,IAAI,OAAO,KAAK,iBAAiB;AAE5C,mBAAA;AAAA,UACT;AAAA,UACA,CAAC;AAAA,QAAA;AAGH,YAAI,CAACA,WAAA,QAAE,QAAQ,WAAW,GAAG;AAC3B,oBAAU,GAAG,MAAM,KAAK,OAAO,EAAE,IAAI,EAAE;QACzC;AAAA,MAAA,CACD;AAAA,IAAA;AAGiBH,wBAAAA,QAAO,MAAM,KAAK;AAClBA,wBAAAA,QAAO,SAAS,QAAQ;AAErC,WAAA;AAAA,EAAA;AAOT,QAAM,kBAAkB,YAAY;AAClC,UAAM,aAAa;AAGnB,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC/C,YAAA,EAAE,YAAgB,IAAA;AAGxB,iBAAW,CAAC,YAAY,OAAO,KAAK,OAAO,QAAQ,WAAW,GAAG;AAE/D,cAAM,QAAQ;AAAA,UACZ,QAAQ,IAAI,CAACD,YAAW;AACtB,kBAAM,YAAY,GAAG,GAAG,IAAI,UAAU,IAAIA,OAAM;AAEzC,mBAAA,UAAU,OAAO,SAAS,WAAW;AAAA,cAC1C;AAAA,cACA;AAAA,cACA,QAAAA;AAAA,cACA,KAAK;AAAA,YAAA,CACN;AAAA,UAAA,CACF;AAAA,QAAA;AAAA,MAEL;AAAA,IACF;AAAA,EAAA;AAKF,QAAMK,WAASC,OAAuB,EAAE,UAAW,CAAA;AAE5CD,WAAA;AAAA,IACL;AAAA,IACA,gCAAgC,UAAU,MAAM;AAAA,EAAA;AAG3C,SAAA;AAAA,IAAA,QACLA;AAAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;;"}
@@ -45,7 +45,7 @@ const instantiatePermissionsUtilities = (strapi2) => {
45
45
  }
46
46
  });
47
47
  };
48
- registerAPIsActions(strapi2.api, "api");
48
+ registerAPIsActions(strapi2.apis, "api");
49
49
  registerAPIsActions(strapi2.plugins, "plugin");
50
50
  return actionMap;
51
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/services/content-api/permissions/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Strapi, Common } from '@strapi/types';\nimport { createActionProvider, createConditionProvider } from './providers';\nimport createPermissionEngine from './engine';\n\nconst typeSymbol = Symbol.for('__type__');\n\ninterface ValidatePermissionHandler {\n (params: { permission: { action: string } }): boolean;\n}\n\n/**\n * Creates an handler that checks if the permission's action exists in the action registry\n */\nconst createValidatePermissionHandler =\n (actionProvider: ReturnType<typeof createActionProvider>): ValidatePermissionHandler =>\n ({ permission }) => {\n const action = actionProvider.get(permission.action);\n\n // If the action isn't registered into the action provider, then ignore the permission and warn the user\n if (!action) {\n strapi.log.debug(\n `Unknown action \"${permission.action}\" supplied when registering a new permission`\n );\n\n return false;\n }\n\n return true;\n };\n\n/**\n * Create instances of providers and permission engine for the core content-API service.\n * Also, expose utilities to get informations about available actions and such.\n */\nexport default (strapi: Strapi) => {\n // NOTE: Here we define both an action and condition provider,\n // but at the moment, we're only using the action one.\n const providers = {\n action: createActionProvider(),\n condition: createConditionProvider(),\n };\n\n /**\n * Get a tree representation of the available Content API actions\n * based on the methods of the Content API controllers.\n *\n * @note Only actions bound to a content-API route are returned.\n */\n const getActionsMap = () => {\n const actionMap: Record<\n string,\n {\n controllers: Record<string, string[]>;\n }\n > = {};\n\n /**\n * Check if a controller's action is bound to the\n * content-api by looking at a potential __type__ symbol\n */\n const isContentApi = (action: Common.ControllerHandler & { [s: symbol]: any }) => {\n if (!_.has(action, typeSymbol)) {\n return false;\n }\n\n return action[typeSymbol].includes('content-api');\n };\n\n /**\n * Register actions from a specific API source into the result tree\n */\n const registerAPIsActions = (\n apis: Record<string, Common.Plugin | Common.Module>,\n source: 'api' | 'plugin'\n ) => {\n _.forEach(apis, (api, apiName) => {\n const controllers = _.reduce(\n api.controllers,\n (acc, controller, controllerName) => {\n const contentApiActions = _.pickBy(controller, isContentApi);\n\n if (_.isEmpty(contentApiActions)) {\n return acc;\n }\n\n acc[controllerName] = Object.keys(contentApiActions);\n\n return acc;\n },\n {} as Record<string, string[]>\n );\n\n if (!_.isEmpty(controllers)) {\n actionMap[`${source}::${apiName}`] = { controllers };\n }\n });\n };\n\n registerAPIsActions(strapi.api, 'api');\n registerAPIsActions(strapi.plugins, 'plugin');\n\n return actionMap;\n };\n\n /**\n * Register all the content-API's controllers actions into the action provider.\n * This method make use of the {@link getActionsMap} to generate the list of actions to register.\n *\n * @return {void}\n */\n const registerActions = async () => {\n const actionsMap = getActionsMap();\n\n // For each API\n for (const [api, value] of Object.entries(actionsMap)) {\n const { controllers } = value;\n\n // Register controllers methods as actions\n for (const [controller, actions] of Object.entries(controllers)) {\n // Register each action individually\n await Promise.all(\n actions.map((action) => {\n const actionUID = `${api}.${controller}.${action}`;\n\n return providers.action.register(actionUID, {\n api,\n controller,\n action,\n uid: actionUID,\n });\n })\n );\n }\n }\n };\n\n // Create an instance of a content-API permission engine\n // and binds a custom validation handler to it\n const engine = createPermissionEngine({ providers });\n\n engine.on(\n 'before-format::validate.permission',\n createValidatePermissionHandler(providers.action)\n );\n\n return {\n engine,\n providers,\n registerActions,\n getActionsMap,\n };\n};\n"],"names":["strapi"],"mappings":";;;;AAKA,MAAM,aAAa,OAAO,IAAI,UAAU;AASxC,MAAM,kCACJ,CAAC,mBACD,CAAC,EAAE,iBAAiB;AAClB,QAAM,SAAS,eAAe,IAAI,WAAW,MAAM;AAGnD,MAAI,CAAC,QAAQ;AACX,WAAO,IAAI;AAAA,MACT,mBAAmB,WAAW,MAAM;AAAA,IAAA;AAG/B,WAAA;AAAA,EACT;AAEO,SAAA;AACT;AAMF,MAAe,kCAAA,CAACA,YAAmB;AAGjC,QAAM,YAAY;AAAA,IAChB,QAAQ,qBAAqB;AAAA,IAC7B,WAAW,wBAAwB;AAAA,EAAA;AASrC,QAAM,gBAAgB,MAAM;AAC1B,UAAM,YAKF,CAAA;AAME,UAAA,eAAe,CAAC,WAA4D;AAChF,UAAI,CAAC,EAAE,IAAI,QAAQ,UAAU,GAAG;AACvB,eAAA;AAAA,MACT;AAEA,aAAO,OAAO,UAAU,EAAE,SAAS,aAAa;AAAA,IAAA;AAM5C,UAAA,sBAAsB,CAC1B,MACA,WACG;AACH,QAAE,QAAQ,MAAM,CAAC,KAAK,YAAY;AAChC,cAAM,cAAc,EAAE;AAAA,UACpB,IAAI;AAAA,UACJ,CAAC,KAAK,YAAY,mBAAmB;AACnC,kBAAM,oBAAoB,EAAE,OAAO,YAAY,YAAY;AAEvD,gBAAA,EAAE,QAAQ,iBAAiB,GAAG;AACzB,qBAAA;AAAA,YACT;AAEA,gBAAI,cAAc,IAAI,OAAO,KAAK,iBAAiB;AAE5C,mBAAA;AAAA,UACT;AAAA,UACA,CAAC;AAAA,QAAA;AAGH,YAAI,CAAC,EAAE,QAAQ,WAAW,GAAG;AAC3B,oBAAU,GAAG,MAAM,KAAK,OAAO,EAAE,IAAI,EAAE;QACzC;AAAA,MAAA,CACD;AAAA,IAAA;AAGiBA,wBAAAA,QAAO,KAAK,KAAK;AACjBA,wBAAAA,QAAO,SAAS,QAAQ;AAErC,WAAA;AAAA,EAAA;AAST,QAAM,kBAAkB,YAAY;AAClC,UAAM,aAAa;AAGnB,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC/C,YAAA,EAAE,YAAgB,IAAA;AAGxB,iBAAW,CAAC,YAAY,OAAO,KAAK,OAAO,QAAQ,WAAW,GAAG;AAE/D,cAAM,QAAQ;AAAA,UACZ,QAAQ,IAAI,CAAC,WAAW;AACtB,kBAAM,YAAY,GAAG,GAAG,IAAI,UAAU,IAAI,MAAM;AAEzC,mBAAA,UAAU,OAAO,SAAS,WAAW;AAAA,cAC1C;AAAA,cACA;AAAA,cACA;AAAA,cACA,KAAK;AAAA,YAAA,CACN;AAAA,UAAA,CACF;AAAA,QAAA;AAAA,MAEL;AAAA,IACF;AAAA,EAAA;AAKF,QAAM,SAAS,uBAAuB,EAAE,UAAW,CAAA;AAE5C,SAAA;AAAA,IACL;AAAA,IACA,gCAAgC,UAAU,MAAM;AAAA,EAAA;AAG3C,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/services/content-api/permissions/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\nimport { createActionProvider, createConditionProvider } from './providers';\nimport createPermissionEngine from './engine';\n\nconst typeSymbol = Symbol.for('__type__');\n\ninterface ValidatePermissionHandler {\n (params: { permission: { action: string } }): boolean;\n}\n\n/**\n * Creates a handler that checks if the permission's action exists in the action registry\n */\nconst createValidatePermissionHandler =\n (actionProvider: ReturnType<typeof createActionProvider>): ValidatePermissionHandler =>\n ({ permission }) => {\n const action = actionProvider.get(permission.action);\n\n // If the action isn't registered into the action provider, then ignore the permission and warn the user\n if (!action) {\n strapi.log.debug(\n `Unknown action \"${permission.action}\" supplied when registering a new permission`\n );\n\n return false;\n }\n\n return true;\n };\n\n/**\n * Create instances of providers and permission engine for the core content-API service.\n * Also, expose utilities to get information about available actions and such.\n */\nexport default (strapi: Core.Strapi) => {\n // NOTE: Here we define both an action and condition provider,\n // but at the moment, we're only using the action one.\n const providers = {\n action: createActionProvider(),\n condition: createConditionProvider(),\n };\n\n /**\n * Get a tree representation of the available Content API actions\n * based on the methods of the Content API controllers.\n *\n * @note Only actions bound to a content-API route are returned.\n */\n const getActionsMap = () => {\n const actionMap: Record<\n string,\n {\n controllers: Record<string, string[]>;\n }\n > = {};\n\n /**\n * Check if a controller's action is bound to the\n * content-api by looking at a potential __type__ symbol\n */\n const isContentApi = (action: Core.ControllerHandler & { [s: symbol]: any }) => {\n if (!_.has(action, typeSymbol)) {\n return false;\n }\n\n return action[typeSymbol].includes('content-api');\n };\n\n /**\n * Register actions from a specific API source into the result tree\n */\n const registerAPIsActions = (\n apis: Record<string, Core.Plugin | Core.Module>,\n source: 'api' | 'plugin'\n ) => {\n _.forEach(apis, (api, apiName) => {\n const controllers = _.reduce(\n api.controllers,\n (acc, controller, controllerName) => {\n const contentApiActions = _.pickBy(controller, isContentApi);\n\n if (_.isEmpty(contentApiActions)) {\n return acc;\n }\n\n acc[controllerName] = Object.keys(contentApiActions);\n\n return acc;\n },\n {} as Record<string, string[]>\n );\n\n if (!_.isEmpty(controllers)) {\n actionMap[`${source}::${apiName}`] = { controllers };\n }\n });\n };\n\n registerAPIsActions(strapi.apis, 'api');\n registerAPIsActions(strapi.plugins, 'plugin');\n\n return actionMap;\n };\n\n /**\n * Register all the content-API controllers actions into the action provider.\n * This method make use of the {@link getActionsMap} to generate the list of actions to register.\n */\n const registerActions = async () => {\n const actionsMap = getActionsMap();\n\n // For each API\n for (const [api, value] of Object.entries(actionsMap)) {\n const { controllers } = value;\n\n // Register controllers methods as actions\n for (const [controller, actions] of Object.entries(controllers)) {\n // Register each action individually\n await Promise.all(\n actions.map((action) => {\n const actionUID = `${api}.${controller}.${action}`;\n\n return providers.action.register(actionUID, {\n api,\n controller,\n action,\n uid: actionUID,\n });\n })\n );\n }\n }\n };\n\n // Create an instance of a content-API permission engine\n // and binds a custom validation handler to it\n const engine = createPermissionEngine({ providers });\n\n engine.on(\n 'before-format::validate.permission',\n createValidatePermissionHandler(providers.action)\n );\n\n return {\n engine,\n providers,\n registerActions,\n getActionsMap,\n };\n};\n"],"names":["strapi"],"mappings":";;;;AAKA,MAAM,aAAa,OAAO,IAAI,UAAU;AASxC,MAAM,kCACJ,CAAC,mBACD,CAAC,EAAE,iBAAiB;AAClB,QAAM,SAAS,eAAe,IAAI,WAAW,MAAM;AAGnD,MAAI,CAAC,QAAQ;AACX,WAAO,IAAI;AAAA,MACT,mBAAmB,WAAW,MAAM;AAAA,IAAA;AAG/B,WAAA;AAAA,EACT;AAEO,SAAA;AACT;AAMF,MAAe,kCAAA,CAACA,YAAwB;AAGtC,QAAM,YAAY;AAAA,IAChB,QAAQ,qBAAqB;AAAA,IAC7B,WAAW,wBAAwB;AAAA,EAAA;AASrC,QAAM,gBAAgB,MAAM;AAC1B,UAAM,YAKF,CAAA;AAME,UAAA,eAAe,CAAC,WAA0D;AAC9E,UAAI,CAAC,EAAE,IAAI,QAAQ,UAAU,GAAG;AACvB,eAAA;AAAA,MACT;AAEA,aAAO,OAAO,UAAU,EAAE,SAAS,aAAa;AAAA,IAAA;AAM5C,UAAA,sBAAsB,CAC1B,MACA,WACG;AACH,QAAE,QAAQ,MAAM,CAAC,KAAK,YAAY;AAChC,cAAM,cAAc,EAAE;AAAA,UACpB,IAAI;AAAA,UACJ,CAAC,KAAK,YAAY,mBAAmB;AACnC,kBAAM,oBAAoB,EAAE,OAAO,YAAY,YAAY;AAEvD,gBAAA,EAAE,QAAQ,iBAAiB,GAAG;AACzB,qBAAA;AAAA,YACT;AAEA,gBAAI,cAAc,IAAI,OAAO,KAAK,iBAAiB;AAE5C,mBAAA;AAAA,UACT;AAAA,UACA,CAAC;AAAA,QAAA;AAGH,YAAI,CAAC,EAAE,QAAQ,WAAW,GAAG;AAC3B,oBAAU,GAAG,MAAM,KAAK,OAAO,EAAE,IAAI,EAAE;QACzC;AAAA,MAAA,CACD;AAAA,IAAA;AAGiBA,wBAAAA,QAAO,MAAM,KAAK;AAClBA,wBAAAA,QAAO,SAAS,QAAQ;AAErC,WAAA;AAAA,EAAA;AAOT,QAAM,kBAAkB,YAAY;AAClC,UAAM,aAAa;AAGnB,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC/C,YAAA,EAAE,YAAgB,IAAA;AAGxB,iBAAW,CAAC,YAAY,OAAO,KAAK,OAAO,QAAQ,WAAW,GAAG;AAE/D,cAAM,QAAQ;AAAA,UACZ,QAAQ,IAAI,CAAC,WAAW;AACtB,kBAAM,YAAY,GAAG,GAAG,IAAI,UAAU,IAAI,MAAM;AAEzC,mBAAA,UAAU,OAAO,SAAS,WAAW;AAAA,cAC1C;AAAA,cACA;AAAA,cACA;AAAA,cACA,KAAK;AAAA,YAAA,CACN;AAAA,UAAA,CACF;AAAA,QAAA;AAAA,MAEL;AAAA,IACF;AAAA,EAAA;AAKF,QAAM,SAAS,uBAAuB,EAAE,UAAW,CAAA;AAE5C,SAAA;AAAA,IACL;AAAA,IACA,gCAAgC,UAAU,MAAM;AAAA,EAAA;AAG3C,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
@@ -1,12 +1,12 @@
1
1
  import { Job } from 'node-schedule';
2
- import type { Strapi } from '@strapi/types';
2
+ import type { Core } from '@strapi/types';
3
3
  interface JobSpec {
4
4
  job: Job;
5
5
  options: string | number | Date;
6
6
  name: string | null;
7
7
  }
8
8
  type TaskFn = ({ strapi }: {
9
- strapi: Strapi;
9
+ strapi: Core.Strapi;
10
10
  }, ...args: unknown[]) => Promise<unknown>;
11
11
  type Task = TaskFn | {
12
12
  task: TaskFn;
@@ -1 +1 @@
1
- {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/services/cron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,UAAU,OAAO;IACf,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,KAAK,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvF,KAAK,IAAI,GACL,MAAM,GACN;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,UAAU,KAAK;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,iBAAiB;gBAKR,KAAK;iBAoCH,MAAM;;;;;CAgCtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/services/cron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,UAAU,OAAO;IACf,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,KAAK,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE5F,KAAK,IAAI,GACL,MAAM,GACN;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,UAAU,KAAK;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,iBAAiB;gBAKR,KAAK;iBAoCH,MAAM;;;;;CAgCtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cron.js","sources":["../../src/services/cron.ts"],"sourcesContent":["import { Job } from 'node-schedule';\nimport { isFunction } from 'lodash/fp';\nimport type { Strapi } from '@strapi/types';\n\ninterface JobSpec {\n job: Job;\n options: string | number | Date;\n name: string | null;\n}\n\ntype TaskFn = ({ strapi }: { strapi: Strapi }, ...args: unknown[]) => Promise<unknown>;\n\ntype Task =\n | TaskFn\n | {\n task: TaskFn;\n options: string;\n };\n\ninterface Tasks {\n [key: string]: Task;\n}\n\nconst createCronService = () => {\n let jobsSpecs: JobSpec[] = [];\n let running = false;\n\n return {\n add(tasks: Tasks = {}) {\n for (const taskExpression of Object.keys(tasks)) {\n const taskValue = tasks[taskExpression];\n\n let fn: TaskFn;\n let options: string | number | Date;\n let taskName: string | null;\n if (isFunction(taskValue)) {\n // don't use task name if key is the rule\n taskName = null;\n fn = taskValue.bind(tasks);\n options = taskExpression;\n } else if (isFunction(taskValue.task)) {\n // set task name if key is not the rule\n taskName = taskExpression;\n fn = taskValue.task.bind(taskValue);\n options = taskValue.options;\n } else {\n throw new Error(\n `Could not schedule a cron job for \"${taskExpression}\": no function found.`\n );\n }\n\n const fnWithStrapi = (...args: unknown[]) => fn({ strapi }, ...args);\n\n // const job = new Job(null, fnWithStrapi);\n const job = new Job(fnWithStrapi);\n jobsSpecs.push({ job, options, name: taskName });\n\n if (running) {\n job.schedule(options);\n }\n }\n return this;\n },\n\n remove(name: string) {\n if (!name) {\n throw new Error('You must provide a name to remove a cron job.');\n }\n\n jobsSpecs\n .filter(({ name: jobSpecName }) => jobSpecName === name)\n .forEach(({ job }) => job.cancel());\n\n jobsSpecs = jobsSpecs.filter(({ name: jobSpecName }) => jobSpecName !== name);\n return this;\n },\n\n start() {\n jobsSpecs.forEach(({ job, options }) => job.schedule(options));\n running = true;\n return this;\n },\n\n stop() {\n jobsSpecs.forEach(({ job }) => job.cancel());\n running = false;\n return this;\n },\n\n destroy() {\n this.stop();\n jobsSpecs = [];\n return this;\n },\n jobs: jobsSpecs,\n };\n};\n\nexport default createCronService;\n"],"names":["isFunction","Job"],"mappings":";;;AAuBA,MAAM,oBAAoB,MAAM;AAC9B,MAAI,YAAuB,CAAA;AAC3B,MAAI,UAAU;AAEP,SAAA;AAAA,IACL,IAAI,QAAe,IAAI;AACrB,iBAAW,kBAAkB,OAAO,KAAK,KAAK,GAAG;AACzC,cAAA,YAAY,MAAM,cAAc;AAElC,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAAA,EAAAA,WAAW,SAAS,GAAG;AAEd,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK;AACf,oBAAA;AAAA,QACD,WAAAA,EAAA,WAAW,UAAU,IAAI,GAAG;AAE1B,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK,SAAS;AAClC,oBAAU,UAAU;AAAA,QAAA,OACf;AACL,gBAAM,IAAI;AAAA,YACR,sCAAsC,cAAc;AAAA,UAAA;AAAA,QAExD;AAEM,cAAA,eAAe,IAAI,SAAoB,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI;AAG7D,cAAA,MAAM,IAAIC,iBAAI,YAAY;AAChC,kBAAU,KAAK,EAAE,KAAK,SAAS,MAAM,UAAU;AAE/C,YAAI,SAAS;AACX,cAAI,SAAS,OAAO;AAAA,QACtB;AAAA,MACF;AACO,aAAA;AAAA,IACT;AAAA,IAEA,OAAO,MAAc;AACnB,UAAI,CAAC,MAAM;AACH,cAAA,IAAI,MAAM,+CAA+C;AAAA,MACjE;AAEA,gBACG,OAAO,CAAC,EAAE,MAAM,YAAA,MAAkB,gBAAgB,IAAI,EACtD,QAAQ,CAAC,EAAE,IAAA,MAAU,IAAI,OAAQ,CAAA;AAExB,kBAAA,UAAU,OAAO,CAAC,EAAE,MAAM,YAAY,MAAM,gBAAgB,IAAI;AACrE,aAAA;AAAA,IACT;AAAA,IAEA,QAAQ;AACI,gBAAA,QAAQ,CAAC,EAAE,KAAK,QAAc,MAAA,IAAI,SAAS,OAAO,CAAC;AACnD,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,OAAO;AACL,gBAAU,QAAQ,CAAC,EAAE,IAAU,MAAA,IAAI,QAAQ;AACjC,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,UAAU;AACR,WAAK,KAAK;AACV,kBAAY,CAAA;AACL,aAAA;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EAAA;AAEV;;"}
1
+ {"version":3,"file":"cron.js","sources":["../../src/services/cron.ts"],"sourcesContent":["import { Job } from 'node-schedule';\nimport { isFunction } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\ninterface JobSpec {\n job: Job;\n options: string | number | Date;\n name: string | null;\n}\n\ntype TaskFn = ({ strapi }: { strapi: Core.Strapi }, ...args: unknown[]) => Promise<unknown>;\n\ntype Task =\n | TaskFn\n | {\n task: TaskFn;\n options: string;\n };\n\ninterface Tasks {\n [key: string]: Task;\n}\n\nconst createCronService = () => {\n let jobsSpecs: JobSpec[] = [];\n let running = false;\n\n return {\n add(tasks: Tasks = {}) {\n for (const taskExpression of Object.keys(tasks)) {\n const taskValue = tasks[taskExpression];\n\n let fn: TaskFn;\n let options: string | number | Date;\n let taskName: string | null;\n if (isFunction(taskValue)) {\n // don't use task name if key is the rule\n taskName = null;\n fn = taskValue.bind(tasks);\n options = taskExpression;\n } else if (isFunction(taskValue.task)) {\n // set task name if key is not the rule\n taskName = taskExpression;\n fn = taskValue.task.bind(taskValue);\n options = taskValue.options;\n } else {\n throw new Error(\n `Could not schedule a cron job for \"${taskExpression}\": no function found.`\n );\n }\n\n const fnWithStrapi = (...args: unknown[]) => fn({ strapi }, ...args);\n\n // const job = new Job(null, fnWithStrapi);\n const job = new Job(fnWithStrapi);\n jobsSpecs.push({ job, options, name: taskName });\n\n if (running) {\n job.schedule(options);\n }\n }\n return this;\n },\n\n remove(name: string) {\n if (!name) {\n throw new Error('You must provide a name to remove a cron job.');\n }\n\n jobsSpecs\n .filter(({ name: jobSpecName }) => jobSpecName === name)\n .forEach(({ job }) => job.cancel());\n\n jobsSpecs = jobsSpecs.filter(({ name: jobSpecName }) => jobSpecName !== name);\n return this;\n },\n\n start() {\n jobsSpecs.forEach(({ job, options }) => job.schedule(options));\n running = true;\n return this;\n },\n\n stop() {\n jobsSpecs.forEach(({ job }) => job.cancel());\n running = false;\n return this;\n },\n\n destroy() {\n this.stop();\n jobsSpecs = [];\n return this;\n },\n jobs: jobsSpecs,\n };\n};\n\nexport default createCronService;\n"],"names":["isFunction","Job"],"mappings":";;;AAuBA,MAAM,oBAAoB,MAAM;AAC9B,MAAI,YAAuB,CAAA;AAC3B,MAAI,UAAU;AAEP,SAAA;AAAA,IACL,IAAI,QAAe,IAAI;AACrB,iBAAW,kBAAkB,OAAO,KAAK,KAAK,GAAG;AACzC,cAAA,YAAY,MAAM,cAAc;AAElC,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAAA,EAAAA,WAAW,SAAS,GAAG;AAEd,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK;AACf,oBAAA;AAAA,QACD,WAAAA,EAAA,WAAW,UAAU,IAAI,GAAG;AAE1B,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK,SAAS;AAClC,oBAAU,UAAU;AAAA,QAAA,OACf;AACL,gBAAM,IAAI;AAAA,YACR,sCAAsC,cAAc;AAAA,UAAA;AAAA,QAExD;AAEM,cAAA,eAAe,IAAI,SAAoB,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI;AAG7D,cAAA,MAAM,IAAIC,iBAAI,YAAY;AAChC,kBAAU,KAAK,EAAE,KAAK,SAAS,MAAM,UAAU;AAE/C,YAAI,SAAS;AACX,cAAI,SAAS,OAAO;AAAA,QACtB;AAAA,MACF;AACO,aAAA;AAAA,IACT;AAAA,IAEA,OAAO,MAAc;AACnB,UAAI,CAAC,MAAM;AACH,cAAA,IAAI,MAAM,+CAA+C;AAAA,MACjE;AAEA,gBACG,OAAO,CAAC,EAAE,MAAM,YAAA,MAAkB,gBAAgB,IAAI,EACtD,QAAQ,CAAC,EAAE,IAAA,MAAU,IAAI,OAAQ,CAAA;AAExB,kBAAA,UAAU,OAAO,CAAC,EAAE,MAAM,YAAY,MAAM,gBAAgB,IAAI;AACrE,aAAA;AAAA,IACT;AAAA,IAEA,QAAQ;AACI,gBAAA,QAAQ,CAAC,EAAE,KAAK,QAAc,MAAA,IAAI,SAAS,OAAO,CAAC;AACnD,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,OAAO;AACL,gBAAU,QAAQ,CAAC,EAAE,IAAU,MAAA,IAAI,QAAQ;AACjC,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,UAAU;AACR,WAAK,KAAK;AACV,kBAAY,CAAA;AACL,aAAA;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EAAA;AAEV;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"cron.mjs","sources":["../../src/services/cron.ts"],"sourcesContent":["import { Job } from 'node-schedule';\nimport { isFunction } from 'lodash/fp';\nimport type { Strapi } from '@strapi/types';\n\ninterface JobSpec {\n job: Job;\n options: string | number | Date;\n name: string | null;\n}\n\ntype TaskFn = ({ strapi }: { strapi: Strapi }, ...args: unknown[]) => Promise<unknown>;\n\ntype Task =\n | TaskFn\n | {\n task: TaskFn;\n options: string;\n };\n\ninterface Tasks {\n [key: string]: Task;\n}\n\nconst createCronService = () => {\n let jobsSpecs: JobSpec[] = [];\n let running = false;\n\n return {\n add(tasks: Tasks = {}) {\n for (const taskExpression of Object.keys(tasks)) {\n const taskValue = tasks[taskExpression];\n\n let fn: TaskFn;\n let options: string | number | Date;\n let taskName: string | null;\n if (isFunction(taskValue)) {\n // don't use task name if key is the rule\n taskName = null;\n fn = taskValue.bind(tasks);\n options = taskExpression;\n } else if (isFunction(taskValue.task)) {\n // set task name if key is not the rule\n taskName = taskExpression;\n fn = taskValue.task.bind(taskValue);\n options = taskValue.options;\n } else {\n throw new Error(\n `Could not schedule a cron job for \"${taskExpression}\": no function found.`\n );\n }\n\n const fnWithStrapi = (...args: unknown[]) => fn({ strapi }, ...args);\n\n // const job = new Job(null, fnWithStrapi);\n const job = new Job(fnWithStrapi);\n jobsSpecs.push({ job, options, name: taskName });\n\n if (running) {\n job.schedule(options);\n }\n }\n return this;\n },\n\n remove(name: string) {\n if (!name) {\n throw new Error('You must provide a name to remove a cron job.');\n }\n\n jobsSpecs\n .filter(({ name: jobSpecName }) => jobSpecName === name)\n .forEach(({ job }) => job.cancel());\n\n jobsSpecs = jobsSpecs.filter(({ name: jobSpecName }) => jobSpecName !== name);\n return this;\n },\n\n start() {\n jobsSpecs.forEach(({ job, options }) => job.schedule(options));\n running = true;\n return this;\n },\n\n stop() {\n jobsSpecs.forEach(({ job }) => job.cancel());\n running = false;\n return this;\n },\n\n destroy() {\n this.stop();\n jobsSpecs = [];\n return this;\n },\n jobs: jobsSpecs,\n };\n};\n\nexport default createCronService;\n"],"names":[],"mappings":";;AAuBA,MAAM,oBAAoB,MAAM;AAC9B,MAAI,YAAuB,CAAA;AAC3B,MAAI,UAAU;AAEP,SAAA;AAAA,IACL,IAAI,QAAe,IAAI;AACrB,iBAAW,kBAAkB,OAAO,KAAK,KAAK,GAAG;AACzC,cAAA,YAAY,MAAM,cAAc;AAElC,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA,WAAW,SAAS,GAAG;AAEd,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK;AACf,oBAAA;AAAA,QACD,WAAA,WAAW,UAAU,IAAI,GAAG;AAE1B,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK,SAAS;AAClC,oBAAU,UAAU;AAAA,QAAA,OACf;AACL,gBAAM,IAAI;AAAA,YACR,sCAAsC,cAAc;AAAA,UAAA;AAAA,QAExD;AAEM,cAAA,eAAe,IAAI,SAAoB,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI;AAG7D,cAAA,MAAM,IAAI,IAAI,YAAY;AAChC,kBAAU,KAAK,EAAE,KAAK,SAAS,MAAM,UAAU;AAE/C,YAAI,SAAS;AACX,cAAI,SAAS,OAAO;AAAA,QACtB;AAAA,MACF;AACO,aAAA;AAAA,IACT;AAAA,IAEA,OAAO,MAAc;AACnB,UAAI,CAAC,MAAM;AACH,cAAA,IAAI,MAAM,+CAA+C;AAAA,MACjE;AAEA,gBACG,OAAO,CAAC,EAAE,MAAM,YAAA,MAAkB,gBAAgB,IAAI,EACtD,QAAQ,CAAC,EAAE,IAAA,MAAU,IAAI,OAAQ,CAAA;AAExB,kBAAA,UAAU,OAAO,CAAC,EAAE,MAAM,YAAY,MAAM,gBAAgB,IAAI;AACrE,aAAA;AAAA,IACT;AAAA,IAEA,QAAQ;AACI,gBAAA,QAAQ,CAAC,EAAE,KAAK,QAAc,MAAA,IAAI,SAAS,OAAO,CAAC;AACnD,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,OAAO;AACL,gBAAU,QAAQ,CAAC,EAAE,IAAU,MAAA,IAAI,QAAQ;AACjC,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,UAAU;AACR,WAAK,KAAK;AACV,kBAAY,CAAA;AACL,aAAA;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EAAA;AAEV;"}
1
+ {"version":3,"file":"cron.mjs","sources":["../../src/services/cron.ts"],"sourcesContent":["import { Job } from 'node-schedule';\nimport { isFunction } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\ninterface JobSpec {\n job: Job;\n options: string | number | Date;\n name: string | null;\n}\n\ntype TaskFn = ({ strapi }: { strapi: Core.Strapi }, ...args: unknown[]) => Promise<unknown>;\n\ntype Task =\n | TaskFn\n | {\n task: TaskFn;\n options: string;\n };\n\ninterface Tasks {\n [key: string]: Task;\n}\n\nconst createCronService = () => {\n let jobsSpecs: JobSpec[] = [];\n let running = false;\n\n return {\n add(tasks: Tasks = {}) {\n for (const taskExpression of Object.keys(tasks)) {\n const taskValue = tasks[taskExpression];\n\n let fn: TaskFn;\n let options: string | number | Date;\n let taskName: string | null;\n if (isFunction(taskValue)) {\n // don't use task name if key is the rule\n taskName = null;\n fn = taskValue.bind(tasks);\n options = taskExpression;\n } else if (isFunction(taskValue.task)) {\n // set task name if key is not the rule\n taskName = taskExpression;\n fn = taskValue.task.bind(taskValue);\n options = taskValue.options;\n } else {\n throw new Error(\n `Could not schedule a cron job for \"${taskExpression}\": no function found.`\n );\n }\n\n const fnWithStrapi = (...args: unknown[]) => fn({ strapi }, ...args);\n\n // const job = new Job(null, fnWithStrapi);\n const job = new Job(fnWithStrapi);\n jobsSpecs.push({ job, options, name: taskName });\n\n if (running) {\n job.schedule(options);\n }\n }\n return this;\n },\n\n remove(name: string) {\n if (!name) {\n throw new Error('You must provide a name to remove a cron job.');\n }\n\n jobsSpecs\n .filter(({ name: jobSpecName }) => jobSpecName === name)\n .forEach(({ job }) => job.cancel());\n\n jobsSpecs = jobsSpecs.filter(({ name: jobSpecName }) => jobSpecName !== name);\n return this;\n },\n\n start() {\n jobsSpecs.forEach(({ job, options }) => job.schedule(options));\n running = true;\n return this;\n },\n\n stop() {\n jobsSpecs.forEach(({ job }) => job.cancel());\n running = false;\n return this;\n },\n\n destroy() {\n this.stop();\n jobsSpecs = [];\n return this;\n },\n jobs: jobsSpecs,\n };\n};\n\nexport default createCronService;\n"],"names":[],"mappings":";;AAuBA,MAAM,oBAAoB,MAAM;AAC9B,MAAI,YAAuB,CAAA;AAC3B,MAAI,UAAU;AAEP,SAAA;AAAA,IACL,IAAI,QAAe,IAAI;AACrB,iBAAW,kBAAkB,OAAO,KAAK,KAAK,GAAG;AACzC,cAAA,YAAY,MAAM,cAAc;AAElC,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA,WAAW,SAAS,GAAG;AAEd,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK;AACf,oBAAA;AAAA,QACD,WAAA,WAAW,UAAU,IAAI,GAAG;AAE1B,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK,SAAS;AAClC,oBAAU,UAAU;AAAA,QAAA,OACf;AACL,gBAAM,IAAI;AAAA,YACR,sCAAsC,cAAc;AAAA,UAAA;AAAA,QAExD;AAEM,cAAA,eAAe,IAAI,SAAoB,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI;AAG7D,cAAA,MAAM,IAAI,IAAI,YAAY;AAChC,kBAAU,KAAK,EAAE,KAAK,SAAS,MAAM,UAAU;AAE/C,YAAI,SAAS;AACX,cAAI,SAAS,OAAO;AAAA,QACtB;AAAA,MACF;AACO,aAAA;AAAA,IACT;AAAA,IAEA,OAAO,MAAc;AACnB,UAAI,CAAC,MAAM;AACH,cAAA,IAAI,MAAM,+CAA+C;AAAA,MACjE;AAEA,gBACG,OAAO,CAAC,EAAE,MAAM,YAAA,MAAkB,gBAAgB,IAAI,EACtD,QAAQ,CAAC,EAAE,IAAA,MAAU,IAAI,OAAQ,CAAA;AAExB,kBAAA,UAAU,OAAO,CAAC,EAAE,MAAM,YAAY,MAAM,gBAAgB,IAAI;AACrE,aAAA;AAAA,IACT;AAAA,IAEA,QAAQ;AACI,gBAAA,QAAQ,CAAC,EAAE,KAAK,QAAc,MAAA,IAAI,SAAS,OAAO,CAAC;AACnD,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,OAAO;AACL,gBAAU,QAAQ,CAAC,EAAE,IAAU,MAAA,IAAI,QAAQ;AACjC,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,UAAU;AACR,WAAK,KAAK;AACV,kBAAY,CAAA;AACL,aAAA;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EAAA;AAEV;"}
@@ -1,4 +1,4 @@
1
- import type { Strapi, CustomFields } from '@strapi/types';
2
- declare const createCustomFields: (strapi: Strapi) => CustomFields.CustomFields;
1
+ import type { Core, Modules } from '@strapi/types';
2
+ declare const createCustomFields: (strapi: Core.Strapi) => Modules.CustomFields.CustomFields;
3
3
  export default createCustomFields;
4
4
  //# sourceMappingURL=custom-fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../src/services/custom-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE1D,QAAA,MAAM,kBAAkB,WAAY,MAAM,KAAG,yBAM5C,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../src/services/custom-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEnD,QAAA,MAAM,kBAAkB,WAAY,KAAK,MAAM,KAAG,QAAQ,YAAY,CAAC,YAMtE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom-fields.js","sources":["../../src/services/custom-fields.ts"],"sourcesContent":["import type { Strapi, CustomFields } from '@strapi/types';\n\nconst createCustomFields = (strapi: Strapi): CustomFields.CustomFields => {\n return {\n register(customField) {\n strapi.get('custom-fields').add(customField);\n },\n };\n};\n\nexport default createCustomFields;\n"],"names":[],"mappings":";AAEM,MAAA,qBAAqB,CAAC,WAA8C;AACjE,SAAA;AAAA,IACL,SAAS,aAAa;AACpB,aAAO,IAAI,eAAe,EAAE,IAAI,WAAW;AAAA,IAC7C;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"custom-fields.js","sources":["../../src/services/custom-fields.ts"],"sourcesContent":["import type { Core, Modules } from '@strapi/types';\n\nconst createCustomFields = (strapi: Core.Strapi): Modules.CustomFields.CustomFields => {\n return {\n register(customField) {\n strapi.get('custom-fields').add(customField);\n },\n };\n};\n\nexport default createCustomFields;\n"],"names":[],"mappings":";AAEM,MAAA,qBAAqB,CAAC,WAA2D;AAC9E,SAAA;AAAA,IACL,SAAS,aAAa;AACpB,aAAO,IAAI,eAAe,EAAE,IAAI,WAAW;AAAA,IAC7C;AAAA,EAAA;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom-fields.mjs","sources":["../../src/services/custom-fields.ts"],"sourcesContent":["import type { Strapi, CustomFields } from '@strapi/types';\n\nconst createCustomFields = (strapi: Strapi): CustomFields.CustomFields => {\n return {\n register(customField) {\n strapi.get('custom-fields').add(customField);\n },\n };\n};\n\nexport default createCustomFields;\n"],"names":[],"mappings":"AAEM,MAAA,qBAAqB,CAAC,WAA8C;AACjE,SAAA;AAAA,IACL,SAAS,aAAa;AACpB,aAAO,IAAI,eAAe,EAAE,IAAI,WAAW;AAAA,IAC7C;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"custom-fields.mjs","sources":["../../src/services/custom-fields.ts"],"sourcesContent":["import type { Core, Modules } from '@strapi/types';\n\nconst createCustomFields = (strapi: Core.Strapi): Modules.CustomFields.CustomFields => {\n return {\n register(customField) {\n strapi.get('custom-fields').add(customField);\n },\n };\n};\n\nexport default createCustomFields;\n"],"names":[],"mappings":"AAEM,MAAA,qBAAqB,CAAC,WAA2D;AAC9E,SAAA;AAAA,IACL,SAAS,aAAa;AACpB,aAAO,IAAI,eAAe,EAAE,IAAI,WAAW;AAAA,IAC7C;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,6 @@
1
+ import type { UID, Modules, Schema } from '@strapi/types';
2
+ declare const applyTransforms: <TUID extends UID.ContentType>(data: Modules.EntityService.Params.Data.Input<TUID>, context: {
3
+ contentType: Schema.ContentType<TUID>;
4
+ }) => Modules.EntityService.Params.Data.Input<TUID>;
5
+ export { applyTransforms };
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/attributes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG1D,QAAA,MAAM,eAAe;;mDA6BpB,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/services/document-service/attributes/index.ts"],"sourcesContent":["import type { UID, Modules, Schema } from '@strapi/types';\nimport transforms from './transforms';\n\nconst applyTransforms = <TUID extends UID.ContentType>(\n data: Modules.EntityService.Params.Data.Input<TUID>,\n context: {\n contentType: Schema.ContentType<TUID>;\n }\n) => {\n const { contentType } = context;\n\n const attributeNames = Object.keys(data) as Array<keyof typeof data & string>;\n\n for (const attributeName of attributeNames) {\n const value = data[attributeName];\n\n const attribute = contentType.attributes[attributeName];\n\n if (!attribute) {\n continue;\n }\n\n const transform = transforms[attribute.type];\n\n if (transform) {\n const attributeContext = { ...context, attributeName, attribute };\n\n data[attributeName] = transform(value, attributeContext);\n }\n }\n\n return data;\n};\n\nexport { applyTransforms };\n"],"names":[],"mappings":";;;AAGM,MAAA,kBAAkB,CACtB,MACA,YAGG;AACG,QAAA,EAAE,YAAgB,IAAA;AAElB,QAAA,iBAAiB,OAAO,KAAK,IAAI;AAEvC,aAAW,iBAAiB,gBAAgB;AACpC,UAAA,QAAQ,KAAK,aAAa;AAE1B,UAAA,YAAY,YAAY,WAAW,aAAa;AAEtD,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AAEM,UAAA,YAAY,WAAW,UAAU,IAAI;AAE3C,QAAI,WAAW;AACb,YAAM,mBAAmB,EAAE,GAAG,SAAS,eAAe,UAAU;AAEhE,WAAK,aAAa,IAAI,UAAU,OAAO,gBAAgB;AAAA,IACzD;AAAA,EACF;AAEO,SAAA;AACT;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/services/document-service/attributes/index.ts"],"sourcesContent":["import type { UID, Modules, Schema } from '@strapi/types';\nimport transforms from './transforms';\n\nconst applyTransforms = <TUID extends UID.ContentType>(\n data: Modules.EntityService.Params.Data.Input<TUID>,\n context: {\n contentType: Schema.ContentType<TUID>;\n }\n) => {\n const { contentType } = context;\n\n const attributeNames = Object.keys(data) as Array<keyof typeof data & string>;\n\n for (const attributeName of attributeNames) {\n const value = data[attributeName];\n\n const attribute = contentType.attributes[attributeName];\n\n if (!attribute) {\n continue;\n }\n\n const transform = transforms[attribute.type];\n\n if (transform) {\n const attributeContext = { ...context, attributeName, attribute };\n\n data[attributeName] = transform(value, attributeContext);\n }\n }\n\n return data;\n};\n\nexport { applyTransforms };\n"],"names":[],"mappings":";AAGM,MAAA,kBAAkB,CACtB,MACA,YAGG;AACG,QAAA,EAAE,YAAgB,IAAA;AAElB,QAAA,iBAAiB,OAAO,KAAK,IAAI;AAEvC,aAAW,iBAAiB,gBAAgB;AACpC,UAAA,QAAQ,KAAK,aAAa;AAE1B,UAAA,YAAY,YAAY,WAAW,aAAa;AAEtD,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AAEM,UAAA,YAAY,WAAW,UAAU,IAAI;AAE3C,QAAI,WAAW;AACb,YAAM,mBAAmB,EAAE,GAAG,SAAS,eAAe,UAAU;AAEhE,WAAK,aAAa,IAAI,UAAU,OAAO,gBAAgB;AAAA,IACzD;AAAA,EACF;AAEO,SAAA;AACT;"}
@@ -0,0 +1,10 @@
1
+ import type { Schema } from '@strapi/types';
2
+ type Transforms = {
3
+ [TKind in Schema.Attribute.Kind]?: (value: unknown, context: {
4
+ attribute: Schema.Attribute.AnyAttribute;
5
+ attributeName: string;
6
+ }) => any;
7
+ };
8
+ declare const transforms: Transforms;
9
+ export default transforms;
10
+ //# sourceMappingURL=transforms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/attributes/transforms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,KAAK,UAAU,GAAG;KACf,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CACjC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;QACzC,aAAa,EAAE,MAAM,CAAC;KACvB,KACE,GAAG;CACT,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,UAgBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transforms.js","sources":["../../../../src/services/document-service/attributes/transforms.ts"],"sourcesContent":["import { getOr, toNumber, isString } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport bcrypt from 'bcryptjs';\n\ntype Transforms = {\n [TKind in Schema.Attribute.Kind]?: (\n value: unknown,\n context: {\n attribute: Schema.Attribute.AnyAttribute;\n attributeName: string;\n }\n ) => any;\n};\n\nconst transforms: Transforms = {\n password(value, context) {\n const { attribute } = context;\n\n if (attribute.type !== 'password') {\n throw new Error('Invalid attribute type');\n }\n\n if (!isString(value) && !(value instanceof Buffer)) {\n return value;\n }\n\n const rounds = toNumber(getOr(10, 'encryption.rounds', attribute));\n\n return bcrypt.hashSync(value.toString(), rounds);\n },\n};\n\nexport default transforms;\n"],"names":["isString","toNumber","getOr","bcrypt"],"mappings":";;;;;AAcA,MAAM,aAAyB;AAAA,EAC7B,SAAS,OAAO,SAAS;AACjB,UAAA,EAAE,UAAc,IAAA;AAElB,QAAA,UAAU,SAAS,YAAY;AAC3B,YAAA,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AAEA,QAAI,CAACA,EAAS,SAAA,KAAK,KAAK,EAAE,iBAAiB,SAAS;AAC3C,aAAA;AAAA,IACT;AAEA,UAAM,SAASC,EAAAA,SAASC,EAAA,MAAM,IAAI,qBAAqB,SAAS,CAAC;AAEjE,WAAOC,gBAAAA,QAAO,SAAS,MAAM,YAAY,MAAM;AAAA,EACjD;AACF;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transforms.mjs","sources":["../../../../src/services/document-service/attributes/transforms.ts"],"sourcesContent":["import { getOr, toNumber, isString } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport bcrypt from 'bcryptjs';\n\ntype Transforms = {\n [TKind in Schema.Attribute.Kind]?: (\n value: unknown,\n context: {\n attribute: Schema.Attribute.AnyAttribute;\n attributeName: string;\n }\n ) => any;\n};\n\nconst transforms: Transforms = {\n password(value, context) {\n const { attribute } = context;\n\n if (attribute.type !== 'password') {\n throw new Error('Invalid attribute type');\n }\n\n if (!isString(value) && !(value instanceof Buffer)) {\n return value;\n }\n\n const rounds = toNumber(getOr(10, 'encryption.rounds', attribute));\n\n return bcrypt.hashSync(value.toString(), rounds);\n },\n};\n\nexport default transforms;\n"],"names":[],"mappings":";;AAcA,MAAM,aAAyB;AAAA,EAC7B,SAAS,OAAO,SAAS;AACjB,UAAA,EAAE,UAAc,IAAA;AAElB,QAAA,UAAU,SAAS,YAAY;AAC3B,YAAA,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AAEA,QAAI,CAAC,SAAS,KAAK,KAAK,EAAE,iBAAiB,SAAS;AAC3C,aAAA;AAAA,IACT;AAEA,UAAM,SAAS,SAAS,MAAM,IAAI,qBAAqB,SAAS,CAAC;AAEjE,WAAO,OAAO,SAAS,MAAM,YAAY,MAAM;AAAA,EACjD;AACF;"}
@@ -1,4 +1,4 @@
1
- import type { Common, Documents } from '@strapi/types';
2
- export type RepositoryFactoryMethod = (uid: Common.UID.CollectionType) => Documents.ServiceInstance;
1
+ import type { UID, Modules } from '@strapi/types';
2
+ export type RepositoryFactoryMethod = <TContentTypeUID extends UID.ContentType>(uid: TContentTypeUID) => Modules.Documents.ServiceInstance<TContentTypeUID>;
3
3
  export declare const wrapInTransaction: (fn: (...args: any) => any) => (...args: any[]) => Promise<any>;
4
4
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,eAAe,CAAC;AAEpG,eAAO,MAAM,iBAAiB,iBAAkB,GAAG,KAAK,GAAG,eACxC,GAAG,EAAE,iBACvB,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,uBAAuB,GAAG,CAAC,eAAe,SAAS,GAAG,CAAC,WAAW,EAC5E,GAAG,EAAE,eAAe,KACjB,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,iBAAiB,iBAAkB,GAAG,KAAK,GAAG,eACxC,GAAG,EAAE,iBACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { Common, Documents } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = (uid: Common.UID.CollectionType) => Documents.ServiceInstance;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":";;AAIa,MAAA,oBAAoB,CAAC,OAA8B;AACvD,SAAA,IAAI,SAAgB,OAAO,GAAG,cAAc,MAAM,GAAG,GAAG,IAAI,CAAC;AACtE;;"}
1
+ {"version":3,"file":"common.js","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = <TContentTypeUID extends UID.ContentType>(\n uid: TContentTypeUID\n) => Modules.Documents.ServiceInstance<TContentTypeUID>;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":";;AAMa,MAAA,oBAAoB,CAAC,OAA8B;AACvD,SAAA,IAAI,SAAgB,OAAO,GAAG,cAAc,MAAM,GAAG,GAAG,IAAI,CAAC;AACtE;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.mjs","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { Common, Documents } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = (uid: Common.UID.CollectionType) => Documents.ServiceInstance;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":"AAIa,MAAA,oBAAoB,CAAC,OAA8B;AACvD,SAAA,IAAI,SAAgB,OAAO,GAAG,cAAc,MAAM,GAAG,GAAG,IAAI,CAAC;AACtE;"}
1
+ {"version":3,"file":"common.mjs","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = <TContentTypeUID extends UID.ContentType>(\n uid: TContentTypeUID\n) => Modules.Documents.ServiceInstance<TContentTypeUID>;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":"AAMa,MAAA,oBAAoB,CAAC,OAA8B;AACvD,SAAA,IAAI,SAAgB,OAAO,GAAG,cAAc,MAAM,GAAG,GAAG,IAAI,CAAC;AACtE;"}
@@ -1,2 +1,98 @@
1
- export {};
1
+ import type { Struct, Utils, UID, Schema, Data, Modules } from '@strapi/types';
2
+ type LoadedComponents<TUID extends UID.Schema> = Data.Entity<TUID, Schema.AttributeNamesByType<TUID, 'component' | 'dynamiczone'>>;
3
+ type SingleComponentValue = Schema.Attribute.ComponentValue<UID.Component, false>;
4
+ type RepeatableComponentValue = Schema.Attribute.ComponentValue<UID.Component, true>;
5
+ type ComponentValue = SingleComponentValue | RepeatableComponentValue;
6
+ type DynamicZoneValue = Schema.Attribute.DynamicZoneValue<UID.Component[]>;
7
+ type ComponentBody = {
8
+ [key: string]: ComponentValue | DynamicZoneValue;
9
+ };
10
+ declare function omitComponentData(contentType: Struct.ContentTypeSchema, data: Modules.EntityService.Params.Data.Input<Struct.ContentTypeSchema['uid']>): Partial<Modules.EntityService.Params.Data.Input<Struct.ContentTypeSchema['uid']>>;
11
+ declare function omitComponentData(contentType: Struct.ComponentSchema, data: Modules.EntityService.Params.Data.Input<Struct.ComponentSchema['uid']>): Partial<Modules.EntityService.Params.Data.Input<Struct.ComponentSchema['uid']>>;
12
+ declare const createComponents: <TUID extends UID.Schema, TData extends Modules.EntityService.Params.Data.Input<TUID>>(uid: TUID, data: TData) => Promise<ComponentBody>;
13
+ declare const getComponents: <TUID extends UID.Schema>(uid: TUID, entity: {
14
+ id: Modules.EntityService.Params.Attribute.ID;
15
+ }) => Promise<LoadedComponents<TUID>>;
16
+ declare const updateComponents: <TUID extends UID.Schema, TData extends Partial<Modules.EntityService.Params.Data.Input<TUID>>>(uid: TUID, entityToUpdate: {
17
+ id: Modules.EntityService.Params.Attribute.ID;
18
+ }, data: TData) => Promise<ComponentBody>;
19
+ declare const deleteComponents: <TUID extends UID.Schema, TEntity extends Data.Entity<TUID, Extract<keyof Schema.Attributes<TUID>, string>>>(uid: TUID, entityToDelete: TEntity, { loadComponents }?: {
20
+ loadComponents?: boolean | undefined;
21
+ }) => Promise<void>;
22
+ declare const deleteComponent: <TUID extends `${string}.${string}`>(uid: TUID, componentToDelete: {
23
+ id: Data.ID;
24
+ } & Pick<{ [TAttributeName in Extract<keyof Schema.Attributes<TUID>, string>]?: Utils.If<Utils.IsTrue<Utils.IsTrue<Utils.Extends<{
25
+ biginteger: Schema.Attribute.GetBigIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
26
+ boolean: Schema.Attribute.GetBooleanValue<Schema.AttributeByName<TUID, TAttributeName>>;
27
+ blocks: Schema.Attribute.GetBlocksValue<Schema.AttributeByName<TUID, TAttributeName>>;
28
+ decimal: Schema.Attribute.GetDecimalValue<Schema.AttributeByName<TUID, TAttributeName>>;
29
+ enumeration: Schema.Attribute.GetEnumerationValue<Schema.AttributeByName<TUID, TAttributeName>>;
30
+ email: Schema.Attribute.GetEmailValue<Schema.AttributeByName<TUID, TAttributeName>>;
31
+ float: Schema.Attribute.GetFloatValue<Schema.AttributeByName<TUID, TAttributeName>>;
32
+ integer: Schema.Attribute.GetIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
33
+ json: Schema.Attribute.GetJsonValue<Schema.AttributeByName<TUID, TAttributeName>>;
34
+ password: Schema.Attribute.GetPasswordValue<Schema.AttributeByName<TUID, TAttributeName>>;
35
+ richtext: Schema.Attribute.GetRichTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
36
+ string: Schema.Attribute.GetStringValue<Schema.AttributeByName<TUID, TAttributeName>>;
37
+ text: Schema.Attribute.GetTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
38
+ uid: Schema.Attribute.GetUIDValue<Schema.AttributeByName<TUID, TAttributeName>>;
39
+ date: Schema.Attribute.GetDateValue<Schema.AttributeByName<TUID, TAttributeName>>;
40
+ datetime: Schema.Attribute.GetDateTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
41
+ time: Schema.Attribute.GetTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
42
+ timestamp: Schema.Attribute.GetTimestampValue<Schema.AttributeByName<TUID, TAttributeName>>;
43
+ component: Schema.Attribute.GetComponentValue<Schema.AttributeByName<TUID, TAttributeName>>;
44
+ dynamiczone: Schema.Attribute.GetDynamicZoneValue<Schema.AttributeByName<TUID, TAttributeName>>;
45
+ media: Schema.Attribute.GetMediaValue<Schema.AttributeByName<TUID, TAttributeName>>;
46
+ relation: Schema.Attribute.GetRelationValue<Schema.AttributeByName<TUID, TAttributeName>>;
47
+ }[Schema.Attribute.TypeOf<Schema.AttributeByName<TUID, TAttributeName>>], never>> | Utils.IsTrue<Utils.Extends<never, {
48
+ biginteger: Schema.Attribute.GetBigIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
49
+ boolean: Schema.Attribute.GetBooleanValue<Schema.AttributeByName<TUID, TAttributeName>>;
50
+ blocks: Schema.Attribute.GetBlocksValue<Schema.AttributeByName<TUID, TAttributeName>>;
51
+ decimal: Schema.Attribute.GetDecimalValue<Schema.AttributeByName<TUID, TAttributeName>>;
52
+ enumeration: Schema.Attribute.GetEnumerationValue<Schema.AttributeByName<TUID, TAttributeName>>;
53
+ email: Schema.Attribute.GetEmailValue<Schema.AttributeByName<TUID, TAttributeName>>;
54
+ float: Schema.Attribute.GetFloatValue<Schema.AttributeByName<TUID, TAttributeName>>;
55
+ integer: Schema.Attribute.GetIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
56
+ json: Schema.Attribute.GetJsonValue<Schema.AttributeByName<TUID, TAttributeName>>;
57
+ password: Schema.Attribute.GetPasswordValue<Schema.AttributeByName<TUID, TAttributeName>>;
58
+ richtext: Schema.Attribute.GetRichTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
59
+ string: Schema.Attribute.GetStringValue<Schema.AttributeByName<TUID, TAttributeName>>;
60
+ text: Schema.Attribute.GetTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
61
+ uid: Schema.Attribute.GetUIDValue<Schema.AttributeByName<TUID, TAttributeName>>;
62
+ date: Schema.Attribute.GetDateValue<Schema.AttributeByName<TUID, TAttributeName>>;
63
+ datetime: Schema.Attribute.GetDateTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
64
+ time: Schema.Attribute.GetTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
65
+ timestamp: Schema.Attribute.GetTimestampValue<Schema.AttributeByName<TUID, TAttributeName>>;
66
+ component: Schema.Attribute.GetComponentValue<Schema.AttributeByName<TUID, TAttributeName>>;
67
+ dynamiczone: Schema.Attribute.GetDynamicZoneValue<Schema.AttributeByName<TUID, TAttributeName>>;
68
+ media: Schema.Attribute.GetMediaValue<Schema.AttributeByName<TUID, TAttributeName>>;
69
+ relation: Schema.Attribute.GetRelationValue<Schema.AttributeByName<TUID, TAttributeName>>;
70
+ }[Schema.Attribute.TypeOf<Schema.AttributeByName<TUID, TAttributeName>>]>>>, unknown, {
71
+ biginteger: Schema.Attribute.GetBigIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
72
+ boolean: Schema.Attribute.GetBooleanValue<Schema.AttributeByName<TUID, TAttributeName>>;
73
+ blocks: Schema.Attribute.GetBlocksValue<Schema.AttributeByName<TUID, TAttributeName>>;
74
+ decimal: Schema.Attribute.GetDecimalValue<Schema.AttributeByName<TUID, TAttributeName>>;
75
+ enumeration: Schema.Attribute.GetEnumerationValue<Schema.AttributeByName<TUID, TAttributeName>>;
76
+ email: Schema.Attribute.GetEmailValue<Schema.AttributeByName<TUID, TAttributeName>>;
77
+ float: Schema.Attribute.GetFloatValue<Schema.AttributeByName<TUID, TAttributeName>>;
78
+ integer: Schema.Attribute.GetIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
79
+ json: Schema.Attribute.GetJsonValue<Schema.AttributeByName<TUID, TAttributeName>>;
80
+ password: Schema.Attribute.GetPasswordValue<Schema.AttributeByName<TUID, TAttributeName>>;
81
+ richtext: Schema.Attribute.GetRichTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
82
+ string: Schema.Attribute.GetStringValue<Schema.AttributeByName<TUID, TAttributeName>>;
83
+ text: Schema.Attribute.GetTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
84
+ uid: Schema.Attribute.GetUIDValue<Schema.AttributeByName<TUID, TAttributeName>>;
85
+ date: Schema.Attribute.GetDateValue<Schema.AttributeByName<TUID, TAttributeName>>;
86
+ datetime: Schema.Attribute.GetDateTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
87
+ time: Schema.Attribute.GetTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
88
+ timestamp: Schema.Attribute.GetTimestampValue<Schema.AttributeByName<TUID, TAttributeName>>;
89
+ component: Schema.Attribute.GetComponentValue<Schema.AttributeByName<TUID, TAttributeName>>;
90
+ dynamiczone: Schema.Attribute.GetDynamicZoneValue<Schema.AttributeByName<TUID, TAttributeName>>;
91
+ media: Schema.Attribute.GetMediaValue<Schema.AttributeByName<TUID, TAttributeName>>;
92
+ relation: Schema.Attribute.GetRelationValue<Schema.AttributeByName<TUID, TAttributeName>>;
93
+ }[Schema.Attribute.TypeOf<Schema.AttributeByName<TUID, TAttributeName>>]> | null | undefined; }, Extract<keyof Schema.Attributes<TUID>, string>>) => Promise<void>;
94
+ declare const assignComponentData: <TUID extends UID.ContentType>(data: Modules.EntityService.Params.Data.Input<TUID>, componentData: ComponentBody, { contentType, }: {
95
+ contentType: Schema.ContentType<TUID>;
96
+ }) => Partial<Modules.EntityService.Params.Data.Input<UID.ContentType>> & ComponentBody;
97
+ export { omitComponentData, assignComponentData, getComponents, createComponents, updateComponents, deleteComponents, deleteComponent, };
2
98
  //# sourceMappingURL=components.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/components.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/components.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG/E,KAAK,gBAAgB,CAAC,IAAI,SAAS,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAC1D,IAAI,EACJ,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAAC,CAC/D,CAAC;AAEF,KAAK,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAClF,KAAK,wBAAwB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAErF,KAAK,cAAc,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAEtE,KAAK,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;AAE3E,KAAK,aAAa,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,gBAAgB,CAAC;CAClD,CAAC;AAEF,iBAAS,iBAAiB,CACxB,WAAW,EAAE,MAAM,CAAC,iBAAiB,EACrC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAC7E,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrF,iBAAS,iBAAiB,CACxB,WAAW,EAAE,MAAM,CAAC,eAAe,EACnC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAC3E,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAoBnF,QAAA,MAAM,gBAAgB,0IAmGrB,CAAC;AAEF,QAAA,MAAM,aAAa,+CAET;IAAE,EAAE,EAAE,QAAQ,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAA;CAAE,oCAS1D,CAAC;AAMF,QAAA,MAAM,gBAAgB,6HAKJ;IAAE,EAAE,EAAE,QAAQ,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAA;CAAE,wCA2ElE,CAAC;AAkGF,QAAA,MAAM,gBAAgB;;mBAyCrB,CAAC;AA8DF,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kKAMpB,CAAC;AAEF,QAAA,MAAM,mBAAmB,qGAER,aAAa;;uFAQ7B,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,CAAC"}
@@ -5,7 +5,6 @@ const _ = require("lodash/fp");
5
5
  const strapiUtils = require("@strapi/utils");
6
6
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
7
  const ___default = /* @__PURE__ */ _interopDefault(_$1);
8
- const isDialectMySQL = () => strapi.db?.dialect.client === "mysql";
9
8
  function omitComponentData(contentType, data) {
10
9
  const { attributes } = contentType;
11
10
  const componentAttributes = Object.keys(attributes).filter(
@@ -34,8 +33,7 @@ const createComponents = async (uid, data) => {
34
33
  }
35
34
  const components = await strapiUtils.async.map(
36
35
  componentValue,
37
- (value) => createComponent(componentUID, value),
38
- { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }
36
+ (value) => createComponent(componentUID, value)
39
37
  );
40
38
  componentBody[attributeName] = components.map(({ id }) => {
41
39
  return {
@@ -78,8 +76,7 @@ const createComponents = async (uid, data) => {
78
76
  };
79
77
  componentBody[attributeName] = await strapiUtils.async.map(
80
78
  dynamiczoneValues,
81
- createDynamicZoneComponents,
82
- { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }
79
+ createDynamicZoneComponents
83
80
  );
84
81
  continue;
85
82
  }
@@ -111,8 +108,7 @@ const updateComponents = async (uid, entityToUpdate, data) => {
111
108
  }
112
109
  const components = await strapiUtils.async.map(
113
110
  componentValue,
114
- (value) => updateOrCreateComponent(componentUID, value),
115
- { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }
111
+ (value) => updateOrCreateComponent(componentUID, value)
116
112
  );
117
113
  componentBody[attributeName] = components.filter(___default.default.negate(___default.default.isNil)).map(({ id }) => {
118
114
  return {
@@ -133,29 +129,22 @@ const updateComponents = async (uid, entityToUpdate, data) => {
133
129
  }
134
130
  };
135
131
  }
136
- continue;
137
- }
138
- if (attribute.type === "dynamiczone") {
132
+ } else if (attribute.type === "dynamiczone") {
139
133
  const dynamiczoneValues = data[attributeName];
140
134
  await deleteOldDZComponents(uid, entityToUpdate, attributeName, dynamiczoneValues);
141
135
  if (!Array.isArray(dynamiczoneValues)) {
142
136
  throw new Error("Expected an array to create repeatable component");
143
137
  }
144
- componentBody[attributeName] = await strapiUtils.async.map(
145
- dynamiczoneValues,
146
- async (value) => {
147
- const { id } = await updateOrCreateComponent(value.__component, value);
148
- return {
149
- id,
150
- __component: value.__component,
151
- __pivot: {
152
- field: attributeName
153
- }
154
- };
155
- },
156
- { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }
157
- );
158
- continue;
138
+ componentBody[attributeName] = await strapiUtils.async.map(dynamiczoneValues, async (value) => {
139
+ const { id } = await updateOrCreateComponent(value.__component, value);
140
+ return {
141
+ id,
142
+ __component: value.__component,
143
+ __pivot: {
144
+ field: attributeName
145
+ }
146
+ };
147
+ });
159
148
  }
160
149
  }
161
150
  return componentBody;
@@ -237,16 +226,12 @@ const deleteComponents = async (uid, entityToDelete, { loadComponents = true } =
237
226
  const { component: componentUID } = attribute;
238
227
  await strapiUtils.async.map(
239
228
  ___default.default.castArray(value),
240
- (subValue) => deleteComponent(componentUID, subValue),
241
- {
242
- concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity
243
- }
229
+ (subValue) => deleteComponent(componentUID, subValue)
244
230
  );
245
231
  } else {
246
232
  await strapiUtils.async.map(
247
233
  ___default.default.castArray(value),
248
- (subValue) => deleteComponent(subValue.__component, subValue),
249
- { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }
234
+ (subValue) => deleteComponent(subValue.__component, subValue)
250
235
  );
251
236
  }
252
237
  continue;
@@ -289,6 +274,12 @@ const deleteComponent = async (uid, componentToDelete) => {
289
274
  await deleteComponents(uid, componentToDelete);
290
275
  await strapi.db.query(uid).delete({ where: { id: componentToDelete.id } });
291
276
  };
277
+ const assignComponentData = (data, componentData, {
278
+ contentType
279
+ }) => {
280
+ return Object.assign(omitComponentData(contentType, data), componentData);
281
+ };
282
+ exports.assignComponentData = assignComponentData;
292
283
  exports.createComponents = createComponents;
293
284
  exports.deleteComponent = deleteComponent;
294
285
  exports.deleteComponents = deleteComponents;