@strapi/core 0.0.0-experimental.bd712ad3930045f4a5d2144c119e0b7856e97fc4 → 0.0.0-experimental.be7746d32e70ba7219186219896ff4ae64735740

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (717) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/configuration/index.d.ts.map +1 -1
  4. package/dist/core-api/service/collection-type.d.ts +2 -2
  5. package/dist/ee/index.d.ts.map +1 -1
  6. package/dist/index.d.ts +14 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +9954 -27
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.mjs +9932 -29
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  13. package/dist/loaders/plugins/index.d.ts.map +1 -1
  14. package/dist/middlewares/body.d.ts.map +1 -1
  15. package/dist/middlewares/cors.d.ts.map +1 -1
  16. package/dist/middlewares/query.d.ts.map +1 -1
  17. package/dist/middlewares/security.d.ts.map +1 -1
  18. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +14 -11
  19. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  20. package/dist/migrations/draft-publish.d.ts +2 -2
  21. package/dist/migrations/draft-publish.d.ts.map +1 -1
  22. package/dist/migrations/i18n.d.ts +5 -0
  23. package/dist/migrations/i18n.d.ts.map +1 -0
  24. package/dist/migrations/index.d.ts +5 -0
  25. package/dist/migrations/index.d.ts.map +1 -0
  26. package/dist/providers/admin.d.ts.map +1 -1
  27. package/dist/registries/policies.d.ts +1 -1
  28. package/dist/registries/policies.d.ts.map +1 -1
  29. package/dist/services/content-api/index.d.ts +10 -12
  30. package/dist/services/content-api/index.d.ts.map +1 -1
  31. package/dist/services/content-api/permissions/index.d.ts +10 -12
  32. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  33. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  34. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  35. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  36. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  37. package/dist/services/cron.d.ts +3 -3
  38. package/dist/services/cron.d.ts.map +1 -1
  39. package/dist/services/document-service/common.d.ts +1 -1
  40. package/dist/services/document-service/common.d.ts.map +1 -1
  41. package/dist/services/document-service/components.d.ts.map +1 -1
  42. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  43. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  44. package/dist/services/document-service/entries.d.ts +2 -2
  45. package/dist/services/document-service/entries.d.ts.map +1 -1
  46. package/dist/services/document-service/events.d.ts +1 -1
  47. package/dist/services/document-service/events.d.ts.map +1 -1
  48. package/dist/services/document-service/index.d.ts +2 -1
  49. package/dist/services/document-service/index.d.ts.map +1 -1
  50. package/dist/services/document-service/repository.d.ts.map +1 -1
  51. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  52. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  53. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  54. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  55. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  56. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  57. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  58. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  59. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  60. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  61. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  62. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  63. package/dist/services/document-service/utils/populate.d.ts +1 -1
  64. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  65. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  66. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  67. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  68. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  69. package/dist/services/entity-validator/index.d.ts +2 -1
  70. package/dist/services/entity-validator/index.d.ts.map +1 -1
  71. package/dist/services/entity-validator/validators.d.ts +32 -23
  72. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  73. package/dist/services/metrics/middleware.d.ts.map +1 -1
  74. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  75. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  76. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  77. package/dist/utils/startup-logger.d.ts.map +1 -1
  78. package/dist/utils/transform-content-types-to-models.d.ts +355 -23
  79. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  80. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  81. package/package.json +29 -30
  82. package/dist/Strapi.js +0 -431
  83. package/dist/Strapi.js.map +0 -1
  84. package/dist/Strapi.mjs +0 -410
  85. package/dist/Strapi.mjs.map +0 -1
  86. package/dist/compile.js +0 -18
  87. package/dist/compile.js.map +0 -1
  88. package/dist/compile.mjs +0 -17
  89. package/dist/compile.mjs.map +0 -1
  90. package/dist/configuration/config-loader.js +0 -106
  91. package/dist/configuration/config-loader.js.map +0 -1
  92. package/dist/configuration/config-loader.mjs +0 -104
  93. package/dist/configuration/config-loader.mjs.map +0 -1
  94. package/dist/configuration/get-dirs.js +0 -31
  95. package/dist/configuration/get-dirs.js.map +0 -1
  96. package/dist/configuration/get-dirs.mjs +0 -31
  97. package/dist/configuration/get-dirs.mjs.map +0 -1
  98. package/dist/configuration/index.js +0 -80
  99. package/dist/configuration/index.js.map +0 -1
  100. package/dist/configuration/index.mjs +0 -75
  101. package/dist/configuration/index.mjs.map +0 -1
  102. package/dist/configuration/urls.js +0 -68
  103. package/dist/configuration/urls.js.map +0 -1
  104. package/dist/configuration/urls.mjs +0 -66
  105. package/dist/configuration/urls.mjs.map +0 -1
  106. package/dist/container.js +0 -30
  107. package/dist/container.js.map +0 -1
  108. package/dist/container.mjs +0 -30
  109. package/dist/container.mjs.map +0 -1
  110. package/dist/core-api/controller/collection-type.js +0 -84
  111. package/dist/core-api/controller/collection-type.js.map +0 -1
  112. package/dist/core-api/controller/collection-type.mjs +0 -84
  113. package/dist/core-api/controller/collection-type.mjs.map +0 -1
  114. package/dist/core-api/controller/index.js +0 -52
  115. package/dist/core-api/controller/index.js.map +0 -1
  116. package/dist/core-api/controller/index.mjs +0 -52
  117. package/dist/core-api/controller/index.mjs.map +0 -1
  118. package/dist/core-api/controller/single-type.js +0 -46
  119. package/dist/core-api/controller/single-type.js.map +0 -1
  120. package/dist/core-api/controller/single-type.mjs +0 -46
  121. package/dist/core-api/controller/single-type.mjs.map +0 -1
  122. package/dist/core-api/controller/transform.js +0 -76
  123. package/dist/core-api/controller/transform.js.map +0 -1
  124. package/dist/core-api/controller/transform.mjs +0 -76
  125. package/dist/core-api/controller/transform.mjs.map +0 -1
  126. package/dist/core-api/routes/index.js +0 -67
  127. package/dist/core-api/routes/index.js.map +0 -1
  128. package/dist/core-api/routes/index.mjs +0 -67
  129. package/dist/core-api/routes/index.mjs.map +0 -1
  130. package/dist/core-api/service/collection-type.js +0 -67
  131. package/dist/core-api/service/collection-type.js.map +0 -1
  132. package/dist/core-api/service/collection-type.mjs +0 -67
  133. package/dist/core-api/service/collection-type.mjs.map +0 -1
  134. package/dist/core-api/service/core-service.js +0 -12
  135. package/dist/core-api/service/core-service.js.map +0 -1
  136. package/dist/core-api/service/core-service.mjs +0 -12
  137. package/dist/core-api/service/core-service.mjs.map +0 -1
  138. package/dist/core-api/service/index.js +0 -16
  139. package/dist/core-api/service/index.js.map +0 -1
  140. package/dist/core-api/service/index.mjs +0 -16
  141. package/dist/core-api/service/index.mjs.map +0 -1
  142. package/dist/core-api/service/pagination.js +0 -52
  143. package/dist/core-api/service/pagination.js.map +0 -1
  144. package/dist/core-api/service/pagination.mjs +0 -52
  145. package/dist/core-api/service/pagination.mjs.map +0 -1
  146. package/dist/core-api/service/single-type.js +0 -46
  147. package/dist/core-api/service/single-type.js.map +0 -1
  148. package/dist/core-api/service/single-type.mjs +0 -46
  149. package/dist/core-api/service/single-type.mjs.map +0 -1
  150. package/dist/domain/content-type/index.js +0 -111
  151. package/dist/domain/content-type/index.js.map +0 -1
  152. package/dist/domain/content-type/index.mjs +0 -109
  153. package/dist/domain/content-type/index.mjs.map +0 -1
  154. package/dist/domain/content-type/validator.js +0 -77
  155. package/dist/domain/content-type/validator.js.map +0 -1
  156. package/dist/domain/content-type/validator.mjs +0 -75
  157. package/dist/domain/content-type/validator.mjs.map +0 -1
  158. package/dist/domain/module/index.js +0 -107
  159. package/dist/domain/module/index.js.map +0 -1
  160. package/dist/domain/module/index.mjs +0 -105
  161. package/dist/domain/module/index.mjs.map +0 -1
  162. package/dist/domain/module/validation.js +0 -25
  163. package/dist/domain/module/validation.js.map +0 -1
  164. package/dist/domain/module/validation.mjs +0 -25
  165. package/dist/domain/module/validation.mjs.map +0 -1
  166. package/dist/ee/index.js +0 -153
  167. package/dist/ee/index.js.map +0 -1
  168. package/dist/ee/index.mjs +0 -154
  169. package/dist/ee/index.mjs.map +0 -1
  170. package/dist/ee/license.js +0 -91
  171. package/dist/ee/license.js.map +0 -1
  172. package/dist/ee/license.mjs +0 -88
  173. package/dist/ee/license.mjs.map +0 -1
  174. package/dist/factories.js +0 -80
  175. package/dist/factories.js.map +0 -1
  176. package/dist/factories.mjs +0 -80
  177. package/dist/factories.mjs.map +0 -1
  178. package/dist/loaders/admin.js +0 -26
  179. package/dist/loaders/admin.js.map +0 -1
  180. package/dist/loaders/admin.mjs +0 -25
  181. package/dist/loaders/admin.mjs.map +0 -1
  182. package/dist/loaders/apis.js +0 -137
  183. package/dist/loaders/apis.js.map +0 -1
  184. package/dist/loaders/apis.mjs +0 -135
  185. package/dist/loaders/apis.mjs.map +0 -1
  186. package/dist/loaders/components.js +0 -38
  187. package/dist/loaders/components.js.map +0 -1
  188. package/dist/loaders/components.mjs +0 -37
  189. package/dist/loaders/components.mjs.map +0 -1
  190. package/dist/loaders/index.js +0 -24
  191. package/dist/loaders/index.js.map +0 -1
  192. package/dist/loaders/index.mjs +0 -24
  193. package/dist/loaders/index.mjs.map +0 -1
  194. package/dist/loaders/middlewares.js +0 -31
  195. package/dist/loaders/middlewares.js.map +0 -1
  196. package/dist/loaders/middlewares.mjs +0 -30
  197. package/dist/loaders/middlewares.mjs.map +0 -1
  198. package/dist/loaders/plugins/get-enabled-plugins.js +0 -113
  199. package/dist/loaders/plugins/get-enabled-plugins.js.map +0 -1
  200. package/dist/loaders/plugins/get-enabled-plugins.mjs +0 -111
  201. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  202. package/dist/loaders/plugins/get-user-plugins-config.js +0 -27
  203. package/dist/loaders/plugins/get-user-plugins-config.js.map +0 -1
  204. package/dist/loaders/plugins/get-user-plugins-config.mjs +0 -25
  205. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  206. package/dist/loaders/plugins/index.js +0 -118
  207. package/dist/loaders/plugins/index.js.map +0 -1
  208. package/dist/loaders/plugins/index.mjs +0 -117
  209. package/dist/loaders/plugins/index.mjs.map +0 -1
  210. package/dist/loaders/policies.js +0 -25
  211. package/dist/loaders/policies.js.map +0 -1
  212. package/dist/loaders/policies.mjs +0 -24
  213. package/dist/loaders/policies.mjs.map +0 -1
  214. package/dist/loaders/sanitizers.js +0 -6
  215. package/dist/loaders/sanitizers.js.map +0 -1
  216. package/dist/loaders/sanitizers.mjs +0 -7
  217. package/dist/loaders/sanitizers.mjs.map +0 -1
  218. package/dist/loaders/src-index.js +0 -33
  219. package/dist/loaders/src-index.js.map +0 -1
  220. package/dist/loaders/src-index.mjs +0 -34
  221. package/dist/loaders/src-index.mjs.map +0 -1
  222. package/dist/loaders/validators.js +0 -6
  223. package/dist/loaders/validators.js.map +0 -1
  224. package/dist/loaders/validators.mjs +0 -7
  225. package/dist/loaders/validators.mjs.map +0 -1
  226. package/dist/middlewares/body.js +0 -65
  227. package/dist/middlewares/body.js.map +0 -1
  228. package/dist/middlewares/body.mjs +0 -61
  229. package/dist/middlewares/body.mjs.map +0 -1
  230. package/dist/middlewares/compression.js +0 -8
  231. package/dist/middlewares/compression.js.map +0 -1
  232. package/dist/middlewares/compression.mjs +0 -6
  233. package/dist/middlewares/compression.mjs.map +0 -1
  234. package/dist/middlewares/cors.js +0 -49
  235. package/dist/middlewares/cors.js.map +0 -1
  236. package/dist/middlewares/cors.mjs +0 -47
  237. package/dist/middlewares/cors.mjs.map +0 -1
  238. package/dist/middlewares/errors.js +0 -33
  239. package/dist/middlewares/errors.js.map +0 -1
  240. package/dist/middlewares/errors.mjs +0 -33
  241. package/dist/middlewares/errors.mjs.map +0 -1
  242. package/dist/middlewares/favicon.js +0 -22
  243. package/dist/middlewares/favicon.js.map +0 -1
  244. package/dist/middlewares/favicon.mjs +0 -20
  245. package/dist/middlewares/favicon.mjs.map +0 -1
  246. package/dist/middlewares/index.js +0 -34
  247. package/dist/middlewares/index.js.map +0 -1
  248. package/dist/middlewares/index.mjs +0 -34
  249. package/dist/middlewares/index.mjs.map +0 -1
  250. package/dist/middlewares/ip.js +0 -8
  251. package/dist/middlewares/ip.js.map +0 -1
  252. package/dist/middlewares/ip.mjs +0 -6
  253. package/dist/middlewares/ip.mjs.map +0 -1
  254. package/dist/middlewares/logger.js +0 -12
  255. package/dist/middlewares/logger.js.map +0 -1
  256. package/dist/middlewares/logger.mjs +0 -12
  257. package/dist/middlewares/logger.mjs.map +0 -1
  258. package/dist/middlewares/powered-by.js +0 -14
  259. package/dist/middlewares/powered-by.js.map +0 -1
  260. package/dist/middlewares/powered-by.mjs +0 -14
  261. package/dist/middlewares/powered-by.mjs.map +0 -1
  262. package/dist/middlewares/public.js +0 -34
  263. package/dist/middlewares/public.js.map +0 -1
  264. package/dist/middlewares/public.mjs +0 -32
  265. package/dist/middlewares/public.mjs.map +0 -1
  266. package/dist/middlewares/query.js +0 -40
  267. package/dist/middlewares/query.js.map +0 -1
  268. package/dist/middlewares/query.mjs +0 -38
  269. package/dist/middlewares/query.mjs.map +0 -1
  270. package/dist/middlewares/response-time.js +0 -12
  271. package/dist/middlewares/response-time.js.map +0 -1
  272. package/dist/middlewares/response-time.mjs +0 -12
  273. package/dist/middlewares/response-time.mjs.map +0 -1
  274. package/dist/middlewares/responses.js +0 -15
  275. package/dist/middlewares/responses.js.map +0 -1
  276. package/dist/middlewares/responses.mjs +0 -15
  277. package/dist/middlewares/responses.mjs.map +0 -1
  278. package/dist/middlewares/security.js +0 -78
  279. package/dist/middlewares/security.js.map +0 -1
  280. package/dist/middlewares/security.mjs +0 -76
  281. package/dist/middlewares/security.mjs.map +0 -1
  282. package/dist/middlewares/session.js +0 -30
  283. package/dist/middlewares/session.js.map +0 -1
  284. package/dist/middlewares/session.mjs +0 -28
  285. package/dist/middlewares/session.mjs.map +0 -1
  286. package/dist/migrations/database/5.0.0-discard-drafts.js +0 -50
  287. package/dist/migrations/database/5.0.0-discard-drafts.js.map +0 -1
  288. package/dist/migrations/database/5.0.0-discard-drafts.mjs +0 -50
  289. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +0 -1
  290. package/dist/migrations/draft-publish.js +0 -42
  291. package/dist/migrations/draft-publish.js.map +0 -1
  292. package/dist/migrations/draft-publish.mjs +0 -42
  293. package/dist/migrations/draft-publish.mjs.map +0 -1
  294. package/dist/providers/admin.js +0 -20
  295. package/dist/providers/admin.js.map +0 -1
  296. package/dist/providers/admin.mjs +0 -21
  297. package/dist/providers/admin.mjs.map +0 -1
  298. package/dist/providers/coreStore.js +0 -11
  299. package/dist/providers/coreStore.js.map +0 -1
  300. package/dist/providers/coreStore.mjs +0 -12
  301. package/dist/providers/coreStore.mjs.map +0 -1
  302. package/dist/providers/cron.js +0 -20
  303. package/dist/providers/cron.js.map +0 -1
  304. package/dist/providers/cron.mjs +0 -21
  305. package/dist/providers/cron.mjs.map +0 -1
  306. package/dist/providers/index.js +0 -11
  307. package/dist/providers/index.js.map +0 -1
  308. package/dist/providers/index.mjs +0 -11
  309. package/dist/providers/index.mjs.map +0 -1
  310. package/dist/providers/provider.js +0 -5
  311. package/dist/providers/provider.js.map +0 -1
  312. package/dist/providers/provider.mjs +0 -5
  313. package/dist/providers/provider.mjs.map +0 -1
  314. package/dist/providers/registries.js +0 -35
  315. package/dist/providers/registries.js.map +0 -1
  316. package/dist/providers/registries.mjs +0 -36
  317. package/dist/providers/registries.mjs.map +0 -1
  318. package/dist/providers/telemetry.js +0 -19
  319. package/dist/providers/telemetry.js.map +0 -1
  320. package/dist/providers/telemetry.mjs +0 -20
  321. package/dist/providers/telemetry.mjs.map +0 -1
  322. package/dist/providers/webhooks.js +0 -30
  323. package/dist/providers/webhooks.js.map +0 -1
  324. package/dist/providers/webhooks.mjs +0 -31
  325. package/dist/providers/webhooks.mjs.map +0 -1
  326. package/dist/registries/apis.js +0 -23
  327. package/dist/registries/apis.js.map +0 -1
  328. package/dist/registries/apis.mjs +0 -24
  329. package/dist/registries/apis.mjs.map +0 -1
  330. package/dist/registries/components.js +0 -45
  331. package/dist/registries/components.js.map +0 -1
  332. package/dist/registries/components.mjs +0 -46
  333. package/dist/registries/components.mjs.map +0 -1
  334. package/dist/registries/content-types.js +0 -70
  335. package/dist/registries/content-types.js.map +0 -1
  336. package/dist/registries/content-types.mjs +0 -71
  337. package/dist/registries/content-types.mjs.map +0 -1
  338. package/dist/registries/controllers.js +0 -80
  339. package/dist/registries/controllers.js.map +0 -1
  340. package/dist/registries/controllers.mjs +0 -81
  341. package/dist/registries/controllers.mjs.map +0 -1
  342. package/dist/registries/custom-fields.js +0 -71
  343. package/dist/registries/custom-fields.js.map +0 -1
  344. package/dist/registries/custom-fields.mjs +0 -72
  345. package/dist/registries/custom-fields.mjs.map +0 -1
  346. package/dist/registries/hooks.js +0 -58
  347. package/dist/registries/hooks.js.map +0 -1
  348. package/dist/registries/hooks.mjs +0 -59
  349. package/dist/registries/hooks.mjs.map +0 -1
  350. package/dist/registries/middlewares.js +0 -60
  351. package/dist/registries/middlewares.js.map +0 -1
  352. package/dist/registries/middlewares.mjs +0 -61
  353. package/dist/registries/middlewares.mjs.map +0 -1
  354. package/dist/registries/models.js +0 -16
  355. package/dist/registries/models.js.map +0 -1
  356. package/dist/registries/models.mjs +0 -16
  357. package/dist/registries/models.mjs.map +0 -1
  358. package/dist/registries/modules.js +0 -39
  359. package/dist/registries/modules.js.map +0 -1
  360. package/dist/registries/modules.mjs +0 -40
  361. package/dist/registries/modules.mjs.map +0 -1
  362. package/dist/registries/namespace.js +0 -27
  363. package/dist/registries/namespace.js.map +0 -1
  364. package/dist/registries/namespace.mjs +0 -27
  365. package/dist/registries/namespace.mjs.map +0 -1
  366. package/dist/registries/plugins.js +0 -23
  367. package/dist/registries/plugins.js.map +0 -1
  368. package/dist/registries/plugins.mjs +0 -24
  369. package/dist/registries/plugins.mjs.map +0 -1
  370. package/dist/registries/policies.js +0 -108
  371. package/dist/registries/policies.js.map +0 -1
  372. package/dist/registries/policies.mjs +0 -109
  373. package/dist/registries/policies.mjs.map +0 -1
  374. package/dist/registries/sanitizers.js +0 -25
  375. package/dist/registries/sanitizers.js.map +0 -1
  376. package/dist/registries/sanitizers.mjs +0 -24
  377. package/dist/registries/sanitizers.mjs.map +0 -1
  378. package/dist/registries/services.js +0 -80
  379. package/dist/registries/services.js.map +0 -1
  380. package/dist/registries/services.mjs +0 -81
  381. package/dist/registries/services.mjs.map +0 -1
  382. package/dist/registries/validators.js +0 -25
  383. package/dist/registries/validators.js.map +0 -1
  384. package/dist/registries/validators.mjs +0 -24
  385. package/dist/registries/validators.mjs.map +0 -1
  386. package/dist/services/auth/index.js +0 -81
  387. package/dist/services/auth/index.js.map +0 -1
  388. package/dist/services/auth/index.mjs +0 -80
  389. package/dist/services/auth/index.mjs.map +0 -1
  390. package/dist/services/config.js +0 -47
  391. package/dist/services/config.js.map +0 -1
  392. package/dist/services/config.mjs +0 -47
  393. package/dist/services/config.mjs.map +0 -1
  394. package/dist/services/content-api/index.js +0 -85
  395. package/dist/services/content-api/index.js.map +0 -1
  396. package/dist/services/content-api/index.mjs +0 -84
  397. package/dist/services/content-api/index.mjs.map +0 -1
  398. package/dist/services/content-api/permissions/engine.js +0 -7
  399. package/dist/services/content-api/permissions/engine.js.map +0 -1
  400. package/dist/services/content-api/permissions/engine.mjs +0 -6
  401. package/dist/services/content-api/permissions/engine.mjs.map +0 -1
  402. package/dist/services/content-api/permissions/index.js +0 -87
  403. package/dist/services/content-api/permissions/index.js.map +0 -1
  404. package/dist/services/content-api/permissions/index.mjs +0 -86
  405. package/dist/services/content-api/permissions/index.mjs.map +0 -1
  406. package/dist/services/content-api/permissions/providers/action.js +0 -16
  407. package/dist/services/content-api/permissions/providers/action.js.map +0 -1
  408. package/dist/services/content-api/permissions/providers/action.mjs +0 -17
  409. package/dist/services/content-api/permissions/providers/action.mjs.map +0 -1
  410. package/dist/services/content-api/permissions/providers/condition.js +0 -16
  411. package/dist/services/content-api/permissions/providers/condition.js.map +0 -1
  412. package/dist/services/content-api/permissions/providers/condition.mjs +0 -17
  413. package/dist/services/content-api/permissions/providers/condition.mjs.map +0 -1
  414. package/dist/services/core-store.js +0 -107
  415. package/dist/services/core-store.js.map +0 -1
  416. package/dist/services/core-store.mjs +0 -107
  417. package/dist/services/core-store.mjs.map +0 -1
  418. package/dist/services/cron.js +0 -63
  419. package/dist/services/cron.js.map +0 -1
  420. package/dist/services/cron.mjs +0 -64
  421. package/dist/services/cron.mjs.map +0 -1
  422. package/dist/services/custom-fields.js +0 -10
  423. package/dist/services/custom-fields.js.map +0 -1
  424. package/dist/services/custom-fields.mjs +0 -11
  425. package/dist/services/custom-fields.mjs.map +0 -1
  426. package/dist/services/document-service/attributes/index.js +0 -22
  427. package/dist/services/document-service/attributes/index.js.map +0 -1
  428. package/dist/services/document-service/attributes/index.mjs +0 -22
  429. package/dist/services/document-service/attributes/index.mjs.map +0 -1
  430. package/dist/services/document-service/attributes/transforms.js +0 -20
  431. package/dist/services/document-service/attributes/transforms.js.map +0 -1
  432. package/dist/services/document-service/attributes/transforms.mjs +0 -19
  433. package/dist/services/document-service/attributes/transforms.mjs.map +0 -1
  434. package/dist/services/document-service/common.js +0 -7
  435. package/dist/services/document-service/common.js.map +0 -1
  436. package/dist/services/document-service/common.mjs +0 -7
  437. package/dist/services/document-service/common.mjs.map +0 -1
  438. package/dist/services/document-service/components.js +0 -288
  439. package/dist/services/document-service/components.js.map +0 -1
  440. package/dist/services/document-service/components.mjs +0 -286
  441. package/dist/services/document-service/components.mjs.map +0 -1
  442. package/dist/services/document-service/draft-and-publish.js +0 -69
  443. package/dist/services/document-service/draft-and-publish.js.map +0 -1
  444. package/dist/services/document-service/draft-and-publish.mjs +0 -69
  445. package/dist/services/document-service/draft-and-publish.mjs.map +0 -1
  446. package/dist/services/document-service/entries.js +0 -96
  447. package/dist/services/document-service/entries.js.map +0 -1
  448. package/dist/services/document-service/entries.mjs +0 -96
  449. package/dist/services/document-service/entries.mjs.map +0 -1
  450. package/dist/services/document-service/events.js +0 -47
  451. package/dist/services/document-service/events.js.map +0 -1
  452. package/dist/services/document-service/events.mjs +0 -47
  453. package/dist/services/document-service/events.mjs.map +0 -1
  454. package/dist/services/document-service/index.js +0 -35
  455. package/dist/services/document-service/index.js.map +0 -1
  456. package/dist/services/document-service/index.mjs +0 -35
  457. package/dist/services/document-service/index.mjs.map +0 -1
  458. package/dist/services/document-service/internationalization.js +0 -63
  459. package/dist/services/document-service/internationalization.js.map +0 -1
  460. package/dist/services/document-service/internationalization.mjs +0 -63
  461. package/dist/services/document-service/internationalization.mjs.map +0 -1
  462. package/dist/services/document-service/middlewares/errors.js +0 -25
  463. package/dist/services/document-service/middlewares/errors.js.map +0 -1
  464. package/dist/services/document-service/middlewares/errors.mjs +0 -25
  465. package/dist/services/document-service/middlewares/errors.mjs.map +0 -1
  466. package/dist/services/document-service/middlewares/middleware-manager.js +0 -49
  467. package/dist/services/document-service/middlewares/middleware-manager.js.map +0 -1
  468. package/dist/services/document-service/middlewares/middleware-manager.mjs +0 -49
  469. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +0 -1
  470. package/dist/services/document-service/params.js +0 -8
  471. package/dist/services/document-service/params.js.map +0 -1
  472. package/dist/services/document-service/params.mjs +0 -8
  473. package/dist/services/document-service/params.mjs.map +0 -1
  474. package/dist/services/document-service/repository.js +0 -278
  475. package/dist/services/document-service/repository.js.map +0 -1
  476. package/dist/services/document-service/repository.mjs +0 -278
  477. package/dist/services/document-service/repository.mjs.map +0 -1
  478. package/dist/services/document-service/transform/data.js +0 -15
  479. package/dist/services/document-service/transform/data.js.map +0 -1
  480. package/dist/services/document-service/transform/data.mjs +0 -15
  481. package/dist/services/document-service/transform/data.mjs.map +0 -1
  482. package/dist/services/document-service/transform/fields.js +0 -24
  483. package/dist/services/document-service/transform/fields.js.map +0 -1
  484. package/dist/services/document-service/transform/fields.mjs +0 -24
  485. package/dist/services/document-service/transform/fields.mjs.map +0 -1
  486. package/dist/services/document-service/transform/id-map.js +0 -78
  487. package/dist/services/document-service/transform/id-map.js.map +0 -1
  488. package/dist/services/document-service/transform/id-map.mjs +0 -78
  489. package/dist/services/document-service/transform/id-map.mjs.map +0 -1
  490. package/dist/services/document-service/transform/id-transform.js +0 -33
  491. package/dist/services/document-service/transform/id-transform.js.map +0 -1
  492. package/dist/services/document-service/transform/id-transform.mjs +0 -33
  493. package/dist/services/document-service/transform/id-transform.mjs.map +0 -1
  494. package/dist/services/document-service/transform/populate.js +0 -21
  495. package/dist/services/document-service/transform/populate.js.map +0 -1
  496. package/dist/services/document-service/transform/populate.mjs +0 -21
  497. package/dist/services/document-service/transform/populate.mjs.map +0 -1
  498. package/dist/services/document-service/transform/query.js +0 -9
  499. package/dist/services/document-service/transform/query.js.map +0 -1
  500. package/dist/services/document-service/transform/query.mjs +0 -9
  501. package/dist/services/document-service/transform/query.mjs.map +0 -1
  502. package/dist/services/document-service/transform/relations/extract/data-ids.js +0 -57
  503. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +0 -1
  504. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +0 -57
  505. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +0 -1
  506. package/dist/services/document-service/transform/relations/transform/data-ids.js +0 -76
  507. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +0 -1
  508. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +0 -76
  509. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +0 -1
  510. package/dist/services/document-service/transform/relations/transform/default-locale.js +0 -32
  511. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +0 -1
  512. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +0 -32
  513. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +0 -1
  514. package/dist/services/document-service/transform/relations/utils/dp.js +0 -30
  515. package/dist/services/document-service/transform/relations/utils/dp.js.map +0 -1
  516. package/dist/services/document-service/transform/relations/utils/dp.mjs +0 -30
  517. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +0 -1
  518. package/dist/services/document-service/transform/relations/utils/i18n.js +0 -25
  519. package/dist/services/document-service/transform/relations/utils/i18n.js.map +0 -1
  520. package/dist/services/document-service/transform/relations/utils/i18n.mjs +0 -25
  521. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +0 -1
  522. package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -91
  523. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +0 -1
  524. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -91
  525. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +0 -1
  526. package/dist/services/document-service/utils/populate.js +0 -45
  527. package/dist/services/document-service/utils/populate.js.map +0 -1
  528. package/dist/services/document-service/utils/populate.mjs +0 -45
  529. package/dist/services/document-service/utils/populate.mjs.map +0 -1
  530. package/dist/services/entity-service/index.js +0 -169
  531. package/dist/services/entity-service/index.js.map +0 -1
  532. package/dist/services/entity-service/index.mjs +0 -167
  533. package/dist/services/entity-service/index.mjs.map +0 -1
  534. package/dist/services/entity-validator/blocks-validator.js +0 -127
  535. package/dist/services/entity-validator/blocks-validator.js.map +0 -1
  536. package/dist/services/entity-validator/blocks-validator.mjs +0 -128
  537. package/dist/services/entity-validator/blocks-validator.mjs.map +0 -1
  538. package/dist/services/entity-validator/index.js +0 -390
  539. package/dist/services/entity-validator/index.js.map +0 -1
  540. package/dist/services/entity-validator/index.mjs +0 -389
  541. package/dist/services/entity-validator/index.mjs.map +0 -1
  542. package/dist/services/entity-validator/validators.js +0 -167
  543. package/dist/services/entity-validator/validators.js.map +0 -1
  544. package/dist/services/entity-validator/validators.mjs +0 -166
  545. package/dist/services/entity-validator/validators.mjs.map +0 -1
  546. package/dist/services/errors.js +0 -76
  547. package/dist/services/errors.js.map +0 -1
  548. package/dist/services/errors.mjs +0 -74
  549. package/dist/services/errors.mjs.map +0 -1
  550. package/dist/services/event-hub.js +0 -72
  551. package/dist/services/event-hub.js.map +0 -1
  552. package/dist/services/event-hub.mjs +0 -73
  553. package/dist/services/event-hub.mjs.map +0 -1
  554. package/dist/services/features.js +0 -17
  555. package/dist/services/features.js.map +0 -1
  556. package/dist/services/features.mjs +0 -17
  557. package/dist/services/features.mjs.map +0 -1
  558. package/dist/services/fs.js +0 -51
  559. package/dist/services/fs.js.map +0 -1
  560. package/dist/services/fs.mjs +0 -49
  561. package/dist/services/fs.mjs.map +0 -1
  562. package/dist/services/metrics/admin-user-hash.js +0 -14
  563. package/dist/services/metrics/admin-user-hash.js.map +0 -1
  564. package/dist/services/metrics/admin-user-hash.mjs +0 -12
  565. package/dist/services/metrics/admin-user-hash.mjs.map +0 -1
  566. package/dist/services/metrics/index.js +0 -45
  567. package/dist/services/metrics/index.js.map +0 -1
  568. package/dist/services/metrics/index.mjs +0 -46
  569. package/dist/services/metrics/index.mjs.map +0 -1
  570. package/dist/services/metrics/is-truthy.js +0 -9
  571. package/dist/services/metrics/is-truthy.js.map +0 -1
  572. package/dist/services/metrics/is-truthy.mjs +0 -8
  573. package/dist/services/metrics/is-truthy.mjs.map +0 -1
  574. package/dist/services/metrics/middleware.js +0 -25
  575. package/dist/services/metrics/middleware.js.map +0 -1
  576. package/dist/services/metrics/middleware.mjs +0 -26
  577. package/dist/services/metrics/middleware.mjs.map +0 -1
  578. package/dist/services/metrics/rate-limiter.js +0 -21
  579. package/dist/services/metrics/rate-limiter.js.map +0 -1
  580. package/dist/services/metrics/rate-limiter.mjs +0 -22
  581. package/dist/services/metrics/rate-limiter.mjs.map +0 -1
  582. package/dist/services/metrics/sender.js +0 -76
  583. package/dist/services/metrics/sender.js.map +0 -1
  584. package/dist/services/metrics/sender.mjs +0 -70
  585. package/dist/services/metrics/sender.mjs.map +0 -1
  586. package/dist/services/query-params.js +0 -12
  587. package/dist/services/query-params.js.map +0 -1
  588. package/dist/services/query-params.mjs +0 -13
  589. package/dist/services/query-params.mjs.map +0 -1
  590. package/dist/services/reloader.js +0 -36
  591. package/dist/services/reloader.js.map +0 -1
  592. package/dist/services/reloader.mjs +0 -36
  593. package/dist/services/reloader.mjs.map +0 -1
  594. package/dist/services/request-context.js +0 -13
  595. package/dist/services/request-context.js.map +0 -1
  596. package/dist/services/request-context.mjs +0 -14
  597. package/dist/services/request-context.mjs.map +0 -1
  598. package/dist/services/server/admin-api.js +0 -13
  599. package/dist/services/server/admin-api.js.map +0 -1
  600. package/dist/services/server/admin-api.mjs +0 -13
  601. package/dist/services/server/admin-api.mjs.map +0 -1
  602. package/dist/services/server/api.js +0 -30
  603. package/dist/services/server/api.js.map +0 -1
  604. package/dist/services/server/api.mjs +0 -28
  605. package/dist/services/server/api.mjs.map +0 -1
  606. package/dist/services/server/compose-endpoint.js +0 -117
  607. package/dist/services/server/compose-endpoint.js.map +0 -1
  608. package/dist/services/server/compose-endpoint.mjs +0 -116
  609. package/dist/services/server/compose-endpoint.mjs.map +0 -1
  610. package/dist/services/server/content-api.js +0 -12
  611. package/dist/services/server/content-api.js.map +0 -1
  612. package/dist/services/server/content-api.mjs +0 -12
  613. package/dist/services/server/content-api.mjs.map +0 -1
  614. package/dist/services/server/http-server.js +0 -50
  615. package/dist/services/server/http-server.js.map +0 -1
  616. package/dist/services/server/http-server.mjs +0 -48
  617. package/dist/services/server/http-server.mjs.map +0 -1
  618. package/dist/services/server/index.js +0 -87
  619. package/dist/services/server/index.js.map +0 -1
  620. package/dist/services/server/index.mjs +0 -85
  621. package/dist/services/server/index.mjs.map +0 -1
  622. package/dist/services/server/koa.js +0 -52
  623. package/dist/services/server/koa.js.map +0 -1
  624. package/dist/services/server/koa.mjs +0 -48
  625. package/dist/services/server/koa.mjs.map +0 -1
  626. package/dist/services/server/middleware.js +0 -92
  627. package/dist/services/server/middleware.js.map +0 -1
  628. package/dist/services/server/middleware.mjs +0 -90
  629. package/dist/services/server/middleware.mjs.map +0 -1
  630. package/dist/services/server/policy.js +0 -20
  631. package/dist/services/server/policy.js.map +0 -1
  632. package/dist/services/server/policy.mjs +0 -20
  633. package/dist/services/server/policy.mjs.map +0 -1
  634. package/dist/services/server/register-middlewares.js +0 -72
  635. package/dist/services/server/register-middlewares.js.map +0 -1
  636. package/dist/services/server/register-middlewares.mjs +0 -73
  637. package/dist/services/server/register-middlewares.mjs.map +0 -1
  638. package/dist/services/server/register-routes.js +0 -76
  639. package/dist/services/server/register-routes.js.map +0 -1
  640. package/dist/services/server/register-routes.mjs +0 -75
  641. package/dist/services/server/register-routes.mjs.map +0 -1
  642. package/dist/services/server/routing.js +0 -91
  643. package/dist/services/server/routing.js.map +0 -1
  644. package/dist/services/server/routing.mjs +0 -89
  645. package/dist/services/server/routing.mjs.map +0 -1
  646. package/dist/services/utils/dynamic-zones.js +0 -17
  647. package/dist/services/utils/dynamic-zones.js.map +0 -1
  648. package/dist/services/utils/dynamic-zones.mjs +0 -18
  649. package/dist/services/utils/dynamic-zones.mjs.map +0 -1
  650. package/dist/services/webhook-runner.js +0 -133
  651. package/dist/services/webhook-runner.js.map +0 -1
  652. package/dist/services/webhook-runner.mjs +0 -131
  653. package/dist/services/webhook-runner.mjs.map +0 -1
  654. package/dist/services/webhook-store.js +0 -110
  655. package/dist/services/webhook-store.js.map +0 -1
  656. package/dist/services/webhook-store.mjs +0 -110
  657. package/dist/services/webhook-store.mjs.map +0 -1
  658. package/dist/services/worker-queue.js +0 -56
  659. package/dist/services/worker-queue.js.map +0 -1
  660. package/dist/services/worker-queue.mjs +0 -55
  661. package/dist/services/worker-queue.mjs.map +0 -1
  662. package/dist/utils/convert-custom-field-type.js +0 -24
  663. package/dist/utils/convert-custom-field-type.js.map +0 -1
  664. package/dist/utils/convert-custom-field-type.mjs +0 -24
  665. package/dist/utils/convert-custom-field-type.mjs.map +0 -1
  666. package/dist/utils/cron.js +0 -38
  667. package/dist/utils/cron.js.map +0 -1
  668. package/dist/utils/cron.mjs +0 -38
  669. package/dist/utils/cron.mjs.map +0 -1
  670. package/dist/utils/fetch.js +0 -21
  671. package/dist/utils/fetch.js.map +0 -1
  672. package/dist/utils/fetch.mjs +0 -21
  673. package/dist/utils/fetch.mjs.map +0 -1
  674. package/dist/utils/filepath-to-prop-path.js +0 -12
  675. package/dist/utils/filepath-to-prop-path.js.map +0 -1
  676. package/dist/utils/filepath-to-prop-path.mjs +0 -10
  677. package/dist/utils/filepath-to-prop-path.mjs.map +0 -1
  678. package/dist/utils/is-initialized.js +0 -16
  679. package/dist/utils/is-initialized.js.map +0 -1
  680. package/dist/utils/is-initialized.mjs +0 -16
  681. package/dist/utils/is-initialized.mjs.map +0 -1
  682. package/dist/utils/lifecycles.js +0 -9
  683. package/dist/utils/lifecycles.js.map +0 -1
  684. package/dist/utils/lifecycles.mjs +0 -9
  685. package/dist/utils/lifecycles.mjs.map +0 -1
  686. package/dist/utils/load-config-file.js +0 -45
  687. package/dist/utils/load-config-file.js.map +0 -1
  688. package/dist/utils/load-config-file.mjs +0 -42
  689. package/dist/utils/load-config-file.mjs.map +0 -1
  690. package/dist/utils/load-files.js +0 -39
  691. package/dist/utils/load-files.js.map +0 -1
  692. package/dist/utils/load-files.mjs +0 -35
  693. package/dist/utils/load-files.mjs.map +0 -1
  694. package/dist/utils/open-browser.js +0 -11
  695. package/dist/utils/open-browser.js.map +0 -1
  696. package/dist/utils/open-browser.mjs +0 -9
  697. package/dist/utils/open-browser.mjs.map +0 -1
  698. package/dist/utils/resolve-working-dirs.js +0 -13
  699. package/dist/utils/resolve-working-dirs.js.map +0 -1
  700. package/dist/utils/resolve-working-dirs.mjs +0 -11
  701. package/dist/utils/resolve-working-dirs.mjs.map +0 -1
  702. package/dist/utils/signals.js +0 -17
  703. package/dist/utils/signals.js.map +0 -1
  704. package/dist/utils/signals.mjs +0 -17
  705. package/dist/utils/signals.mjs.map +0 -1
  706. package/dist/utils/startup-logger.js +0 -81
  707. package/dist/utils/startup-logger.js.map +0 -1
  708. package/dist/utils/startup-logger.mjs +0 -77
  709. package/dist/utils/startup-logger.mjs.map +0 -1
  710. package/dist/utils/transform-content-types-to-models.js +0 -285
  711. package/dist/utils/transform-content-types-to-models.js.map +0 -1
  712. package/dist/utils/transform-content-types-to-models.mjs +0 -282
  713. package/dist/utils/transform-content-types-to-models.mjs.map +0 -1
  714. package/dist/utils/update-notifier/index.js +0 -85
  715. package/dist/utils/update-notifier/index.js.map +0 -1
  716. package/dist/utils/update-notifier/index.mjs +0 -78
  717. package/dist/utils/update-notifier/index.mjs.map +0 -1
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const strapiUtils = require("@strapi/utils");
4
- const getDeepPopulate = (uid, opts = {}) => {
5
- const model = strapi.getModel(uid);
6
- const attributes = Object.entries(model.attributes);
7
- return attributes.reduce((acc, [attributeName, attribute]) => {
8
- switch (attribute.type) {
9
- case "relation": {
10
- const isMorphRelation = attribute.relation.toLowerCase().startsWith("morph");
11
- if (isMorphRelation) {
12
- break;
13
- }
14
- const isVisible = strapiUtils.contentTypes.isVisibleAttribute(model, attributeName);
15
- if (isVisible) {
16
- acc[attributeName] = { select: opts.relationalFields };
17
- }
18
- break;
19
- }
20
- case "media": {
21
- acc[attributeName] = { select: ["id"] };
22
- break;
23
- }
24
- case "component": {
25
- const populate = getDeepPopulate(attribute.component, opts);
26
- acc[attributeName] = { populate };
27
- break;
28
- }
29
- case "dynamiczone": {
30
- const populatedComponents = (attribute.components || []).reduce(
31
- (acc2, componentUID) => {
32
- acc2[componentUID] = { populate: getDeepPopulate(componentUID, opts) };
33
- return acc2;
34
- },
35
- {}
36
- );
37
- acc[attributeName] = { on: populatedComponents };
38
- break;
39
- }
40
- }
41
- return acc;
42
- }, {});
43
- };
44
- exports.getDeepPopulate = getDeepPopulate;
45
- //# sourceMappingURL=populate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"populate.js","sources":["../../../../src/services/document-service/utils/populate.ts"],"sourcesContent":["import { UID } from '@strapi/types';\nimport { contentTypes } from '@strapi/utils';\n\ninterface Options {\n /**\n * Fields to select when populating relations\n */\n relationalFields?: string[];\n}\n\n// We want to build a populate object based on the schema\nexport const getDeepPopulate = (uid: UID.Schema, opts: Options = {}) => {\n const model = strapi.getModel(uid);\n const attributes = Object.entries(model.attributes);\n\n return attributes.reduce((acc: any, [attributeName, attribute]) => {\n switch (attribute.type) {\n case 'relation': {\n // TODO: Support polymorphic relations\n const isMorphRelation = attribute.relation.toLowerCase().startsWith('morph');\n if (isMorphRelation) {\n break;\n }\n\n // TODO: Should this just be a plain list?\n // Ignore createdBy, updatedBy, ...\n const isVisible = contentTypes.isVisibleAttribute(model, attributeName);\n if (isVisible) {\n acc[attributeName] = { select: opts.relationalFields };\n }\n break;\n }\n\n case 'media': {\n acc[attributeName] = { select: ['id'] };\n break;\n }\n\n case 'component': {\n const populate = getDeepPopulate(attribute.component, opts);\n acc[attributeName] = { populate };\n break;\n }\n\n case 'dynamiczone': {\n // Use fragments to populate the dynamic zone components\n const populatedComponents = (attribute.components || []).reduce(\n (acc: any, componentUID: UID.Component) => {\n acc[componentUID] = { populate: getDeepPopulate(componentUID, opts) };\n return acc;\n },\n {}\n );\n\n acc[attributeName] = { on: populatedComponents };\n break;\n }\n default:\n break;\n }\n\n return acc;\n }, {});\n};\n"],"names":["contentTypes","acc"],"mappings":";;;AAWO,MAAM,kBAAkB,CAAC,KAAiB,OAAgB,OAAO;AAChE,QAAA,QAAQ,OAAO,SAAS,GAAG;AACjC,QAAM,aAAa,OAAO,QAAQ,MAAM,UAAU;AAElD,SAAO,WAAW,OAAO,CAAC,KAAU,CAAC,eAAe,SAAS,MAAM;AACjE,YAAQ,UAAU,MAAM;AAAA,MACtB,KAAK,YAAY;AAEf,cAAM,kBAAkB,UAAU,SAAS,YAAY,EAAE,WAAW,OAAO;AAC3E,YAAI,iBAAiB;AACnB;AAAA,QACF;AAIA,cAAM,YAAYA,YAAA,aAAa,mBAAmB,OAAO,aAAa;AACtE,YAAI,WAAW;AACb,cAAI,aAAa,IAAI,EAAE,QAAQ,KAAK,iBAAiB;AAAA,QACvD;AACA;AAAA,MACF;AAAA,MAEA,KAAK,SAAS;AACZ,YAAI,aAAa,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;AACtC;AAAA,MACF;AAAA,MAEA,KAAK,aAAa;AAChB,cAAM,WAAW,gBAAgB,UAAU,WAAW,IAAI;AACtD,YAAA,aAAa,IAAI,EAAE;AACvB;AAAA,MACF;AAAA,MAEA,KAAK,eAAe;AAElB,cAAM,uBAAuB,UAAU,cAAc,CAAI,GAAA;AAAA,UACvD,CAACC,MAAU,iBAAgC;AACzCA,iBAAI,YAAY,IAAI,EAAE,UAAU,gBAAgB,cAAc,IAAI;AAC3DA,mBAAAA;AAAAA,UACT;AAAA,UACA,CAAC;AAAA,QAAA;AAGH,YAAI,aAAa,IAAI,EAAE,IAAI,oBAAoB;AAC/C;AAAA,MACF;AAAA,IAGF;AAEO,WAAA;AAAA,EACT,GAAG,CAAE,CAAA;AACP;;"}
@@ -1,45 +0,0 @@
1
- import { contentTypes } from "@strapi/utils";
2
- const getDeepPopulate = (uid, opts = {}) => {
3
- const model = strapi.getModel(uid);
4
- const attributes = Object.entries(model.attributes);
5
- return attributes.reduce((acc, [attributeName, attribute]) => {
6
- switch (attribute.type) {
7
- case "relation": {
8
- const isMorphRelation = attribute.relation.toLowerCase().startsWith("morph");
9
- if (isMorphRelation) {
10
- break;
11
- }
12
- const isVisible = contentTypes.isVisibleAttribute(model, attributeName);
13
- if (isVisible) {
14
- acc[attributeName] = { select: opts.relationalFields };
15
- }
16
- break;
17
- }
18
- case "media": {
19
- acc[attributeName] = { select: ["id"] };
20
- break;
21
- }
22
- case "component": {
23
- const populate = getDeepPopulate(attribute.component, opts);
24
- acc[attributeName] = { populate };
25
- break;
26
- }
27
- case "dynamiczone": {
28
- const populatedComponents = (attribute.components || []).reduce(
29
- (acc2, componentUID) => {
30
- acc2[componentUID] = { populate: getDeepPopulate(componentUID, opts) };
31
- return acc2;
32
- },
33
- {}
34
- );
35
- acc[attributeName] = { on: populatedComponents };
36
- break;
37
- }
38
- }
39
- return acc;
40
- }, {});
41
- };
42
- export {
43
- getDeepPopulate
44
- };
45
- //# sourceMappingURL=populate.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"populate.mjs","sources":["../../../../src/services/document-service/utils/populate.ts"],"sourcesContent":["import { UID } from '@strapi/types';\nimport { contentTypes } from '@strapi/utils';\n\ninterface Options {\n /**\n * Fields to select when populating relations\n */\n relationalFields?: string[];\n}\n\n// We want to build a populate object based on the schema\nexport const getDeepPopulate = (uid: UID.Schema, opts: Options = {}) => {\n const model = strapi.getModel(uid);\n const attributes = Object.entries(model.attributes);\n\n return attributes.reduce((acc: any, [attributeName, attribute]) => {\n switch (attribute.type) {\n case 'relation': {\n // TODO: Support polymorphic relations\n const isMorphRelation = attribute.relation.toLowerCase().startsWith('morph');\n if (isMorphRelation) {\n break;\n }\n\n // TODO: Should this just be a plain list?\n // Ignore createdBy, updatedBy, ...\n const isVisible = contentTypes.isVisibleAttribute(model, attributeName);\n if (isVisible) {\n acc[attributeName] = { select: opts.relationalFields };\n }\n break;\n }\n\n case 'media': {\n acc[attributeName] = { select: ['id'] };\n break;\n }\n\n case 'component': {\n const populate = getDeepPopulate(attribute.component, opts);\n acc[attributeName] = { populate };\n break;\n }\n\n case 'dynamiczone': {\n // Use fragments to populate the dynamic zone components\n const populatedComponents = (attribute.components || []).reduce(\n (acc: any, componentUID: UID.Component) => {\n acc[componentUID] = { populate: getDeepPopulate(componentUID, opts) };\n return acc;\n },\n {}\n );\n\n acc[attributeName] = { on: populatedComponents };\n break;\n }\n default:\n break;\n }\n\n return acc;\n }, {});\n};\n"],"names":["acc"],"mappings":";AAWO,MAAM,kBAAkB,CAAC,KAAiB,OAAgB,OAAO;AAChE,QAAA,QAAQ,OAAO,SAAS,GAAG;AACjC,QAAM,aAAa,OAAO,QAAQ,MAAM,UAAU;AAElD,SAAO,WAAW,OAAO,CAAC,KAAU,CAAC,eAAe,SAAS,MAAM;AACjE,YAAQ,UAAU,MAAM;AAAA,MACtB,KAAK,YAAY;AAEf,cAAM,kBAAkB,UAAU,SAAS,YAAY,EAAE,WAAW,OAAO;AAC3E,YAAI,iBAAiB;AACnB;AAAA,QACF;AAIA,cAAM,YAAY,aAAa,mBAAmB,OAAO,aAAa;AACtE,YAAI,WAAW;AACb,cAAI,aAAa,IAAI,EAAE,QAAQ,KAAK,iBAAiB;AAAA,QACvD;AACA;AAAA,MACF;AAAA,MAEA,KAAK,SAAS;AACZ,YAAI,aAAa,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;AACtC;AAAA,MACF;AAAA,MAEA,KAAK,aAAa;AAChB,cAAM,WAAW,gBAAgB,UAAU,WAAW,IAAI;AACtD,YAAA,aAAa,IAAI,EAAE;AACvB;AAAA,MACF;AAAA,MAEA,KAAK,eAAe;AAElB,cAAM,uBAAuB,UAAU,cAAc,CAAI,GAAA;AAAA,UACvD,CAACA,MAAU,iBAAgC;AACzCA,iBAAI,YAAY,IAAI,EAAE,UAAU,gBAAgB,cAAc,IAAI;AAC3DA,mBAAAA;AAAAA,UACT;AAAA,UACA,CAAC;AAAA,QAAA;AAGH,YAAI,aAAa,IAAI,EAAE,IAAI,oBAAoB;AAC/C;AAAA,MACF;AAAA,IAGF;AAEO,WAAA;AAAA,EACT,GAAG,CAAE,CAAA;AACP;"}
@@ -1,169 +0,0 @@
1
- "use strict";
2
- const _ = require("lodash");
3
- const delegate = require("delegates");
4
- const database = require("@strapi/database");
5
- const strapiUtils = require("@strapi/utils");
6
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
- const ___default = /* @__PURE__ */ _interopDefault(_);
8
- const delegate__default = /* @__PURE__ */ _interopDefault(delegate);
9
- const transformLoadParamsToQuery = (uid, field, params, pagination = {}) => {
10
- const query = strapi.get("query-params").transform(uid, { populate: { [field]: params } });
11
- const res = {
12
- ...query.populate[field],
13
- ...pagination
14
- };
15
- return res;
16
- };
17
- const databaseErrorsToTransform = [
18
- database.errors.InvalidTimeError,
19
- database.errors.InvalidDateTimeError,
20
- database.errors.InvalidDateError,
21
- database.errors.InvalidRelationError
22
- ];
23
- const createDefaultImplementation = ({
24
- strapi: strapi2,
25
- db
26
- }) => ({
27
- async wrapParams(options = {}) {
28
- return options;
29
- },
30
- async wrapResult(result = {}) {
31
- return result;
32
- },
33
- async findMany(uid, opts) {
34
- const { kind } = strapi2.getModel(uid);
35
- const wrappedParams = await this.wrapParams(opts, { uid, action: "findMany" });
36
- if (kind === "singleType") {
37
- const entity = strapi2.documents(uid).findFirst(wrappedParams);
38
- return this.wrapResult(entity, { uid, action: "findOne" });
39
- }
40
- const entities = await strapi2.documents(uid).findMany(wrappedParams);
41
- return this.wrapResult(entities, { uid, action: "findMany" });
42
- },
43
- async findPage(uid, opts) {
44
- const wrappedParams = await this.wrapParams(opts, { uid, action: "findPage" });
45
- const query = strapi2.get("query-params").transform(uid, wrappedParams);
46
- const entities = await db.query(uid).findPage(query);
47
- return this.wrapResult(entities, { uid, action: "findMany" });
48
- },
49
- async findOne(uid, entityId, opts) {
50
- const wrappedParams = await this.wrapParams(opts, { uid, action: "findOne" });
51
- const res = await db.query(uid).findOne({ where: { id: entityId } });
52
- if (!res) {
53
- return this.wrapResult(null, { uid, action: "findOne" });
54
- }
55
- const entity = await strapi2.documents(uid).findOne({
56
- ...wrappedParams,
57
- documentId: res.documentId
58
- });
59
- return this.wrapResult(entity, { uid, action: "findOne" });
60
- },
61
- async count(uid, opts) {
62
- const wrappedParams = await this.wrapParams(opts, { uid, action: "count" });
63
- return strapi2.documents(uid).count(wrappedParams);
64
- },
65
- async create(uid, params) {
66
- const wrappedParams = await this.wrapParams(params, { uid, action: "create" });
67
- const { data } = wrappedParams;
68
- if (!data) {
69
- throw new Error("cannot create");
70
- }
71
- const shouldPublish = !strapiUtils.contentTypes.isDraft(data, strapi2.getModel(uid));
72
- const entity = await strapi2.documents(uid).create({
73
- ...wrappedParams,
74
- status: shouldPublish ? "published" : "draft"
75
- });
76
- return this.wrapResult(entity, { uid, action: "create" });
77
- },
78
- async update(uid, entityId, opts) {
79
- const wrappedParams = await this.wrapParams(opts, {
80
- uid,
81
- action: "update"
82
- });
83
- const entityToUpdate = await db.query(uid).findOne({ where: { id: entityId } });
84
- if (!entityToUpdate) {
85
- return this.wrapResult(null, { uid, action: "update" });
86
- }
87
- const shouldPublish = !strapiUtils.contentTypes.isDraft(entityToUpdate, strapi2.getModel(uid));
88
- const entity = strapi2.documents(uid).update({
89
- ...wrappedParams,
90
- status: shouldPublish ? "published" : "draft",
91
- documentId: entityToUpdate.documentId
92
- });
93
- return this.wrapResult(entity, { uid, action: "update" });
94
- },
95
- async delete(uid, entityId, opts) {
96
- const wrappedParams = await this.wrapParams(opts, { uid, action: "delete" });
97
- const entityToDelete = await db.query(uid).findOne({ where: { id: entityId } });
98
- if (!entityToDelete) {
99
- return this.wrapResult(null, { uid, action: "delete" });
100
- }
101
- await strapi2.documents(uid).delete({
102
- ...wrappedParams,
103
- documentId: entityToDelete.documentId
104
- });
105
- return this.wrapResult(entityToDelete, { uid, action: "delete" });
106
- },
107
- async load(uid, entity, field, params) {
108
- if (!___default.default.isString(field)) {
109
- throw new Error(`Invalid load. Expected "${field}" to be a string`);
110
- }
111
- const loadedEntity = await db.query(uid).load(entity, field, transformLoadParamsToQuery(uid, field, params ?? {}));
112
- return this.wrapResult(loadedEntity, { uid, field, action: "load" });
113
- },
114
- async loadPages(uid, entity, field, params, pagination = {}) {
115
- if (!___default.default.isString(field)) {
116
- throw new Error(`Invalid load. Expected "${field}" to be a string`);
117
- }
118
- const { attributes } = strapi2.getModel(uid);
119
- const attribute = attributes[field];
120
- if (!strapiUtils.relations.isAnyToMany(attribute)) {
121
- throw new Error(`Invalid load. Expected "${field}" to be an anyToMany relational attribute`);
122
- }
123
- const query = transformLoadParamsToQuery(uid, field, params ?? {}, pagination);
124
- const loadedPage = await db.query(uid).loadPages(entity, field, query);
125
- return {
126
- ...loadedPage,
127
- results: await this.wrapResult(loadedPage.results, { uid, field, action: "load" })
128
- };
129
- }
130
- });
131
- const createEntityService = (ctx) => {
132
- const implementation = createDefaultImplementation(ctx);
133
- const service = {
134
- implementation,
135
- decorate(decorator) {
136
- if (typeof decorator !== "function") {
137
- throw new Error(`Decorator must be a function, received ${typeof decorator}`);
138
- }
139
- this.implementation = { ...this.implementation, ...decorator(this.implementation) };
140
- return this;
141
- }
142
- };
143
- const delegator = delegate__default.default(service, "implementation");
144
- Object.keys(service.implementation).forEach((key) => delegator.method(key));
145
- service.decorate((oldService) => {
146
- const newService = ___default.default.mapValues(
147
- oldService,
148
- (method, methodName) => async function(...args) {
149
- try {
150
- return await oldService[methodName].call(this, ...args);
151
- } catch (error) {
152
- if (databaseErrorsToTransform.some(
153
- (errorToTransform) => error instanceof errorToTransform
154
- )) {
155
- if (error instanceof Error) {
156
- throw new strapiUtils.errors.ValidationError(error.message);
157
- }
158
- throw error;
159
- }
160
- throw error;
161
- }
162
- }
163
- );
164
- return newService;
165
- });
166
- return service;
167
- };
168
- module.exports = createEntityService;
169
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/services/entity-service/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport delegate from 'delegates';\nimport { errors as databaseErrors } from '@strapi/database';\nimport {\n contentTypes as contentTypesUtils,\n errors,\n relations as relationUtils,\n} from '@strapi/utils';\nimport type { Database } from '@strapi/database';\nimport type { Core, Modules, Utils } from '@strapi/types';\n\ntype Decoratable<T> = T & {\n decorate(\n decorator: (old: Modules.EntityService.EntityService) => Modules.EntityService.EntityService & {\n [key: string]: unknown;\n }\n ): void;\n};\n\nconst transformLoadParamsToQuery = (\n uid: string,\n field: string,\n params: Record<string, unknown>,\n pagination = {}\n) => {\n const query = strapi\n .get('query-params')\n .transform(uid, { populate: { [field]: params } as any }) as any;\n\n const res = {\n ...query.populate[field],\n ...pagination,\n };\n\n return res;\n};\n\nconst databaseErrorsToTransform = [\n databaseErrors.InvalidTimeError,\n databaseErrors.InvalidDateTimeError,\n databaseErrors.InvalidDateError,\n databaseErrors.InvalidRelationError,\n];\n\nconst createDefaultImplementation = ({\n strapi,\n db,\n}: {\n strapi: Core.Strapi;\n db: Database;\n}): Modules.EntityService.EntityService => ({\n async wrapParams(options: any = {}) {\n return options;\n },\n\n async wrapResult(result: any = {}) {\n return result;\n },\n\n async findMany(uid, opts) {\n const { kind } = strapi.getModel(uid);\n\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'findMany' });\n\n if (kind === 'singleType') {\n const entity = strapi.documents!(uid).findFirst(wrappedParams);\n return this.wrapResult(entity, { uid, action: 'findOne' });\n }\n\n const entities = await strapi.documents!(uid).findMany(wrappedParams);\n return this.wrapResult(entities, { uid, action: 'findMany' });\n },\n\n async findPage(uid, opts) {\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'findPage' });\n\n const query = strapi.get('query-params').transform(uid, wrappedParams);\n\n const entities = await db.query(uid).findPage(query);\n return this.wrapResult(entities, { uid, action: 'findMany' });\n },\n\n async findOne(uid, entityId, opts) {\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'findOne' });\n\n const res = await db.query(uid).findOne({ where: { id: entityId } });\n\n if (!res) {\n return this.wrapResult(null, { uid, action: 'findOne' });\n }\n\n const entity = await strapi.documents!(uid).findOne({\n ...wrappedParams,\n documentId: res.documentId,\n });\n return this.wrapResult(entity, { uid, action: 'findOne' });\n },\n\n async count(uid, opts) {\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'count' });\n\n return strapi.documents!(uid).count(wrappedParams);\n },\n\n async create(uid, params) {\n const wrappedParams = await this.wrapParams<\n Modules.EntityService.Params.Pick<typeof uid, 'data' | 'fields' | 'populate'>\n >(params, { uid, action: 'create' });\n const { data } = wrappedParams;\n\n if (!data) {\n throw new Error('cannot create');\n }\n\n const shouldPublish = !contentTypesUtils.isDraft(data, strapi.getModel(uid));\n\n const entity = await strapi.documents!(uid).create({\n ...(wrappedParams as any),\n status: shouldPublish ? 'published' : 'draft',\n });\n\n return this.wrapResult(entity, { uid, action: 'create' });\n },\n\n async update(uid, entityId, opts) {\n const wrappedParams = await this.wrapParams<\n Modules.EntityService.Params.Pick<typeof uid, 'data:partial' | 'fields' | 'populate'>\n >(opts, {\n uid,\n action: 'update',\n });\n const entityToUpdate = await db.query(uid).findOne({ where: { id: entityId } });\n\n if (!entityToUpdate) {\n return this.wrapResult(null, { uid, action: 'update' });\n }\n\n const shouldPublish = !contentTypesUtils.isDraft(entityToUpdate, strapi.getModel(uid));\n\n const entity = strapi.documents!(uid).update({\n ...(wrappedParams as any),\n status: shouldPublish ? 'published' : 'draft',\n documentId: entityToUpdate.documentId,\n });\n\n return this.wrapResult(entity, { uid, action: 'update' });\n },\n\n async delete(uid, entityId, opts) {\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'delete' });\n\n const entityToDelete = await db.query(uid).findOne({ where: { id: entityId } });\n\n if (!entityToDelete) {\n return this.wrapResult(null, { uid, action: 'delete' });\n }\n\n await strapi.documents!(uid).delete({\n ...wrappedParams,\n documentId: entityToDelete.documentId,\n });\n\n return this.wrapResult(entityToDelete, { uid, action: 'delete' });\n },\n\n async load(uid, entity, field, params) {\n if (!_.isString(field)) {\n throw new Error(`Invalid load. Expected \"${field}\" to be a string`);\n }\n\n const loadedEntity = await db\n .query(uid)\n .load(entity, field, transformLoadParamsToQuery(uid, field, params ?? {}));\n\n return this.wrapResult(loadedEntity, { uid, field, action: 'load' });\n },\n\n async loadPages(uid, entity, field, params, pagination = {}) {\n if (!_.isString(field)) {\n throw new Error(`Invalid load. Expected \"${field}\" to be a string`);\n }\n\n const { attributes } = strapi.getModel(uid);\n const attribute = attributes[field];\n\n if (!relationUtils.isAnyToMany(attribute)) {\n throw new Error(`Invalid load. Expected \"${field}\" to be an anyToMany relational attribute`);\n }\n\n const query = transformLoadParamsToQuery(uid, field, params ?? {}, pagination);\n\n const loadedPage = await db.query(uid).loadPages(entity, field, query);\n\n return {\n ...loadedPage,\n results: await this.wrapResult(loadedPage.results, { uid, field, action: 'load' }),\n };\n },\n});\n\nexport default (ctx: {\n strapi: Core.Strapi;\n db: Database;\n}): Decoratable<Modules.EntityService.EntityService> => {\n const implementation = createDefaultImplementation(ctx);\n\n const service = {\n implementation,\n decorate<T extends object>(decorator: (current: typeof implementation) => T) {\n if (typeof decorator !== 'function') {\n throw new Error(`Decorator must be a function, received ${typeof decorator}`);\n }\n\n this.implementation = { ...this.implementation, ...decorator(this.implementation) };\n return this;\n },\n };\n\n const delegator = delegate(service, 'implementation');\n\n // delegate every method in implementation\n Object.keys(service.implementation).forEach((key) => delegator.method(key));\n\n // wrap methods to handle Database Errors\n service.decorate((oldService: Modules.EntityService.EntityService) => {\n const newService = _.mapValues(\n oldService,\n (method, methodName: keyof Modules.EntityService.EntityService) =>\n async function (this: Modules.EntityService.EntityService, ...args: []) {\n try {\n return await (oldService[methodName] as Utils.Function.AnyPromise).call(this, ...args);\n } catch (error) {\n if (\n databaseErrorsToTransform.some(\n (errorToTransform) => error instanceof errorToTransform\n )\n ) {\n if (error instanceof Error) {\n throw new errors.ValidationError(error.message);\n }\n\n throw error;\n }\n throw error;\n }\n }\n );\n\n return newService;\n });\n\n return service as unknown as Decoratable<Modules.EntityService.EntityService>;\n};\n"],"names":["databaseErrors","strapi","contentTypesUtils","_","relationUtils","delegate","errors"],"mappings":"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"}
@@ -1,167 +0,0 @@
1
- import _ from "lodash";
2
- import delegate from "delegates";
3
- import { errors } from "@strapi/database";
4
- import { errors as errors$1, contentTypes, relations } from "@strapi/utils";
5
- const transformLoadParamsToQuery = (uid, field, params, pagination = {}) => {
6
- const query = strapi.get("query-params").transform(uid, { populate: { [field]: params } });
7
- const res = {
8
- ...query.populate[field],
9
- ...pagination
10
- };
11
- return res;
12
- };
13
- const databaseErrorsToTransform = [
14
- errors.InvalidTimeError,
15
- errors.InvalidDateTimeError,
16
- errors.InvalidDateError,
17
- errors.InvalidRelationError
18
- ];
19
- const createDefaultImplementation = ({
20
- strapi: strapi2,
21
- db
22
- }) => ({
23
- async wrapParams(options = {}) {
24
- return options;
25
- },
26
- async wrapResult(result = {}) {
27
- return result;
28
- },
29
- async findMany(uid, opts) {
30
- const { kind } = strapi2.getModel(uid);
31
- const wrappedParams = await this.wrapParams(opts, { uid, action: "findMany" });
32
- if (kind === "singleType") {
33
- const entity = strapi2.documents(uid).findFirst(wrappedParams);
34
- return this.wrapResult(entity, { uid, action: "findOne" });
35
- }
36
- const entities = await strapi2.documents(uid).findMany(wrappedParams);
37
- return this.wrapResult(entities, { uid, action: "findMany" });
38
- },
39
- async findPage(uid, opts) {
40
- const wrappedParams = await this.wrapParams(opts, { uid, action: "findPage" });
41
- const query = strapi2.get("query-params").transform(uid, wrappedParams);
42
- const entities = await db.query(uid).findPage(query);
43
- return this.wrapResult(entities, { uid, action: "findMany" });
44
- },
45
- async findOne(uid, entityId, opts) {
46
- const wrappedParams = await this.wrapParams(opts, { uid, action: "findOne" });
47
- const res = await db.query(uid).findOne({ where: { id: entityId } });
48
- if (!res) {
49
- return this.wrapResult(null, { uid, action: "findOne" });
50
- }
51
- const entity = await strapi2.documents(uid).findOne({
52
- ...wrappedParams,
53
- documentId: res.documentId
54
- });
55
- return this.wrapResult(entity, { uid, action: "findOne" });
56
- },
57
- async count(uid, opts) {
58
- const wrappedParams = await this.wrapParams(opts, { uid, action: "count" });
59
- return strapi2.documents(uid).count(wrappedParams);
60
- },
61
- async create(uid, params) {
62
- const wrappedParams = await this.wrapParams(params, { uid, action: "create" });
63
- const { data } = wrappedParams;
64
- if (!data) {
65
- throw new Error("cannot create");
66
- }
67
- const shouldPublish = !contentTypes.isDraft(data, strapi2.getModel(uid));
68
- const entity = await strapi2.documents(uid).create({
69
- ...wrappedParams,
70
- status: shouldPublish ? "published" : "draft"
71
- });
72
- return this.wrapResult(entity, { uid, action: "create" });
73
- },
74
- async update(uid, entityId, opts) {
75
- const wrappedParams = await this.wrapParams(opts, {
76
- uid,
77
- action: "update"
78
- });
79
- const entityToUpdate = await db.query(uid).findOne({ where: { id: entityId } });
80
- if (!entityToUpdate) {
81
- return this.wrapResult(null, { uid, action: "update" });
82
- }
83
- const shouldPublish = !contentTypes.isDraft(entityToUpdate, strapi2.getModel(uid));
84
- const entity = strapi2.documents(uid).update({
85
- ...wrappedParams,
86
- status: shouldPublish ? "published" : "draft",
87
- documentId: entityToUpdate.documentId
88
- });
89
- return this.wrapResult(entity, { uid, action: "update" });
90
- },
91
- async delete(uid, entityId, opts) {
92
- const wrappedParams = await this.wrapParams(opts, { uid, action: "delete" });
93
- const entityToDelete = await db.query(uid).findOne({ where: { id: entityId } });
94
- if (!entityToDelete) {
95
- return this.wrapResult(null, { uid, action: "delete" });
96
- }
97
- await strapi2.documents(uid).delete({
98
- ...wrappedParams,
99
- documentId: entityToDelete.documentId
100
- });
101
- return this.wrapResult(entityToDelete, { uid, action: "delete" });
102
- },
103
- async load(uid, entity, field, params) {
104
- if (!_.isString(field)) {
105
- throw new Error(`Invalid load. Expected "${field}" to be a string`);
106
- }
107
- const loadedEntity = await db.query(uid).load(entity, field, transformLoadParamsToQuery(uid, field, params ?? {}));
108
- return this.wrapResult(loadedEntity, { uid, field, action: "load" });
109
- },
110
- async loadPages(uid, entity, field, params, pagination = {}) {
111
- if (!_.isString(field)) {
112
- throw new Error(`Invalid load. Expected "${field}" to be a string`);
113
- }
114
- const { attributes } = strapi2.getModel(uid);
115
- const attribute = attributes[field];
116
- if (!relations.isAnyToMany(attribute)) {
117
- throw new Error(`Invalid load. Expected "${field}" to be an anyToMany relational attribute`);
118
- }
119
- const query = transformLoadParamsToQuery(uid, field, params ?? {}, pagination);
120
- const loadedPage = await db.query(uid).loadPages(entity, field, query);
121
- return {
122
- ...loadedPage,
123
- results: await this.wrapResult(loadedPage.results, { uid, field, action: "load" })
124
- };
125
- }
126
- });
127
- const createEntityService = (ctx) => {
128
- const implementation = createDefaultImplementation(ctx);
129
- const service = {
130
- implementation,
131
- decorate(decorator) {
132
- if (typeof decorator !== "function") {
133
- throw new Error(`Decorator must be a function, received ${typeof decorator}`);
134
- }
135
- this.implementation = { ...this.implementation, ...decorator(this.implementation) };
136
- return this;
137
- }
138
- };
139
- const delegator = delegate(service, "implementation");
140
- Object.keys(service.implementation).forEach((key) => delegator.method(key));
141
- service.decorate((oldService) => {
142
- const newService = _.mapValues(
143
- oldService,
144
- (method, methodName) => async function(...args) {
145
- try {
146
- return await oldService[methodName].call(this, ...args);
147
- } catch (error) {
148
- if (databaseErrorsToTransform.some(
149
- (errorToTransform) => error instanceof errorToTransform
150
- )) {
151
- if (error instanceof Error) {
152
- throw new errors$1.ValidationError(error.message);
153
- }
154
- throw error;
155
- }
156
- throw error;
157
- }
158
- }
159
- );
160
- return newService;
161
- });
162
- return service;
163
- };
164
- export {
165
- createEntityService as default
166
- };
167
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/services/entity-service/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport delegate from 'delegates';\nimport { errors as databaseErrors } from '@strapi/database';\nimport {\n contentTypes as contentTypesUtils,\n errors,\n relations as relationUtils,\n} from '@strapi/utils';\nimport type { Database } from '@strapi/database';\nimport type { Core, Modules, Utils } from '@strapi/types';\n\ntype Decoratable<T> = T & {\n decorate(\n decorator: (old: Modules.EntityService.EntityService) => Modules.EntityService.EntityService & {\n [key: string]: unknown;\n }\n ): void;\n};\n\nconst transformLoadParamsToQuery = (\n uid: string,\n field: string,\n params: Record<string, unknown>,\n pagination = {}\n) => {\n const query = strapi\n .get('query-params')\n .transform(uid, { populate: { [field]: params } as any }) as any;\n\n const res = {\n ...query.populate[field],\n ...pagination,\n };\n\n return res;\n};\n\nconst databaseErrorsToTransform = [\n databaseErrors.InvalidTimeError,\n databaseErrors.InvalidDateTimeError,\n databaseErrors.InvalidDateError,\n databaseErrors.InvalidRelationError,\n];\n\nconst createDefaultImplementation = ({\n strapi,\n db,\n}: {\n strapi: Core.Strapi;\n db: Database;\n}): Modules.EntityService.EntityService => ({\n async wrapParams(options: any = {}) {\n return options;\n },\n\n async wrapResult(result: any = {}) {\n return result;\n },\n\n async findMany(uid, opts) {\n const { kind } = strapi.getModel(uid);\n\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'findMany' });\n\n if (kind === 'singleType') {\n const entity = strapi.documents!(uid).findFirst(wrappedParams);\n return this.wrapResult(entity, { uid, action: 'findOne' });\n }\n\n const entities = await strapi.documents!(uid).findMany(wrappedParams);\n return this.wrapResult(entities, { uid, action: 'findMany' });\n },\n\n async findPage(uid, opts) {\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'findPage' });\n\n const query = strapi.get('query-params').transform(uid, wrappedParams);\n\n const entities = await db.query(uid).findPage(query);\n return this.wrapResult(entities, { uid, action: 'findMany' });\n },\n\n async findOne(uid, entityId, opts) {\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'findOne' });\n\n const res = await db.query(uid).findOne({ where: { id: entityId } });\n\n if (!res) {\n return this.wrapResult(null, { uid, action: 'findOne' });\n }\n\n const entity = await strapi.documents!(uid).findOne({\n ...wrappedParams,\n documentId: res.documentId,\n });\n return this.wrapResult(entity, { uid, action: 'findOne' });\n },\n\n async count(uid, opts) {\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'count' });\n\n return strapi.documents!(uid).count(wrappedParams);\n },\n\n async create(uid, params) {\n const wrappedParams = await this.wrapParams<\n Modules.EntityService.Params.Pick<typeof uid, 'data' | 'fields' | 'populate'>\n >(params, { uid, action: 'create' });\n const { data } = wrappedParams;\n\n if (!data) {\n throw new Error('cannot create');\n }\n\n const shouldPublish = !contentTypesUtils.isDraft(data, strapi.getModel(uid));\n\n const entity = await strapi.documents!(uid).create({\n ...(wrappedParams as any),\n status: shouldPublish ? 'published' : 'draft',\n });\n\n return this.wrapResult(entity, { uid, action: 'create' });\n },\n\n async update(uid, entityId, opts) {\n const wrappedParams = await this.wrapParams<\n Modules.EntityService.Params.Pick<typeof uid, 'data:partial' | 'fields' | 'populate'>\n >(opts, {\n uid,\n action: 'update',\n });\n const entityToUpdate = await db.query(uid).findOne({ where: { id: entityId } });\n\n if (!entityToUpdate) {\n return this.wrapResult(null, { uid, action: 'update' });\n }\n\n const shouldPublish = !contentTypesUtils.isDraft(entityToUpdate, strapi.getModel(uid));\n\n const entity = strapi.documents!(uid).update({\n ...(wrappedParams as any),\n status: shouldPublish ? 'published' : 'draft',\n documentId: entityToUpdate.documentId,\n });\n\n return this.wrapResult(entity, { uid, action: 'update' });\n },\n\n async delete(uid, entityId, opts) {\n const wrappedParams = await this.wrapParams(opts, { uid, action: 'delete' });\n\n const entityToDelete = await db.query(uid).findOne({ where: { id: entityId } });\n\n if (!entityToDelete) {\n return this.wrapResult(null, { uid, action: 'delete' });\n }\n\n await strapi.documents!(uid).delete({\n ...wrappedParams,\n documentId: entityToDelete.documentId,\n });\n\n return this.wrapResult(entityToDelete, { uid, action: 'delete' });\n },\n\n async load(uid, entity, field, params) {\n if (!_.isString(field)) {\n throw new Error(`Invalid load. Expected \"${field}\" to be a string`);\n }\n\n const loadedEntity = await db\n .query(uid)\n .load(entity, field, transformLoadParamsToQuery(uid, field, params ?? {}));\n\n return this.wrapResult(loadedEntity, { uid, field, action: 'load' });\n },\n\n async loadPages(uid, entity, field, params, pagination = {}) {\n if (!_.isString(field)) {\n throw new Error(`Invalid load. Expected \"${field}\" to be a string`);\n }\n\n const { attributes } = strapi.getModel(uid);\n const attribute = attributes[field];\n\n if (!relationUtils.isAnyToMany(attribute)) {\n throw new Error(`Invalid load. Expected \"${field}\" to be an anyToMany relational attribute`);\n }\n\n const query = transformLoadParamsToQuery(uid, field, params ?? {}, pagination);\n\n const loadedPage = await db.query(uid).loadPages(entity, field, query);\n\n return {\n ...loadedPage,\n results: await this.wrapResult(loadedPage.results, { uid, field, action: 'load' }),\n };\n },\n});\n\nexport default (ctx: {\n strapi: Core.Strapi;\n db: Database;\n}): Decoratable<Modules.EntityService.EntityService> => {\n const implementation = createDefaultImplementation(ctx);\n\n const service = {\n implementation,\n decorate<T extends object>(decorator: (current: typeof implementation) => T) {\n if (typeof decorator !== 'function') {\n throw new Error(`Decorator must be a function, received ${typeof decorator}`);\n }\n\n this.implementation = { ...this.implementation, ...decorator(this.implementation) };\n return this;\n },\n };\n\n const delegator = delegate(service, 'implementation');\n\n // delegate every method in implementation\n Object.keys(service.implementation).forEach((key) => delegator.method(key));\n\n // wrap methods to handle Database Errors\n service.decorate((oldService: Modules.EntityService.EntityService) => {\n const newService = _.mapValues(\n oldService,\n (method, methodName: keyof Modules.EntityService.EntityService) =>\n async function (this: Modules.EntityService.EntityService, ...args: []) {\n try {\n return await (oldService[methodName] as Utils.Function.AnyPromise).call(this, ...args);\n } catch (error) {\n if (\n databaseErrorsToTransform.some(\n (errorToTransform) => error instanceof errorToTransform\n )\n ) {\n if (error instanceof Error) {\n throw new errors.ValidationError(error.message);\n }\n\n throw error;\n }\n throw error;\n }\n }\n );\n\n return newService;\n });\n\n return service as unknown as Decoratable<Modules.EntityService.EntityService>;\n};\n"],"names":["databaseErrors","strapi","contentTypesUtils","relationUtils","errors"],"mappings":"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"}
@@ -1,127 +0,0 @@
1
- "use strict";
2
- const strapiUtils = require("@strapi/utils");
3
- const textNodeValidator = strapiUtils.yup.object().shape({
4
- type: strapiUtils.yup.string().equals(["text"]).required(),
5
- text: strapiUtils.yup.string().test(
6
- "is-valid-text",
7
- "Text must be defined with at least an empty string",
8
- (text) => {
9
- return typeof text === "string" || text === "";
10
- }
11
- ),
12
- bold: strapiUtils.yup.boolean(),
13
- italic: strapiUtils.yup.boolean(),
14
- underline: strapiUtils.yup.boolean(),
15
- strikethrough: strapiUtils.yup.boolean(),
16
- code: strapiUtils.yup.boolean()
17
- });
18
- const checkValidLink = (link) => {
19
- try {
20
- new URL(link.startsWith("/") ? `https://strapi.io${link}` : link);
21
- } catch (error) {
22
- return false;
23
- }
24
- return true;
25
- };
26
- const linkNodeValidator = strapiUtils.yup.object().shape({
27
- type: strapiUtils.yup.string().equals(["link"]).required(),
28
- url: strapiUtils.yup.string().test("invalid-url", "Please specify a valid link.", (value) => checkValidLink(value ?? "")),
29
- children: strapiUtils.yup.array().of(textNodeValidator).required()
30
- });
31
- const inlineNodeValidator = strapiUtils.yup.lazy((value) => {
32
- switch (value.type) {
33
- case "text":
34
- return textNodeValidator;
35
- case "link":
36
- return linkNodeValidator;
37
- default:
38
- return strapiUtils.yup.mixed().test("invalid-type", "Inline node must be Text or Link", () => {
39
- return false;
40
- });
41
- }
42
- });
43
- const paragraphNodeValidator = strapiUtils.yup.object().shape({
44
- type: strapiUtils.yup.string().equals(["paragraph"]).required(),
45
- children: strapiUtils.yup.array().of(inlineNodeValidator).min(1, "Paragraph node children must have at least one Text or Link node").required()
46
- });
47
- const headingNodeValidator = strapiUtils.yup.object().shape({
48
- type: strapiUtils.yup.string().equals(["heading"]).required(),
49
- level: strapiUtils.yup.number().oneOf([1, 2, 3, 4, 5, 6]).required(),
50
- children: strapiUtils.yup.array().of(inlineNodeValidator).min(1, "Heading node children must have at least one Text or Link node").required()
51
- });
52
- const quoteNodeValidator = strapiUtils.yup.object().shape({
53
- type: strapiUtils.yup.string().equals(["quote"]).required(),
54
- children: strapiUtils.yup.array().of(inlineNodeValidator).min(1, "Quote node children must have at least one Text or Link node").required()
55
- });
56
- const codeBlockValidator = strapiUtils.yup.object().shape({
57
- type: strapiUtils.yup.string().equals(["code"]).required(),
58
- syntax: strapiUtils.yup.string().nullable(),
59
- children: strapiUtils.yup.array().of(textNodeValidator).min(1, "Quote node children must have at least one Text or Link node").required()
60
- });
61
- const listItemNode = strapiUtils.yup.object().shape({
62
- type: strapiUtils.yup.string().equals(["list-item"]).required(),
63
- children: strapiUtils.yup.array().of(inlineNodeValidator).required()
64
- });
65
- const listChildrenValidator = strapiUtils.yup.lazy((value) => {
66
- switch (value.type) {
67
- case "list":
68
- return listNodeValidator;
69
- case "list-item":
70
- return listItemNode;
71
- default:
72
- return strapiUtils.yup.mixed().test("invalid-type", "Inline node must be list-item or list", () => {
73
- return false;
74
- });
75
- }
76
- });
77
- const listNodeValidator = strapiUtils.yup.object().shape({
78
- type: strapiUtils.yup.string().equals(["list"]).required(),
79
- format: strapiUtils.yup.string().equals(["ordered", "unordered"]).required(),
80
- children: strapiUtils.yup.array().of(listChildrenValidator).min(1, "List node children must have at least one ListItem or ListNode").required()
81
- });
82
- const imageNodeValidator = strapiUtils.yup.object().shape({
83
- type: strapiUtils.yup.string().equals(["image"]).required(),
84
- image: strapiUtils.yup.object().shape({
85
- name: strapiUtils.yup.string().required(),
86
- alternativeText: strapiUtils.yup.string().nullable(),
87
- url: strapiUtils.yup.string().required(),
88
- caption: strapiUtils.yup.string().nullable(),
89
- width: strapiUtils.yup.number().required(),
90
- height: strapiUtils.yup.number().required(),
91
- formats: strapiUtils.yup.object().required(),
92
- hash: strapiUtils.yup.string().required(),
93
- ext: strapiUtils.yup.string().required(),
94
- mime: strapiUtils.yup.string().required(),
95
- size: strapiUtils.yup.number().required(),
96
- previewUrl: strapiUtils.yup.string().nullable(),
97
- provider: strapiUtils.yup.string().required(),
98
- provider_metadata: strapiUtils.yup.mixed().nullable(),
99
- createdAt: strapiUtils.yup.string().required(),
100
- updatedAt: strapiUtils.yup.string().required()
101
- }),
102
- children: strapiUtils.yup.array().of(inlineNodeValidator).required()
103
- });
104
- const blockNodeValidator = strapiUtils.yup.lazy((value) => {
105
- switch (value.type) {
106
- case "paragraph":
107
- return paragraphNodeValidator;
108
- case "heading":
109
- return headingNodeValidator;
110
- case "quote":
111
- return quoteNodeValidator;
112
- case "list":
113
- return listNodeValidator;
114
- case "image":
115
- return imageNodeValidator;
116
- case "code":
117
- return codeBlockValidator;
118
- default:
119
- return strapiUtils.yup.mixed().test("invalid-type", "Block node is of invalid type", () => {
120
- return false;
121
- });
122
- }
123
- });
124
- const blocksValidator = strapiUtils.yup.array().of(blockNodeValidator);
125
- const blocksValidator$1 = (metas, options) => blocksValidator;
126
- module.exports = blocksValidator$1;
127
- //# sourceMappingURL=blocks-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blocks-validator.js","sources":["../../../src/services/entity-validator/blocks-validator.ts"],"sourcesContent":["import { yup } from '@strapi/utils';\n\nconst textNodeValidator = yup.object().shape({\n type: yup.string().equals(['text']).required(),\n text: yup\n .string()\n .test(\n 'is-valid-text',\n 'Text must be defined with at least an empty string',\n (text: unknown) => {\n return typeof text === 'string' || text === '';\n }\n ),\n bold: yup.boolean(),\n italic: yup.boolean(),\n underline: yup.boolean(),\n strikethrough: yup.boolean(),\n code: yup.boolean(),\n});\n\nconst checkValidLink = (link: string) => {\n try {\n // eslint-disable-next-line no-new\n new URL(link.startsWith('/') ? `https://strapi.io${link}` : link);\n } catch (error) {\n return false;\n }\n return true;\n};\n\nconst linkNodeValidator = yup.object().shape({\n type: yup.string().equals(['link']).required(),\n url: yup\n .string()\n .test('invalid-url', 'Please specify a valid link.', (value) => checkValidLink(value ?? '')),\n children: yup.array().of(textNodeValidator).required(),\n});\n\n// TODO: remove any with a correct Type\nconst inlineNodeValidator: any = yup.lazy((value: { type: string }) => {\n switch (value.type) {\n case 'text':\n return textNodeValidator;\n case 'link':\n return linkNodeValidator;\n default:\n return yup.mixed().test('invalid-type', 'Inline node must be Text or Link', () => {\n return false;\n });\n }\n});\n\nconst paragraphNodeValidator = yup.object().shape({\n type: yup.string().equals(['paragraph']).required(),\n children: yup\n .array()\n .of(inlineNodeValidator)\n .min(1, 'Paragraph node children must have at least one Text or Link node')\n .required(),\n});\n\nconst headingNodeValidator = yup.object().shape({\n type: yup.string().equals(['heading']).required(),\n level: yup.number().oneOf([1, 2, 3, 4, 5, 6]).required(),\n children: yup\n .array()\n .of(inlineNodeValidator)\n .min(1, 'Heading node children must have at least one Text or Link node')\n .required(),\n});\n\nconst quoteNodeValidator = yup.object().shape({\n type: yup.string().equals(['quote']).required(),\n children: yup\n .array()\n .of(inlineNodeValidator)\n .min(1, 'Quote node children must have at least one Text or Link node')\n .required(),\n});\n\nconst codeBlockValidator = yup.object().shape({\n type: yup.string().equals(['code']).required(),\n syntax: yup.string().nullable(),\n children: yup\n .array()\n .of(textNodeValidator)\n .min(1, 'Quote node children must have at least one Text or Link node')\n .required(),\n});\n\nconst listItemNode = yup.object().shape({\n type: yup.string().equals(['list-item']).required(),\n children: yup.array().of(inlineNodeValidator).required(),\n});\n\n// Allow children to be either a listItemNode or a listNode itself\n// @ts-expect-error - listChildrenValidator needs a type\nconst listChildrenValidator = yup.lazy((value: { type: string }) => {\n switch (value.type) {\n case 'list':\n return listNodeValidator;\n case 'list-item':\n return listItemNode;\n default:\n return yup.mixed().test('invalid-type', 'Inline node must be list-item or list', () => {\n return false;\n });\n }\n});\n\n// @ts-expect-error - listNodeValidator needs a type\nconst listNodeValidator = yup.object().shape({\n type: yup.string().equals(['list']).required(),\n format: yup.string().equals(['ordered', 'unordered']).required(),\n children: yup\n .array()\n .of(listChildrenValidator)\n .min(1, 'List node children must have at least one ListItem or ListNode')\n .required(),\n});\n\nconst imageNodeValidator = yup.object().shape({\n type: yup.string().equals(['image']).required(),\n image: yup.object().shape({\n name: yup.string().required(),\n alternativeText: yup.string().nullable(),\n url: yup.string().required(),\n caption: yup.string().nullable(),\n width: yup.number().required(),\n height: yup.number().required(),\n formats: yup.object().required(),\n hash: yup.string().required(),\n ext: yup.string().required(),\n mime: yup.string().required(),\n size: yup.number().required(),\n previewUrl: yup.string().nullable(),\n provider: yup.string().required(),\n provider_metadata: yup.mixed().nullable(),\n createdAt: yup.string().required(),\n updatedAt: yup.string().required(),\n }),\n children: yup.array().of(inlineNodeValidator).required(),\n});\n\n// TODO: remove the any and replace with a correct Type\nconst blockNodeValidator: any = yup.lazy((value: { type: string }) => {\n switch (value.type) {\n case 'paragraph':\n return paragraphNodeValidator;\n case 'heading':\n return headingNodeValidator;\n case 'quote':\n return quoteNodeValidator;\n case 'list':\n return listNodeValidator;\n case 'image':\n return imageNodeValidator;\n case 'code':\n return codeBlockValidator;\n default:\n return yup.mixed().test('invalid-type', 'Block node is of invalid type', () => {\n return false;\n });\n }\n});\n\nconst blocksValidator = yup.array().of(blockNodeValidator);\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default (metas: any, options: any) => blocksValidator;\n"],"names":["yup"],"mappings":"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"}