@strapi/core 0.0.0-experimental.2363945b79274c79e6505e5a6c3cdec876ed8cec → 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 (726) hide show
  1. package/dist/Strapi.d.ts +49 -58
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +148 -208
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +139 -200
  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 +10 -8
  21. package/dist/configuration/index.js.map +1 -1
  22. package/dist/configuration/index.mjs +6 -5
  23. package/dist/configuration/index.mjs.map +1 -1
  24. package/dist/configuration/urls.d.ts +8 -0
  25. package/dist/configuration/urls.d.ts.map +1 -0
  26. package/dist/configuration/urls.js +68 -0
  27. package/dist/configuration/urls.js.map +1 -0
  28. package/dist/configuration/urls.mjs +66 -0
  29. package/dist/configuration/urls.mjs.map +1 -0
  30. package/dist/container.d.ts +2 -2
  31. package/dist/container.d.ts.map +1 -1
  32. package/dist/container.js.map +1 -1
  33. package/dist/container.mjs.map +1 -1
  34. package/dist/core-api/controller/collection-type.d.ts +3 -3
  35. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  36. package/dist/core-api/controller/collection-type.js.map +1 -1
  37. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  38. package/dist/core-api/controller/index.d.ts +3 -3
  39. package/dist/core-api/controller/index.d.ts.map +1 -1
  40. package/dist/core-api/controller/index.js +5 -5
  41. package/dist/core-api/controller/index.js.map +1 -1
  42. package/dist/core-api/controller/index.mjs +6 -6
  43. package/dist/core-api/controller/index.mjs.map +1 -1
  44. package/dist/core-api/controller/single-type.d.ts +3 -3
  45. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  46. package/dist/core-api/controller/single-type.js.map +1 -1
  47. package/dist/core-api/controller/single-type.mjs.map +1 -1
  48. package/dist/core-api/controller/transform.d.ts +2 -2
  49. package/dist/core-api/controller/transform.d.ts.map +1 -1
  50. package/dist/core-api/controller/transform.js +2 -5
  51. package/dist/core-api/controller/transform.js.map +1 -1
  52. package/dist/core-api/controller/transform.mjs +2 -5
  53. package/dist/core-api/controller/transform.mjs.map +1 -1
  54. package/dist/core-api/service/collection-type.d.ts +10 -10
  55. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  56. package/dist/core-api/service/collection-type.js +14 -5
  57. package/dist/core-api/service/collection-type.js.map +1 -1
  58. package/dist/core-api/service/collection-type.mjs +14 -5
  59. package/dist/core-api/service/collection-type.mjs.map +1 -1
  60. package/dist/core-api/service/index.d.ts +3 -3
  61. package/dist/core-api/service/index.d.ts.map +1 -1
  62. package/dist/core-api/service/index.js.map +1 -1
  63. package/dist/core-api/service/index.mjs.map +1 -1
  64. package/dist/core-api/service/single-type.d.ts +5 -5
  65. package/dist/core-api/service/single-type.d.ts.map +1 -1
  66. package/dist/core-api/service/single-type.js +11 -6
  67. package/dist/core-api/service/single-type.js.map +1 -1
  68. package/dist/core-api/service/single-type.mjs +11 -6
  69. package/dist/core-api/service/single-type.mjs.map +1 -1
  70. package/dist/domain/content-type/index.d.ts +1 -1
  71. package/dist/domain/content-type/index.d.ts.map +1 -1
  72. package/dist/domain/content-type/index.js +3 -0
  73. package/dist/domain/content-type/index.js.map +1 -1
  74. package/dist/domain/content-type/index.mjs +3 -0
  75. package/dist/domain/content-type/index.mjs.map +1 -1
  76. package/dist/domain/content-type/validator.d.ts.map +1 -1
  77. package/dist/domain/content-type/validator.js +1 -1
  78. package/dist/domain/content-type/validator.js.map +1 -1
  79. package/dist/domain/content-type/validator.mjs +2 -2
  80. package/dist/domain/content-type/validator.mjs.map +1 -1
  81. package/dist/domain/module/index.d.ts +24 -23
  82. package/dist/domain/module/index.d.ts.map +1 -1
  83. package/dist/domain/module/index.js +3 -3
  84. package/dist/domain/module/index.js.map +1 -1
  85. package/dist/domain/module/index.mjs +4 -4
  86. package/dist/domain/module/index.mjs.map +1 -1
  87. package/dist/ee/index.d.ts +4 -2
  88. package/dist/ee/index.d.ts.map +1 -1
  89. package/dist/ee/index.js.map +1 -1
  90. package/dist/ee/index.mjs.map +1 -1
  91. package/dist/ee/license.d.ts +2 -2
  92. package/dist/ee/license.d.ts.map +1 -1
  93. package/dist/ee/license.js.map +1 -1
  94. package/dist/ee/license.mjs.map +1 -1
  95. package/dist/factories.d.ts +10 -10
  96. package/dist/factories.d.ts.map +1 -1
  97. package/dist/factories.js +6 -2
  98. package/dist/factories.js.map +1 -1
  99. package/dist/factories.mjs +6 -2
  100. package/dist/factories.mjs.map +1 -1
  101. package/dist/index.d.ts +4 -2
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +25 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/index.mjs +27 -3
  106. package/dist/index.mjs.map +1 -1
  107. package/dist/loaders/admin.d.ts +2 -2
  108. package/dist/loaders/admin.d.ts.map +1 -1
  109. package/dist/loaders/admin.js +0 -1
  110. package/dist/loaders/admin.js.map +1 -1
  111. package/dist/loaders/admin.mjs +0 -1
  112. package/dist/loaders/admin.mjs.map +1 -1
  113. package/dist/loaders/apis.d.ts +2 -2
  114. package/dist/loaders/apis.d.ts.map +1 -1
  115. package/dist/loaders/apis.js +1 -1
  116. package/dist/loaders/apis.js.map +1 -1
  117. package/dist/loaders/apis.mjs +2 -2
  118. package/dist/loaders/apis.mjs.map +1 -1
  119. package/dist/loaders/components.d.ts +2 -2
  120. package/dist/loaders/components.d.ts.map +1 -1
  121. package/dist/loaders/components.js.map +1 -1
  122. package/dist/loaders/components.mjs.map +1 -1
  123. package/dist/loaders/index.d.ts +2 -2
  124. package/dist/loaders/index.d.ts.map +1 -1
  125. package/dist/loaders/index.js +0 -2
  126. package/dist/loaders/index.js.map +1 -1
  127. package/dist/loaders/index.mjs +0 -2
  128. package/dist/loaders/index.mjs.map +1 -1
  129. package/dist/loaders/middlewares.d.ts +2 -2
  130. package/dist/loaders/middlewares.d.ts.map +1 -1
  131. package/dist/loaders/middlewares.js.map +1 -1
  132. package/dist/loaders/middlewares.mjs.map +1 -1
  133. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  134. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  135. package/dist/loaders/plugins/get-enabled-plugins.js +4 -2
  136. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  137. package/dist/loaders/plugins/get-enabled-plugins.mjs +5 -3
  138. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  139. package/dist/loaders/plugins/index.d.ts +2 -2
  140. package/dist/loaders/plugins/index.d.ts.map +1 -1
  141. package/dist/loaders/plugins/index.js.map +1 -1
  142. package/dist/loaders/plugins/index.mjs.map +1 -1
  143. package/dist/loaders/policies.d.ts +2 -2
  144. package/dist/loaders/policies.d.ts.map +1 -1
  145. package/dist/loaders/policies.js.map +1 -1
  146. package/dist/loaders/policies.mjs.map +1 -1
  147. package/dist/loaders/sanitizers.d.ts +2 -2
  148. package/dist/loaders/sanitizers.d.ts.map +1 -1
  149. package/dist/loaders/sanitizers.js.map +1 -1
  150. package/dist/loaders/sanitizers.mjs.map +1 -1
  151. package/dist/loaders/src-index.d.ts +2 -2
  152. package/dist/loaders/src-index.d.ts.map +1 -1
  153. package/dist/loaders/src-index.js.map +1 -1
  154. package/dist/loaders/src-index.mjs.map +1 -1
  155. package/dist/loaders/validators.d.ts +2 -2
  156. package/dist/loaders/validators.d.ts.map +1 -1
  157. package/dist/loaders/validators.js.map +1 -1
  158. package/dist/loaders/validators.mjs.map +1 -1
  159. package/dist/middlewares/body.d.ts +4 -4
  160. package/dist/middlewares/body.d.ts.map +1 -1
  161. package/dist/middlewares/body.js +4 -4
  162. package/dist/middlewares/body.js.map +1 -1
  163. package/dist/middlewares/body.mjs +4 -4
  164. package/dist/middlewares/body.mjs.map +1 -1
  165. package/dist/middlewares/compression.d.ts +2 -2
  166. package/dist/middlewares/compression.d.ts.map +1 -1
  167. package/dist/middlewares/compression.js.map +1 -1
  168. package/dist/middlewares/compression.mjs.map +1 -1
  169. package/dist/middlewares/cors.d.ts +2 -2
  170. package/dist/middlewares/cors.d.ts.map +1 -1
  171. package/dist/middlewares/cors.js.map +1 -1
  172. package/dist/middlewares/cors.mjs.map +1 -1
  173. package/dist/middlewares/errors.d.ts +2 -2
  174. package/dist/middlewares/errors.d.ts.map +1 -1
  175. package/dist/middlewares/errors.js.map +1 -1
  176. package/dist/middlewares/errors.mjs.map +1 -1
  177. package/dist/middlewares/favicon.d.ts +2 -2
  178. package/dist/middlewares/favicon.d.ts.map +1 -1
  179. package/dist/middlewares/favicon.js.map +1 -1
  180. package/dist/middlewares/favicon.mjs.map +1 -1
  181. package/dist/middlewares/index.d.ts +2 -2
  182. package/dist/middlewares/index.d.ts.map +1 -1
  183. package/dist/middlewares/index.js.map +1 -1
  184. package/dist/middlewares/index.mjs.map +1 -1
  185. package/dist/middlewares/ip.d.ts +2 -2
  186. package/dist/middlewares/ip.d.ts.map +1 -1
  187. package/dist/middlewares/ip.js.map +1 -1
  188. package/dist/middlewares/ip.mjs.map +1 -1
  189. package/dist/middlewares/logger.d.ts +2 -2
  190. package/dist/middlewares/logger.d.ts.map +1 -1
  191. package/dist/middlewares/logger.js.map +1 -1
  192. package/dist/middlewares/logger.mjs.map +1 -1
  193. package/dist/middlewares/powered-by.d.ts +2 -2
  194. package/dist/middlewares/powered-by.d.ts.map +1 -1
  195. package/dist/middlewares/powered-by.js.map +1 -1
  196. package/dist/middlewares/powered-by.mjs.map +1 -1
  197. package/dist/middlewares/public.d.ts +2 -2
  198. package/dist/middlewares/public.d.ts.map +1 -1
  199. package/dist/middlewares/public.js +1 -1
  200. package/dist/middlewares/public.js.map +1 -1
  201. package/dist/middlewares/public.mjs +1 -1
  202. package/dist/middlewares/public.mjs.map +1 -1
  203. package/dist/middlewares/query.d.ts +2 -2
  204. package/dist/middlewares/query.d.ts.map +1 -1
  205. package/dist/middlewares/query.js.map +1 -1
  206. package/dist/middlewares/query.mjs.map +1 -1
  207. package/dist/middlewares/response-time.d.ts +2 -2
  208. package/dist/middlewares/response-time.d.ts.map +1 -1
  209. package/dist/middlewares/response-time.js.map +1 -1
  210. package/dist/middlewares/response-time.mjs.map +1 -1
  211. package/dist/middlewares/responses.d.ts +3 -3
  212. package/dist/middlewares/responses.d.ts.map +1 -1
  213. package/dist/middlewares/responses.js.map +1 -1
  214. package/dist/middlewares/responses.mjs.map +1 -1
  215. package/dist/middlewares/security.d.ts +2 -2
  216. package/dist/middlewares/security.d.ts.map +1 -1
  217. package/dist/middlewares/security.js +2 -2
  218. package/dist/middlewares/security.js.map +1 -1
  219. package/dist/middlewares/security.mjs +2 -2
  220. package/dist/middlewares/security.mjs.map +1 -1
  221. package/dist/middlewares/session.d.ts +2 -2
  222. package/dist/middlewares/session.d.ts.map +1 -1
  223. package/dist/middlewares/session.js.map +1 -1
  224. package/dist/middlewares/session.mjs.map +1 -1
  225. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +12 -0
  226. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  227. package/dist/migrations/database/5.0.0-discard-drafts.js +49 -0
  228. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  229. package/dist/migrations/database/5.0.0-discard-drafts.mjs +49 -0
  230. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  231. package/dist/migrations/draft-publish.d.ts +17 -0
  232. package/dist/migrations/draft-publish.d.ts.map +1 -0
  233. package/dist/migrations/draft-publish.js +59 -0
  234. package/dist/migrations/draft-publish.js.map +1 -0
  235. package/dist/migrations/draft-publish.mjs +59 -0
  236. package/dist/migrations/draft-publish.mjs.map +1 -0
  237. package/dist/providers/admin.d.ts +3 -0
  238. package/dist/providers/admin.d.ts.map +1 -0
  239. package/dist/providers/admin.js +20 -0
  240. package/dist/providers/admin.js.map +1 -0
  241. package/dist/providers/admin.mjs +21 -0
  242. package/dist/providers/admin.mjs.map +1 -0
  243. package/dist/providers/coreStore.d.ts +3 -0
  244. package/dist/providers/coreStore.d.ts.map +1 -0
  245. package/dist/providers/coreStore.js +11 -0
  246. package/dist/providers/coreStore.js.map +1 -0
  247. package/dist/providers/coreStore.mjs +12 -0
  248. package/dist/providers/coreStore.mjs.map +1 -0
  249. package/dist/providers/cron.d.ts +3 -0
  250. package/dist/providers/cron.d.ts.map +1 -0
  251. package/dist/providers/cron.js +20 -0
  252. package/dist/providers/cron.js.map +1 -0
  253. package/dist/providers/cron.mjs +21 -0
  254. package/dist/providers/cron.mjs.map +1 -0
  255. package/dist/providers/index.d.ts +3 -0
  256. package/dist/providers/index.d.ts.map +1 -0
  257. package/dist/providers/index.js +11 -0
  258. package/dist/providers/index.js.map +1 -0
  259. package/dist/providers/index.mjs +11 -0
  260. package/dist/providers/index.mjs.map +1 -0
  261. package/dist/providers/provider.d.ts +9 -0
  262. package/dist/providers/provider.d.ts.map +1 -0
  263. package/dist/providers/provider.js +5 -0
  264. package/dist/providers/provider.js.map +1 -0
  265. package/dist/providers/provider.mjs +5 -0
  266. package/dist/providers/provider.mjs.map +1 -0
  267. package/dist/providers/registries.d.ts +3 -0
  268. package/dist/providers/registries.d.ts.map +1 -0
  269. package/dist/providers/registries.js +35 -0
  270. package/dist/providers/registries.js.map +1 -0
  271. package/dist/providers/registries.mjs +36 -0
  272. package/dist/providers/registries.mjs.map +1 -0
  273. package/dist/providers/telemetry.d.ts +3 -0
  274. package/dist/providers/telemetry.d.ts.map +1 -0
  275. package/dist/providers/telemetry.js +19 -0
  276. package/dist/providers/telemetry.js.map +1 -0
  277. package/dist/providers/telemetry.mjs +20 -0
  278. package/dist/providers/telemetry.mjs.map +1 -0
  279. package/dist/providers/webhooks.d.ts +3 -0
  280. package/dist/providers/webhooks.d.ts.map +1 -0
  281. package/dist/providers/webhooks.js +30 -0
  282. package/dist/providers/webhooks.js.map +1 -0
  283. package/dist/providers/webhooks.mjs +31 -0
  284. package/dist/providers/webhooks.mjs.map +1 -0
  285. package/dist/registries/apis.d.ts +2 -2
  286. package/dist/registries/apis.d.ts.map +1 -1
  287. package/dist/registries/apis.js.map +1 -1
  288. package/dist/registries/apis.mjs.map +1 -1
  289. package/dist/registries/components.d.ts +6 -6
  290. package/dist/registries/components.d.ts.map +1 -1
  291. package/dist/registries/components.js.map +1 -1
  292. package/dist/registries/components.mjs.map +1 -1
  293. package/dist/registries/content-types.d.ts +5 -5
  294. package/dist/registries/content-types.d.ts.map +1 -1
  295. package/dist/registries/content-types.js.map +1 -1
  296. package/dist/registries/content-types.mjs.map +1 -1
  297. package/dist/registries/controllers.d.ts +10 -10
  298. package/dist/registries/controllers.d.ts.map +1 -1
  299. package/dist/registries/controllers.js.map +1 -1
  300. package/dist/registries/controllers.mjs.map +1 -1
  301. package/dist/registries/custom-fields.d.ts +3 -3
  302. package/dist/registries/custom-fields.d.ts.map +1 -1
  303. package/dist/registries/custom-fields.js.map +1 -1
  304. package/dist/registries/custom-fields.mjs.map +1 -1
  305. package/dist/registries/index.d.ts +0 -1
  306. package/dist/registries/index.d.ts.map +1 -1
  307. package/dist/registries/middlewares.d.ts +6 -6
  308. package/dist/registries/middlewares.d.ts.map +1 -1
  309. package/dist/registries/middlewares.js.map +1 -1
  310. package/dist/registries/middlewares.mjs.map +1 -1
  311. package/dist/registries/modules.d.ts +2 -2
  312. package/dist/registries/modules.d.ts.map +1 -1
  313. package/dist/registries/modules.js.map +1 -1
  314. package/dist/registries/modules.mjs.map +1 -1
  315. package/dist/registries/plugins.d.ts +5 -5
  316. package/dist/registries/plugins.d.ts.map +1 -1
  317. package/dist/registries/plugins.js.map +1 -1
  318. package/dist/registries/plugins.mjs.map +1 -1
  319. package/dist/registries/policies.d.ts +23 -11
  320. package/dist/registries/policies.d.ts.map +1 -1
  321. package/dist/registries/policies.js +64 -18
  322. package/dist/registries/policies.js.map +1 -1
  323. package/dist/registries/policies.mjs +65 -19
  324. package/dist/registries/policies.mjs.map +1 -1
  325. package/dist/registries/services.d.ts +8 -8
  326. package/dist/registries/services.d.ts.map +1 -1
  327. package/dist/registries/services.js.map +1 -1
  328. package/dist/registries/services.mjs.map +1 -1
  329. package/dist/services/auth/index.d.ts +4 -4
  330. package/dist/services/auth/index.d.ts.map +1 -1
  331. package/dist/services/auth/index.js.map +1 -1
  332. package/dist/services/auth/index.mjs.map +1 -1
  333. package/dist/services/config.d.ts +3 -0
  334. package/dist/services/config.d.ts.map +1 -0
  335. package/dist/services/config.js +47 -0
  336. package/dist/services/config.js.map +1 -0
  337. package/dist/services/config.mjs +47 -0
  338. package/dist/services/config.mjs.map +1 -0
  339. package/dist/services/content-api/index.d.ts +21 -3
  340. package/dist/services/content-api/index.d.ts.map +1 -1
  341. package/dist/services/content-api/index.js +28 -2
  342. package/dist/services/content-api/index.js.map +1 -1
  343. package/dist/services/content-api/index.mjs +28 -2
  344. package/dist/services/content-api/index.mjs.map +1 -1
  345. package/dist/services/content-api/permissions/index.d.ts +3 -3
  346. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  347. package/dist/services/content-api/permissions/index.js +1 -1
  348. package/dist/services/content-api/permissions/index.js.map +1 -1
  349. package/dist/services/content-api/permissions/index.mjs +1 -1
  350. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  351. package/dist/services/cron.d.ts +2 -2
  352. package/dist/services/cron.d.ts.map +1 -1
  353. package/dist/services/cron.js.map +1 -1
  354. package/dist/services/cron.mjs.map +1 -1
  355. package/dist/services/custom-fields.d.ts +2 -2
  356. package/dist/services/custom-fields.d.ts.map +1 -1
  357. package/dist/services/custom-fields.js.map +1 -1
  358. package/dist/services/custom-fields.mjs.map +1 -1
  359. package/dist/services/document-service/attributes/index.d.ts +6 -0
  360. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  361. package/dist/services/document-service/attributes/index.js.map +1 -0
  362. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  363. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  364. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  365. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  366. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  367. package/dist/services/document-service/common.d.ts +2 -2
  368. package/dist/services/document-service/common.d.ts.map +1 -1
  369. package/dist/services/document-service/common.js.map +1 -1
  370. package/dist/services/document-service/common.mjs.map +1 -1
  371. package/dist/services/document-service/components.d.ts +97 -1
  372. package/dist/services/document-service/components.d.ts.map +1 -1
  373. package/dist/services/{entity-service → document-service}/components.js +33 -128
  374. package/dist/services/document-service/components.js.map +1 -0
  375. package/dist/services/{entity-service → document-service}/components.mjs +34 -129
  376. package/dist/services/document-service/components.mjs.map +1 -0
  377. package/dist/services/document-service/draft-and-publish.d.ts +9 -23
  378. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  379. package/dist/services/document-service/draft-and-publish.js +37 -9
  380. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  381. package/dist/services/document-service/draft-and-publish.mjs +38 -10
  382. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  383. package/dist/services/document-service/entries.d.ts +8 -0
  384. package/dist/services/document-service/entries.d.ts.map +1 -0
  385. package/dist/services/document-service/entries.js +62 -0
  386. package/dist/services/document-service/entries.js.map +1 -0
  387. package/dist/services/document-service/entries.mjs +62 -0
  388. package/dist/services/document-service/entries.mjs.map +1 -0
  389. package/dist/services/document-service/index.d.ts +2 -4
  390. package/dist/services/document-service/index.d.ts.map +1 -1
  391. package/dist/services/document-service/index.js +19 -4
  392. package/dist/services/document-service/index.js.map +1 -1
  393. package/dist/services/document-service/index.mjs +17 -2
  394. package/dist/services/document-service/index.mjs.map +1 -1
  395. package/dist/services/document-service/internationalization.d.ts +5 -5
  396. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  397. package/dist/services/document-service/internationalization.js.map +1 -1
  398. package/dist/services/document-service/internationalization.mjs.map +1 -1
  399. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  400. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  401. package/dist/services/document-service/middlewares/errors.js +25 -0
  402. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  403. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  404. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  405. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  406. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  407. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  408. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  409. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +9 -6
  410. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  411. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +9 -6
  412. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  413. package/dist/services/document-service/params.d.ts +7 -1
  414. package/dist/services/document-service/params.d.ts.map +1 -1
  415. package/dist/services/{entity-service → document-service}/params.js +1 -1
  416. package/dist/services/document-service/params.js.map +1 -0
  417. package/dist/services/{entity-service → document-service}/params.mjs +1 -1
  418. package/dist/services/document-service/params.mjs.map +1 -0
  419. package/dist/services/document-service/repository.d.ts.map +1 -1
  420. package/dist/services/document-service/repository.js +132 -165
  421. package/dist/services/document-service/repository.js.map +1 -1
  422. package/dist/services/document-service/repository.mjs +128 -161
  423. package/dist/services/document-service/repository.mjs.map +1 -1
  424. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  425. package/dist/services/document-service/transform/data.js +4 -2
  426. package/dist/services/document-service/transform/data.js.map +1 -1
  427. package/dist/services/document-service/transform/data.mjs +4 -2
  428. package/dist/services/document-service/transform/data.mjs.map +1 -1
  429. package/dist/services/document-service/transform/fields.d.ts +2 -2
  430. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  431. package/dist/services/document-service/transform/fields.js.map +1 -1
  432. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  433. package/dist/services/document-service/transform/id-map.d.ts +4 -4
  434. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  435. package/dist/services/document-service/transform/id-map.js +15 -9
  436. package/dist/services/document-service/transform/id-map.js.map +1 -1
  437. package/dist/services/document-service/transform/id-map.mjs +16 -10
  438. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  439. package/dist/services/document-service/transform/id-transform.d.ts +4 -18
  440. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  441. package/dist/services/document-service/transform/id-transform.js +18 -12
  442. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  443. package/dist/services/document-service/transform/id-transform.mjs +18 -12
  444. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  445. package/dist/services/document-service/transform/populate.d.ts +5 -2
  446. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  447. package/dist/services/document-service/transform/populate.js +1 -1
  448. package/dist/services/document-service/transform/populate.js.map +1 -1
  449. package/dist/services/document-service/transform/populate.mjs +1 -1
  450. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  451. package/dist/services/document-service/transform/query.d.ts +5 -0
  452. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  453. package/dist/services/document-service/transform/query.js +9 -0
  454. package/dist/services/document-service/transform/query.js.map +1 -0
  455. package/dist/services/document-service/transform/query.mjs +9 -0
  456. package/dist/services/document-service/transform/query.mjs.map +1 -0
  457. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  458. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  459. package/dist/services/document-service/transform/relations/extract/data-ids.js +43 -68
  460. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  461. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +43 -68
  462. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  463. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +9 -5
  464. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  465. package/dist/services/document-service/transform/relations/transform/data-ids.js +61 -105
  466. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  467. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +62 -106
  468. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  469. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  470. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  471. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  472. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  473. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  474. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  475. package/dist/services/document-service/transform/relations/utils/dp.d.ts +10 -0
  476. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
  477. package/dist/services/document-service/transform/relations/utils/dp.js +30 -0
  478. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  479. package/dist/services/document-service/transform/relations/utils/dp.mjs +30 -0
  480. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  481. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  482. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  483. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  484. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  485. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  486. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  487. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  488. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  489. package/dist/services/document-service/transform/relations/utils/map-relation.js +87 -0
  490. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  491. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +87 -0
  492. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  493. package/dist/services/document-service/transform/relations/utils/types.d.ts +10 -1
  494. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  495. package/dist/services/document-service/transform/types.d.ts +4 -4
  496. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  497. package/dist/services/document-service/utils/populate.d.ts +9 -2
  498. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  499. package/dist/services/document-service/utils/populate.js +5 -5
  500. package/dist/services/document-service/utils/populate.js.map +1 -1
  501. package/dist/services/document-service/utils/populate.mjs +5 -5
  502. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  503. package/dist/services/entity-service/index.d.ts +4 -6
  504. package/dist/services/entity-service/index.d.ts.map +1 -1
  505. package/dist/services/entity-service/index.js +44 -203
  506. package/dist/services/entity-service/index.js.map +1 -1
  507. package/dist/services/entity-service/index.mjs +38 -197
  508. package/dist/services/entity-service/index.mjs.map +1 -1
  509. package/dist/services/entity-validator/index.d.ts +2 -2
  510. package/dist/services/entity-validator/index.d.ts.map +1 -1
  511. package/dist/services/entity-validator/index.js +101 -90
  512. package/dist/services/entity-validator/index.js.map +1 -1
  513. package/dist/services/entity-validator/index.mjs +101 -90
  514. package/dist/services/entity-validator/index.mjs.map +1 -1
  515. package/dist/services/entity-validator/validators.d.ts +18 -18
  516. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  517. package/dist/services/entity-validator/validators.js +6 -1
  518. package/dist/services/entity-validator/validators.js.map +1 -1
  519. package/dist/services/entity-validator/validators.mjs +6 -1
  520. package/dist/services/entity-validator/validators.mjs.map +1 -1
  521. package/dist/services/features.d.ts +3 -3
  522. package/dist/services/features.d.ts.map +1 -1
  523. package/dist/services/features.js.map +1 -1
  524. package/dist/services/features.mjs.map +1 -1
  525. package/dist/services/fs.d.ts +2 -2
  526. package/dist/services/fs.d.ts.map +1 -1
  527. package/dist/services/fs.js.map +1 -1
  528. package/dist/services/fs.mjs.map +1 -1
  529. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  530. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  531. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  532. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  533. package/dist/services/metrics/index.d.ts +2 -2
  534. package/dist/services/metrics/index.d.ts.map +1 -1
  535. package/dist/services/metrics/index.js.map +1 -1
  536. package/dist/services/metrics/index.mjs.map +1 -1
  537. package/dist/services/metrics/middleware.d.ts +2 -2
  538. package/dist/services/metrics/middleware.d.ts.map +1 -1
  539. package/dist/services/metrics/middleware.js.map +1 -1
  540. package/dist/services/metrics/middleware.mjs.map +1 -1
  541. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  542. package/dist/services/metrics/rate-limiter.js.map +1 -1
  543. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  544. package/dist/services/metrics/sender.d.ts +3 -3
  545. package/dist/services/metrics/sender.d.ts.map +1 -1
  546. package/dist/services/metrics/sender.js.map +1 -1
  547. package/dist/services/metrics/sender.mjs.map +1 -1
  548. package/dist/services/query-params.d.ts +7 -0
  549. package/dist/services/query-params.d.ts.map +1 -0
  550. package/dist/services/query-params.js +12 -0
  551. package/dist/services/query-params.js.map +1 -0
  552. package/dist/services/query-params.mjs +13 -0
  553. package/dist/services/query-params.mjs.map +1 -0
  554. package/dist/services/reloader.d.ts +7 -0
  555. package/dist/services/reloader.d.ts.map +1 -0
  556. package/dist/services/reloader.js +36 -0
  557. package/dist/services/reloader.js.map +1 -0
  558. package/dist/services/reloader.mjs +36 -0
  559. package/dist/services/reloader.mjs.map +1 -0
  560. package/dist/services/server/admin-api.d.ts +3 -3
  561. package/dist/services/server/admin-api.d.ts.map +1 -1
  562. package/dist/services/server/admin-api.js.map +1 -1
  563. package/dist/services/server/admin-api.mjs.map +1 -1
  564. package/dist/services/server/api.d.ts +3 -3
  565. package/dist/services/server/api.d.ts.map +1 -1
  566. package/dist/services/server/api.js.map +1 -1
  567. package/dist/services/server/api.mjs.map +1 -1
  568. package/dist/services/server/compose-endpoint.d.ts +2 -2
  569. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  570. package/dist/services/server/compose-endpoint.js +1 -2
  571. package/dist/services/server/compose-endpoint.js.map +1 -1
  572. package/dist/services/server/compose-endpoint.mjs +2 -3
  573. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  574. package/dist/services/server/content-api.d.ts +3 -3
  575. package/dist/services/server/content-api.d.ts.map +1 -1
  576. package/dist/services/server/content-api.js.map +1 -1
  577. package/dist/services/server/content-api.mjs.map +1 -1
  578. package/dist/services/server/http-server.d.ts +2 -2
  579. package/dist/services/server/http-server.d.ts.map +1 -1
  580. package/dist/services/server/http-server.js.map +1 -1
  581. package/dist/services/server/http-server.mjs.map +1 -1
  582. package/dist/services/server/index.d.ts +2 -2
  583. package/dist/services/server/index.d.ts.map +1 -1
  584. package/dist/services/server/index.js +1 -2
  585. package/dist/services/server/index.js.map +1 -1
  586. package/dist/services/server/index.mjs +1 -2
  587. package/dist/services/server/index.mjs.map +1 -1
  588. package/dist/services/server/middleware.d.ts +4 -4
  589. package/dist/services/server/middleware.d.ts.map +1 -1
  590. package/dist/services/server/middleware.js.map +1 -1
  591. package/dist/services/server/middleware.mjs.map +1 -1
  592. package/dist/services/server/policy.d.ts +3 -3
  593. package/dist/services/server/policy.d.ts.map +1 -1
  594. package/dist/services/server/policy.js +4 -4
  595. package/dist/services/server/policy.js.map +1 -1
  596. package/dist/services/server/policy.mjs +4 -4
  597. package/dist/services/server/policy.mjs.map +1 -1
  598. package/dist/services/server/register-middlewares.d.ts +2 -2
  599. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  600. package/dist/services/server/register-middlewares.js.map +1 -1
  601. package/dist/services/server/register-middlewares.mjs.map +1 -1
  602. package/dist/services/server/register-routes.d.ts +2 -2
  603. package/dist/services/server/register-routes.d.ts.map +1 -1
  604. package/dist/services/server/register-routes.js +3 -3
  605. package/dist/services/server/register-routes.js.map +1 -1
  606. package/dist/services/server/register-routes.mjs +3 -3
  607. package/dist/services/server/register-routes.mjs.map +1 -1
  608. package/dist/services/server/routing.d.ts +5 -5
  609. package/dist/services/server/routing.d.ts.map +1 -1
  610. package/dist/services/server/routing.js.map +1 -1
  611. package/dist/services/server/routing.mjs.map +1 -1
  612. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  613. package/dist/services/utils/dynamic-zones.js +2 -1
  614. package/dist/services/utils/dynamic-zones.js.map +1 -1
  615. package/dist/services/utils/dynamic-zones.mjs +2 -1
  616. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  617. package/dist/services/webhook-runner.js.map +1 -1
  618. package/dist/services/webhook-runner.mjs.map +1 -1
  619. package/dist/services/webhook-store.d.ts.map +1 -1
  620. package/dist/services/webhook-store.js +5 -6
  621. package/dist/services/webhook-store.js.map +1 -1
  622. package/dist/services/webhook-store.mjs +5 -6
  623. package/dist/services/webhook-store.mjs.map +1 -1
  624. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  625. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  626. package/dist/utils/convert-custom-field-type.js.map +1 -1
  627. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  628. package/dist/utils/fetch.d.ts +3 -3
  629. package/dist/utils/fetch.d.ts.map +1 -1
  630. package/dist/utils/fetch.js.map +1 -1
  631. package/dist/utils/fetch.mjs.map +1 -1
  632. package/dist/utils/index.d.ts +2 -1
  633. package/dist/utils/index.d.ts.map +1 -1
  634. package/dist/utils/is-initialized.d.ts +2 -2
  635. package/dist/utils/is-initialized.d.ts.map +1 -1
  636. package/dist/utils/is-initialized.js +1 -1
  637. package/dist/utils/is-initialized.js.map +1 -1
  638. package/dist/utils/is-initialized.mjs +1 -1
  639. package/dist/utils/is-initialized.mjs.map +1 -1
  640. package/dist/utils/load-config-file.js +1 -1
  641. package/dist/utils/load-config-file.js.map +1 -1
  642. package/dist/utils/load-config-file.mjs +2 -2
  643. package/dist/utils/load-config-file.mjs.map +1 -1
  644. package/dist/utils/open-browser.d.ts +2 -2
  645. package/dist/utils/open-browser.d.ts.map +1 -1
  646. package/dist/utils/open-browser.js.map +1 -1
  647. package/dist/utils/open-browser.mjs.map +1 -1
  648. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  649. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  650. package/dist/utils/resolve-working-dirs.js +13 -0
  651. package/dist/utils/resolve-working-dirs.js.map +1 -0
  652. package/dist/utils/resolve-working-dirs.mjs +11 -0
  653. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  654. package/dist/utils/signals.d.ts +2 -2
  655. package/dist/utils/signals.d.ts.map +1 -1
  656. package/dist/utils/signals.js.map +1 -1
  657. package/dist/utils/signals.mjs.map +1 -1
  658. package/dist/utils/startup-logger.d.ts +2 -2
  659. package/dist/utils/startup-logger.d.ts.map +1 -1
  660. package/dist/utils/startup-logger.js.map +1 -1
  661. package/dist/utils/startup-logger.mjs.map +1 -1
  662. package/dist/utils/transform-content-types-to-models.d.ts +54 -99
  663. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  664. package/dist/utils/transform-content-types-to-models.js +95 -57
  665. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  666. package/dist/utils/transform-content-types-to-models.mjs +95 -57
  667. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  668. package/dist/utils/update-notifier/index.d.ts +2 -7
  669. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  670. package/dist/utils/update-notifier/index.js +11 -14
  671. package/dist/utils/update-notifier/index.js.map +1 -1
  672. package/dist/utils/update-notifier/index.mjs +11 -14
  673. package/dist/utils/update-notifier/index.mjs.map +1 -1
  674. package/package.json +22 -22
  675. package/dist/registries/config.d.ts +0 -4
  676. package/dist/registries/config.d.ts.map +0 -1
  677. package/dist/registries/config.js +0 -23
  678. package/dist/registries/config.js.map +0 -1
  679. package/dist/registries/config.mjs +0 -22
  680. package/dist/registries/config.mjs.map +0 -1
  681. package/dist/services/document-service/middlewares.d.ts +0 -8
  682. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  683. package/dist/services/document-service/middlewares.js.map +0 -1
  684. package/dist/services/document-service/middlewares.mjs.map +0 -1
  685. package/dist/services/document-service/transform/filters.d.ts +0 -3
  686. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  687. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  688. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  689. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  690. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  691. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  692. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  693. package/dist/services/document-service/transform/sort.d.ts +0 -5
  694. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  695. package/dist/services/document-service/transform/utils.d.ts +0 -9
  696. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  697. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  698. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  699. package/dist/services/entity-service/attributes/index.js.map +0 -1
  700. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  701. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  702. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  703. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  704. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  705. package/dist/services/entity-service/components.d.ts +0 -23
  706. package/dist/services/entity-service/components.d.ts.map +0 -1
  707. package/dist/services/entity-service/components.js.map +0 -1
  708. package/dist/services/entity-service/components.mjs.map +0 -1
  709. package/dist/services/entity-service/params.d.ts +0 -8
  710. package/dist/services/entity-service/params.d.ts.map +0 -1
  711. package/dist/services/entity-service/params.js.map +0 -1
  712. package/dist/services/entity-service/params.mjs.map +0 -1
  713. package/dist/services/utils/upload-files.d.ts +0 -8
  714. package/dist/services/utils/upload-files.d.ts.map +0 -1
  715. package/dist/services/utils/upload-files.js +0 -64
  716. package/dist/services/utils/upload-files.js.map +0 -1
  717. package/dist/services/utils/upload-files.mjs +0 -63
  718. package/dist/services/utils/upload-files.mjs.map +0 -1
  719. package/dist/utils/get-dirs.d.ts +0 -9
  720. package/dist/utils/get-dirs.d.ts.map +0 -1
  721. package/dist/utils/get-dirs.js.map +0 -1
  722. package/dist/utils/get-dirs.mjs.map +0 -1
  723. /package/dist/services/{entity-service → document-service}/attributes/index.js +0 -0
  724. /package/dist/services/{entity-service → document-service}/attributes/index.mjs +0 -0
  725. /package/dist/services/{entity-service → document-service}/attributes/transforms.js +0 -0
  726. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
@@ -1,23 +0,0 @@
1
- "use strict";
2
- const _ = require("lodash");
3
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
4
- const ___default = /* @__PURE__ */ _interopDefault(_);
5
- const config = (initialConfig = {}) => {
6
- const _config = { ...initialConfig };
7
- return {
8
- ..._config,
9
- // TODO: to remove
10
- get(path, defaultValue) {
11
- return ___default.default.get(_config, path, defaultValue);
12
- },
13
- set(path, val) {
14
- ___default.default.set(_config, path, val);
15
- return this;
16
- },
17
- has(path) {
18
- return ___default.default.has(_config, path);
19
- }
20
- };
21
- };
22
- module.exports = config;
23
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sources":["../../src/registries/config.ts"],"sourcesContent":["import type { ConfigProvider } from '@strapi/types';\nimport _, { PropertyName } from 'lodash';\n\ntype Config = Record<string, unknown>;\n\nexport default (initialConfig = {}): ConfigProvider => {\n const _config: Config = { ...initialConfig }; // not deep clone because it would break some config\n\n return {\n ..._config, // TODO: to remove\n get(path: PropertyName, defaultValue?: unknown) {\n return _.get(_config, path, defaultValue);\n },\n set(path: PropertyName, val: unknown) {\n _.set(_config, path, val);\n return this;\n },\n has(path: PropertyName) {\n return _.has(_config, path);\n },\n };\n};\n"],"names":["_"],"mappings":";;;;AAKA,MAAA,SAAe,CAAC,gBAAgB,CAAA,MAAuB;AAC/C,QAAA,UAAkB,EAAE,GAAG;AAEtB,SAAA;AAAA,IACL,GAAG;AAAA;AAAA,IACH,IAAI,MAAoB,cAAwB;AAC9C,aAAOA,WAAE,QAAA,IAAI,SAAS,MAAM,YAAY;AAAA,IAC1C;AAAA,IACA,IAAI,MAAoB,KAAc;AAClCA,iBAAAA,QAAA,IAAI,SAAS,MAAM,GAAG;AACjB,aAAA;AAAA,IACT;AAAA,IACA,IAAI,MAAoB;AACf,aAAAA,mBAAE,IAAI,SAAS,IAAI;AAAA,IAC5B;AAAA,EAAA;AAEJ;;"}
@@ -1,22 +0,0 @@
1
- import _ from "lodash";
2
- const config = (initialConfig = {}) => {
3
- const _config = { ...initialConfig };
4
- return {
5
- ..._config,
6
- // TODO: to remove
7
- get(path, defaultValue) {
8
- return _.get(_config, path, defaultValue);
9
- },
10
- set(path, val) {
11
- _.set(_config, path, val);
12
- return this;
13
- },
14
- has(path) {
15
- return _.has(_config, path);
16
- }
17
- };
18
- };
19
- export {
20
- config as default
21
- };
22
- //# sourceMappingURL=config.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.mjs","sources":["../../src/registries/config.ts"],"sourcesContent":["import type { ConfigProvider } from '@strapi/types';\nimport _, { PropertyName } from 'lodash';\n\ntype Config = Record<string, unknown>;\n\nexport default (initialConfig = {}): ConfigProvider => {\n const _config: Config = { ...initialConfig }; // not deep clone because it would break some config\n\n return {\n ..._config, // TODO: to remove\n get(path: PropertyName, defaultValue?: unknown) {\n return _.get(_config, path, defaultValue);\n },\n set(path: PropertyName, val: unknown) {\n _.set(_config, path, val);\n return this;\n },\n has(path: PropertyName) {\n return _.has(_config, path);\n },\n };\n};\n"],"names":[],"mappings":";AAKA,MAAA,SAAe,CAAC,gBAAgB,CAAA,MAAuB;AAC/C,QAAA,UAAkB,EAAE,GAAG;AAEtB,SAAA;AAAA,IACL,GAAG;AAAA;AAAA,IACH,IAAI,MAAoB,cAAwB;AAC9C,aAAO,EAAE,IAAI,SAAS,MAAM,YAAY;AAAA,IAC1C;AAAA,IACA,IAAI,MAAoB,KAAc;AAClC,QAAA,IAAI,SAAS,MAAM,GAAG;AACjB,aAAA;AAAA,IACT;AAAA,IACA,IAAI,MAAoB;AACf,aAAA,EAAE,IAAI,SAAS,IAAI;AAAA,IAC5B;AAAA,EAAA;AAEJ;"}
@@ -1,8 +0,0 @@
1
- type Middleware = (ctx: any, next: () => Promise<void>) => Promise<void>;
2
- export declare const createMiddlewareManager: () => {
3
- use(middleware: any): () => Middleware[];
4
- run(ctx: any, cb: () => void): Promise<void>;
5
- wrapObject<TSource extends Record<string, any>>(source: TSource, ctxDefaults?: {}): TSource;
6
- };
7
- export {};
8
- //# sourceMappingURL=middlewares.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/middlewares.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzE,eAAO,MAAM,uBAAuB;oBAIhB,GAAG;aAMJ,GAAG,MAAM,MAAM,IAAI;;CA4CrC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"middlewares.js","sources":["../../../src/services/document-service/middlewares.ts"],"sourcesContent":["type Middleware = (ctx: any, next: () => Promise<void>) => Promise<void>;\n\nexport const createMiddlewareManager = () => {\n const middlewares: Middleware[] = [];\n\n const manager = {\n use(middleware: any) {\n middlewares.push(middleware);\n\n return () => middlewares.splice(middlewares.indexOf(middleware), 1);\n },\n\n async run(ctx: any, cb: () => void) {\n let index = 0;\n const next = async () => {\n if (index < middlewares.length) {\n // eslint-disable-next-line no-plusplus\n return middlewares[index++](ctx, next);\n }\n\n return cb();\n };\n\n return next();\n },\n\n wrapObject<TSource extends Record<string, any>>(source: TSource, ctxDefaults = {}): TSource {\n const facade: TSource = {} as TSource;\n\n for (const key in source) {\n if (Object.hasOwnProperty.call(source, key)) {\n const prop = source[key];\n\n if (typeof prop === 'function') {\n const newMethod = async (...args: any[]) => {\n const ctx = {\n ...ctxDefaults,\n action: key,\n args,\n };\n\n return manager.run(ctx, () => prop(...ctx.args));\n };\n\n facade[key] = newMethod as typeof prop;\n } else {\n facade[key] = prop;\n }\n }\n }\n\n return facade;\n },\n };\n\n return manager;\n};\n"],"names":[],"mappings":";;AAEO,MAAM,0BAA0B,MAAM;AAC3C,QAAM,cAA4B,CAAA;AAElC,QAAM,UAAU;AAAA,IACd,IAAI,YAAiB;AACnB,kBAAY,KAAK,UAAU;AAE3B,aAAO,MAAM,YAAY,OAAO,YAAY,QAAQ,UAAU,GAAG,CAAC;AAAA,IACpE;AAAA,IAEA,MAAM,IAAI,KAAU,IAAgB;AAClC,UAAI,QAAQ;AACZ,YAAM,OAAO,YAAY;AACnB,YAAA,QAAQ,YAAY,QAAQ;AAE9B,iBAAO,YAAY,OAAO,EAAE,KAAK,IAAI;AAAA,QACvC;AAEA,eAAO,GAAG;AAAA,MAAA;AAGZ,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,WAAgD,QAAiB,cAAc,IAAa;AAC1F,YAAM,SAAkB,CAAA;AAExB,iBAAW,OAAO,QAAQ;AACxB,YAAI,OAAO,eAAe,KAAK,QAAQ,GAAG,GAAG;AACrC,gBAAA,OAAO,OAAO,GAAG;AAEnB,cAAA,OAAO,SAAS,YAAY;AACxB,kBAAA,YAAY,UAAU,SAAgB;AAC1C,oBAAM,MAAM;AAAA,gBACV,GAAG;AAAA,gBACH,QAAQ;AAAA,gBACR;AAAA,cAAA;AAGK,qBAAA,QAAQ,IAAI,KAAK,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC;AAAA,YAAA;AAGjD,mBAAO,GAAG,IAAI;AAAA,UAAA,OACT;AACL,mBAAO,GAAG,IAAI;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAGK,SAAA;AACT;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"middlewares.mjs","sources":["../../../src/services/document-service/middlewares.ts"],"sourcesContent":["type Middleware = (ctx: any, next: () => Promise<void>) => Promise<void>;\n\nexport const createMiddlewareManager = () => {\n const middlewares: Middleware[] = [];\n\n const manager = {\n use(middleware: any) {\n middlewares.push(middleware);\n\n return () => middlewares.splice(middlewares.indexOf(middleware), 1);\n },\n\n async run(ctx: any, cb: () => void) {\n let index = 0;\n const next = async () => {\n if (index < middlewares.length) {\n // eslint-disable-next-line no-plusplus\n return middlewares[index++](ctx, next);\n }\n\n return cb();\n };\n\n return next();\n },\n\n wrapObject<TSource extends Record<string, any>>(source: TSource, ctxDefaults = {}): TSource {\n const facade: TSource = {} as TSource;\n\n for (const key in source) {\n if (Object.hasOwnProperty.call(source, key)) {\n const prop = source[key];\n\n if (typeof prop === 'function') {\n const newMethod = async (...args: any[]) => {\n const ctx = {\n ...ctxDefaults,\n action: key,\n args,\n };\n\n return manager.run(ctx, () => prop(...ctx.args));\n };\n\n facade[key] = newMethod as typeof prop;\n } else {\n facade[key] = prop;\n }\n }\n }\n\n return facade;\n },\n };\n\n return manager;\n};\n"],"names":[],"mappings":"AAEO,MAAM,0BAA0B,MAAM;AAC3C,QAAM,cAA4B,CAAA;AAElC,QAAM,UAAU;AAAA,IACd,IAAI,YAAiB;AACnB,kBAAY,KAAK,UAAU;AAE3B,aAAO,MAAM,YAAY,OAAO,YAAY,QAAQ,UAAU,GAAG,CAAC;AAAA,IACpE;AAAA,IAEA,MAAM,IAAI,KAAU,IAAgB;AAClC,UAAI,QAAQ;AACZ,YAAM,OAAO,YAAY;AACnB,YAAA,QAAQ,YAAY,QAAQ;AAE9B,iBAAO,YAAY,OAAO,EAAE,KAAK,IAAI;AAAA,QACvC;AAEA,eAAO,GAAG;AAAA,MAAA;AAGZ,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,WAAgD,QAAiB,cAAc,IAAa;AAC1F,YAAM,SAAkB,CAAA;AAExB,iBAAW,OAAO,QAAQ;AACxB,YAAI,OAAO,eAAe,KAAK,QAAQ,GAAG,GAAG;AACrC,gBAAA,OAAO,OAAO,GAAG;AAEnB,cAAA,OAAO,SAAS,YAAY;AACxB,kBAAA,YAAY,UAAU,SAAgB;AAC1C,oBAAM,MAAM;AAAA,gBACV,GAAG;AAAA,gBACH,QAAQ;AAAA,gBACR;AAAA,cAAA;AAGK,qBAAA,QAAQ,IAAI,KAAK,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC;AAAA,YAAA;AAGjD,mBAAO,GAAG,IAAI;AAAA,UAAA,OACT;AACL,mBAAO,GAAG,IAAI;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAGK,SAAA;AACT;"}
@@ -1,3 +0,0 @@
1
- import { type Data, type Options } from './types';
2
- export declare const transformFilters: (data: Data, opts: Options) => Promise<unknown>;
3
- //# sourceMappingURL=filters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/filters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAyBlD,eAAO,MAAM,gBAAgB,SAAgB,IAAI,QAAQ,OAAO,qBAqC/D,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Common } from '@strapi/types';
2
- declare const transformOutputIds: (uid: Common.UID.Schema, output: Record<string, any>) => Promise<import("@strapi/utils/dist/types").Data>;
3
- export { transformOutputIds };
4
- //# sourceMappingURL=output-ids.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output-ids.d.ts","sourceRoot":"","sources":["../../../../../../src/services/document-service/transform/relations/transform/output-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvC,QAAA,MAAM,kBAAkB,QAAe,OAAO,GAAG,CAAC,MAAM,UAAU,OAAO,MAAM,EAAE,GAAG,CAAC,qDAuBpF,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
4
- const isShortHand = (relation) => {
5
- return typeof relation === "string" || typeof relation === "number";
6
- };
7
- const isLongHand = (relation) => {
8
- return _.isObject(relation) && ("id" in relation || "documentId" in relation);
9
- };
10
- exports.isLongHand = isLongHand;
11
- exports.isShortHand = isShortHand;
12
- //# sourceMappingURL=data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.js","sources":["../../../../../../src/services/document-service/transform/relations/utils/data.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { ID, LongHand } from './types';\n\nexport const isShortHand = (relation: any): relation is ID => {\n return typeof relation === 'string' || typeof relation === 'number';\n};\n\nexport const isLongHand = (relation: any): relation is LongHand => {\n return isObject(relation) && ('id' in relation || 'documentId' in relation);\n};\n"],"names":["isObject"],"mappings":";;;AAGa,MAAA,cAAc,CAAC,aAAkC;AAC5D,SAAO,OAAO,aAAa,YAAY,OAAO,aAAa;AAC7D;AAEa,MAAA,aAAa,CAAC,aAAwC;AACjE,SAAOA,EAAAA,SAAS,QAAQ,MAAM,QAAQ,YAAY,gBAAgB;AACpE;;;"}
@@ -1,12 +0,0 @@
1
- import { isObject } from "lodash/fp";
2
- const isShortHand = (relation) => {
3
- return typeof relation === "string" || typeof relation === "number";
4
- };
5
- const isLongHand = (relation) => {
6
- return isObject(relation) && ("id" in relation || "documentId" in relation);
7
- };
8
- export {
9
- isLongHand,
10
- isShortHand
11
- };
12
- //# sourceMappingURL=data.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.mjs","sources":["../../../../../../src/services/document-service/transform/relations/utils/data.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { ID, LongHand } from './types';\n\nexport const isShortHand = (relation: any): relation is ID => {\n return typeof relation === 'string' || typeof relation === 'number';\n};\n\nexport const isLongHand = (relation: any): relation is LongHand => {\n return isObject(relation) && ('id' in relation || 'documentId' in relation);\n};\n"],"names":[],"mappings":";AAGa,MAAA,cAAc,CAAC,aAAkC;AAC5D,SAAO,OAAO,aAAa,YAAY,OAAO,aAAa;AAC7D;AAEa,MAAA,aAAa,CAAC,aAAwC;AACjE,SAAO,SAAS,QAAQ,MAAM,QAAQ,YAAY,gBAAgB;AACpE;"}
@@ -1,5 +0,0 @@
1
- import { Options, Data } from './types';
2
- type Sort = Data | string;
3
- export declare const transformSort: (sort: Sort | Sort[], opts: Options) => Promise<unknown>;
4
- export {};
5
- //# sourceMappingURL=sort.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/sort.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAGxC,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAiC1B,eAAO,MAAM,aAAa,SAAgB,IAAI,GAAG,IAAI,EAAE,QAAQ,OAAO,qBAoBrE,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Replace the documentId field with id
3
- */
4
- export declare const switchIdForDocumentId: (output: Record<string, any>) => Record<string, any>;
5
- /**
6
- * Replace the id field for documentId
7
- */
8
- export declare const switchDocumentIdForId: (output: Record<string, any>) => Record<string, any>;
9
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB,WAAY,OAAO,MAAM,EAAE,GAAG,CAAC,wBAUhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,WAAY,OAAO,MAAM,EAAE,GAAG,CAAC,wBAUhE,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { Common, Shared, EntityService } from '@strapi/types';
2
- declare const applyTransforms: <TUID extends Common.UID.ContentType>(data: EntityService.Params.Data.Input<TUID>, context: {
3
- contentType: Shared.ContentTypes[TUID];
4
- }) => EntityService.Params.Data.Input<TUID>;
5
- export { applyTransforms };
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/entity-service/attributes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnE,QAAA,MAAM,eAAe;;2CA6BpB,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/services/entity-service/attributes/index.ts"],"sourcesContent":["import type { Common, Shared, EntityService } from '@strapi/types';\nimport transforms from './transforms';\n\nconst applyTransforms = <TUID extends Common.UID.ContentType>(\n data: EntityService.Params.Data.Input<TUID>,\n context: {\n contentType: Shared.ContentTypes[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;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/services/entity-service/attributes/index.ts"],"sourcesContent":["import type { Common, Shared, EntityService } from '@strapi/types';\nimport transforms from './transforms';\n\nconst applyTransforms = <TUID extends Common.UID.ContentType>(\n data: EntityService.Params.Data.Input<TUID>,\n context: {\n contentType: Shared.ContentTypes[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;"}
@@ -1,10 +0,0 @@
1
- import type { Attribute } from '@strapi/types';
2
- type Transforms = {
3
- [TKind in Attribute.Kind]?: (value: unknown, context: {
4
- attribute: Attribute.Any;
5
- attributeName: string;
6
- }) => any;
7
- };
8
- declare const transforms: Transforms;
9
- export default transforms;
10
- //# sourceMappingURL=transforms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../../../../src/services/entity-service/attributes/transforms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,KAAK,UAAU,GAAG;KACf,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAC1B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QAAE,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,KACzD,GAAG;CACT,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,UAgBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transforms.js","sources":["../../../../src/services/entity-service/attributes/transforms.ts"],"sourcesContent":["import { getOr, toNumber, isString } from 'lodash/fp';\nimport type { Attribute } from '@strapi/types';\nimport bcrypt from 'bcryptjs';\n\ntype Transforms = {\n [TKind in Attribute.Kind]?: (\n value: unknown,\n context: { attribute: Attribute.Any; attributeName: string }\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":";;;;;AAWA,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;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transforms.mjs","sources":["../../../../src/services/entity-service/attributes/transforms.ts"],"sourcesContent":["import { getOr, toNumber, isString } from 'lodash/fp';\nimport type { Attribute } from '@strapi/types';\nimport bcrypt from 'bcryptjs';\n\ntype Transforms = {\n [TKind in Attribute.Kind]?: (\n value: unknown,\n context: { attribute: Attribute.Any; attributeName: string }\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":";;AAWA,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,23 +0,0 @@
1
- import type { Attribute, Common, Schema, EntityService } from '@strapi/types';
2
- type LoadedComponents<TUID extends Common.UID.Schema> = Attribute.GetValues<TUID, Attribute.GetKeysByType<TUID, 'component' | 'dynamiczone'>>;
3
- type ComponentBody = {
4
- [key: string]: Attribute.GetValue<Attribute.Component<Common.UID.Component, false> | Attribute.Component<Common.UID.Component, true> | Attribute.DynamicZone>;
5
- };
6
- declare function omitComponentData(contentType: Schema.ContentType, data: EntityService.Params.Data.Input<Schema.ContentType['uid']>): Partial<EntityService.Params.Data.Input<Schema.ContentType['uid']>>;
7
- declare function omitComponentData(contentType: Schema.Component, data: EntityService.Params.Data.Input<Schema.Component['uid']>): Partial<EntityService.Params.Data.Input<Schema.Component['uid']>>;
8
- declare const createComponents: <TUID extends Common.UID.Schema, TData extends EntityService.Params.Data.Input<TUID>>(uid: TUID, data: TData) => Promise<ComponentBody>;
9
- declare const getComponents: <TUID extends Common.UID.Schema>(uid: TUID, entity: {
10
- id: EntityService.Params.Attribute.ID;
11
- }) => Promise<LoadedComponents<TUID>>;
12
- declare const updateComponents: <TUID extends Common.UID.Schema, TData extends Partial<EntityService.Params.Data.Input<TUID>>>(uid: TUID, entityToUpdate: {
13
- id: EntityService.Params.Attribute.ID;
14
- }, data: TData) => Promise<ComponentBody>;
15
- declare const deleteComponents: <TUID extends Common.UID.Schema, TEntity extends Attribute.GetValues<TUID, Attribute.GetKeys<TUID>>>(uid: TUID, entityToDelete: TEntity, { loadComponents }?: {
16
- loadComponents?: boolean | undefined;
17
- }) => Promise<void>;
18
- declare const cloneComponents: <TUID extends Common.UID.Schema>(uid: TUID, entityToClone: {
19
- id: EntityService.Params.Attribute.ID;
20
- }, data: EntityService.Params.Data.Input<TUID>) => Promise<ComponentBody>;
21
- declare const deleteComponent: <TUID extends `${string}.${string}`>(uid: TUID, componentToDelete: Attribute.GetValues<TUID, Attribute.GetKeys<TUID>>) => Promise<void>;
22
- export { omitComponentData, getComponents, createComponents, updateComponents, deleteComponents, deleteComponent, cloneComponents, };
23
- //# sourceMappingURL=components.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/services/entity-service/components.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAS,aAAa,EAAE,MAAM,eAAe,CAAC;AAGrF,KAAK,gBAAgB,CAAC,IAAI,SAAS,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,SAAS,CACzE,IAAI,EACJ,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAAC,CAC3D,CAAC;AAMF,KAAK,aAAa,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAC7B,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,GAChD,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAC/C,SAAS,CAAC,WAAW,CACxB,CAAC;CACH,CAAC;AAIF,iBAAS,iBAAiB,CACxB,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAC/D,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvE,iBAAS,iBAAiB,CACxB,WAAW,EAAE,MAAM,CAAC,SAAS,EAC7B,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAC7D,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAcrE,QAAA,MAAM,gBAAgB,yIAqGrB,CAAC;AAEF,QAAA,MAAM,aAAa,sDAET;IAAE,EAAE,EAAE,cAAc,MAAM,UAAU,CAAC,EAAE,CAAA;CAAE,oCASlD,CAAC;AAMF,QAAA,MAAM,gBAAgB,4HAKJ;IAAE,EAAE,EAAE,cAAc,MAAM,UAAU,CAAC,EAAE,CAAA;CAAE,wCA2F1D,CAAC;AAkGF,QAAA,MAAM,gBAAgB;;mBAkDrB,CAAC;AAEF,QAAA,MAAM,eAAe,6DAEJ;IAAE,EAAE,EAAE,cAAc,MAAM,UAAU,CAAC,EAAE,CAAA;CAAE,wEA4FzD,CAAC;AA6DF,QAAA,MAAM,eAAe,yIAMpB,CAAC;AAyBF,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.js","sources":["../../../src/services/entity-service/components.ts"],"sourcesContent":["import _ from 'lodash';\nimport { has, omit, pipe, assign } from 'lodash/fp';\nimport type { Attribute, Common, Schema, Utils, EntityService } from '@strapi/types';\nimport { contentTypes as contentTypesUtils, mapAsync, errors } from '@strapi/utils';\n\ntype LoadedComponents<TUID extends Common.UID.Schema> = Attribute.GetValues<\n TUID,\n Attribute.GetKeysByType<TUID, 'component' | 'dynamiczone'>\n>;\n\ntype ComponentValue = Attribute.GetValue<\n Attribute.Component<Common.UID.Component, false> | Attribute.Component<Common.UID.Component, true>\n>;\n\ntype ComponentBody = {\n [key: string]: Attribute.GetValue<\n | Attribute.Component<Common.UID.Component, false>\n | Attribute.Component<Common.UID.Component, true>\n | Attribute.DynamicZone\n >;\n};\n\nconst isDialectMySQL = () => strapi.db?.dialect.client === 'mysql';\n\nfunction omitComponentData(\n contentType: Schema.ContentType,\n data: EntityService.Params.Data.Input<Schema.ContentType['uid']>\n): Partial<EntityService.Params.Data.Input<Schema.ContentType['uid']>>;\nfunction omitComponentData(\n contentType: Schema.Component,\n data: EntityService.Params.Data.Input<Schema.Component['uid']>\n): Partial<EntityService.Params.Data.Input<Schema.Component['uid']>>;\nfunction omitComponentData(\n contentType: Schema.ContentType | Schema.Component,\n data: EntityService.Params.Data.Input<Schema.ContentType['uid'] | Schema.Component['uid']>\n): Partial<EntityService.Params.Data.Input<Schema.ContentType['uid'] | Schema.Component['uid']>> {\n const { attributes } = contentType;\n const componentAttributes = Object.keys(attributes).filter((attributeName) =>\n contentTypesUtils.isComponentAttribute(attributes[attributeName])\n );\n\n return omit(componentAttributes, data);\n}\n\n// NOTE: we could generalize the logic to allow CRUD of relation directly in the DB layer\nconst createComponents = async <\n TUID extends Common.UID.Schema,\n TData extends EntityService.Params.Data.Input<TUID>\n>(\n uid: TUID,\n data: TData\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const componentBody: ComponentBody = {};\n\n const attributeNames = Object.keys(attributes);\n\n for (const attributeName of attributeNames) {\n const attribute = attributes[attributeName];\n\n if (!has(attributeName, data) || !contentTypesUtils.isComponentAttribute(attribute)) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID, repeatable = false } = attribute;\n\n const componentValue = data[attributeName as keyof TData];\n\n if (componentValue === null) {\n continue;\n }\n\n if (repeatable === true) {\n if (!Array.isArray(componentValue)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n const components = (await mapAsync(\n componentValue,\n (value: any) => createComponent(componentUID, value),\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n )) as Attribute.GetValue<Attribute.Component<Common.UID.Component, true>>;\n\n componentBody[attributeName] = components.map(({ id }) => {\n return {\n id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n });\n } else {\n const component = await createComponent(\n componentUID,\n componentValue as EntityService.Params.Data.Input<Common.UID.Component>\n );\n componentBody[attributeName] = {\n id: component.id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n }\n\n continue;\n }\n\n if (attribute.type === 'dynamiczone') {\n const dynamiczoneValues = data[\n attributeName as keyof TData\n ] as EntityService.Params.Attribute.GetValue<Attribute.DynamicZone>;\n\n if (!Array.isArray(dynamiczoneValues)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n const createDynamicZoneComponents = async (\n value: Utils.Array.Values<typeof dynamiczoneValues>\n ) => {\n const { id } = await createComponent(value.__component, value);\n return {\n id,\n __component: value.__component,\n __pivot: {\n field: attributeName,\n },\n };\n };\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n componentBody[attributeName] = await mapAsync(\n dynamiczoneValues,\n createDynamicZoneComponents,\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n );\n\n continue;\n }\n }\n\n return componentBody;\n};\n\nconst getComponents = async <TUID extends Common.UID.Schema>(\n uid: TUID,\n entity: { id: EntityService.Params.Attribute.ID }\n): Promise<LoadedComponents<TUID>> => {\n const componentAttributes = contentTypesUtils.getComponentAttributes(strapi.getModel(uid));\n\n if (_.isEmpty(componentAttributes)) {\n return {} as LoadedComponents<TUID>;\n }\n\n return strapi.query(uid).load(entity, componentAttributes) as Promise<LoadedComponents<TUID>>;\n};\n\n/*\n delete old components\n create or update\n*/\nconst updateComponents = async <\n TUID extends Common.UID.Schema,\n TData extends Partial<EntityService.Params.Data.Input<TUID>>\n>(\n uid: TUID,\n entityToUpdate: { id: EntityService.Params.Attribute.ID },\n data: TData\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const componentBody: ComponentBody = {};\n\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n\n if (!has(attributeName, data)) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID, repeatable = false } = attribute;\n\n const componentValue = data[\n attributeName as keyof TData\n ] as Attribute.GetValue<Attribute.Component>;\n\n await deleteOldComponents(uid, componentUID, entityToUpdate, attributeName, componentValue);\n\n if (repeatable === true) {\n if (!Array.isArray(componentValue)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n const components = (await mapAsync(\n componentValue,\n (value: any) => updateOrCreateComponent(componentUID, value),\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n )) as Attribute.GetValue<Attribute.Component<Common.UID.Component, true>>;\n\n componentBody[attributeName] = components.filter(_.negate(_.isNil)).map(({ id }) => {\n return {\n id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n });\n } else {\n const component = await updateOrCreateComponent(componentUID, componentValue);\n componentBody[attributeName] = component && {\n id: component.id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n }\n\n continue;\n }\n\n if (attribute.type === 'dynamiczone') {\n const dynamiczoneValues = data[\n attributeName as keyof TData\n ] as Attribute.GetValue<Attribute.DynamicZone>;\n\n await deleteOldDZComponents(uid, entityToUpdate, attributeName, dynamiczoneValues);\n\n if (!Array.isArray(dynamiczoneValues)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n componentBody[attributeName] = await mapAsync(\n dynamiczoneValues,\n async (value: any) => {\n const { id } = await updateOrCreateComponent(value.__component, value);\n\n return {\n id,\n __component: value.__component,\n __pivot: {\n field: attributeName,\n },\n };\n },\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n );\n\n continue;\n }\n }\n\n return componentBody;\n};\n\nconst pickStringifiedId = ({\n id,\n}: {\n id: EntityService.Params.Attribute.ID;\n}): EntityService.Params.Attribute.ID & string => {\n if (typeof id === 'string') {\n return id;\n }\n\n return `${id}`;\n};\n\nconst deleteOldComponents = async <TUID extends Common.UID.Schema>(\n uid: TUID,\n componentUID: Common.UID.Component,\n entityToUpdate: { id: EntityService.Params.Attribute.ID },\n attributeName: string,\n componentValue: Attribute.GetValue<Attribute.Component>\n) => {\n const previousValue = (await strapi\n .query(uid)\n .load(entityToUpdate, attributeName)) as ComponentValue;\n\n const idsToKeep = _.castArray(componentValue).filter(has('id')).map(pickStringifiedId);\n const allIds = _.castArray(previousValue).filter(has('id')).map(pickStringifiedId);\n\n idsToKeep.forEach((id) => {\n if (!allIds.includes(id)) {\n throw new errors.ApplicationError(\n `Some of the provided components in ${attributeName} are not related to the entity`\n );\n }\n });\n\n const idsToDelete = _.difference(allIds, idsToKeep);\n\n if (idsToDelete.length > 0) {\n for (const idToDelete of idsToDelete) {\n await deleteComponent(componentUID, { id: idToDelete });\n }\n }\n};\n\nconst deleteOldDZComponents = async <TUID extends Common.UID.Schema>(\n uid: TUID,\n entityToUpdate: { id: EntityService.Params.Attribute.ID },\n attributeName: string,\n dynamiczoneValues: Attribute.GetValue<Attribute.DynamicZone>\n) => {\n const previousValue = (await strapi\n .query(uid)\n .load(entityToUpdate, attributeName)) as Attribute.GetValue<Attribute.DynamicZone>;\n\n const idsToKeep = _.castArray(dynamiczoneValues)\n .filter(has('id'))\n .map((v) => ({\n id: pickStringifiedId(v),\n __component: v.__component,\n }));\n\n const allIds = _.castArray(previousValue)\n .filter(has('id'))\n .map((v) => ({\n id: pickStringifiedId(v),\n __component: v.__component,\n }));\n\n idsToKeep.forEach(({ id, __component }) => {\n if (!allIds.find((el) => el.id === id && el.__component === __component)) {\n const err = new Error(\n `Some of the provided components in ${attributeName} are not related to the entity`\n );\n\n Object.assign(err, { status: 400 });\n throw err;\n }\n });\n\n type IdsToDelete = Attribute.GetValue<Attribute.DynamicZone>;\n\n const idsToDelete = allIds.reduce((acc, { id, __component }) => {\n if (!idsToKeep.find((el) => el.id === id && el.__component === __component)) {\n acc.push({ id, __component });\n }\n\n return acc;\n }, [] as IdsToDelete);\n\n if (idsToDelete.length > 0) {\n for (const idToDelete of idsToDelete) {\n const { id, __component } = idToDelete;\n await deleteComponent(__component, { id });\n }\n }\n};\n\nconst deleteComponents = async <\n TUID extends Common.UID.Schema,\n TEntity extends Attribute.GetValues<TUID>\n>(\n uid: TUID,\n entityToDelete: TEntity,\n { loadComponents = true } = {}\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const attributeNames = Object.keys(attributes);\n\n for (const attributeName of attributeNames) {\n const attribute = attributes[attributeName];\n\n if (attribute.type === 'component' || attribute.type === 'dynamiczone') {\n let value;\n if (loadComponents) {\n value = await strapi.query(uid).load(entityToDelete, attributeName);\n } else {\n value = entityToDelete[attributeName as keyof TEntity];\n }\n\n if (!value) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID } = attribute;\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n await mapAsync(\n _.castArray(value),\n (subValue: any) => deleteComponent(componentUID, subValue),\n {\n concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity,\n }\n );\n } else {\n // delete dynamic zone components\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n await mapAsync(\n _.castArray(value),\n (subValue: any) => deleteComponent(subValue.__component, subValue),\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n );\n }\n\n continue;\n }\n }\n};\n\nconst cloneComponents = async <TUID extends Common.UID.Schema>(\n uid: TUID,\n entityToClone: { id: EntityService.Params.Attribute.ID },\n data: EntityService.Params.Data.Input<TUID>\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const componentBody: ComponentBody = {};\n const componentData = await getComponents(uid, entityToClone);\n\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n\n // If the attribute is not set or on the component to clone, skip it\n if (!has(attributeName, data) && !has(attributeName, componentData)) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID, repeatable = false } = attribute;\n\n const componentValue = (\n attributeName in data\n ? data[attributeName as keyof typeof data]\n : componentData[attributeName as keyof typeof componentData]\n ) as ComponentValue;\n\n if (componentValue === null) {\n continue;\n }\n\n if (repeatable === true) {\n if (!Array.isArray(componentValue)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n const components = (await mapAsync(\n componentValue,\n (value: any) => cloneComponent(componentUID, value),\n { concurrency: isDialectMySQL() ? 1 : Infinity }\n )) as Attribute.GetValue<Attribute.Component<Common.UID.Component, true>>;\n\n componentBody[attributeName] = components.filter(_.negate(_.isNil)).map(({ id }) => {\n return {\n id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n });\n } else {\n const component = await cloneComponent(componentUID, componentValue);\n componentBody[attributeName] = component && {\n id: component.id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n }\n\n continue;\n }\n\n if (attribute.type === 'dynamiczone') {\n const dynamiczoneValues = has(attributeName, data)\n ? data[attributeName as keyof typeof data]\n : componentData[attributeName as keyof typeof componentData];\n\n if (!Array.isArray(dynamiczoneValues)) {\n throw new Error('Expected an array to create repeatable component');\n }\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n componentBody[attributeName] = await mapAsync(\n dynamiczoneValues,\n async (value: any) => {\n const { id } = await cloneComponent(value.__component, value);\n return {\n id,\n __component: value.__component,\n __pivot: {\n field: attributeName,\n },\n };\n },\n { concurrency: isDialectMySQL() ? 1 : Infinity }\n );\n continue;\n }\n }\n\n return componentBody;\n};\n/** *************************\n Component queries\n************************** */\n\n// components can have nested compos so this must be recursive\nconst createComponent = async <TUID extends Common.UID.Component>(\n uid: TUID,\n data: EntityService.Params.Data.Input<TUID>\n) => {\n const model = strapi.getModel(uid);\n\n const componentData = await createComponents(uid, data);\n const transform = pipe(\n // Make sure we don't save the component with a pre-defined ID\n omit('id'),\n // Remove the component data from the original data object ...\n (payload) => omitComponentData(model, payload),\n // ... and assign the newly created component instead\n assign(componentData)\n );\n\n return strapi.query(uid).create({ data: transform(data) });\n};\n\n// components can have nested compos so this must be recursive\nconst updateComponent = async <TUID extends Common.UID.Component>(\n uid: TUID,\n componentToUpdate: { id: EntityService.Params.Attribute.ID },\n data: EntityService.Params.Data.Input<TUID>\n) => {\n const model = strapi.getModel(uid);\n\n const componentData = await updateComponents(uid, componentToUpdate, data);\n\n return strapi.query(uid).update({\n where: {\n id: componentToUpdate.id,\n },\n data: Object.assign(omitComponentData(model, data), componentData),\n });\n};\n\nconst updateOrCreateComponent = <TUID extends Common.UID.Component>(\n componentUID: TUID,\n value: EntityService.Params.Data.Input<TUID>\n) => {\n if (value === null) {\n return null;\n }\n\n // update\n if ('id' in value && typeof value.id !== 'undefined') {\n // TODO: verify the compo is associated with the entity\n return updateComponent(componentUID, { id: value.id }, value);\n }\n\n // create\n return createComponent(componentUID, value);\n};\n\nconst deleteComponent = async <TUID extends Common.UID.Component>(\n uid: TUID,\n componentToDelete: Attribute.GetValues<TUID>\n) => {\n await deleteComponents(uid, componentToDelete);\n await strapi.query(uid).delete({ where: { id: componentToDelete.id } });\n};\n\nconst cloneComponent = async <TUID extends Common.UID.Component>(\n uid: TUID,\n data: EntityService.Params.Data.Input<TUID>\n) => {\n const model = strapi.getModel(uid);\n\n if (!('id' in data) || typeof data.id === 'undefined') {\n return createComponent(uid, data);\n }\n\n const componentData = await cloneComponents(uid, { id: data.id }, data);\n const transform = pipe(\n // Make sure we don't save the component with a pre-defined ID\n omit('id'),\n // Remove the component data from the original data object ...\n (payload) => omitComponentData(model, payload),\n // ... and assign the newly created component instead\n assign(componentData)\n );\n\n return strapi.query(uid).clone(data.id, { data: transform(data) });\n};\n\nexport {\n omitComponentData,\n getComponents,\n createComponents,\n updateComponents,\n deleteComponents,\n deleteComponent,\n cloneComponents,\n};\n"],"names":["contentTypesUtils","omit","has","mapAsync","_","errors","pipe","assign"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.mjs","sources":["../../../src/services/entity-service/components.ts"],"sourcesContent":["import _ from 'lodash';\nimport { has, omit, pipe, assign } from 'lodash/fp';\nimport type { Attribute, Common, Schema, Utils, EntityService } from '@strapi/types';\nimport { contentTypes as contentTypesUtils, mapAsync, errors } from '@strapi/utils';\n\ntype LoadedComponents<TUID extends Common.UID.Schema> = Attribute.GetValues<\n TUID,\n Attribute.GetKeysByType<TUID, 'component' | 'dynamiczone'>\n>;\n\ntype ComponentValue = Attribute.GetValue<\n Attribute.Component<Common.UID.Component, false> | Attribute.Component<Common.UID.Component, true>\n>;\n\ntype ComponentBody = {\n [key: string]: Attribute.GetValue<\n | Attribute.Component<Common.UID.Component, false>\n | Attribute.Component<Common.UID.Component, true>\n | Attribute.DynamicZone\n >;\n};\n\nconst isDialectMySQL = () => strapi.db?.dialect.client === 'mysql';\n\nfunction omitComponentData(\n contentType: Schema.ContentType,\n data: EntityService.Params.Data.Input<Schema.ContentType['uid']>\n): Partial<EntityService.Params.Data.Input<Schema.ContentType['uid']>>;\nfunction omitComponentData(\n contentType: Schema.Component,\n data: EntityService.Params.Data.Input<Schema.Component['uid']>\n): Partial<EntityService.Params.Data.Input<Schema.Component['uid']>>;\nfunction omitComponentData(\n contentType: Schema.ContentType | Schema.Component,\n data: EntityService.Params.Data.Input<Schema.ContentType['uid'] | Schema.Component['uid']>\n): Partial<EntityService.Params.Data.Input<Schema.ContentType['uid'] | Schema.Component['uid']>> {\n const { attributes } = contentType;\n const componentAttributes = Object.keys(attributes).filter((attributeName) =>\n contentTypesUtils.isComponentAttribute(attributes[attributeName])\n );\n\n return omit(componentAttributes, data);\n}\n\n// NOTE: we could generalize the logic to allow CRUD of relation directly in the DB layer\nconst createComponents = async <\n TUID extends Common.UID.Schema,\n TData extends EntityService.Params.Data.Input<TUID>\n>(\n uid: TUID,\n data: TData\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const componentBody: ComponentBody = {};\n\n const attributeNames = Object.keys(attributes);\n\n for (const attributeName of attributeNames) {\n const attribute = attributes[attributeName];\n\n if (!has(attributeName, data) || !contentTypesUtils.isComponentAttribute(attribute)) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID, repeatable = false } = attribute;\n\n const componentValue = data[attributeName as keyof TData];\n\n if (componentValue === null) {\n continue;\n }\n\n if (repeatable === true) {\n if (!Array.isArray(componentValue)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n const components = (await mapAsync(\n componentValue,\n (value: any) => createComponent(componentUID, value),\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n )) as Attribute.GetValue<Attribute.Component<Common.UID.Component, true>>;\n\n componentBody[attributeName] = components.map(({ id }) => {\n return {\n id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n });\n } else {\n const component = await createComponent(\n componentUID,\n componentValue as EntityService.Params.Data.Input<Common.UID.Component>\n );\n componentBody[attributeName] = {\n id: component.id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n }\n\n continue;\n }\n\n if (attribute.type === 'dynamiczone') {\n const dynamiczoneValues = data[\n attributeName as keyof TData\n ] as EntityService.Params.Attribute.GetValue<Attribute.DynamicZone>;\n\n if (!Array.isArray(dynamiczoneValues)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n const createDynamicZoneComponents = async (\n value: Utils.Array.Values<typeof dynamiczoneValues>\n ) => {\n const { id } = await createComponent(value.__component, value);\n return {\n id,\n __component: value.__component,\n __pivot: {\n field: attributeName,\n },\n };\n };\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n componentBody[attributeName] = await mapAsync(\n dynamiczoneValues,\n createDynamicZoneComponents,\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n );\n\n continue;\n }\n }\n\n return componentBody;\n};\n\nconst getComponents = async <TUID extends Common.UID.Schema>(\n uid: TUID,\n entity: { id: EntityService.Params.Attribute.ID }\n): Promise<LoadedComponents<TUID>> => {\n const componentAttributes = contentTypesUtils.getComponentAttributes(strapi.getModel(uid));\n\n if (_.isEmpty(componentAttributes)) {\n return {} as LoadedComponents<TUID>;\n }\n\n return strapi.query(uid).load(entity, componentAttributes) as Promise<LoadedComponents<TUID>>;\n};\n\n/*\n delete old components\n create or update\n*/\nconst updateComponents = async <\n TUID extends Common.UID.Schema,\n TData extends Partial<EntityService.Params.Data.Input<TUID>>\n>(\n uid: TUID,\n entityToUpdate: { id: EntityService.Params.Attribute.ID },\n data: TData\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const componentBody: ComponentBody = {};\n\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n\n if (!has(attributeName, data)) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID, repeatable = false } = attribute;\n\n const componentValue = data[\n attributeName as keyof TData\n ] as Attribute.GetValue<Attribute.Component>;\n\n await deleteOldComponents(uid, componentUID, entityToUpdate, attributeName, componentValue);\n\n if (repeatable === true) {\n if (!Array.isArray(componentValue)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n const components = (await mapAsync(\n componentValue,\n (value: any) => updateOrCreateComponent(componentUID, value),\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n )) as Attribute.GetValue<Attribute.Component<Common.UID.Component, true>>;\n\n componentBody[attributeName] = components.filter(_.negate(_.isNil)).map(({ id }) => {\n return {\n id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n });\n } else {\n const component = await updateOrCreateComponent(componentUID, componentValue);\n componentBody[attributeName] = component && {\n id: component.id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n }\n\n continue;\n }\n\n if (attribute.type === 'dynamiczone') {\n const dynamiczoneValues = data[\n attributeName as keyof TData\n ] as Attribute.GetValue<Attribute.DynamicZone>;\n\n await deleteOldDZComponents(uid, entityToUpdate, attributeName, dynamiczoneValues);\n\n if (!Array.isArray(dynamiczoneValues)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n componentBody[attributeName] = await mapAsync(\n dynamiczoneValues,\n async (value: any) => {\n const { id } = await updateOrCreateComponent(value.__component, value);\n\n return {\n id,\n __component: value.__component,\n __pivot: {\n field: attributeName,\n },\n };\n },\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n );\n\n continue;\n }\n }\n\n return componentBody;\n};\n\nconst pickStringifiedId = ({\n id,\n}: {\n id: EntityService.Params.Attribute.ID;\n}): EntityService.Params.Attribute.ID & string => {\n if (typeof id === 'string') {\n return id;\n }\n\n return `${id}`;\n};\n\nconst deleteOldComponents = async <TUID extends Common.UID.Schema>(\n uid: TUID,\n componentUID: Common.UID.Component,\n entityToUpdate: { id: EntityService.Params.Attribute.ID },\n attributeName: string,\n componentValue: Attribute.GetValue<Attribute.Component>\n) => {\n const previousValue = (await strapi\n .query(uid)\n .load(entityToUpdate, attributeName)) as ComponentValue;\n\n const idsToKeep = _.castArray(componentValue).filter(has('id')).map(pickStringifiedId);\n const allIds = _.castArray(previousValue).filter(has('id')).map(pickStringifiedId);\n\n idsToKeep.forEach((id) => {\n if (!allIds.includes(id)) {\n throw new errors.ApplicationError(\n `Some of the provided components in ${attributeName} are not related to the entity`\n );\n }\n });\n\n const idsToDelete = _.difference(allIds, idsToKeep);\n\n if (idsToDelete.length > 0) {\n for (const idToDelete of idsToDelete) {\n await deleteComponent(componentUID, { id: idToDelete });\n }\n }\n};\n\nconst deleteOldDZComponents = async <TUID extends Common.UID.Schema>(\n uid: TUID,\n entityToUpdate: { id: EntityService.Params.Attribute.ID },\n attributeName: string,\n dynamiczoneValues: Attribute.GetValue<Attribute.DynamicZone>\n) => {\n const previousValue = (await strapi\n .query(uid)\n .load(entityToUpdate, attributeName)) as Attribute.GetValue<Attribute.DynamicZone>;\n\n const idsToKeep = _.castArray(dynamiczoneValues)\n .filter(has('id'))\n .map((v) => ({\n id: pickStringifiedId(v),\n __component: v.__component,\n }));\n\n const allIds = _.castArray(previousValue)\n .filter(has('id'))\n .map((v) => ({\n id: pickStringifiedId(v),\n __component: v.__component,\n }));\n\n idsToKeep.forEach(({ id, __component }) => {\n if (!allIds.find((el) => el.id === id && el.__component === __component)) {\n const err = new Error(\n `Some of the provided components in ${attributeName} are not related to the entity`\n );\n\n Object.assign(err, { status: 400 });\n throw err;\n }\n });\n\n type IdsToDelete = Attribute.GetValue<Attribute.DynamicZone>;\n\n const idsToDelete = allIds.reduce((acc, { id, __component }) => {\n if (!idsToKeep.find((el) => el.id === id && el.__component === __component)) {\n acc.push({ id, __component });\n }\n\n return acc;\n }, [] as IdsToDelete);\n\n if (idsToDelete.length > 0) {\n for (const idToDelete of idsToDelete) {\n const { id, __component } = idToDelete;\n await deleteComponent(__component, { id });\n }\n }\n};\n\nconst deleteComponents = async <\n TUID extends Common.UID.Schema,\n TEntity extends Attribute.GetValues<TUID>\n>(\n uid: TUID,\n entityToDelete: TEntity,\n { loadComponents = true } = {}\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const attributeNames = Object.keys(attributes);\n\n for (const attributeName of attributeNames) {\n const attribute = attributes[attributeName];\n\n if (attribute.type === 'component' || attribute.type === 'dynamiczone') {\n let value;\n if (loadComponents) {\n value = await strapi.query(uid).load(entityToDelete, attributeName);\n } else {\n value = entityToDelete[attributeName as keyof TEntity];\n }\n\n if (!value) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID } = attribute;\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n await mapAsync(\n _.castArray(value),\n (subValue: any) => deleteComponent(componentUID, subValue),\n {\n concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity,\n }\n );\n } else {\n // delete dynamic zone components\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n await mapAsync(\n _.castArray(value),\n (subValue: any) => deleteComponent(subValue.__component, subValue),\n { concurrency: isDialectMySQL() && !strapi.db?.inTransaction() ? 1 : Infinity }\n );\n }\n\n continue;\n }\n }\n};\n\nconst cloneComponents = async <TUID extends Common.UID.Schema>(\n uid: TUID,\n entityToClone: { id: EntityService.Params.Attribute.ID },\n data: EntityService.Params.Data.Input<TUID>\n) => {\n const { attributes = {} } = strapi.getModel(uid);\n\n const componentBody: ComponentBody = {};\n const componentData = await getComponents(uid, entityToClone);\n\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n\n // If the attribute is not set or on the component to clone, skip it\n if (!has(attributeName, data) && !has(attributeName, componentData)) {\n continue;\n }\n\n if (attribute.type === 'component') {\n const { component: componentUID, repeatable = false } = attribute;\n\n const componentValue = (\n attributeName in data\n ? data[attributeName as keyof typeof data]\n : componentData[attributeName as keyof typeof componentData]\n ) as ComponentValue;\n\n if (componentValue === null) {\n continue;\n }\n\n if (repeatable === true) {\n if (!Array.isArray(componentValue)) {\n throw new Error('Expected an array to create repeatable component');\n }\n\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n const components = (await mapAsync(\n componentValue,\n (value: any) => cloneComponent(componentUID, value),\n { concurrency: isDialectMySQL() ? 1 : Infinity }\n )) as Attribute.GetValue<Attribute.Component<Common.UID.Component, true>>;\n\n componentBody[attributeName] = components.filter(_.negate(_.isNil)).map(({ id }) => {\n return {\n id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n });\n } else {\n const component = await cloneComponent(componentUID, componentValue);\n componentBody[attributeName] = component && {\n id: component.id,\n __pivot: {\n field: attributeName,\n component_type: componentUID,\n },\n };\n }\n\n continue;\n }\n\n if (attribute.type === 'dynamiczone') {\n const dynamiczoneValues = has(attributeName, data)\n ? data[attributeName as keyof typeof data]\n : componentData[attributeName as keyof typeof componentData];\n\n if (!Array.isArray(dynamiczoneValues)) {\n throw new Error('Expected an array to create repeatable component');\n }\n // MySQL/MariaDB can cause deadlocks here if concurrency higher than 1\n componentBody[attributeName] = await mapAsync(\n dynamiczoneValues,\n async (value: any) => {\n const { id } = await cloneComponent(value.__component, value);\n return {\n id,\n __component: value.__component,\n __pivot: {\n field: attributeName,\n },\n };\n },\n { concurrency: isDialectMySQL() ? 1 : Infinity }\n );\n continue;\n }\n }\n\n return componentBody;\n};\n/** *************************\n Component queries\n************************** */\n\n// components can have nested compos so this must be recursive\nconst createComponent = async <TUID extends Common.UID.Component>(\n uid: TUID,\n data: EntityService.Params.Data.Input<TUID>\n) => {\n const model = strapi.getModel(uid);\n\n const componentData = await createComponents(uid, data);\n const transform = pipe(\n // Make sure we don't save the component with a pre-defined ID\n omit('id'),\n // Remove the component data from the original data object ...\n (payload) => omitComponentData(model, payload),\n // ... and assign the newly created component instead\n assign(componentData)\n );\n\n return strapi.query(uid).create({ data: transform(data) });\n};\n\n// components can have nested compos so this must be recursive\nconst updateComponent = async <TUID extends Common.UID.Component>(\n uid: TUID,\n componentToUpdate: { id: EntityService.Params.Attribute.ID },\n data: EntityService.Params.Data.Input<TUID>\n) => {\n const model = strapi.getModel(uid);\n\n const componentData = await updateComponents(uid, componentToUpdate, data);\n\n return strapi.query(uid).update({\n where: {\n id: componentToUpdate.id,\n },\n data: Object.assign(omitComponentData(model, data), componentData),\n });\n};\n\nconst updateOrCreateComponent = <TUID extends Common.UID.Component>(\n componentUID: TUID,\n value: EntityService.Params.Data.Input<TUID>\n) => {\n if (value === null) {\n return null;\n }\n\n // update\n if ('id' in value && typeof value.id !== 'undefined') {\n // TODO: verify the compo is associated with the entity\n return updateComponent(componentUID, { id: value.id }, value);\n }\n\n // create\n return createComponent(componentUID, value);\n};\n\nconst deleteComponent = async <TUID extends Common.UID.Component>(\n uid: TUID,\n componentToDelete: Attribute.GetValues<TUID>\n) => {\n await deleteComponents(uid, componentToDelete);\n await strapi.query(uid).delete({ where: { id: componentToDelete.id } });\n};\n\nconst cloneComponent = async <TUID extends Common.UID.Component>(\n uid: TUID,\n data: EntityService.Params.Data.Input<TUID>\n) => {\n const model = strapi.getModel(uid);\n\n if (!('id' in data) || typeof data.id === 'undefined') {\n return createComponent(uid, data);\n }\n\n const componentData = await cloneComponents(uid, { id: data.id }, data);\n const transform = pipe(\n // Make sure we don't save the component with a pre-defined ID\n omit('id'),\n // Remove the component data from the original data object ...\n (payload) => omitComponentData(model, payload),\n // ... and assign the newly created component instead\n assign(componentData)\n );\n\n return strapi.query(uid).clone(data.id, { data: transform(data) });\n};\n\nexport {\n omitComponentData,\n getComponents,\n createComponents,\n updateComponents,\n deleteComponents,\n deleteComponent,\n cloneComponents,\n};\n"],"names":["contentTypesUtils"],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { Common, EntityService } from '@strapi/types';
2
- declare const pickSelectionParams: <TUID extends Common.UID.ContentType>(data: unknown) => {
3
- fields?: EntityService.Params.Fields.Any<TUID> | undefined;
4
- } & {
5
- populate?: EntityService.Params.Populate.Any<TUID> | undefined;
6
- };
7
- export { pickSelectionParams };
8
- //# sourceMappingURL=params.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../../src/services/entity-service/params.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3D,QAAA,MAAM,mBAAmB,8CACjB,OAAO;;;;CAGd,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"params.js","sources":["../../../src/services/entity-service/params.ts"],"sourcesContent":["import { pick } from 'lodash/fp';\nimport type { Common, EntityService } from '@strapi/types';\n\nconst pickSelectionParams = <TUID extends Common.UID.ContentType>(\n data: unknown\n): EntityService.Params.Pick<TUID, 'fields' | 'populate'> => {\n return pick(['fields', 'populate'], data);\n};\n\nexport { pickSelectionParams };\n"],"names":["pick"],"mappings":";;;AAGM,MAAA,sBAAsB,CAC1B,SAC2D;AAC3D,SAAOA,EAAK,KAAA,CAAC,UAAU,UAAU,GAAG,IAAI;AAC1C;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"params.mjs","sources":["../../../src/services/entity-service/params.ts"],"sourcesContent":["import { pick } from 'lodash/fp';\nimport type { Common, EntityService } from '@strapi/types';\n\nconst pickSelectionParams = <TUID extends Common.UID.ContentType>(\n data: unknown\n): EntityService.Params.Pick<TUID, 'fields' | 'populate'> => {\n return pick(['fields', 'populate'], data);\n};\n\nexport { pickSelectionParams };\n"],"names":[],"mappings":";AAGM,MAAA,sBAAsB,CAC1B,SAC2D;AAC3D,SAAO,KAAK,CAAC,UAAU,UAAU,GAAG,IAAI;AAC1C;"}
@@ -1,8 +0,0 @@
1
- import type { Common } from '@strapi/types';
2
- export type UploadFile = (uid: Common.UID.Schema, entity: Record<string, unknown>, files: Record<string, unknown>) => Promise<void>;
3
- /**
4
- * Upload files and link them to an entity
5
- */
6
- declare const uploadFile: UploadFile;
7
- export default uploadFile;
8
- //# sourceMappingURL=upload-files.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload-files.d.ts","sourceRoot":"","sources":["../../../src/services/utils/upload-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,MAAM,EAAU,MAAM,eAAe,CAAC;AAE/D,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,UA0EjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- const _ = require("lodash");
3
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
4
- const ___default = /* @__PURE__ */ _interopDefault(_);
5
- const uploadFile = async (uid, entity, files) => {
6
- const modelDef = strapi.getModel(uid);
7
- if (!___default.default.has(strapi.plugins, "upload")) {
8
- return;
9
- }
10
- const uploadService = strapi.plugin("upload").service("upload");
11
- const findModelFromUploadPath = (path) => {
12
- if (path.length === 0) {
13
- return uid;
14
- }
15
- const currentPath = [];
16
- let tmpModel = modelDef;
17
- let modelUID = uid;
18
- for (let i = 0; i < path.length; i += 1) {
19
- if (!tmpModel) {
20
- return {};
21
- }
22
- const part = path[i];
23
- const attr = tmpModel.attributes[part];
24
- currentPath.push(part);
25
- if (___default.default.isFinite(___default.default.toNumber(path[i]))) {
26
- continue;
27
- }
28
- if (!attr)
29
- return {};
30
- if (attr.type === "component") {
31
- modelUID = attr.component;
32
- tmpModel = strapi.components[attr.component];
33
- } else if (attr.type === "dynamiczone") {
34
- const entryIdx = path[i + 1];
35
- const value = ___default.default.get(entity, [...currentPath, entryIdx]);
36
- if (!value)
37
- return {};
38
- modelUID = value.__component;
39
- tmpModel = strapi.components[modelUID];
40
- } else if (attr.type === "relation") {
41
- if (!("target" in attr)) {
42
- return {};
43
- }
44
- modelUID = attr.target;
45
- tmpModel = strapi.getModel(modelUID);
46
- } else {
47
- return;
48
- }
49
- }
50
- return modelUID;
51
- };
52
- const doUpload = async (key, files2) => {
53
- const parts = key.split(".");
54
- const [path, field] = [___default.default.initial(parts), ___default.default.last(parts)];
55
- const modelUID = findModelFromUploadPath(path);
56
- if (modelUID) {
57
- const id = ___default.default.get(entity, path.concat("id"));
58
- return uploadService.uploadToEntity({ id, model: modelUID, field }, files2);
59
- }
60
- };
61
- await Promise.all(Object.keys(files).map((key) => doUpload(key, files[key])));
62
- };
63
- module.exports = uploadFile;
64
- //# sourceMappingURL=upload-files.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload-files.js","sources":["../../../src/services/utils/upload-files.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Attribute, Common, Schema } from '@strapi/types';\n\nexport type UploadFile = (\n uid: Common.UID.Schema,\n entity: Record<string, unknown>,\n files: Record<string, unknown>\n) => Promise<void>;\n\n/**\n * Upload files and link them to an entity\n */\nconst uploadFile: UploadFile = async (uid, entity, files) => {\n const modelDef = strapi.getModel(uid);\n\n if (!_.has(strapi.plugins, 'upload')) {\n return;\n }\n\n const uploadService = strapi.plugin('upload').service('upload');\n\n const findModelFromUploadPath = (path: string[]) => {\n if (path.length === 0) {\n return uid;\n }\n\n const currentPath = [];\n let tmpModel: Schema.ContentType | Schema.Component = modelDef;\n let modelUID = uid;\n\n for (let i = 0; i < path.length; i += 1) {\n if (!tmpModel) {\n return {};\n }\n\n const part = path[i];\n const attr: Attribute.Any = tmpModel.attributes[part];\n\n currentPath.push(part);\n\n // ignore array indexes => handled in the dynamic zone section\n if (_.isFinite(_.toNumber(path[i]))) {\n continue;\n }\n\n if (!attr) return {};\n\n if (attr.type === 'component') {\n modelUID = attr.component;\n tmpModel = strapi.components[attr.component];\n } else if (attr.type === 'dynamiczone') {\n const entryIdx = path[i + 1]; // get component index\n const value = _.get(entity, [...currentPath, entryIdx]);\n\n if (!value) return {};\n\n modelUID = value.__component; // get component type\n tmpModel = strapi.components[modelUID as Common.UID.Component];\n } else if (attr.type === 'relation') {\n if (!('target' in attr)) {\n return {};\n }\n\n modelUID = attr.target;\n tmpModel = strapi.getModel(modelUID);\n } else {\n return;\n }\n }\n\n return modelUID;\n };\n\n const doUpload = async (key: string, files: unknown) => {\n const parts = key.split('.');\n const [path, field] = [_.initial(parts), _.last(parts)];\n\n const modelUID = findModelFromUploadPath(path);\n\n if (modelUID) {\n const id = _.get(entity, path.concat('id'));\n return uploadService.uploadToEntity({ id, model: modelUID, field }, files);\n }\n };\n\n await Promise.all(Object.keys(files).map((key) => doUpload(key, files[key])));\n};\n\nexport default uploadFile;\n"],"names":["_","files"],"mappings":";;;;AAYA,MAAM,aAAyB,OAAO,KAAK,QAAQ,UAAU;AACrD,QAAA,WAAW,OAAO,SAAS,GAAG;AAEpC,MAAI,CAACA,WAAE,QAAA,IAAI,OAAO,SAAS,QAAQ,GAAG;AACpC;AAAA,EACF;AAEA,QAAM,gBAAgB,OAAO,OAAO,QAAQ,EAAE,QAAQ,QAAQ;AAExD,QAAA,0BAA0B,CAAC,SAAmB;AAC9C,QAAA,KAAK,WAAW,GAAG;AACd,aAAA;AAAA,IACT;AAEA,UAAM,cAAc,CAAA;AACpB,QAAI,WAAkD;AACtD,QAAI,WAAW;AAEf,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,GAAG;AACvC,UAAI,CAAC,UAAU;AACb,eAAO;MACT;AAEM,YAAA,OAAO,KAAK,CAAC;AACb,YAAA,OAAsB,SAAS,WAAW,IAAI;AAEpD,kBAAY,KAAK,IAAI;AAGjB,UAAAA,WAAAA,QAAE,SAASA,WAAE,QAAA,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG;AACnC;AAAA,MACF;AAEA,UAAI,CAAC;AAAM,eAAO;AAEd,UAAA,KAAK,SAAS,aAAa;AAC7B,mBAAW,KAAK;AACL,mBAAA,OAAO,WAAW,KAAK,SAAS;AAAA,MAAA,WAClC,KAAK,SAAS,eAAe;AAChC,cAAA,WAAW,KAAK,IAAI,CAAC;AACrB,cAAA,QAAQA,mBAAE,IAAI,QAAQ,CAAC,GAAG,aAAa,QAAQ,CAAC;AAEtD,YAAI,CAAC;AAAO,iBAAO;AAEnB,mBAAW,MAAM;AACN,mBAAA,OAAO,WAAW,QAAgC;AAAA,MAAA,WACpD,KAAK,SAAS,YAAY;AAC/B,YAAA,EAAE,YAAY,OAAO;AACvB,iBAAO;QACT;AAEA,mBAAW,KAAK;AACL,mBAAA,OAAO,SAAS,QAAQ;AAAA,MAAA,OAC9B;AACL;AAAA,MACF;AAAA,IACF;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,WAAW,OAAO,KAAaC,WAAmB;AAChD,UAAA,QAAQ,IAAI,MAAM,GAAG;AAC3B,UAAM,CAAC,MAAM,KAAK,IAAI,CAACD,WAAAA,QAAE,QAAQ,KAAK,GAAGA,WAAA,QAAE,KAAK,KAAK,CAAC;AAEhD,UAAA,WAAW,wBAAwB,IAAI;AAE7C,QAAI,UAAU;AACZ,YAAM,KAAKA,WAAE,QAAA,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC;AACnC,aAAA,cAAc,eAAe,EAAE,IAAI,OAAO,UAAU,SAASC,MAAK;AAAA,IAC3E;AAAA,EAAA;AAGF,QAAM,QAAQ,IAAI,OAAO,KAAK,KAAK,EAAE,IAAI,CAAC,QAAQ,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9E;;"}
@@ -1,63 +0,0 @@
1
- import _ from "lodash";
2
- const uploadFile = async (uid, entity, files) => {
3
- const modelDef = strapi.getModel(uid);
4
- if (!_.has(strapi.plugins, "upload")) {
5
- return;
6
- }
7
- const uploadService = strapi.plugin("upload").service("upload");
8
- const findModelFromUploadPath = (path) => {
9
- if (path.length === 0) {
10
- return uid;
11
- }
12
- const currentPath = [];
13
- let tmpModel = modelDef;
14
- let modelUID = uid;
15
- for (let i = 0; i < path.length; i += 1) {
16
- if (!tmpModel) {
17
- return {};
18
- }
19
- const part = path[i];
20
- const attr = tmpModel.attributes[part];
21
- currentPath.push(part);
22
- if (_.isFinite(_.toNumber(path[i]))) {
23
- continue;
24
- }
25
- if (!attr)
26
- return {};
27
- if (attr.type === "component") {
28
- modelUID = attr.component;
29
- tmpModel = strapi.components[attr.component];
30
- } else if (attr.type === "dynamiczone") {
31
- const entryIdx = path[i + 1];
32
- const value = _.get(entity, [...currentPath, entryIdx]);
33
- if (!value)
34
- return {};
35
- modelUID = value.__component;
36
- tmpModel = strapi.components[modelUID];
37
- } else if (attr.type === "relation") {
38
- if (!("target" in attr)) {
39
- return {};
40
- }
41
- modelUID = attr.target;
42
- tmpModel = strapi.getModel(modelUID);
43
- } else {
44
- return;
45
- }
46
- }
47
- return modelUID;
48
- };
49
- const doUpload = async (key, files2) => {
50
- const parts = key.split(".");
51
- const [path, field] = [_.initial(parts), _.last(parts)];
52
- const modelUID = findModelFromUploadPath(path);
53
- if (modelUID) {
54
- const id = _.get(entity, path.concat("id"));
55
- return uploadService.uploadToEntity({ id, model: modelUID, field }, files2);
56
- }
57
- };
58
- await Promise.all(Object.keys(files).map((key) => doUpload(key, files[key])));
59
- };
60
- export {
61
- uploadFile as default
62
- };
63
- //# sourceMappingURL=upload-files.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload-files.mjs","sources":["../../../src/services/utils/upload-files.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Attribute, Common, Schema } from '@strapi/types';\n\nexport type UploadFile = (\n uid: Common.UID.Schema,\n entity: Record<string, unknown>,\n files: Record<string, unknown>\n) => Promise<void>;\n\n/**\n * Upload files and link them to an entity\n */\nconst uploadFile: UploadFile = async (uid, entity, files) => {\n const modelDef = strapi.getModel(uid);\n\n if (!_.has(strapi.plugins, 'upload')) {\n return;\n }\n\n const uploadService = strapi.plugin('upload').service('upload');\n\n const findModelFromUploadPath = (path: string[]) => {\n if (path.length === 0) {\n return uid;\n }\n\n const currentPath = [];\n let tmpModel: Schema.ContentType | Schema.Component = modelDef;\n let modelUID = uid;\n\n for (let i = 0; i < path.length; i += 1) {\n if (!tmpModel) {\n return {};\n }\n\n const part = path[i];\n const attr: Attribute.Any = tmpModel.attributes[part];\n\n currentPath.push(part);\n\n // ignore array indexes => handled in the dynamic zone section\n if (_.isFinite(_.toNumber(path[i]))) {\n continue;\n }\n\n if (!attr) return {};\n\n if (attr.type === 'component') {\n modelUID = attr.component;\n tmpModel = strapi.components[attr.component];\n } else if (attr.type === 'dynamiczone') {\n const entryIdx = path[i + 1]; // get component index\n const value = _.get(entity, [...currentPath, entryIdx]);\n\n if (!value) return {};\n\n modelUID = value.__component; // get component type\n tmpModel = strapi.components[modelUID as Common.UID.Component];\n } else if (attr.type === 'relation') {\n if (!('target' in attr)) {\n return {};\n }\n\n modelUID = attr.target;\n tmpModel = strapi.getModel(modelUID);\n } else {\n return;\n }\n }\n\n return modelUID;\n };\n\n const doUpload = async (key: string, files: unknown) => {\n const parts = key.split('.');\n const [path, field] = [_.initial(parts), _.last(parts)];\n\n const modelUID = findModelFromUploadPath(path);\n\n if (modelUID) {\n const id = _.get(entity, path.concat('id'));\n return uploadService.uploadToEntity({ id, model: modelUID, field }, files);\n }\n };\n\n await Promise.all(Object.keys(files).map((key) => doUpload(key, files[key])));\n};\n\nexport default uploadFile;\n"],"names":["files"],"mappings":";AAYA,MAAM,aAAyB,OAAO,KAAK,QAAQ,UAAU;AACrD,QAAA,WAAW,OAAO,SAAS,GAAG;AAEpC,MAAI,CAAC,EAAE,IAAI,OAAO,SAAS,QAAQ,GAAG;AACpC;AAAA,EACF;AAEA,QAAM,gBAAgB,OAAO,OAAO,QAAQ,EAAE,QAAQ,QAAQ;AAExD,QAAA,0BAA0B,CAAC,SAAmB;AAC9C,QAAA,KAAK,WAAW,GAAG;AACd,aAAA;AAAA,IACT;AAEA,UAAM,cAAc,CAAA;AACpB,QAAI,WAAkD;AACtD,QAAI,WAAW;AAEf,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,GAAG;AACvC,UAAI,CAAC,UAAU;AACb,eAAO;MACT;AAEM,YAAA,OAAO,KAAK,CAAC;AACb,YAAA,OAAsB,SAAS,WAAW,IAAI;AAEpD,kBAAY,KAAK,IAAI;AAGjB,UAAA,EAAE,SAAS,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG;AACnC;AAAA,MACF;AAEA,UAAI,CAAC;AAAM,eAAO;AAEd,UAAA,KAAK,SAAS,aAAa;AAC7B,mBAAW,KAAK;AACL,mBAAA,OAAO,WAAW,KAAK,SAAS;AAAA,MAAA,WAClC,KAAK,SAAS,eAAe;AAChC,cAAA,WAAW,KAAK,IAAI,CAAC;AACrB,cAAA,QAAQ,EAAE,IAAI,QAAQ,CAAC,GAAG,aAAa,QAAQ,CAAC;AAEtD,YAAI,CAAC;AAAO,iBAAO;AAEnB,mBAAW,MAAM;AACN,mBAAA,OAAO,WAAW,QAAgC;AAAA,MAAA,WACpD,KAAK,SAAS,YAAY;AAC/B,YAAA,EAAE,YAAY,OAAO;AACvB,iBAAO;QACT;AAEA,mBAAW,KAAK;AACL,mBAAA,OAAO,SAAS,QAAQ;AAAA,MAAA,OAC9B;AACL;AAAA,MACF;AAAA,IACF;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,WAAW,OAAO,KAAaA,WAAmB;AAChD,UAAA,QAAQ,IAAI,MAAM,GAAG;AAC3B,UAAM,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,QAAQ,KAAK,GAAG,EAAE,KAAK,KAAK,CAAC;AAEhD,UAAA,WAAW,wBAAwB,IAAI;AAE7C,QAAI,UAAU;AACZ,YAAM,KAAK,EAAE,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC;AACnC,aAAA,cAAc,eAAe,EAAE,IAAI,OAAO,UAAU,SAASA,MAAK;AAAA,IAC3E;AAAA,EAAA;AAGF,QAAM,QAAQ,IAAI,OAAO,KAAK,KAAK,EAAE,IAAI,CAAC,QAAQ,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9E;"}
@@ -1,9 +0,0 @@
1
- import type { Strapi, StrapiDirectories } from '@strapi/types';
2
- export type Options = {
3
- app: string;
4
- dist: string;
5
- };
6
- export declare const getDirs: ({ app: appDir, dist: distDir }: Options, { strapi }: {
7
- strapi: Strapi;
8
- }) => StrapiDirectories;
9
- //# sourceMappingURL=get-dirs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-dirs.d.ts","sourceRoot":"","sources":["../../src/utils/get-dirs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE/D,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,OAAO,mCACc,OAAO;YACjB,MAAM;MAC3B,iBAwBD,CAAC"}