@strapi/core 0.0.0-experimental.e60ec1829240dae21c1e1d29076681c322288813 → 0.0.0-experimental.e8d8fc824d0f6a695b2a9ebaa4680ed21c3645ca

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 (498) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +3 -1
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +71 -21
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +50 -19
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/compile.js.map +1 -1
  9. package/dist/compile.mjs.map +1 -1
  10. package/dist/configuration/config-loader.js +1 -2
  11. package/dist/configuration/config-loader.js.map +1 -1
  12. package/dist/configuration/config-loader.mjs +1 -2
  13. package/dist/configuration/config-loader.mjs.map +1 -1
  14. package/dist/configuration/get-dirs.js +2 -2
  15. package/dist/configuration/get-dirs.js.map +1 -1
  16. package/dist/configuration/get-dirs.mjs.map +1 -1
  17. package/dist/configuration/index.d.ts.map +1 -1
  18. package/dist/configuration/index.js +10 -5
  19. package/dist/configuration/index.js.map +1 -1
  20. package/dist/configuration/index.mjs +8 -3
  21. package/dist/configuration/index.mjs.map +1 -1
  22. package/dist/configuration/urls.js.map +1 -1
  23. package/dist/configuration/urls.mjs.map +1 -1
  24. package/dist/container.js.map +1 -1
  25. package/dist/container.mjs.map +1 -1
  26. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  27. package/dist/core-api/controller/collection-type.js +5 -3
  28. package/dist/core-api/controller/collection-type.js.map +1 -1
  29. package/dist/core-api/controller/collection-type.mjs +2 -0
  30. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  31. package/dist/core-api/controller/index.js +2 -2
  32. package/dist/core-api/controller/index.js.map +1 -1
  33. package/dist/core-api/controller/index.mjs.map +1 -1
  34. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  35. package/dist/core-api/controller/single-type.js +3 -2
  36. package/dist/core-api/controller/single-type.js.map +1 -1
  37. package/dist/core-api/controller/single-type.mjs +1 -0
  38. package/dist/core-api/controller/single-type.mjs.map +1 -1
  39. package/dist/core-api/controller/transform.js +8 -8
  40. package/dist/core-api/controller/transform.js.map +1 -1
  41. package/dist/core-api/controller/transform.mjs.map +1 -1
  42. package/dist/core-api/routes/index.js.map +1 -1
  43. package/dist/core-api/routes/index.mjs.map +1 -1
  44. package/dist/core-api/service/collection-type.d.ts +3 -9
  45. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  46. package/dist/core-api/service/collection-type.js +3 -2
  47. package/dist/core-api/service/collection-type.js.map +1 -1
  48. package/dist/core-api/service/collection-type.mjs +4 -3
  49. package/dist/core-api/service/collection-type.mjs.map +1 -1
  50. package/dist/core-api/service/core-service.js.map +1 -1
  51. package/dist/core-api/service/core-service.mjs.map +1 -1
  52. package/dist/core-api/service/index.js.map +1 -1
  53. package/dist/core-api/service/index.mjs.map +1 -1
  54. package/dist/core-api/service/pagination.d.ts +4 -11
  55. package/dist/core-api/service/pagination.d.ts.map +1 -1
  56. package/dist/core-api/service/pagination.js +18 -44
  57. package/dist/core-api/service/pagination.js.map +1 -1
  58. package/dist/core-api/service/pagination.mjs +16 -42
  59. package/dist/core-api/service/pagination.mjs.map +1 -1
  60. package/dist/core-api/service/single-type.js +1 -2
  61. package/dist/core-api/service/single-type.js.map +1 -1
  62. package/dist/core-api/service/single-type.mjs +1 -2
  63. package/dist/core-api/service/single-type.mjs.map +1 -1
  64. package/dist/domain/content-type/index.js +4 -4
  65. package/dist/domain/content-type/index.js.map +1 -1
  66. package/dist/domain/content-type/index.mjs.map +1 -1
  67. package/dist/domain/content-type/validator.js.map +1 -1
  68. package/dist/domain/content-type/validator.mjs.map +1 -1
  69. package/dist/domain/module/index.js.map +1 -1
  70. package/dist/domain/module/index.mjs.map +1 -1
  71. package/dist/domain/module/validation.js.map +1 -1
  72. package/dist/domain/module/validation.mjs.map +1 -1
  73. package/dist/ee/index.d.ts.map +1 -1
  74. package/dist/ee/index.js +9 -4
  75. package/dist/ee/index.js.map +1 -1
  76. package/dist/ee/index.mjs +6 -1
  77. package/dist/ee/index.mjs.map +1 -1
  78. package/dist/ee/license.js.map +1 -1
  79. package/dist/ee/license.mjs.map +1 -1
  80. package/dist/factories.js +4 -4
  81. package/dist/factories.js.map +1 -1
  82. package/dist/factories.mjs.map +1 -1
  83. package/dist/index.d.ts +14 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js.map +1 -1
  86. package/dist/index.mjs.map +1 -1
  87. package/dist/loaders/admin.js.map +1 -1
  88. package/dist/loaders/admin.mjs.map +1 -1
  89. package/dist/loaders/apis.js +2 -2
  90. package/dist/loaders/apis.js.map +1 -1
  91. package/dist/loaders/apis.mjs.map +1 -1
  92. package/dist/loaders/components.js.map +1 -1
  93. package/dist/loaders/components.mjs.map +1 -1
  94. package/dist/loaders/middlewares.js.map +1 -1
  95. package/dist/loaders/middlewares.mjs.map +1 -1
  96. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  97. package/dist/loaders/plugins/get-enabled-plugins.js +40 -12
  98. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  99. package/dist/loaders/plugins/get-enabled-plugins.mjs +10 -4
  100. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  101. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  102. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  103. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  104. package/dist/loaders/plugins/index.d.ts.map +1 -1
  105. package/dist/loaders/plugins/index.js +33 -7
  106. package/dist/loaders/plugins/index.js.map +1 -1
  107. package/dist/loaders/plugins/index.mjs +9 -1
  108. package/dist/loaders/plugins/index.mjs.map +1 -1
  109. package/dist/loaders/policies.js.map +1 -1
  110. package/dist/loaders/policies.mjs.map +1 -1
  111. package/dist/loaders/sanitizers.js.map +1 -1
  112. package/dist/loaders/sanitizers.mjs.map +1 -1
  113. package/dist/loaders/src-index.js.map +1 -1
  114. package/dist/loaders/src-index.mjs.map +1 -1
  115. package/dist/loaders/validators.js.map +1 -1
  116. package/dist/loaders/validators.mjs.map +1 -1
  117. package/dist/middlewares/body.js +2 -2
  118. package/dist/middlewares/body.js.map +1 -1
  119. package/dist/middlewares/body.mjs.map +1 -1
  120. package/dist/middlewares/cors.d.ts.map +1 -1
  121. package/dist/middlewares/cors.js +9 -7
  122. package/dist/middlewares/cors.js.map +1 -1
  123. package/dist/middlewares/cors.mjs +9 -7
  124. package/dist/middlewares/cors.mjs.map +1 -1
  125. package/dist/middlewares/errors.js.map +1 -1
  126. package/dist/middlewares/errors.mjs.map +1 -1
  127. package/dist/middlewares/favicon.js.map +1 -1
  128. package/dist/middlewares/favicon.mjs.map +1 -1
  129. package/dist/middlewares/index.js.map +1 -1
  130. package/dist/middlewares/logger.js.map +1 -1
  131. package/dist/middlewares/logger.mjs.map +1 -1
  132. package/dist/middlewares/powered-by.js.map +1 -1
  133. package/dist/middlewares/powered-by.mjs.map +1 -1
  134. package/dist/middlewares/public.js +2 -2
  135. package/dist/middlewares/public.js.map +1 -1
  136. package/dist/middlewares/public.mjs.map +1 -1
  137. package/dist/middlewares/query.d.ts.map +1 -1
  138. package/dist/middlewares/query.js.map +1 -1
  139. package/dist/middlewares/query.mjs.map +1 -1
  140. package/dist/middlewares/response-time.js.map +1 -1
  141. package/dist/middlewares/response-time.mjs.map +1 -1
  142. package/dist/middlewares/responses.js +2 -2
  143. package/dist/middlewares/responses.js.map +1 -1
  144. package/dist/middlewares/responses.mjs.map +1 -1
  145. package/dist/middlewares/security.d.ts.map +1 -1
  146. package/dist/middlewares/security.js +12 -5
  147. package/dist/middlewares/security.js.map +1 -1
  148. package/dist/middlewares/security.mjs +11 -4
  149. package/dist/middlewares/security.mjs.map +1 -1
  150. package/dist/middlewares/session.js +2 -2
  151. package/dist/middlewares/session.js.map +1 -1
  152. package/dist/middlewares/session.mjs.map +1 -1
  153. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +27 -6
  154. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  155. package/dist/migrations/database/5.0.0-discard-drafts.js +68 -11
  156. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  157. package/dist/migrations/database/5.0.0-discard-drafts.mjs +70 -13
  158. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  159. package/dist/migrations/draft-publish.d.ts +1 -1
  160. package/dist/migrations/draft-publish.d.ts.map +1 -1
  161. package/dist/migrations/draft-publish.js +14 -31
  162. package/dist/migrations/draft-publish.js.map +1 -1
  163. package/dist/migrations/draft-publish.mjs +15 -32
  164. package/dist/migrations/draft-publish.mjs.map +1 -1
  165. package/dist/migrations/i18n.d.ts +5 -0
  166. package/dist/migrations/i18n.d.ts.map +1 -0
  167. package/dist/migrations/i18n.js +54 -0
  168. package/dist/migrations/i18n.js.map +1 -0
  169. package/dist/migrations/i18n.mjs +54 -0
  170. package/dist/migrations/i18n.mjs.map +1 -0
  171. package/dist/migrations/index.d.ts +5 -0
  172. package/dist/migrations/index.d.ts.map +1 -0
  173. package/dist/migrations/index.js +15 -0
  174. package/dist/migrations/index.js.map +1 -0
  175. package/dist/migrations/index.mjs +15 -0
  176. package/dist/migrations/index.mjs.map +1 -0
  177. package/dist/providers/admin.d.ts.map +1 -1
  178. package/dist/providers/admin.js.map +1 -1
  179. package/dist/providers/admin.mjs.map +1 -1
  180. package/dist/providers/coreStore.js.map +1 -1
  181. package/dist/providers/coreStore.mjs.map +1 -1
  182. package/dist/providers/cron.js.map +1 -1
  183. package/dist/providers/cron.mjs.map +1 -1
  184. package/dist/providers/registries.js +3 -3
  185. package/dist/providers/registries.js.map +1 -1
  186. package/dist/providers/registries.mjs +3 -3
  187. package/dist/providers/registries.mjs.map +1 -1
  188. package/dist/providers/telemetry.js.map +1 -1
  189. package/dist/providers/telemetry.mjs.map +1 -1
  190. package/dist/providers/webhooks.js.map +1 -1
  191. package/dist/providers/webhooks.mjs.map +1 -1
  192. package/dist/registries/apis.js +2 -2
  193. package/dist/registries/apis.js.map +1 -1
  194. package/dist/registries/apis.mjs.map +1 -1
  195. package/dist/registries/components.js +2 -2
  196. package/dist/registries/components.js.map +1 -1
  197. package/dist/registries/components.mjs.map +1 -1
  198. package/dist/registries/content-types.js +3 -3
  199. package/dist/registries/content-types.js.map +1 -1
  200. package/dist/registries/content-types.mjs.map +1 -1
  201. package/dist/registries/controllers.js +3 -3
  202. package/dist/registries/controllers.js.map +1 -1
  203. package/dist/registries/controllers.mjs.map +1 -1
  204. package/dist/registries/custom-fields.js +4 -4
  205. package/dist/registries/custom-fields.js.map +1 -1
  206. package/dist/registries/custom-fields.mjs.map +1 -1
  207. package/dist/registries/hooks.js +2 -2
  208. package/dist/registries/hooks.js.map +1 -1
  209. package/dist/registries/hooks.mjs.map +1 -1
  210. package/dist/registries/middlewares.js +3 -3
  211. package/dist/registries/middlewares.js.map +1 -1
  212. package/dist/registries/middlewares.mjs.map +1 -1
  213. package/dist/registries/models.js.map +1 -1
  214. package/dist/registries/models.mjs.map +1 -1
  215. package/dist/registries/modules.js +3 -3
  216. package/dist/registries/modules.js.map +1 -1
  217. package/dist/registries/modules.mjs.map +1 -1
  218. package/dist/registries/namespace.js.map +1 -1
  219. package/dist/registries/namespace.mjs.map +1 -1
  220. package/dist/registries/plugins.js +2 -2
  221. package/dist/registries/plugins.js.map +1 -1
  222. package/dist/registries/plugins.mjs.map +1 -1
  223. package/dist/registries/policies.d.ts +1 -1
  224. package/dist/registries/policies.d.ts.map +1 -1
  225. package/dist/registries/policies.js +5 -5
  226. package/dist/registries/policies.js.map +1 -1
  227. package/dist/registries/policies.mjs +1 -1
  228. package/dist/registries/policies.mjs.map +1 -1
  229. package/dist/registries/sanitizers.js.map +1 -1
  230. package/dist/registries/sanitizers.mjs.map +1 -1
  231. package/dist/registries/services.js +3 -3
  232. package/dist/registries/services.js.map +1 -1
  233. package/dist/registries/services.mjs.map +1 -1
  234. package/dist/registries/validators.js.map +1 -1
  235. package/dist/registries/validators.mjs.map +1 -1
  236. package/dist/services/auth/index.js +3 -3
  237. package/dist/services/auth/index.js.map +1 -1
  238. package/dist/services/auth/index.mjs.map +1 -1
  239. package/dist/services/config.js.map +1 -1
  240. package/dist/services/config.mjs.map +1 -1
  241. package/dist/services/content-api/index.d.ts +10 -12
  242. package/dist/services/content-api/index.d.ts.map +1 -1
  243. package/dist/services/content-api/index.js.map +1 -1
  244. package/dist/services/content-api/index.mjs.map +1 -1
  245. package/dist/services/content-api/permissions/index.d.ts +10 -12
  246. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  247. package/dist/services/content-api/permissions/index.js.map +1 -1
  248. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  249. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  250. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  251. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  252. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  253. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  254. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  255. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  256. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  257. package/dist/services/core-store.js +3 -3
  258. package/dist/services/core-store.js.map +1 -1
  259. package/dist/services/core-store.mjs.map +1 -1
  260. package/dist/services/cron.d.ts +3 -3
  261. package/dist/services/cron.d.ts.map +1 -1
  262. package/dist/services/cron.js +12 -8
  263. package/dist/services/cron.js.map +1 -1
  264. package/dist/services/cron.mjs +9 -5
  265. package/dist/services/cron.mjs.map +1 -1
  266. package/dist/services/custom-fields.js.map +1 -1
  267. package/dist/services/custom-fields.mjs.map +1 -1
  268. package/dist/services/document-service/attributes/index.js +2 -2
  269. package/dist/services/document-service/attributes/index.js.map +1 -1
  270. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  271. package/dist/services/document-service/attributes/transforms.js +3 -3
  272. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  273. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  274. package/dist/services/document-service/common.d.ts +1 -1
  275. package/dist/services/document-service/common.d.ts.map +1 -1
  276. package/dist/services/document-service/common.js.map +1 -1
  277. package/dist/services/document-service/common.mjs.map +1 -1
  278. package/dist/services/document-service/components.js +15 -15
  279. package/dist/services/document-service/components.js.map +1 -1
  280. package/dist/services/document-service/components.mjs.map +1 -1
  281. package/dist/services/document-service/draft-and-publish.js +16 -16
  282. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  283. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  284. package/dist/services/document-service/entries.d.ts +2 -2
  285. package/dist/services/document-service/entries.d.ts.map +1 -1
  286. package/dist/services/document-service/entries.js +11 -12
  287. package/dist/services/document-service/entries.js.map +1 -1
  288. package/dist/services/document-service/entries.mjs +1 -2
  289. package/dist/services/document-service/entries.mjs.map +1 -1
  290. package/dist/services/document-service/events.js.map +1 -1
  291. package/dist/services/document-service/events.mjs.map +1 -1
  292. package/dist/services/document-service/index.d.ts +2 -1
  293. package/dist/services/document-service/index.d.ts.map +1 -1
  294. package/dist/services/document-service/index.js +3 -2
  295. package/dist/services/document-service/index.js.map +1 -1
  296. package/dist/services/document-service/index.mjs +3 -2
  297. package/dist/services/document-service/index.mjs.map +1 -1
  298. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  299. package/dist/services/document-service/internationalization.js +21 -12
  300. package/dist/services/document-service/internationalization.js.map +1 -1
  301. package/dist/services/document-service/internationalization.mjs +14 -5
  302. package/dist/services/document-service/internationalization.mjs.map +1 -1
  303. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  304. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  305. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  306. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  307. package/dist/services/document-service/params.js +2 -2
  308. package/dist/services/document-service/params.js.map +1 -1
  309. package/dist/services/document-service/repository.d.ts.map +1 -1
  310. package/dist/services/document-service/repository.js +72 -18
  311. package/dist/services/document-service/repository.js.map +1 -1
  312. package/dist/services/document-service/repository.mjs +66 -12
  313. package/dist/services/document-service/repository.mjs.map +1 -1
  314. package/dist/services/document-service/transform/data.js.map +1 -1
  315. package/dist/services/document-service/transform/data.mjs.map +1 -1
  316. package/dist/services/document-service/transform/fields.js.map +1 -1
  317. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  318. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  319. package/dist/services/document-service/transform/id-map.js +15 -8
  320. package/dist/services/document-service/transform/id-map.js.map +1 -1
  321. package/dist/services/document-service/transform/id-map.mjs +16 -9
  322. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  323. package/dist/services/document-service/transform/id-transform.js +2 -2
  324. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  325. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  326. package/dist/services/document-service/transform/populate.js.map +1 -1
  327. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  328. package/dist/services/document-service/transform/query.js +3 -3
  329. package/dist/services/document-service/transform/query.js.map +1 -1
  330. package/dist/services/document-service/transform/query.mjs.map +1 -1
  331. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  332. package/dist/services/document-service/transform/relations/extract/data-ids.js +18 -8
  333. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  334. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +16 -6
  335. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  336. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  337. package/dist/services/document-service/transform/relations/transform/data-ids.js +22 -10
  338. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  339. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +21 -9
  340. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  341. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  342. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  343. package/dist/services/document-service/transform/relations/utils/dp.js +2 -2
  344. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  345. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  346. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  347. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  348. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  349. package/dist/services/document-service/transform/relations/utils/map-relation.js +12 -15
  350. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  351. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +7 -10
  352. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  353. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  354. package/dist/services/document-service/utils/populate.js +8 -2
  355. package/dist/services/document-service/utils/populate.js.map +1 -1
  356. package/dist/services/document-service/utils/populate.mjs +8 -2
  357. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  358. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  359. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  360. package/dist/services/document-service/utils/unidirectional-relations.js +68 -0
  361. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  362. package/dist/services/document-service/utils/unidirectional-relations.mjs +68 -0
  363. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  364. package/dist/services/entity-service/index.js.map +1 -1
  365. package/dist/services/entity-service/index.mjs.map +1 -1
  366. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  367. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  368. package/dist/services/entity-validator/blocks-validator.js +4 -3
  369. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  370. package/dist/services/entity-validator/blocks-validator.mjs +3 -3
  371. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  372. package/dist/services/entity-validator/index.d.ts +15 -1
  373. package/dist/services/entity-validator/index.d.ts.map +1 -1
  374. package/dist/services/entity-validator/index.js +109 -53
  375. package/dist/services/entity-validator/index.js.map +1 -1
  376. package/dist/services/entity-validator/index.mjs +95 -39
  377. package/dist/services/entity-validator/index.mjs.map +1 -1
  378. package/dist/services/entity-validator/validators.d.ts +36 -25
  379. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  380. package/dist/services/entity-validator/validators.js +148 -33
  381. package/dist/services/entity-validator/validators.js.map +1 -1
  382. package/dist/services/entity-validator/validators.mjs +140 -25
  383. package/dist/services/entity-validator/validators.mjs.map +1 -1
  384. package/dist/services/errors.js.map +1 -1
  385. package/dist/services/errors.mjs.map +1 -1
  386. package/dist/services/event-hub.js.map +1 -1
  387. package/dist/services/event-hub.mjs.map +1 -1
  388. package/dist/services/features.js.map +1 -1
  389. package/dist/services/features.mjs.map +1 -1
  390. package/dist/services/fs.js.map +1 -1
  391. package/dist/services/fs.mjs.map +1 -1
  392. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  393. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  394. package/dist/services/metrics/index.js +1 -2
  395. package/dist/services/metrics/index.js.map +1 -1
  396. package/dist/services/metrics/index.mjs +1 -2
  397. package/dist/services/metrics/index.mjs.map +1 -1
  398. package/dist/services/metrics/is-truthy.js.map +1 -1
  399. package/dist/services/metrics/middleware.js.map +1 -1
  400. package/dist/services/metrics/middleware.mjs.map +1 -1
  401. package/dist/services/metrics/rate-limiter.js.map +1 -1
  402. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  403. package/dist/services/metrics/sender.js.map +1 -1
  404. package/dist/services/metrics/sender.mjs.map +1 -1
  405. package/dist/services/query-params.js.map +1 -1
  406. package/dist/services/query-params.mjs.map +1 -1
  407. package/dist/services/reloader.js.map +1 -1
  408. package/dist/services/reloader.mjs.map +1 -1
  409. package/dist/services/request-context.js.map +1 -1
  410. package/dist/services/request-context.mjs.map +1 -1
  411. package/dist/services/server/admin-api.js.map +1 -1
  412. package/dist/services/server/admin-api.mjs.map +1 -1
  413. package/dist/services/server/api.js.map +1 -1
  414. package/dist/services/server/api.mjs.map +1 -1
  415. package/dist/services/server/compose-endpoint.js +7 -7
  416. package/dist/services/server/compose-endpoint.js.map +1 -1
  417. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  418. package/dist/services/server/content-api.js.map +1 -1
  419. package/dist/services/server/content-api.mjs.map +1 -1
  420. package/dist/services/server/http-server.js.map +1 -1
  421. package/dist/services/server/http-server.mjs.map +1 -1
  422. package/dist/services/server/index.js +1 -1
  423. package/dist/services/server/index.js.map +1 -1
  424. package/dist/services/server/index.mjs +1 -1
  425. package/dist/services/server/index.mjs.map +1 -1
  426. package/dist/services/server/koa.js +3 -3
  427. package/dist/services/server/koa.js.map +1 -1
  428. package/dist/services/server/koa.mjs.map +1 -1
  429. package/dist/services/server/middleware.js +3 -3
  430. package/dist/services/server/middleware.js.map +1 -1
  431. package/dist/services/server/middleware.mjs.map +1 -1
  432. package/dist/services/server/policy.js.map +1 -1
  433. package/dist/services/server/policy.mjs.map +1 -1
  434. package/dist/services/server/register-middlewares.js.map +1 -1
  435. package/dist/services/server/register-middlewares.mjs.map +1 -1
  436. package/dist/services/server/register-routes.js.map +1 -1
  437. package/dist/services/server/register-routes.mjs.map +1 -1
  438. package/dist/services/server/routing.js +2 -2
  439. package/dist/services/server/routing.js.map +1 -1
  440. package/dist/services/server/routing.mjs.map +1 -1
  441. package/dist/services/utils/dynamic-zones.js +5 -5
  442. package/dist/services/utils/dynamic-zones.js.map +1 -1
  443. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  444. package/dist/services/webhook-runner.d.ts +2 -1
  445. package/dist/services/webhook-runner.d.ts.map +1 -1
  446. package/dist/services/webhook-runner.js.map +1 -1
  447. package/dist/services/webhook-runner.mjs.map +1 -1
  448. package/dist/services/webhook-store.d.ts +2 -8
  449. package/dist/services/webhook-store.d.ts.map +1 -1
  450. package/dist/services/webhook-store.js +1 -1
  451. package/dist/services/webhook-store.js.map +1 -1
  452. package/dist/services/webhook-store.mjs +1 -1
  453. package/dist/services/webhook-store.mjs.map +1 -1
  454. package/dist/services/worker-queue.js.map +1 -1
  455. package/dist/services/worker-queue.mjs.map +1 -1
  456. package/dist/utils/convert-custom-field-type.js.map +1 -1
  457. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  458. package/dist/utils/cron.js +3 -3
  459. package/dist/utils/cron.js.map +1 -1
  460. package/dist/utils/cron.mjs.map +1 -1
  461. package/dist/utils/fetch.d.ts.map +1 -1
  462. package/dist/utils/fetch.js +4 -3
  463. package/dist/utils/fetch.js.map +1 -1
  464. package/dist/utils/fetch.mjs +4 -3
  465. package/dist/utils/fetch.mjs.map +1 -1
  466. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  467. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  468. package/dist/utils/filepath-to-prop-path.js +27 -6
  469. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  470. package/dist/utils/filepath-to-prop-path.mjs +25 -5
  471. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  472. package/dist/utils/is-initialized.js +3 -3
  473. package/dist/utils/is-initialized.js.map +1 -1
  474. package/dist/utils/is-initialized.mjs.map +1 -1
  475. package/dist/utils/load-config-file.js.map +1 -1
  476. package/dist/utils/load-config-file.mjs.map +1 -1
  477. package/dist/utils/load-files.js +1 -2
  478. package/dist/utils/load-files.js.map +1 -1
  479. package/dist/utils/load-files.mjs +1 -2
  480. package/dist/utils/load-files.mjs.map +1 -1
  481. package/dist/utils/resolve-working-dirs.js.map +1 -1
  482. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  483. package/dist/utils/signals.js.map +1 -1
  484. package/dist/utils/signals.mjs.map +1 -1
  485. package/dist/utils/startup-logger.d.ts.map +1 -1
  486. package/dist/utils/startup-logger.js +10 -5
  487. package/dist/utils/startup-logger.js.map +1 -1
  488. package/dist/utils/startup-logger.mjs +9 -4
  489. package/dist/utils/startup-logger.mjs.map +1 -1
  490. package/dist/utils/transform-content-types-to-models.d.ts +355 -23
  491. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  492. package/dist/utils/transform-content-types-to-models.js +17 -4
  493. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  494. package/dist/utils/transform-content-types-to-models.mjs +16 -3
  495. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  496. package/dist/utils/update-notifier/index.js.map +1 -1
  497. package/dist/utils/update-notifier/index.mjs.map +1 -1
  498. package/package.json +23 -21
@@ -1 +1 @@
1
- {"version":3,"file":"single-type.mjs","sources":["../../../src/core-api/controller/single-type.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Struct, Core, Utils, UID } from '@strapi/types';\n\ninterface Options {\n contentType: Struct.SingleTypeSchema;\n}\n\n/**\n * Returns a single type controller to handle default core-api actions\n */\nconst createSingleTypeController = ({\n contentType,\n}: Options): Utils.PartialWithThis<Core.CoreAPI.Controller.SingleType> => {\n const uid = contentType.uid as UID.Service;\n\n // TODO: transform into a class\n return {\n /**\n * Retrieve single type content\n *\n */\n async find(ctx) {\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const entity = await strapi.service(uid).find(sanitizedQuery);\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * create or update single type content.\n */\n async update(ctx) {\n const { query, body = {} as any } = ctx.request;\n\n if (!isObject(body.data)) {\n throw new errors.ValidationError('Missing \"data\" payload in the request body');\n }\n\n const sanitizedInputData = await this.sanitizeInput(body.data, ctx);\n\n const entity = await strapi.service(uid).createOrUpdate({\n ...query,\n data: sanitizedInputData,\n });\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n async delete(ctx) {\n const { query } = ctx;\n\n await strapi.service(uid).delete(query);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createSingleTypeController };\n"],"names":[],"mappings":";;AAWA,MAAM,6BAA6B,CAAC;AAAA,EAClC;AACF,MAA0E;AACxE,QAAM,MAAM,YAAY;AAGjB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,MAAM,KAAK,KAAK;AACR,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,KAAK,cAAc;AAE5D,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAK;AAChB,YAAM,EAAE,OAAO,OAAO,CAAC,EAAA,IAAa,IAAI;AAExC,UAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAI,OAAO,gBAAgB,4CAA4C;AAAA,MAC/E;AAEA,YAAM,qBAAqB,MAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAElE,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,eAAe;AAAA,QACtD,GAAG;AAAA,QACH,MAAM;AAAA,MAAA,CACP;AAED,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA,IAEA,MAAM,OAAO,KAAK;AACV,YAAA,EAAE,MAAU,IAAA;AAElB,YAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,KAAK;AAEtC,UAAI,SAAS;AAAA,IACf;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"single-type.mjs","sources":["../../../src/core-api/controller/single-type.ts"],"sourcesContent":["import { isObject } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Struct, Core, Utils, UID } from '@strapi/types';\n\ninterface Options {\n contentType: Struct.SingleTypeSchema;\n}\n\n/**\n * Returns a single type controller to handle default core-api actions\n */\nconst createSingleTypeController = ({\n contentType,\n}: Options): Utils.PartialWithThis<Core.CoreAPI.Controller.SingleType> => {\n const uid = contentType.uid as UID.Service;\n\n // TODO: transform into a class\n return {\n /**\n * Retrieve single type content\n *\n */\n async find(ctx) {\n await this.validateQuery(ctx);\n const sanitizedQuery = await this.sanitizeQuery(ctx);\n\n const entity = await strapi.service(uid).find(sanitizedQuery);\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n /**\n * create or update single type content.\n */\n async update(ctx) {\n const { query, body = {} as any } = ctx.request;\n\n if (!isObject(body.data)) {\n throw new errors.ValidationError('Missing \"data\" payload in the request body');\n }\n\n await this.validateInput(body.data, ctx);\n\n const sanitizedInputData = await this.sanitizeInput(body.data, ctx);\n\n const entity = await strapi.service(uid).createOrUpdate({\n ...query,\n data: sanitizedInputData,\n });\n\n const sanitizedEntity = await this.sanitizeOutput(entity, ctx);\n\n return this.transformResponse(sanitizedEntity);\n },\n\n async delete(ctx) {\n const { query } = ctx;\n\n await strapi.service(uid).delete(query);\n\n ctx.status = 204;\n },\n };\n};\n\nexport { createSingleTypeController };\n"],"names":[],"mappings":";;AAWA,MAAM,6BAA6B,CAAC;AAAA,EAClC;AACF,MAA0E;AACxE,QAAM,MAAM,YAAY;AAGjB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,MAAM,KAAK,KAAK;AACR,YAAA,KAAK,cAAc,GAAG;AAC5B,YAAM,iBAAiB,MAAM,KAAK,cAAc,GAAG;AAEnD,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,KAAK,cAAc;AAE5D,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAO,KAAK;AAChB,YAAM,EAAE,OAAO,OAAO,CAAA,MAAc,IAAI;AAExC,UAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAClB,cAAA,IAAI,OAAO,gBAAgB,4CAA4C;AAAA,MAAA;AAG/E,YAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAEvC,YAAM,qBAAqB,MAAM,KAAK,cAAc,KAAK,MAAM,GAAG;AAElE,YAAM,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,eAAe;AAAA,QACtD,GAAG;AAAA,QACH,MAAM;AAAA,MAAA,CACP;AAED,YAAM,kBAAkB,MAAM,KAAK,eAAe,QAAQ,GAAG;AAEtD,aAAA,KAAK,kBAAkB,eAAe;AAAA,IAC/C;AAAA,IAEA,MAAM,OAAO,KAAK;AACV,YAAA,EAAE,UAAU;AAElB,YAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,KAAK;AAEtC,UAAI,SAAS;AAAA,IAAA;AAAA,EAEjB;AACF;"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
3
+ const fp = require("lodash/fp");
4
4
  function isEntry(property) {
5
- return property === null || _.isPlainObject(property) || Array.isArray(property);
5
+ return property === null || fp.isPlainObject(property) || Array.isArray(property);
6
6
  }
7
7
  function isDZEntries(property) {
8
8
  return Array.isArray(property);
@@ -10,10 +10,10 @@ function isDZEntries(property) {
10
10
  const transformResponse = (resource, meta = {}, opts = {
11
11
  useJsonAPIFormat: false
12
12
  }) => {
13
- if (_.isNil(resource)) {
13
+ if (fp.isNil(resource)) {
14
14
  return resource;
15
15
  }
16
- if (!_.isPlainObject(resource) && !Array.isArray(resource)) {
16
+ if (!fp.isPlainObject(resource) && !Array.isArray(resource)) {
17
17
  throw new Error("Entry must be an object or an array of objects");
18
18
  }
19
19
  return {
@@ -26,20 +26,20 @@ function transformComponent(data, component) {
26
26
  return data.map((datum) => transformComponent(datum, component));
27
27
  }
28
28
  const res = transformEntry(data, component);
29
- if (_.isNil(res)) {
29
+ if (fp.isNil(res)) {
30
30
  return res;
31
31
  }
32
32
  const { id, attributes } = res;
33
33
  return { id, ...attributes };
34
34
  }
35
35
  function transformEntry(entry, type) {
36
- if (_.isNil(entry)) {
36
+ if (fp.isNil(entry)) {
37
37
  return entry;
38
38
  }
39
39
  if (Array.isArray(entry)) {
40
40
  return entry.map((singleEntry) => transformEntry(singleEntry, type));
41
41
  }
42
- if (!_.isPlainObject(entry)) {
42
+ if (!fp.isPlainObject(entry)) {
43
43
  throw new Error("Entry must be an object");
44
44
  }
45
45
  const { id, documentId, ...properties } = entry;
@@ -53,7 +53,7 @@ function transformEntry(entry, type) {
53
53
  } else if (attribute && attribute.type === "component" && isEntry(property)) {
54
54
  attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);
55
55
  } else if (attribute && attribute.type === "dynamiczone" && isDZEntries(property)) {
56
- if (_.isNil(property)) {
56
+ if (fp.isNil(property)) {
57
57
  attributeValues[key] = property;
58
58
  }
59
59
  attributeValues[key] = property.map((subProperty) => {
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sources":["../../../src/core-api/controller/transform.ts"],"sourcesContent":["import { isNil, isPlainObject } from 'lodash/fp';\nimport type { UID, Struct, Data } from '@strapi/types';\n\ntype TransformedEntry = {\n id: string;\n documentId?: Data.DocumentID | null;\n attributes: Record<string, unknown>;\n};\n\ntype TransformedComponent = {\n id: string;\n [key: string]: unknown;\n};\n\ntype Entry = {\n id: string;\n documentId: Data.DocumentID | null;\n [key: string]: Entry | Entry[] | string | number | null | boolean | Date;\n};\n\nfunction isEntry(property: unknown): property is Entry | Entry[] {\n return property === null || isPlainObject(property) || Array.isArray(property);\n}\n\nfunction isDZEntries(property: unknown): property is (Entry & { __component: UID.Component })[] {\n return Array.isArray(property);\n}\n\ninterface TransformOptions {\n contentType?: Struct.ContentTypeSchema | Struct.ComponentSchema;\n /**\n * @deprecated this option is deprecated and will be removed in the next major version\n */\n useJsonAPIFormat?: boolean;\n}\n\nconst transformResponse = (\n resource: any,\n meta: unknown = {},\n opts: TransformOptions = {\n useJsonAPIFormat: false,\n }\n) => {\n if (isNil(resource)) {\n return resource;\n }\n\n if (!isPlainObject(resource) && !Array.isArray(resource)) {\n throw new Error('Entry must be an object or an array of objects');\n }\n\n return {\n data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,\n meta,\n };\n};\n\nfunction transformComponent<T extends Entry | Entry[] | null>(\n data: T,\n component: Struct.ComponentSchema\n): T extends Entry[] ? TransformedComponent[] : T extends Entry ? TransformedComponent : null;\nfunction transformComponent(\n data: Entry | Entry[] | null,\n component: Struct.ComponentSchema\n): TransformedComponent | TransformedComponent[] | null {\n if (Array.isArray(data)) {\n return data.map((datum) => transformComponent(datum, component));\n }\n\n const res = transformEntry(data, component);\n\n if (isNil(res)) {\n return res;\n }\n\n const { id, attributes } = res;\n return { id, ...attributes };\n}\n\nfunction transformEntry<T extends Entry | Entry[] | null>(\n entry: T,\n type?: Struct.Schema\n): T extends Entry[] ? TransformedEntry[] : T extends Entry ? TransformedEntry : null;\nfunction transformEntry(\n entry: Entry | Entry[] | null,\n type?: Struct.Schema\n): TransformedEntry | TransformedEntry[] | null {\n if (isNil(entry)) {\n return entry;\n }\n\n if (Array.isArray(entry)) {\n return entry.map((singleEntry) => transformEntry(singleEntry, type));\n }\n\n if (!isPlainObject(entry)) {\n throw new Error('Entry must be an object');\n }\n\n const { id, documentId, ...properties } = entry;\n\n const attributeValues: Record<string, unknown> = {};\n\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n const attribute = type && type.attributes[key];\n\n if (attribute && attribute.type === 'relation' && isEntry(property) && 'target' in attribute) {\n const data = transformEntry(property, strapi.contentType(attribute.target));\n\n attributeValues[key] = { data };\n } else if (attribute && attribute.type === 'component' && isEntry(property)) {\n attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);\n } else if (attribute && attribute.type === 'dynamiczone' && isDZEntries(property)) {\n if (isNil(property)) {\n attributeValues[key] = property;\n }\n\n attributeValues[key] = property.map((subProperty) => {\n return transformComponent(subProperty, strapi.components[subProperty.__component]);\n });\n } else if (attribute && attribute.type === 'media' && isEntry(property)) {\n const data = transformEntry(property, strapi.contentType('plugin::upload.file'));\n\n attributeValues[key] = { data };\n } else {\n attributeValues[key] = property;\n }\n }\n\n return {\n id,\n documentId,\n attributes: attributeValues,\n };\n}\n\nexport { transformResponse };\n"],"names":["isPlainObject","isNil"],"mappings":";;;AAoBA,SAAS,QAAQ,UAAgD;AAC/D,SAAO,aAAa,QAAQA,gBAAc,QAAQ,KAAK,MAAM,QAAQ,QAAQ;AAC/E;AAEA,SAAS,YAAY,UAA2E;AACvF,SAAA,MAAM,QAAQ,QAAQ;AAC/B;AAUA,MAAM,oBAAoB,CACxB,UACA,OAAgB,CAAA,GAChB,OAAyB;AAAA,EACvB,kBAAkB;AACpB,MACG;AACC,MAAAC,EAAAA,MAAM,QAAQ,GAAG;AACZ,WAAA;AAAA,EACT;AAEI,MAAA,CAACD,gBAAc,QAAQ,KAAK,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAClD,UAAA,IAAI,MAAM,gDAAgD;AAAA,EAClE;AAEO,SAAA;AAAA,IACL,MAAM,KAAK,mBAAmB,eAAe,UAAU,MAAM,WAAW,IAAI;AAAA,IAC5E;AAAA,EAAA;AAEJ;AAMA,SAAS,mBACP,MACA,WACsD;AAClD,MAAA,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,KAAK,IAAI,CAAC,UAAU,mBAAmB,OAAO,SAAS,CAAC;AAAA,EACjE;AAEM,QAAA,MAAM,eAAe,MAAM,SAAS;AAEtC,MAAAC,EAAAA,MAAM,GAAG,GAAG;AACP,WAAA;AAAA,EACT;AAEM,QAAA,EAAE,IAAI,WAAe,IAAA;AACpB,SAAA,EAAE,IAAI,GAAG;AAClB;AAMA,SAAS,eACP,OACA,MAC8C;AAC1C,MAAAA,EAAAA,MAAM,KAAK,GAAG;AACT,WAAA;AAAA,EACT;AAEI,MAAA,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,gBAAgB,eAAe,aAAa,IAAI,CAAC;AAAA,EACrE;AAEI,MAAA,CAACD,EAAAA,cAAc,KAAK,GAAG;AACnB,UAAA,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,QAAM,EAAE,IAAI,YAAY,GAAG,eAAe;AAE1C,QAAM,kBAA2C,CAAA;AAEjD,aAAW,OAAO,OAAO,KAAK,UAAU,GAAG;AACnC,UAAA,WAAW,WAAW,GAAG;AAC/B,UAAM,YAAY,QAAQ,KAAK,WAAW,GAAG;AAEzC,QAAA,aAAa,UAAU,SAAS,cAAc,QAAQ,QAAQ,KAAK,YAAY,WAAW;AAC5F,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,UAAU,MAAM,CAAC;AAE1D,sBAAA,GAAG,IAAI,EAAE;IAAK,WACrB,aAAa,UAAU,SAAS,eAAe,QAAQ,QAAQ,GAAG;AAC3D,sBAAA,GAAG,IAAI,mBAAmB,UAAU,OAAO,WAAW,UAAU,SAAS,CAAC;AAAA,IAAA,WACjF,aAAa,UAAU,SAAS,iBAAiB,YAAY,QAAQ,GAAG;AAC7E,UAAAC,EAAAA,MAAM,QAAQ,GAAG;AACnB,wBAAgB,GAAG,IAAI;AAAA,MACzB;AAEA,sBAAgB,GAAG,IAAI,SAAS,IAAI,CAAC,gBAAgB;AACnD,eAAO,mBAAmB,aAAa,OAAO,WAAW,YAAY,WAAW,CAAC;AAAA,MAAA,CAClF;AAAA,IAAA,WACQ,aAAa,UAAU,SAAS,WAAW,QAAQ,QAAQ,GAAG;AACvE,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,qBAAqB,CAAC;AAE/D,sBAAA,GAAG,IAAI,EAAE;IAAK,OACzB;AACL,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAAA,EACF;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EAAA;AAEhB;;"}
1
+ {"version":3,"file":"transform.js","sources":["../../../src/core-api/controller/transform.ts"],"sourcesContent":["import { isNil, isPlainObject } from 'lodash/fp';\nimport type { UID, Struct, Data } from '@strapi/types';\n\ntype TransformedEntry = {\n id: string;\n documentId?: Data.DocumentID | null;\n attributes: Record<string, unknown>;\n};\n\ntype TransformedComponent = {\n id: string;\n [key: string]: unknown;\n};\n\ntype Entry = {\n id: string;\n documentId: Data.DocumentID | null;\n [key: string]: Entry | Entry[] | string | number | null | boolean | Date;\n};\n\nfunction isEntry(property: unknown): property is Entry | Entry[] {\n return property === null || isPlainObject(property) || Array.isArray(property);\n}\n\nfunction isDZEntries(property: unknown): property is (Entry & { __component: UID.Component })[] {\n return Array.isArray(property);\n}\n\ninterface TransformOptions {\n contentType?: Struct.ContentTypeSchema | Struct.ComponentSchema;\n /**\n * @deprecated this option is deprecated and will be removed in the next major version\n */\n useJsonAPIFormat?: boolean;\n}\n\nconst transformResponse = (\n resource: any,\n meta: unknown = {},\n opts: TransformOptions = {\n useJsonAPIFormat: false,\n }\n) => {\n if (isNil(resource)) {\n return resource;\n }\n\n if (!isPlainObject(resource) && !Array.isArray(resource)) {\n throw new Error('Entry must be an object or an array of objects');\n }\n\n return {\n data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,\n meta,\n };\n};\n\nfunction transformComponent<T extends Entry | Entry[] | null>(\n data: T,\n component: Struct.ComponentSchema\n): T extends Entry[] ? TransformedComponent[] : T extends Entry ? TransformedComponent : null;\nfunction transformComponent(\n data: Entry | Entry[] | null,\n component: Struct.ComponentSchema\n): TransformedComponent | TransformedComponent[] | null {\n if (Array.isArray(data)) {\n return data.map((datum) => transformComponent(datum, component));\n }\n\n const res = transformEntry(data, component);\n\n if (isNil(res)) {\n return res;\n }\n\n const { id, attributes } = res;\n return { id, ...attributes };\n}\n\nfunction transformEntry<T extends Entry | Entry[] | null>(\n entry: T,\n type?: Struct.Schema\n): T extends Entry[] ? TransformedEntry[] : T extends Entry ? TransformedEntry : null;\nfunction transformEntry(\n entry: Entry | Entry[] | null,\n type?: Struct.Schema\n): TransformedEntry | TransformedEntry[] | null {\n if (isNil(entry)) {\n return entry;\n }\n\n if (Array.isArray(entry)) {\n return entry.map((singleEntry) => transformEntry(singleEntry, type));\n }\n\n if (!isPlainObject(entry)) {\n throw new Error('Entry must be an object');\n }\n\n const { id, documentId, ...properties } = entry;\n\n const attributeValues: Record<string, unknown> = {};\n\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n const attribute = type && type.attributes[key];\n\n if (attribute && attribute.type === 'relation' && isEntry(property) && 'target' in attribute) {\n const data = transformEntry(property, strapi.contentType(attribute.target));\n\n attributeValues[key] = { data };\n } else if (attribute && attribute.type === 'component' && isEntry(property)) {\n attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);\n } else if (attribute && attribute.type === 'dynamiczone' && isDZEntries(property)) {\n if (isNil(property)) {\n attributeValues[key] = property;\n }\n\n attributeValues[key] = property.map((subProperty) => {\n return transformComponent(subProperty, strapi.components[subProperty.__component]);\n });\n } else if (attribute && attribute.type === 'media' && isEntry(property)) {\n const data = transformEntry(property, strapi.contentType('plugin::upload.file'));\n\n attributeValues[key] = { data };\n } else {\n attributeValues[key] = property;\n }\n }\n\n return {\n id,\n documentId,\n attributes: attributeValues,\n };\n}\n\nexport { transformResponse };\n"],"names":["isPlainObject","isNil"],"mappings":";;;AAoBA,SAAS,QAAQ,UAAgD;AAC/D,SAAO,aAAa,QAAQA,GAAA,cAAc,QAAQ,KAAK,MAAM,QAAQ,QAAQ;AAC/E;AAEA,SAAS,YAAY,UAA2E;AACvF,SAAA,MAAM,QAAQ,QAAQ;AAC/B;AAUA,MAAM,oBAAoB,CACxB,UACA,OAAgB,CAAA,GAChB,OAAyB;AAAA,EACvB,kBAAkB;AACpB,MACG;AACC,MAAAC,GAAAA,MAAM,QAAQ,GAAG;AACZ,WAAA;AAAA,EAAA;AAGL,MAAA,CAACD,iBAAc,QAAQ,KAAK,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAClD,UAAA,IAAI,MAAM,gDAAgD;AAAA,EAAA;AAG3D,SAAA;AAAA,IACL,MAAM,KAAK,mBAAmB,eAAe,UAAU,MAAM,WAAW,IAAI;AAAA,IAC5E;AAAA,EACF;AACF;AAMA,SAAS,mBACP,MACA,WACsD;AAClD,MAAA,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,KAAK,IAAI,CAAC,UAAU,mBAAmB,OAAO,SAAS,CAAC;AAAA,EAAA;AAG3D,QAAA,MAAM,eAAe,MAAM,SAAS;AAEtC,MAAAC,GAAAA,MAAM,GAAG,GAAG;AACP,WAAA;AAAA,EAAA;AAGH,QAAA,EAAE,IAAI,WAAA,IAAe;AACpB,SAAA,EAAE,IAAI,GAAG,WAAW;AAC7B;AAMA,SAAS,eACP,OACA,MAC8C;AAC1C,MAAAA,GAAAA,MAAM,KAAK,GAAG;AACT,WAAA;AAAA,EAAA;AAGL,MAAA,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,gBAAgB,eAAe,aAAa,IAAI,CAAC;AAAA,EAAA;AAGjE,MAAA,CAACD,GAAAA,cAAc,KAAK,GAAG;AACnB,UAAA,IAAI,MAAM,yBAAyB;AAAA,EAAA;AAG3C,QAAM,EAAE,IAAI,YAAY,GAAG,WAAe,IAAA;AAE1C,QAAM,kBAA2C,CAAC;AAElD,aAAW,OAAO,OAAO,KAAK,UAAU,GAAG;AACnC,UAAA,WAAW,WAAW,GAAG;AAC/B,UAAM,YAAY,QAAQ,KAAK,WAAW,GAAG;AAEzC,QAAA,aAAa,UAAU,SAAS,cAAc,QAAQ,QAAQ,KAAK,YAAY,WAAW;AAC5F,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,UAAU,MAAM,CAAC;AAE1D,sBAAA,GAAG,IAAI,EAAE,KAAK;AAAA,IAAA,WACrB,aAAa,UAAU,SAAS,eAAe,QAAQ,QAAQ,GAAG;AAC3D,sBAAA,GAAG,IAAI,mBAAmB,UAAU,OAAO,WAAW,UAAU,SAAS,CAAC;AAAA,IAAA,WACjF,aAAa,UAAU,SAAS,iBAAiB,YAAY,QAAQ,GAAG;AAC7E,UAAAC,GAAAA,MAAM,QAAQ,GAAG;AACnB,wBAAgB,GAAG,IAAI;AAAA,MAAA;AAGzB,sBAAgB,GAAG,IAAI,SAAS,IAAI,CAAC,gBAAgB;AACnD,eAAO,mBAAmB,aAAa,OAAO,WAAW,YAAY,WAAW,CAAC;AAAA,MAAA,CAClF;AAAA,IAAA,WACQ,aAAa,UAAU,SAAS,WAAW,QAAQ,QAAQ,GAAG;AACvE,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,qBAAqB,CAAC;AAE/D,sBAAA,GAAG,IAAI,EAAE,KAAK;AAAA,IAAA,OACzB;AACL,sBAAgB,GAAG,IAAI;AAAA,IAAA;AAAA,EACzB;AAGK,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform.mjs","sources":["../../../src/core-api/controller/transform.ts"],"sourcesContent":["import { isNil, isPlainObject } from 'lodash/fp';\nimport type { UID, Struct, Data } from '@strapi/types';\n\ntype TransformedEntry = {\n id: string;\n documentId?: Data.DocumentID | null;\n attributes: Record<string, unknown>;\n};\n\ntype TransformedComponent = {\n id: string;\n [key: string]: unknown;\n};\n\ntype Entry = {\n id: string;\n documentId: Data.DocumentID | null;\n [key: string]: Entry | Entry[] | string | number | null | boolean | Date;\n};\n\nfunction isEntry(property: unknown): property is Entry | Entry[] {\n return property === null || isPlainObject(property) || Array.isArray(property);\n}\n\nfunction isDZEntries(property: unknown): property is (Entry & { __component: UID.Component })[] {\n return Array.isArray(property);\n}\n\ninterface TransformOptions {\n contentType?: Struct.ContentTypeSchema | Struct.ComponentSchema;\n /**\n * @deprecated this option is deprecated and will be removed in the next major version\n */\n useJsonAPIFormat?: boolean;\n}\n\nconst transformResponse = (\n resource: any,\n meta: unknown = {},\n opts: TransformOptions = {\n useJsonAPIFormat: false,\n }\n) => {\n if (isNil(resource)) {\n return resource;\n }\n\n if (!isPlainObject(resource) && !Array.isArray(resource)) {\n throw new Error('Entry must be an object or an array of objects');\n }\n\n return {\n data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,\n meta,\n };\n};\n\nfunction transformComponent<T extends Entry | Entry[] | null>(\n data: T,\n component: Struct.ComponentSchema\n): T extends Entry[] ? TransformedComponent[] : T extends Entry ? TransformedComponent : null;\nfunction transformComponent(\n data: Entry | Entry[] | null,\n component: Struct.ComponentSchema\n): TransformedComponent | TransformedComponent[] | null {\n if (Array.isArray(data)) {\n return data.map((datum) => transformComponent(datum, component));\n }\n\n const res = transformEntry(data, component);\n\n if (isNil(res)) {\n return res;\n }\n\n const { id, attributes } = res;\n return { id, ...attributes };\n}\n\nfunction transformEntry<T extends Entry | Entry[] | null>(\n entry: T,\n type?: Struct.Schema\n): T extends Entry[] ? TransformedEntry[] : T extends Entry ? TransformedEntry : null;\nfunction transformEntry(\n entry: Entry | Entry[] | null,\n type?: Struct.Schema\n): TransformedEntry | TransformedEntry[] | null {\n if (isNil(entry)) {\n return entry;\n }\n\n if (Array.isArray(entry)) {\n return entry.map((singleEntry) => transformEntry(singleEntry, type));\n }\n\n if (!isPlainObject(entry)) {\n throw new Error('Entry must be an object');\n }\n\n const { id, documentId, ...properties } = entry;\n\n const attributeValues: Record<string, unknown> = {};\n\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n const attribute = type && type.attributes[key];\n\n if (attribute && attribute.type === 'relation' && isEntry(property) && 'target' in attribute) {\n const data = transformEntry(property, strapi.contentType(attribute.target));\n\n attributeValues[key] = { data };\n } else if (attribute && attribute.type === 'component' && isEntry(property)) {\n attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);\n } else if (attribute && attribute.type === 'dynamiczone' && isDZEntries(property)) {\n if (isNil(property)) {\n attributeValues[key] = property;\n }\n\n attributeValues[key] = property.map((subProperty) => {\n return transformComponent(subProperty, strapi.components[subProperty.__component]);\n });\n } else if (attribute && attribute.type === 'media' && isEntry(property)) {\n const data = transformEntry(property, strapi.contentType('plugin::upload.file'));\n\n attributeValues[key] = { data };\n } else {\n attributeValues[key] = property;\n }\n }\n\n return {\n id,\n documentId,\n attributes: attributeValues,\n };\n}\n\nexport { transformResponse };\n"],"names":[],"mappings":";AAoBA,SAAS,QAAQ,UAAgD;AAC/D,SAAO,aAAa,QAAQ,cAAc,QAAQ,KAAK,MAAM,QAAQ,QAAQ;AAC/E;AAEA,SAAS,YAAY,UAA2E;AACvF,SAAA,MAAM,QAAQ,QAAQ;AAC/B;AAUA,MAAM,oBAAoB,CACxB,UACA,OAAgB,CAAA,GAChB,OAAyB;AAAA,EACvB,kBAAkB;AACpB,MACG;AACC,MAAA,MAAM,QAAQ,GAAG;AACZ,WAAA;AAAA,EACT;AAEI,MAAA,CAAC,cAAc,QAAQ,KAAK,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAClD,UAAA,IAAI,MAAM,gDAAgD;AAAA,EAClE;AAEO,SAAA;AAAA,IACL,MAAM,KAAK,mBAAmB,eAAe,UAAU,MAAM,WAAW,IAAI;AAAA,IAC5E;AAAA,EAAA;AAEJ;AAMA,SAAS,mBACP,MACA,WACsD;AAClD,MAAA,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,KAAK,IAAI,CAAC,UAAU,mBAAmB,OAAO,SAAS,CAAC;AAAA,EACjE;AAEM,QAAA,MAAM,eAAe,MAAM,SAAS;AAEtC,MAAA,MAAM,GAAG,GAAG;AACP,WAAA;AAAA,EACT;AAEM,QAAA,EAAE,IAAI,WAAe,IAAA;AACpB,SAAA,EAAE,IAAI,GAAG;AAClB;AAMA,SAAS,eACP,OACA,MAC8C;AAC1C,MAAA,MAAM,KAAK,GAAG;AACT,WAAA;AAAA,EACT;AAEI,MAAA,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,gBAAgB,eAAe,aAAa,IAAI,CAAC;AAAA,EACrE;AAEI,MAAA,CAAC,cAAc,KAAK,GAAG;AACnB,UAAA,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,QAAM,EAAE,IAAI,YAAY,GAAG,eAAe;AAE1C,QAAM,kBAA2C,CAAA;AAEjD,aAAW,OAAO,OAAO,KAAK,UAAU,GAAG;AACnC,UAAA,WAAW,WAAW,GAAG;AAC/B,UAAM,YAAY,QAAQ,KAAK,WAAW,GAAG;AAEzC,QAAA,aAAa,UAAU,SAAS,cAAc,QAAQ,QAAQ,KAAK,YAAY,WAAW;AAC5F,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,UAAU,MAAM,CAAC;AAE1D,sBAAA,GAAG,IAAI,EAAE;IAAK,WACrB,aAAa,UAAU,SAAS,eAAe,QAAQ,QAAQ,GAAG;AAC3D,sBAAA,GAAG,IAAI,mBAAmB,UAAU,OAAO,WAAW,UAAU,SAAS,CAAC;AAAA,IAAA,WACjF,aAAa,UAAU,SAAS,iBAAiB,YAAY,QAAQ,GAAG;AAC7E,UAAA,MAAM,QAAQ,GAAG;AACnB,wBAAgB,GAAG,IAAI;AAAA,MACzB;AAEA,sBAAgB,GAAG,IAAI,SAAS,IAAI,CAAC,gBAAgB;AACnD,eAAO,mBAAmB,aAAa,OAAO,WAAW,YAAY,WAAW,CAAC;AAAA,MAAA,CAClF;AAAA,IAAA,WACQ,aAAa,UAAU,SAAS,WAAW,QAAQ,QAAQ,GAAG;AACvE,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,qBAAqB,CAAC;AAE/D,sBAAA,GAAG,IAAI,EAAE;IAAK,OACzB;AACL,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAAA,EACF;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EAAA;AAEhB;"}
1
+ {"version":3,"file":"transform.mjs","sources":["../../../src/core-api/controller/transform.ts"],"sourcesContent":["import { isNil, isPlainObject } from 'lodash/fp';\nimport type { UID, Struct, Data } from '@strapi/types';\n\ntype TransformedEntry = {\n id: string;\n documentId?: Data.DocumentID | null;\n attributes: Record<string, unknown>;\n};\n\ntype TransformedComponent = {\n id: string;\n [key: string]: unknown;\n};\n\ntype Entry = {\n id: string;\n documentId: Data.DocumentID | null;\n [key: string]: Entry | Entry[] | string | number | null | boolean | Date;\n};\n\nfunction isEntry(property: unknown): property is Entry | Entry[] {\n return property === null || isPlainObject(property) || Array.isArray(property);\n}\n\nfunction isDZEntries(property: unknown): property is (Entry & { __component: UID.Component })[] {\n return Array.isArray(property);\n}\n\ninterface TransformOptions {\n contentType?: Struct.ContentTypeSchema | Struct.ComponentSchema;\n /**\n * @deprecated this option is deprecated and will be removed in the next major version\n */\n useJsonAPIFormat?: boolean;\n}\n\nconst transformResponse = (\n resource: any,\n meta: unknown = {},\n opts: TransformOptions = {\n useJsonAPIFormat: false,\n }\n) => {\n if (isNil(resource)) {\n return resource;\n }\n\n if (!isPlainObject(resource) && !Array.isArray(resource)) {\n throw new Error('Entry must be an object or an array of objects');\n }\n\n return {\n data: opts.useJsonAPIFormat ? transformEntry(resource, opts?.contentType) : resource,\n meta,\n };\n};\n\nfunction transformComponent<T extends Entry | Entry[] | null>(\n data: T,\n component: Struct.ComponentSchema\n): T extends Entry[] ? TransformedComponent[] : T extends Entry ? TransformedComponent : null;\nfunction transformComponent(\n data: Entry | Entry[] | null,\n component: Struct.ComponentSchema\n): TransformedComponent | TransformedComponent[] | null {\n if (Array.isArray(data)) {\n return data.map((datum) => transformComponent(datum, component));\n }\n\n const res = transformEntry(data, component);\n\n if (isNil(res)) {\n return res;\n }\n\n const { id, attributes } = res;\n return { id, ...attributes };\n}\n\nfunction transformEntry<T extends Entry | Entry[] | null>(\n entry: T,\n type?: Struct.Schema\n): T extends Entry[] ? TransformedEntry[] : T extends Entry ? TransformedEntry : null;\nfunction transformEntry(\n entry: Entry | Entry[] | null,\n type?: Struct.Schema\n): TransformedEntry | TransformedEntry[] | null {\n if (isNil(entry)) {\n return entry;\n }\n\n if (Array.isArray(entry)) {\n return entry.map((singleEntry) => transformEntry(singleEntry, type));\n }\n\n if (!isPlainObject(entry)) {\n throw new Error('Entry must be an object');\n }\n\n const { id, documentId, ...properties } = entry;\n\n const attributeValues: Record<string, unknown> = {};\n\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n const attribute = type && type.attributes[key];\n\n if (attribute && attribute.type === 'relation' && isEntry(property) && 'target' in attribute) {\n const data = transformEntry(property, strapi.contentType(attribute.target));\n\n attributeValues[key] = { data };\n } else if (attribute && attribute.type === 'component' && isEntry(property)) {\n attributeValues[key] = transformComponent(property, strapi.components[attribute.component]);\n } else if (attribute && attribute.type === 'dynamiczone' && isDZEntries(property)) {\n if (isNil(property)) {\n attributeValues[key] = property;\n }\n\n attributeValues[key] = property.map((subProperty) => {\n return transformComponent(subProperty, strapi.components[subProperty.__component]);\n });\n } else if (attribute && attribute.type === 'media' && isEntry(property)) {\n const data = transformEntry(property, strapi.contentType('plugin::upload.file'));\n\n attributeValues[key] = { data };\n } else {\n attributeValues[key] = property;\n }\n }\n\n return {\n id,\n documentId,\n attributes: attributeValues,\n };\n}\n\nexport { transformResponse };\n"],"names":[],"mappings":";AAoBA,SAAS,QAAQ,UAAgD;AAC/D,SAAO,aAAa,QAAQ,cAAc,QAAQ,KAAK,MAAM,QAAQ,QAAQ;AAC/E;AAEA,SAAS,YAAY,UAA2E;AACvF,SAAA,MAAM,QAAQ,QAAQ;AAC/B;AAUA,MAAM,oBAAoB,CACxB,UACA,OAAgB,CAAA,GAChB,OAAyB;AAAA,EACvB,kBAAkB;AACpB,MACG;AACC,MAAA,MAAM,QAAQ,GAAG;AACZ,WAAA;AAAA,EAAA;AAGL,MAAA,CAAC,cAAc,QAAQ,KAAK,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAClD,UAAA,IAAI,MAAM,gDAAgD;AAAA,EAAA;AAG3D,SAAA;AAAA,IACL,MAAM,KAAK,mBAAmB,eAAe,UAAU,MAAM,WAAW,IAAI;AAAA,IAC5E;AAAA,EACF;AACF;AAMA,SAAS,mBACP,MACA,WACsD;AAClD,MAAA,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,KAAK,IAAI,CAAC,UAAU,mBAAmB,OAAO,SAAS,CAAC;AAAA,EAAA;AAG3D,QAAA,MAAM,eAAe,MAAM,SAAS;AAEtC,MAAA,MAAM,GAAG,GAAG;AACP,WAAA;AAAA,EAAA;AAGH,QAAA,EAAE,IAAI,WAAA,IAAe;AACpB,SAAA,EAAE,IAAI,GAAG,WAAW;AAC7B;AAMA,SAAS,eACP,OACA,MAC8C;AAC1C,MAAA,MAAM,KAAK,GAAG;AACT,WAAA;AAAA,EAAA;AAGL,MAAA,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,gBAAgB,eAAe,aAAa,IAAI,CAAC;AAAA,EAAA;AAGjE,MAAA,CAAC,cAAc,KAAK,GAAG;AACnB,UAAA,IAAI,MAAM,yBAAyB;AAAA,EAAA;AAG3C,QAAM,EAAE,IAAI,YAAY,GAAG,WAAe,IAAA;AAE1C,QAAM,kBAA2C,CAAC;AAElD,aAAW,OAAO,OAAO,KAAK,UAAU,GAAG;AACnC,UAAA,WAAW,WAAW,GAAG;AAC/B,UAAM,YAAY,QAAQ,KAAK,WAAW,GAAG;AAEzC,QAAA,aAAa,UAAU,SAAS,cAAc,QAAQ,QAAQ,KAAK,YAAY,WAAW;AAC5F,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,UAAU,MAAM,CAAC;AAE1D,sBAAA,GAAG,IAAI,EAAE,KAAK;AAAA,IAAA,WACrB,aAAa,UAAU,SAAS,eAAe,QAAQ,QAAQ,GAAG;AAC3D,sBAAA,GAAG,IAAI,mBAAmB,UAAU,OAAO,WAAW,UAAU,SAAS,CAAC;AAAA,IAAA,WACjF,aAAa,UAAU,SAAS,iBAAiB,YAAY,QAAQ,GAAG;AAC7E,UAAA,MAAM,QAAQ,GAAG;AACnB,wBAAgB,GAAG,IAAI;AAAA,MAAA;AAGzB,sBAAgB,GAAG,IAAI,SAAS,IAAI,CAAC,gBAAgB;AACnD,eAAO,mBAAmB,aAAa,OAAO,WAAW,YAAY,WAAW,CAAC;AAAA,MAAA,CAClF;AAAA,IAAA,WACQ,aAAa,UAAU,SAAS,WAAW,QAAQ,QAAQ,GAAG;AACvE,YAAM,OAAO,eAAe,UAAU,OAAO,YAAY,qBAAqB,CAAC;AAE/D,sBAAA,GAAG,IAAI,EAAE,KAAK;AAAA,IAAA,OACzB;AACL,sBAAgB,GAAG,IAAI;AAAA,IAAA;AAAA,EACzB;AAGK,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/core-api/routes/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nexport const createRoutes = ({ contentType }: { contentType: Schema.ContentType }) => {\n if (contentTypeUtils.isSingleType(contentType)) {\n return getSingleTypeRoutes(contentType);\n }\n\n return getCollectionTypeRoutes(contentType);\n};\n\nconst getSingleTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.singularName}`,\n handler: `${uid}.find`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.singularName}`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.singularName}`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n\nconst getCollectionTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.pluralName}`,\n handler: `${uid}.find`,\n config: {},\n },\n findOne: {\n method: 'GET',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.findOne`,\n config: {},\n },\n create: {\n method: 'POST',\n path: `/${info.pluralName}`,\n handler: `${uid}.create`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n"],"names":["contentTypeUtils"],"mappings":";;;AAGO,MAAM,eAAe,CAAC,EAAE,kBAAuD;AAChF,MAAAA,YAAA,aAAiB,aAAa,WAAW,GAAG;AAC9C,WAAO,oBAAoB,WAAW;AAAA,EACxC;AAEA,SAAO,wBAAwB,WAAW;AAC5C;AAEA,MAAM,sBAAsB,CAAC,EAAE,KAAK,WAA+B;AAC1D,SAAA;AAAA,IACL,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,EAAA;AAEJ;AAEA,MAAM,0BAA0B,CAAC,EAAE,KAAK,WAA+B;AAC9D,SAAA;AAAA,IACL,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/core-api/routes/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nexport const createRoutes = ({ contentType }: { contentType: Schema.ContentType }) => {\n if (contentTypeUtils.isSingleType(contentType)) {\n return getSingleTypeRoutes(contentType);\n }\n\n return getCollectionTypeRoutes(contentType);\n};\n\nconst getSingleTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.singularName}`,\n handler: `${uid}.find`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.singularName}`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.singularName}`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n\nconst getCollectionTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.pluralName}`,\n handler: `${uid}.find`,\n config: {},\n },\n findOne: {\n method: 'GET',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.findOne`,\n config: {},\n },\n create: {\n method: 'POST',\n path: `/${info.pluralName}`,\n handler: `${uid}.create`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n"],"names":["contentTypeUtils"],"mappings":";;;AAGO,MAAM,eAAe,CAAC,EAAE,kBAAuD;AAChF,MAAAA,YAAA,aAAiB,aAAa,WAAW,GAAG;AAC9C,WAAO,oBAAoB,WAAW;AAAA,EAAA;AAGxC,SAAO,wBAAwB,WAAW;AAC5C;AAEA,MAAM,sBAAsB,CAAC,EAAE,KAAK,WAA+B;AAC1D,SAAA;AAAA,IACL,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IAAC;AAAA,EAEb;AACF;AAEA,MAAM,0BAA0B,CAAC,EAAE,KAAK,WAA+B;AAC9D,SAAA;AAAA,IACL,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IAAC;AAAA,EAEb;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/core-api/routes/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nexport const createRoutes = ({ contentType }: { contentType: Schema.ContentType }) => {\n if (contentTypeUtils.isSingleType(contentType)) {\n return getSingleTypeRoutes(contentType);\n }\n\n return getCollectionTypeRoutes(contentType);\n};\n\nconst getSingleTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.singularName}`,\n handler: `${uid}.find`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.singularName}`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.singularName}`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n\nconst getCollectionTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.pluralName}`,\n handler: `${uid}.find`,\n config: {},\n },\n findOne: {\n method: 'GET',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.findOne`,\n config: {},\n },\n create: {\n method: 'POST',\n path: `/${info.pluralName}`,\n handler: `${uid}.create`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n"],"names":["contentTypeUtils"],"mappings":";AAGO,MAAM,eAAe,CAAC,EAAE,kBAAuD;AAChF,MAAAA,aAAiB,aAAa,WAAW,GAAG;AAC9C,WAAO,oBAAoB,WAAW;AAAA,EACxC;AAEA,SAAO,wBAAwB,WAAW;AAC5C;AAEA,MAAM,sBAAsB,CAAC,EAAE,KAAK,WAA+B;AAC1D,SAAA;AAAA,IACL,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,EAAA;AAEJ;AAEA,MAAM,0BAA0B,CAAC,EAAE,KAAK,WAA+B;AAC9D,SAAA;AAAA,IACL,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAC;AAAA,IACX;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/core-api/routes/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nexport const createRoutes = ({ contentType }: { contentType: Schema.ContentType }) => {\n if (contentTypeUtils.isSingleType(contentType)) {\n return getSingleTypeRoutes(contentType);\n }\n\n return getCollectionTypeRoutes(contentType);\n};\n\nconst getSingleTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.singularName}`,\n handler: `${uid}.find`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.singularName}`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.singularName}`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n\nconst getCollectionTypeRoutes = ({ uid, info }: Schema.ContentType) => {\n return {\n find: {\n method: 'GET',\n path: `/${info.pluralName}`,\n handler: `${uid}.find`,\n config: {},\n },\n findOne: {\n method: 'GET',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.findOne`,\n config: {},\n },\n create: {\n method: 'POST',\n path: `/${info.pluralName}`,\n handler: `${uid}.create`,\n config: {},\n },\n update: {\n method: 'PUT',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.update`,\n config: {},\n },\n delete: {\n method: 'DELETE',\n path: `/${info.pluralName}/:id`,\n handler: `${uid}.delete`,\n config: {},\n },\n };\n};\n"],"names":["contentTypeUtils"],"mappings":";AAGO,MAAM,eAAe,CAAC,EAAE,kBAAuD;AAChF,MAAAA,aAAiB,aAAa,WAAW,GAAG;AAC9C,WAAO,oBAAoB,WAAW;AAAA,EAAA;AAGxC,SAAO,wBAAwB,WAAW;AAC5C;AAEA,MAAM,sBAAsB,CAAC,EAAE,KAAK,WAA+B;AAC1D,SAAA;AAAA,IACL,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,YAAY;AAAA,MAC3B,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IAAC;AAAA,EAEb;AACF;AAEA,MAAM,0BAA0B,CAAC,EAAE,KAAK,WAA+B;AAC9D,SAAA;AAAA,IACL,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,IAAI,KAAK,UAAU;AAAA,MACzB,SAAS,GAAG,GAAG;AAAA,MACf,QAAQ,CAAA;AAAA,IAAC;AAAA,EAEb;AACF;"}
@@ -5,21 +5,15 @@ export declare class CollectionTypeService extends CoreService implements Core.C
5
5
  constructor(contentType: Struct.CollectionTypeSchema);
6
6
  find(params?: {}): Promise<{
7
7
  results: Modules.Documents.AnyDocument[];
8
- pagination: {
9
- page: number;
10
- pageSize: number;
11
- } | {
12
- start: number;
13
- limit: number;
14
- };
8
+ pagination: import("@strapi/utils/dist/pagination").PagePatinationInformation | import("@strapi/utils/dist/pagination").OffsetPaginationInformation;
15
9
  }>;
16
- findOne(documentId: Modules.Documents.ID, params?: {}): import("@strapi/types/dist/modules/documents/result/document-engine").FindOne<import("@strapi/types/dist/uid").ContentType, import("@strapi/types/dist/modules/documents/params/document-engine").FindOne<import("@strapi/types/dist/uid").ContentType>>;
10
+ findOne(documentId: Modules.Documents.ID, params?: {}): import("@strapi/types/dist/modules/documents/result/document-engine").FindOne<import("@strapi/types/dist/uid").ContentType, any>;
17
11
  create(params?: {
18
12
  data: {};
19
13
  }): Promise<Modules.Documents.AnyDocument>;
20
14
  update(documentId: Modules.Documents.ID, params?: {
21
15
  data: {};
22
- }): import("@strapi/types/dist/modules/documents/result/document-engine").Update<import("@strapi/types/dist/uid").ContentType, import("@strapi/types/dist/modules/documents/params/document-engine").Update<import("@strapi/types/dist/uid").ContentType>>;
16
+ }): import("@strapi/types/dist/modules/documents/result/document-engine").Update<import("@strapi/types/dist/uid").ContentType, any>;
23
17
  delete(documentId: Modules.Documents.ID, params?: {}): Promise<{
24
18
  deletedEntries: number;
25
19
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"collection-type.d.ts","sourceRoot":"","sources":["../../../src/core-api/service/collection-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,qBACX,SAAQ,WACR,YAAW,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc;IAE9C,OAAO,CAAC,WAAW,CAA8B;gBAErC,WAAW,EAAE,MAAM,CAAC,oBAAoB;IAM9C,IAAI,CAAC,MAAM,KAAK;;;;;;;;;;IA+BtB,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,KAAK;IAS/C,MAAM,CAAC,MAAM;;KAAe;IAMlC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM;;KAAe;IASxD,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,KAAK;;;CAU3D;AAED;;;GAGG;AAEH,QAAA,MAAM,2BAA2B,gBAClB,OAAO,oBAAoB,KACvC,KAAK,OAAO,CAAC,OAAO,CAAC,cAEvB,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"collection-type.d.ts","sourceRoot":"","sources":["../../../src/core-api/service/collection-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAS3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,qBACX,SAAQ,WACR,YAAW,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc;IAE9C,OAAO,CAAC,WAAW,CAA8B;gBAErC,WAAW,EAAE,MAAM,CAAC,oBAAoB;IAM9C,IAAI,CAAC,MAAM,KAAK;;;;IAgCtB,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,KAAK;IAS/C,MAAM,CAAC,MAAM;;KAAe;IAMlC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM;;KAAe;IASxD,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,KAAK;;;CAU3D;AAED;;;GAGG;AAEH,QAAA,MAAM,2BAA2B,gBAClB,OAAO,oBAAoB,KACvC,KAAK,OAAO,CAAC,OAAO,CAAC,cAEvB,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -12,6 +12,7 @@ class CollectionTypeService extends coreService.CoreService {
12
12
  const { uid } = this.contentType;
13
13
  const fetchParams = this.getFetchParams(params);
14
14
  const paginationInfo = pagination.getPaginationInfo(fetchParams);
15
+ const isPaged = pagination.isPagedPagination(fetchParams.pagination);
15
16
  const results = await strapi.documents(uid).findMany({
16
17
  ...fetchParams,
17
18
  ...paginationInfo
@@ -23,12 +24,12 @@ class CollectionTypeService extends coreService.CoreService {
23
24
  }
24
25
  return {
25
26
  results,
26
- pagination: pagination.transformPaginationResponse(paginationInfo, count)
27
+ pagination: pagination.transformPaginationResponse(paginationInfo, count, isPaged)
27
28
  };
28
29
  }
29
30
  return {
30
31
  results,
31
- pagination: paginationInfo
32
+ pagination: pagination.transformPaginationResponse(paginationInfo, void 0, isPaged)
32
33
  };
33
34
  }
34
35
  findOne(documentId, params = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"collection-type.js","sources":["../../../src/core-api/service/collection-type.ts"],"sourcesContent":["import type { Core, Struct, Modules } from '@strapi/types';\n\nimport { getPaginationInfo, shouldCount, transformPaginationResponse } from './pagination';\n\nimport { CoreService } from './core-service';\n\nexport class CollectionTypeService\n extends CoreService\n implements Core.CoreAPI.Service.CollectionType\n{\n private contentType: Struct.CollectionTypeSchema;\n\n constructor(contentType: Struct.CollectionTypeSchema) {\n super();\n\n this.contentType = contentType;\n }\n\n async find(params = {}) {\n const { uid } = this.contentType;\n\n const fetchParams = this.getFetchParams(params);\n\n const paginationInfo = getPaginationInfo(fetchParams);\n\n const results = await strapi.documents(uid).findMany({\n ...fetchParams,\n ...paginationInfo,\n });\n\n if (shouldCount(fetchParams)) {\n const count = await strapi.documents(uid).count({ ...fetchParams, ...paginationInfo });\n\n if (typeof count !== 'number') {\n throw new Error('Count should be a number');\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, count),\n };\n }\n\n return {\n results,\n pagination: paginationInfo,\n };\n }\n\n findOne(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).findOne({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async create(params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).create(this.getFetchParams(params));\n }\n\n update(documentId: Modules.Documents.ID, params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).update({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async delete(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n const { entries } = await strapi.documents(uid).delete({\n ...this.getFetchParams(params),\n documentId,\n });\n\n return { deletedEntries: entries.length };\n }\n}\n\n/**\n *\n * Returns a collection type service to handle default core-api actions\n */\n\nconst createCollectionTypeService = (\n contentType: Struct.CollectionTypeSchema\n): Core.CoreAPI.Service.CollectionType => {\n return new CollectionTypeService(contentType);\n};\n\nexport { createCollectionTypeService };\n"],"names":["CoreService","getPaginationInfo","shouldCount","transformPaginationResponse"],"mappings":";;;;AAMO,MAAM,8BACHA,YAAAA,YAEV;AAAA,EACU;AAAA,EAER,YAAY,aAA0C;AAC9C;AAEN,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,MAAM,KAAK,SAAS,IAAI;AAChB,UAAA,EAAE,IAAI,IAAI,KAAK;AAEf,UAAA,cAAc,KAAK,eAAe,MAAM;AAExC,UAAA,iBAAiBC,6BAAkB,WAAW;AAEpD,UAAM,UAAU,MAAM,OAAO,UAAU,GAAG,EAAE,SAAS;AAAA,MACnD,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACJ;AAEG,QAAAC,WAAAA,YAAY,WAAW,GAAG;AAC5B,YAAM,QAAQ,MAAM,OAAO,UAAU,GAAG,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,eAAgB,CAAA;AAEjF,UAAA,OAAO,UAAU,UAAU;AACvB,cAAA,IAAI,MAAM,0BAA0B;AAAA,MAC5C;AAEO,aAAA;AAAA,QACL;AAAA,QACA,YAAYC,WAAAA,4BAA4B,gBAAgB,KAAK;AAAA,MAAA;AAAA,IAEjE;AAEO,WAAA;AAAA,MACL;AAAA,MACA,YAAY;AAAA,IAAA;AAAA,EAEhB;AAAA,EAEA,QAAQ,YAAkC,SAAS,IAAI;AAC/C,UAAA,EAAE,IAAI,IAAI,KAAK;AAErB,WAAO,OAAO,UAAU,GAAG,EAAE,QAAQ;AAAA,MACnC,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,MAAM,OAAO,SAAS,EAAE,MAAM,MAAM;AAC5B,UAAA,EAAE,IAAI,IAAI,KAAK;AAEd,WAAA,OAAO,UAAU,GAAG,EAAE,OAAO,KAAK,eAAe,MAAM,CAAC;AAAA,EACjE;AAAA,EAEA,OAAO,YAAkC,SAAS,EAAE,MAAM,MAAM;AACxD,UAAA,EAAE,IAAI,IAAI,KAAK;AAErB,WAAO,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,MAClC,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,MAAM,OAAO,YAAkC,SAAS,IAAI;AACpD,UAAA,EAAE,IAAI,IAAI,KAAK;AAEf,UAAA,EAAE,YAAY,MAAM,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,MACrD,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAEM,WAAA,EAAE,gBAAgB,QAAQ;EACnC;AACF;AAOM,MAAA,8BAA8B,CAClC,gBACwC;AACjC,SAAA,IAAI,sBAAsB,WAAW;AAC9C;;;"}
1
+ {"version":3,"file":"collection-type.js","sources":["../../../src/core-api/service/collection-type.ts"],"sourcesContent":["import type { Core, Struct, Modules } from '@strapi/types';\n\nimport {\n getPaginationInfo,\n shouldCount,\n isPagedPagination,\n transformPaginationResponse,\n} from './pagination';\n\nimport { CoreService } from './core-service';\n\nexport class CollectionTypeService\n extends CoreService\n implements Core.CoreAPI.Service.CollectionType\n{\n private contentType: Struct.CollectionTypeSchema;\n\n constructor(contentType: Struct.CollectionTypeSchema) {\n super();\n\n this.contentType = contentType;\n }\n\n async find(params = {}) {\n const { uid } = this.contentType;\n\n const fetchParams = this.getFetchParams(params);\n\n const paginationInfo = getPaginationInfo(fetchParams);\n const isPaged = isPagedPagination(fetchParams.pagination);\n\n const results = await strapi.documents(uid).findMany({\n ...fetchParams,\n ...paginationInfo,\n });\n\n if (shouldCount(fetchParams)) {\n const count = await strapi.documents(uid).count({ ...fetchParams, ...paginationInfo });\n\n if (typeof count !== 'number') {\n throw new Error('Count should be a number');\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, count, isPaged),\n };\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, undefined, isPaged),\n };\n }\n\n findOne(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).findOne({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async create(params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).create(this.getFetchParams(params));\n }\n\n update(documentId: Modules.Documents.ID, params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).update({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async delete(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n const { entries } = await strapi.documents(uid).delete({\n ...this.getFetchParams(params),\n documentId,\n });\n\n return { deletedEntries: entries.length };\n }\n}\n\n/**\n *\n * Returns a collection type service to handle default core-api actions\n */\n\nconst createCollectionTypeService = (\n contentType: Struct.CollectionTypeSchema\n): Core.CoreAPI.Service.CollectionType => {\n return new CollectionTypeService(contentType);\n};\n\nexport { createCollectionTypeService };\n"],"names":["CoreService","getPaginationInfo","isPagedPagination","shouldCount","transformPaginationResponse"],"mappings":";;;;AAWO,MAAM,8BACHA,YAAAA,YAEV;AAAA,EACU;AAAA,EAER,YAAY,aAA0C;AAC9C,UAAA;AAEN,SAAK,cAAc;AAAA,EAAA;AAAA,EAGrB,MAAM,KAAK,SAAS,IAAI;AAChB,UAAA,EAAE,QAAQ,KAAK;AAEf,UAAA,cAAc,KAAK,eAAe,MAAM;AAExC,UAAA,iBAAiBC,6BAAkB,WAAW;AAC9C,UAAA,UAAUC,WAAAA,kBAAkB,YAAY,UAAU;AAExD,UAAM,UAAU,MAAM,OAAO,UAAU,GAAG,EAAE,SAAS;AAAA,MACnD,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACJ;AAEG,QAAAC,WAAAA,YAAY,WAAW,GAAG;AAC5B,YAAM,QAAQ,MAAM,OAAO,UAAU,GAAG,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,gBAAgB;AAEjF,UAAA,OAAO,UAAU,UAAU;AACvB,cAAA,IAAI,MAAM,0BAA0B;AAAA,MAAA;AAGrC,aAAA;AAAA,QACL;AAAA,QACA,YAAYC,WAAA,4BAA4B,gBAAgB,OAAO,OAAO;AAAA,MACxE;AAAA,IAAA;AAGK,WAAA;AAAA,MACL;AAAA,MACA,YAAYA,WAAA,4BAA4B,gBAAgB,QAAW,OAAO;AAAA,IAC5E;AAAA,EAAA;AAAA,EAGF,QAAQ,YAAkC,SAAS,IAAI;AAC/C,UAAA,EAAE,QAAQ,KAAK;AAErB,WAAO,OAAO,UAAU,GAAG,EAAE,QAAQ;AAAA,MACnC,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAAA,EAAA;AAAA,EAGH,MAAM,OAAO,SAAS,EAAE,MAAM,MAAM;AAC5B,UAAA,EAAE,QAAQ,KAAK;AAEd,WAAA,OAAO,UAAU,GAAG,EAAE,OAAO,KAAK,eAAe,MAAM,CAAC;AAAA,EAAA;AAAA,EAGjE,OAAO,YAAkC,SAAS,EAAE,MAAM,MAAM;AACxD,UAAA,EAAE,QAAQ,KAAK;AAErB,WAAO,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,MAClC,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAAA,EAAA;AAAA,EAGH,MAAM,OAAO,YAAkC,SAAS,IAAI;AACpD,UAAA,EAAE,QAAQ,KAAK;AAEf,UAAA,EAAE,YAAY,MAAM,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,MACrD,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAEM,WAAA,EAAE,gBAAgB,QAAQ,OAAO;AAAA,EAAA;AAE5C;AAOM,MAAA,8BAA8B,CAClC,gBACwC;AACjC,SAAA,IAAI,sBAAsB,WAAW;AAC9C;;;"}
@@ -1,4 +1,4 @@
1
- import { getPaginationInfo, shouldCount, transformPaginationResponse } from "./pagination.mjs";
1
+ import { getPaginationInfo, isPagedPagination, shouldCount, transformPaginationResponse } from "./pagination.mjs";
2
2
  import { CoreService } from "./core-service.mjs";
3
3
  class CollectionTypeService extends CoreService {
4
4
  contentType;
@@ -10,6 +10,7 @@ class CollectionTypeService extends CoreService {
10
10
  const { uid } = this.contentType;
11
11
  const fetchParams = this.getFetchParams(params);
12
12
  const paginationInfo = getPaginationInfo(fetchParams);
13
+ const isPaged = isPagedPagination(fetchParams.pagination);
13
14
  const results = await strapi.documents(uid).findMany({
14
15
  ...fetchParams,
15
16
  ...paginationInfo
@@ -21,12 +22,12 @@ class CollectionTypeService extends CoreService {
21
22
  }
22
23
  return {
23
24
  results,
24
- pagination: transformPaginationResponse(paginationInfo, count)
25
+ pagination: transformPaginationResponse(paginationInfo, count, isPaged)
25
26
  };
26
27
  }
27
28
  return {
28
29
  results,
29
- pagination: paginationInfo
30
+ pagination: transformPaginationResponse(paginationInfo, void 0, isPaged)
30
31
  };
31
32
  }
32
33
  findOne(documentId, params = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"collection-type.mjs","sources":["../../../src/core-api/service/collection-type.ts"],"sourcesContent":["import type { Core, Struct, Modules } from '@strapi/types';\n\nimport { getPaginationInfo, shouldCount, transformPaginationResponse } from './pagination';\n\nimport { CoreService } from './core-service';\n\nexport class CollectionTypeService\n extends CoreService\n implements Core.CoreAPI.Service.CollectionType\n{\n private contentType: Struct.CollectionTypeSchema;\n\n constructor(contentType: Struct.CollectionTypeSchema) {\n super();\n\n this.contentType = contentType;\n }\n\n async find(params = {}) {\n const { uid } = this.contentType;\n\n const fetchParams = this.getFetchParams(params);\n\n const paginationInfo = getPaginationInfo(fetchParams);\n\n const results = await strapi.documents(uid).findMany({\n ...fetchParams,\n ...paginationInfo,\n });\n\n if (shouldCount(fetchParams)) {\n const count = await strapi.documents(uid).count({ ...fetchParams, ...paginationInfo });\n\n if (typeof count !== 'number') {\n throw new Error('Count should be a number');\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, count),\n };\n }\n\n return {\n results,\n pagination: paginationInfo,\n };\n }\n\n findOne(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).findOne({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async create(params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).create(this.getFetchParams(params));\n }\n\n update(documentId: Modules.Documents.ID, params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).update({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async delete(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n const { entries } = await strapi.documents(uid).delete({\n ...this.getFetchParams(params),\n documentId,\n });\n\n return { deletedEntries: entries.length };\n }\n}\n\n/**\n *\n * Returns a collection type service to handle default core-api actions\n */\n\nconst createCollectionTypeService = (\n contentType: Struct.CollectionTypeSchema\n): Core.CoreAPI.Service.CollectionType => {\n return new CollectionTypeService(contentType);\n};\n\nexport { createCollectionTypeService };\n"],"names":[],"mappings":";;AAMO,MAAM,8BACH,YAEV;AAAA,EACU;AAAA,EAER,YAAY,aAA0C;AAC9C;AAEN,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,MAAM,KAAK,SAAS,IAAI;AAChB,UAAA,EAAE,IAAI,IAAI,KAAK;AAEf,UAAA,cAAc,KAAK,eAAe,MAAM;AAExC,UAAA,iBAAiB,kBAAkB,WAAW;AAEpD,UAAM,UAAU,MAAM,OAAO,UAAU,GAAG,EAAE,SAAS;AAAA,MACnD,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACJ;AAEG,QAAA,YAAY,WAAW,GAAG;AAC5B,YAAM,QAAQ,MAAM,OAAO,UAAU,GAAG,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,eAAgB,CAAA;AAEjF,UAAA,OAAO,UAAU,UAAU;AACvB,cAAA,IAAI,MAAM,0BAA0B;AAAA,MAC5C;AAEO,aAAA;AAAA,QACL;AAAA,QACA,YAAY,4BAA4B,gBAAgB,KAAK;AAAA,MAAA;AAAA,IAEjE;AAEO,WAAA;AAAA,MACL;AAAA,MACA,YAAY;AAAA,IAAA;AAAA,EAEhB;AAAA,EAEA,QAAQ,YAAkC,SAAS,IAAI;AAC/C,UAAA,EAAE,IAAI,IAAI,KAAK;AAErB,WAAO,OAAO,UAAU,GAAG,EAAE,QAAQ;AAAA,MACnC,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,MAAM,OAAO,SAAS,EAAE,MAAM,MAAM;AAC5B,UAAA,EAAE,IAAI,IAAI,KAAK;AAEd,WAAA,OAAO,UAAU,GAAG,EAAE,OAAO,KAAK,eAAe,MAAM,CAAC;AAAA,EACjE;AAAA,EAEA,OAAO,YAAkC,SAAS,EAAE,MAAM,MAAM;AACxD,UAAA,EAAE,IAAI,IAAI,KAAK;AAErB,WAAO,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,MAClC,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,MAAM,OAAO,YAAkC,SAAS,IAAI;AACpD,UAAA,EAAE,IAAI,IAAI,KAAK;AAEf,UAAA,EAAE,YAAY,MAAM,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,MACrD,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAEM,WAAA,EAAE,gBAAgB,QAAQ;EACnC;AACF;AAOM,MAAA,8BAA8B,CAClC,gBACwC;AACjC,SAAA,IAAI,sBAAsB,WAAW;AAC9C;"}
1
+ {"version":3,"file":"collection-type.mjs","sources":["../../../src/core-api/service/collection-type.ts"],"sourcesContent":["import type { Core, Struct, Modules } from '@strapi/types';\n\nimport {\n getPaginationInfo,\n shouldCount,\n isPagedPagination,\n transformPaginationResponse,\n} from './pagination';\n\nimport { CoreService } from './core-service';\n\nexport class CollectionTypeService\n extends CoreService\n implements Core.CoreAPI.Service.CollectionType\n{\n private contentType: Struct.CollectionTypeSchema;\n\n constructor(contentType: Struct.CollectionTypeSchema) {\n super();\n\n this.contentType = contentType;\n }\n\n async find(params = {}) {\n const { uid } = this.contentType;\n\n const fetchParams = this.getFetchParams(params);\n\n const paginationInfo = getPaginationInfo(fetchParams);\n const isPaged = isPagedPagination(fetchParams.pagination);\n\n const results = await strapi.documents(uid).findMany({\n ...fetchParams,\n ...paginationInfo,\n });\n\n if (shouldCount(fetchParams)) {\n const count = await strapi.documents(uid).count({ ...fetchParams, ...paginationInfo });\n\n if (typeof count !== 'number') {\n throw new Error('Count should be a number');\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, count, isPaged),\n };\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, undefined, isPaged),\n };\n }\n\n findOne(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).findOne({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async create(params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).create(this.getFetchParams(params));\n }\n\n update(documentId: Modules.Documents.ID, params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).update({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async delete(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n const { entries } = await strapi.documents(uid).delete({\n ...this.getFetchParams(params),\n documentId,\n });\n\n return { deletedEntries: entries.length };\n }\n}\n\n/**\n *\n * Returns a collection type service to handle default core-api actions\n */\n\nconst createCollectionTypeService = (\n contentType: Struct.CollectionTypeSchema\n): Core.CoreAPI.Service.CollectionType => {\n return new CollectionTypeService(contentType);\n};\n\nexport { createCollectionTypeService };\n"],"names":[],"mappings":";;AAWO,MAAM,8BACH,YAEV;AAAA,EACU;AAAA,EAER,YAAY,aAA0C;AAC9C,UAAA;AAEN,SAAK,cAAc;AAAA,EAAA;AAAA,EAGrB,MAAM,KAAK,SAAS,IAAI;AAChB,UAAA,EAAE,QAAQ,KAAK;AAEf,UAAA,cAAc,KAAK,eAAe,MAAM;AAExC,UAAA,iBAAiB,kBAAkB,WAAW;AAC9C,UAAA,UAAU,kBAAkB,YAAY,UAAU;AAExD,UAAM,UAAU,MAAM,OAAO,UAAU,GAAG,EAAE,SAAS;AAAA,MACnD,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACJ;AAEG,QAAA,YAAY,WAAW,GAAG;AAC5B,YAAM,QAAQ,MAAM,OAAO,UAAU,GAAG,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,gBAAgB;AAEjF,UAAA,OAAO,UAAU,UAAU;AACvB,cAAA,IAAI,MAAM,0BAA0B;AAAA,MAAA;AAGrC,aAAA;AAAA,QACL;AAAA,QACA,YAAY,4BAA4B,gBAAgB,OAAO,OAAO;AAAA,MACxE;AAAA,IAAA;AAGK,WAAA;AAAA,MACL;AAAA,MACA,YAAY,4BAA4B,gBAAgB,QAAW,OAAO;AAAA,IAC5E;AAAA,EAAA;AAAA,EAGF,QAAQ,YAAkC,SAAS,IAAI;AAC/C,UAAA,EAAE,QAAQ,KAAK;AAErB,WAAO,OAAO,UAAU,GAAG,EAAE,QAAQ;AAAA,MACnC,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAAA,EAAA;AAAA,EAGH,MAAM,OAAO,SAAS,EAAE,MAAM,MAAM;AAC5B,UAAA,EAAE,QAAQ,KAAK;AAEd,WAAA,OAAO,UAAU,GAAG,EAAE,OAAO,KAAK,eAAe,MAAM,CAAC;AAAA,EAAA;AAAA,EAGjE,OAAO,YAAkC,SAAS,EAAE,MAAM,MAAM;AACxD,UAAA,EAAE,QAAQ,KAAK;AAErB,WAAO,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,MAClC,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAAA,EAAA;AAAA,EAGH,MAAM,OAAO,YAAkC,SAAS,IAAI;AACpD,UAAA,EAAE,QAAQ,KAAK;AAEf,UAAA,EAAE,YAAY,MAAM,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,MACrD,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAEM,WAAA,EAAE,gBAAgB,QAAQ,OAAO;AAAA,EAAA;AAE5C;AAOM,MAAA,8BAA8B,CAClC,gBACwC;AACjC,SAAA,IAAI,sBAAsB,WAAW;AAC9C;"}
@@ -1 +1 @@
1
- {"version":3,"file":"core-service.js","sources":["../../../src/core-api/service/core-service.ts"],"sourcesContent":["export abstract class CoreService {\n getFetchParams(params = {}): any {\n return {\n status: 'published',\n ...params,\n };\n }\n}\n"],"names":[],"mappings":";;AAAO,MAAe,YAAY;AAAA,EAChC,eAAe,SAAS,IAAS;AACxB,WAAA;AAAA,MACL,QAAQ;AAAA,MACR,GAAG;AAAA,IAAA;AAAA,EAEP;AACF;;"}
1
+ {"version":3,"file":"core-service.js","sources":["../../../src/core-api/service/core-service.ts"],"sourcesContent":["export abstract class CoreService {\n getFetchParams(params = {}): any {\n return {\n status: 'published',\n ...params,\n };\n }\n}\n"],"names":[],"mappings":";;AAAO,MAAe,YAAY;AAAA,EAChC,eAAe,SAAS,IAAS;AACxB,WAAA;AAAA,MACL,QAAQ;AAAA,MACR,GAAG;AAAA,IACL;AAAA,EAAA;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"core-service.mjs","sources":["../../../src/core-api/service/core-service.ts"],"sourcesContent":["export abstract class CoreService {\n getFetchParams(params = {}): any {\n return {\n status: 'published',\n ...params,\n };\n }\n}\n"],"names":[],"mappings":"AAAO,MAAe,YAAY;AAAA,EAChC,eAAe,SAAS,IAAS;AACxB,WAAA;AAAA,MACL,QAAQ;AAAA,MACR,GAAG;AAAA,IAAA;AAAA,EAEP;AACF;"}
1
+ {"version":3,"file":"core-service.mjs","sources":["../../../src/core-api/service/core-service.ts"],"sourcesContent":["export abstract class CoreService {\n getFetchParams(params = {}): any {\n return {\n status: 'published',\n ...params,\n };\n }\n}\n"],"names":[],"mappings":"AAAO,MAAe,YAAY;AAAA,EAChC,eAAe,SAAS,IAAS;AACxB,WAAA;AAAA,MACL,QAAQ;AAAA,MACR,GAAG;AAAA,IACL;AAAA,EAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/core-api/service/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nimport { createSingleTypeService } from './single-type';\nimport { createCollectionTypeService } from './collection-type';\n\nconst isSingleType = (\n contentType: Struct.ContentTypeSchema\n): contentType is Struct.SingleTypeSchema => contentTypeUtils.isSingleType(contentType);\n\n/**\n * Returns a core api for the provided model\n */\nfunction createService<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Service.SingleType\n : Core.CoreAPI.Service.CollectionType;\nfunction createService({\n contentType,\n}: {\n contentType: Struct.CollectionTypeSchema | Struct.SingleTypeSchema;\n}): Core.CoreAPI.Service.SingleType | Core.CoreAPI.Service.CollectionType {\n if (isSingleType(contentType)) {\n return createSingleTypeService(contentType);\n }\n\n return createCollectionTypeService(contentType);\n}\n\nexport { createService };\n"],"names":["contentTypeUtils","createSingleTypeService","createCollectionTypeService"],"mappings":";;;;;AAMA,MAAM,eAAe,CACnB,gBAC2CA,YAAA,aAAiB,aAAa,WAAW;AAUtF,SAAS,cAAc;AAAA,EACrB;AACF,GAE0E;AACpE,MAAA,aAAa,WAAW,GAAG;AAC7B,WAAOC,WAAAA,wBAAwB,WAAW;AAAA,EAC5C;AAEA,SAAOC,eAAAA,4BAA4B,WAAW;AAChD;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/core-api/service/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nimport { createSingleTypeService } from './single-type';\nimport { createCollectionTypeService } from './collection-type';\n\nconst isSingleType = (\n contentType: Struct.ContentTypeSchema\n): contentType is Struct.SingleTypeSchema => contentTypeUtils.isSingleType(contentType);\n\n/**\n * Returns a core api for the provided model\n */\nfunction createService<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Service.SingleType\n : Core.CoreAPI.Service.CollectionType;\nfunction createService({\n contentType,\n}: {\n contentType: Struct.CollectionTypeSchema | Struct.SingleTypeSchema;\n}): Core.CoreAPI.Service.SingleType | Core.CoreAPI.Service.CollectionType {\n if (isSingleType(contentType)) {\n return createSingleTypeService(contentType);\n }\n\n return createCollectionTypeService(contentType);\n}\n\nexport { createService };\n"],"names":["contentTypeUtils","createSingleTypeService","createCollectionTypeService"],"mappings":";;;;;AAMA,MAAM,eAAe,CACnB,gBAC2CA,yBAAiB,aAAa,WAAW;AAUtF,SAAS,cAAc;AAAA,EACrB;AACF,GAE0E;AACpE,MAAA,aAAa,WAAW,GAAG;AAC7B,WAAOC,WAAAA,wBAAwB,WAAW;AAAA,EAAA;AAG5C,SAAOC,eAAAA,4BAA4B,WAAW;AAChD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/core-api/service/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nimport { createSingleTypeService } from './single-type';\nimport { createCollectionTypeService } from './collection-type';\n\nconst isSingleType = (\n contentType: Struct.ContentTypeSchema\n): contentType is Struct.SingleTypeSchema => contentTypeUtils.isSingleType(contentType);\n\n/**\n * Returns a core api for the provided model\n */\nfunction createService<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Service.SingleType\n : Core.CoreAPI.Service.CollectionType;\nfunction createService({\n contentType,\n}: {\n contentType: Struct.CollectionTypeSchema | Struct.SingleTypeSchema;\n}): Core.CoreAPI.Service.SingleType | Core.CoreAPI.Service.CollectionType {\n if (isSingleType(contentType)) {\n return createSingleTypeService(contentType);\n }\n\n return createCollectionTypeService(contentType);\n}\n\nexport { createService };\n"],"names":["contentTypeUtils"],"mappings":";;;AAMA,MAAM,eAAe,CACnB,gBAC2CA,aAAiB,aAAa,WAAW;AAUtF,SAAS,cAAc;AAAA,EACrB;AACF,GAE0E;AACpE,MAAA,aAAa,WAAW,GAAG;AAC7B,WAAO,wBAAwB,WAAW;AAAA,EAC5C;AAEA,SAAO,4BAA4B,WAAW;AAChD;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/core-api/service/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nimport { createSingleTypeService } from './single-type';\nimport { createCollectionTypeService } from './collection-type';\n\nconst isSingleType = (\n contentType: Struct.ContentTypeSchema\n): contentType is Struct.SingleTypeSchema => contentTypeUtils.isSingleType(contentType);\n\n/**\n * Returns a core api for the provided model\n */\nfunction createService<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Service.SingleType\n : Core.CoreAPI.Service.CollectionType;\nfunction createService({\n contentType,\n}: {\n contentType: Struct.CollectionTypeSchema | Struct.SingleTypeSchema;\n}): Core.CoreAPI.Service.SingleType | Core.CoreAPI.Service.CollectionType {\n if (isSingleType(contentType)) {\n return createSingleTypeService(contentType);\n }\n\n return createCollectionTypeService(contentType);\n}\n\nexport { createService };\n"],"names":["contentTypeUtils"],"mappings":";;;AAMA,MAAM,eAAe,CACnB,gBAC2CA,aAAiB,aAAa,WAAW;AAUtF,SAAS,cAAc;AAAA,EACrB;AACF,GAE0E;AACpE,MAAA,aAAa,WAAW,GAAG;AAC7B,WAAO,wBAAwB,WAAW;AAAA,EAAA;AAG5C,SAAO,4BAA4B,WAAW;AAChD;"}
@@ -1,3 +1,4 @@
1
+ import { pagination } from '@strapi/utils';
1
2
  interface BasePaginationParams {
2
3
  withCount?: boolean | 't' | '1' | 'true' | 'f' | '0' | 'false' | 0 | 1;
3
4
  }
@@ -17,21 +18,13 @@ type PaginationInfo = {
17
18
  start: number;
18
19
  limit: number;
19
20
  };
21
+ declare const isPagedPagination: (pagination?: PaginationParams) => pagination is PagedPagination;
20
22
  declare const shouldCount: (params: {
21
23
  pagination?: PaginationParams;
22
24
  }) => boolean;
23
25
  declare const getPaginationInfo: (params: {
24
26
  pagination?: PaginationParams;
25
27
  }) => PaginationInfo;
26
- declare const transformPaginationResponse: (paginationInfo: PaginationInfo, count: number) => {
27
- pageCount: number;
28
- total: number;
29
- page: number;
30
- pageSize: number;
31
- } | {
32
- total: number;
33
- start: number;
34
- limit: number;
35
- };
36
- export { getPaginationInfo, transformPaginationResponse, shouldCount };
28
+ declare const transformPaginationResponse: (paginationInfo: PaginationInfo, total: number | undefined, isPaged: boolean) => pagination.PagePatinationInformation | pagination.OffsetPaginationInformation;
29
+ export { isPagedPagination, shouldCount, getPaginationInfo, transformPaginationResponse };
37
30
  //# sourceMappingURL=pagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/core-api/service/pagination.ts"],"names":[],"mappings":"AAGA,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;CACxE;AAED,KAAK,eAAe,GAAG,oBAAoB,GAAG;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG,oBAAoB,GAAG;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAElE,KAAK,cAAc,GACf;IACE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAmBN,QAAA,MAAM,WAAW,WAAY;IAAE,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,YA0B7D,CAAC;AAQF,QAAA,MAAM,iBAAiB,WAAY;IAAE,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,KAAG,cA0CtE,CAAC;AAEF,QAAA,MAAM,2BAA2B,mBAAoB,cAAc,SAAS,MAAM;;;UAvGtE,MAAM;cACF,MAAM;;;WAGT,MAAM;WACN,MAAM;CA+GlB,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/core-api/service/pagination.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,UAAU,EAAE,MAAM,eAAe,CAAC;AAEnD,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;CACxE;AAED,KAAK,eAAe,GAAG,oBAAoB,GAAG;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG,oBAAoB,GAAG;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAElE,KAAK,cAAc,GACf;IACE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAaN,QAAA,MAAM,iBAAiB,gBAAiB,gBAAgB,kCACmC,CAAC;AAE5F,QAAA,MAAM,WAAW,WAAY;IAAE,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,YA0B7D,CAAC;AAEF,QAAA,MAAM,iBAAiB,WAAY;IAAE,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,KAAG,cAStE,CAAC;AAEF,QAAA,MAAM,2BAA2B,mBACf,cAAc,SACvB,MAAM,GAAG,SAAS,WAChB,OAAO,kFAcjB,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,14 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _ = require("lodash/fp");
3
+ const fp = require("lodash/fp");
4
4
  const strapiUtils = require("@strapi/utils");
5
5
  const getLimitConfigDefaults = () => ({
6
- defaultLimit: _.toNumber(strapi.config.get("api.rest.defaultLimit", 25)),
7
- maxLimit: _.toNumber(strapi.config.get("api.rest.maxLimit")) || null
6
+ defaultLimit: fp.toNumber(strapi.config.get("api.rest.defaultLimit", 25)),
7
+ maxLimit: fp.toNumber(strapi.config.get("api.rest.maxLimit")) || null
8
8
  });
9
- const shouldApplyMaxLimit = (limit, maxLimit, { isPagedPagination: isPagedPagination2 = false } = {}) => !isPagedPagination2 && limit === -1 || maxLimit !== null && limit > maxLimit;
9
+ const isOffsetPagination = (pagination2) => fp.has("start", pagination2) || fp.has("limit", pagination2);
10
+ const isPagedPagination = (pagination2) => fp.has("page", pagination2) || fp.has("pageSize", pagination2) || !isOffsetPagination(pagination2);
10
11
  const shouldCount = (params) => {
11
- if (_.has("pagination.withCount", params)) {
12
+ if (fp.has("pagination.withCount", params)) {
12
13
  const withCount = params.pagination?.withCount;
13
14
  if (typeof withCount === "boolean") {
14
15
  return withCount;
@@ -28,51 +29,24 @@ const shouldCount = (params) => {
28
29
  }
29
30
  return Boolean(strapi.config.get("api.rest.withCount", true));
30
31
  };
31
- const isOffsetPagination = (pagination) => _.has("start", pagination) || _.has("limit", pagination);
32
- const isPagedPagination = (pagination) => _.has("page", pagination) || _.has("pageSize", pagination);
33
32
  const getPaginationInfo = (params) => {
34
33
  const { defaultLimit, maxLimit } = getLimitConfigDefaults();
35
- const { pagination } = params;
36
- const isPaged = isPagedPagination(pagination);
37
- const isOffset = isOffsetPagination(pagination);
38
- if (isOffset && isPaged) {
39
- throw new strapiUtils.errors.ValidationError(
40
- "Invalid pagination parameters. Expected either start/limit or page/pageSize"
41
- );
42
- }
43
- if (!isOffset && !isPaged) {
44
- return {
45
- page: 1,
46
- pageSize: defaultLimit
47
- };
48
- }
49
- if (isPagedPagination(pagination)) {
50
- const pageSize = _.isUndefined(pagination.pageSize) ? defaultLimit : Math.max(1, _.toNumber(pagination.pageSize));
51
- return {
52
- page: Math.max(1, _.toNumber(pagination.page || 1)),
53
- pageSize: typeof maxLimit === "number" && shouldApplyMaxLimit(pageSize, maxLimit, { isPagedPagination: true }) ? maxLimit : Math.max(1, pageSize)
54
- };
55
- }
56
- const limit = _.isUndefined(pagination.limit) ? defaultLimit : _.toNumber(pagination.limit);
57
- return {
58
- start: Math.max(0, _.toNumber(pagination.start || 0)),
59
- limit: shouldApplyMaxLimit(limit, maxLimit) ? maxLimit || -1 : Math.max(1, limit)
60
- };
34
+ const { start, limit } = strapiUtils.pagination.withDefaultPagination(params.pagination || {}, {
35
+ defaults: { offset: { limit: defaultLimit }, page: { pageSize: defaultLimit } },
36
+ maxLimit: maxLimit || -1
37
+ });
38
+ return { start, limit };
61
39
  };
62
- const transformPaginationResponse = (paginationInfo, count) => {
63
- if ("page" in paginationInfo) {
64
- return {
65
- ...paginationInfo,
66
- pageCount: Math.ceil(count / paginationInfo.pageSize),
67
- total: count
68
- };
40
+ const transformPaginationResponse = (paginationInfo, total, isPaged) => {
41
+ const transform = isPaged ? strapiUtils.pagination.transformPagedPaginationInfo : strapiUtils.pagination.transformOffsetPaginationInfo;
42
+ const paginationResponse = transform(paginationInfo, total);
43
+ if (fp.isNil(total)) {
44
+ return fp.omit(["total", "pageCount"], paginationResponse);
69
45
  }
70
- return {
71
- ...paginationInfo,
72
- total: count
73
- };
46
+ return paginationResponse;
74
47
  };
75
48
  exports.getPaginationInfo = getPaginationInfo;
49
+ exports.isPagedPagination = isPagedPagination;
76
50
  exports.shouldCount = shouldCount;
77
51
  exports.transformPaginationResponse = transformPaginationResponse;
78
52
  //# sourceMappingURL=pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sources":["../../../src/core-api/service/pagination.ts"],"sourcesContent":["import { has, toNumber, isUndefined } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\ninterface BasePaginationParams {\n withCount?: boolean | 't' | '1' | 'true' | 'f' | '0' | 'false' | 0 | 1;\n}\n\ntype PagedPagination = BasePaginationParams & {\n page?: number;\n pageSize?: number;\n};\n\ntype OffsetPagination = BasePaginationParams & {\n start?: number;\n limit?: number;\n};\n\nexport type PaginationParams = PagedPagination | OffsetPagination;\n\ntype PaginationInfo =\n | {\n page: number;\n pageSize: number;\n }\n | {\n start: number;\n limit: number;\n };\n\n/**\n * Default limit values from config\n */\nconst getLimitConfigDefaults = () => ({\n defaultLimit: toNumber(strapi.config.get('api.rest.defaultLimit', 25)),\n maxLimit: toNumber(strapi.config.get('api.rest.maxLimit')) || null,\n});\n\n/**\n * Should maxLimit be used as the limit or not\n */\nconst shouldApplyMaxLimit = (\n limit: number,\n maxLimit: number | null,\n { isPagedPagination = false } = {}\n) => (!isPagedPagination && limit === -1) || (maxLimit !== null && limit > maxLimit);\n\nconst shouldCount = (params: { pagination?: PaginationParams }) => {\n if (has('pagination.withCount', params)) {\n const withCount = params.pagination?.withCount;\n\n if (typeof withCount === 'boolean') {\n return withCount;\n }\n\n if (typeof withCount === 'undefined') {\n return false;\n }\n\n if (['true', 't', '1', 1].includes(withCount)) {\n return true;\n }\n\n if (['false', 'f', '0', 0].includes(withCount)) {\n return false;\n }\n\n throw new errors.ValidationError(\n 'Invalid withCount parameter. Expected \"t\",\"1\",\"true\",\"false\",\"0\",\"f\"'\n );\n }\n\n return Boolean(strapi.config.get('api.rest.withCount', true));\n};\n\nconst isOffsetPagination = (pagination?: PaginationParams): pagination is OffsetPagination =>\n has('start', pagination) || has('limit', pagination);\n\nconst isPagedPagination = (pagination?: PaginationParams): pagination is PagedPagination =>\n has('page', pagination) || has('pageSize', pagination);\n\nconst getPaginationInfo = (params: { pagination?: PaginationParams }): PaginationInfo => {\n const { defaultLimit, maxLimit } = getLimitConfigDefaults();\n\n const { pagination } = params;\n\n const isPaged = isPagedPagination(pagination);\n const isOffset = isOffsetPagination(pagination);\n\n if (isOffset && isPaged) {\n throw new errors.ValidationError(\n 'Invalid pagination parameters. Expected either start/limit or page/pageSize'\n );\n }\n\n if (!isOffset && !isPaged) {\n return {\n page: 1,\n pageSize: defaultLimit,\n };\n }\n\n if (isPagedPagination(pagination)) {\n const pageSize = isUndefined(pagination.pageSize)\n ? defaultLimit\n : Math.max(1, toNumber(pagination.pageSize));\n\n return {\n page: Math.max(1, toNumber(pagination.page || 1)),\n pageSize:\n typeof maxLimit === 'number' &&\n shouldApplyMaxLimit(pageSize, maxLimit, { isPagedPagination: true })\n ? maxLimit\n : Math.max(1, pageSize),\n };\n }\n\n const limit = isUndefined(pagination.limit) ? defaultLimit : toNumber(pagination.limit);\n\n return {\n start: Math.max(0, toNumber(pagination.start || 0)),\n limit: shouldApplyMaxLimit(limit, maxLimit) ? maxLimit || -1 : Math.max(1, limit),\n };\n};\n\nconst transformPaginationResponse = (paginationInfo: PaginationInfo, count: number) => {\n if ('page' in paginationInfo) {\n return {\n ...paginationInfo,\n pageCount: Math.ceil(count / paginationInfo.pageSize),\n total: count,\n };\n }\n\n return {\n ...paginationInfo,\n total: count,\n };\n};\n\nexport { getPaginationInfo, transformPaginationResponse, shouldCount };\n"],"names":["toNumber","isPagedPagination","has","errors","isUndefined"],"mappings":";;;;AAgCA,MAAM,yBAAyB,OAAO;AAAA,EACpC,cAAcA,EAAS,SAAA,OAAO,OAAO,IAAI,yBAAyB,EAAE,CAAC;AAAA,EACrE,UAAUA,EAAS,SAAA,OAAO,OAAO,IAAI,mBAAmB,CAAC,KAAK;AAChE;AAKA,MAAM,sBAAsB,CAC1B,OACA,UACA,EAAE,mBAAAC,qBAAoB,UAAU,CAAA,MAC5B,CAACA,sBAAqB,UAAU,MAAQ,aAAa,QAAQ,QAAQ;AAErE,MAAA,cAAc,CAAC,WAA8C;AAC7D,MAAAC,EAAA,IAAI,wBAAwB,MAAM,GAAG;AACjC,UAAA,YAAY,OAAO,YAAY;AAEjC,QAAA,OAAO,cAAc,WAAW;AAC3B,aAAA;AAAA,IACT;AAEI,QAAA,OAAO,cAAc,aAAa;AAC7B,aAAA;AAAA,IACT;AAEI,QAAA,CAAC,QAAQ,KAAK,KAAK,CAAC,EAAE,SAAS,SAAS,GAAG;AACtC,aAAA;AAAA,IACT;AAEI,QAAA,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,SAAS,SAAS,GAAG;AACvC,aAAA;AAAA,IACT;AAEA,UAAM,IAAIC,YAAO,OAAA;AAAA,MACf;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAO,QAAQ,OAAO,OAAO,IAAI,sBAAsB,IAAI,CAAC;AAC9D;AAEA,MAAM,qBAAqB,CAAC,eAC1BD,EAAAA,IAAI,SAAS,UAAU,KAAKA,EAAI,IAAA,SAAS,UAAU;AAErD,MAAM,oBAAoB,CAAC,eACzBA,EAAAA,IAAI,QAAQ,UAAU,KAAKA,EAAI,IAAA,YAAY,UAAU;AAEjD,MAAA,oBAAoB,CAAC,WAA8D;AACvF,QAAM,EAAE,cAAc,SAAS,IAAI,uBAAuB;AAEpD,QAAA,EAAE,WAAe,IAAA;AAEjB,QAAA,UAAU,kBAAkB,UAAU;AACtC,QAAA,WAAW,mBAAmB,UAAU;AAE9C,MAAI,YAAY,SAAS;AACvB,UAAM,IAAIC,YAAO,OAAA;AAAA,MACf;AAAA,IAAA;AAAA,EAEJ;AAEI,MAAA,CAAC,YAAY,CAAC,SAAS;AAClB,WAAA;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EAEd;AAEI,MAAA,kBAAkB,UAAU,GAAG;AACjC,UAAM,WAAWC,EAAA,YAAY,WAAW,QAAQ,IAC5C,eACA,KAAK,IAAI,GAAGJ,EAAAA,SAAS,WAAW,QAAQ,CAAC;AAEtC,WAAA;AAAA,MACL,MAAM,KAAK,IAAI,GAAGA,WAAS,WAAW,QAAQ,CAAC,CAAC;AAAA,MAChD,UACE,OAAO,aAAa,YACpB,oBAAoB,UAAU,UAAU,EAAE,mBAAmB,KAAA,CAAM,IAC/D,WACA,KAAK,IAAI,GAAG,QAAQ;AAAA,IAAA;AAAA,EAE9B;AAEM,QAAA,QAAQI,cAAY,WAAW,KAAK,IAAI,eAAeJ,EAAA,SAAS,WAAW,KAAK;AAE/E,SAAA;AAAA,IACL,OAAO,KAAK,IAAI,GAAGA,WAAS,WAAW,SAAS,CAAC,CAAC;AAAA,IAClD,OAAO,oBAAoB,OAAO,QAAQ,IAAI,YAAY,KAAK,KAAK,IAAI,GAAG,KAAK;AAAA,EAAA;AAEpF;AAEM,MAAA,8BAA8B,CAAC,gBAAgC,UAAkB;AACrF,MAAI,UAAU,gBAAgB;AACrB,WAAA;AAAA,MACL,GAAG;AAAA,MACH,WAAW,KAAK,KAAK,QAAQ,eAAe,QAAQ;AAAA,MACpD,OAAO;AAAA,IAAA;AAAA,EAEX;AAEO,SAAA;AAAA,IACL,GAAG;AAAA,IACH,OAAO;AAAA,EAAA;AAEX;;;;"}
1
+ {"version":3,"file":"pagination.js","sources":["../../../src/core-api/service/pagination.ts"],"sourcesContent":["import { omit, has, toNumber, isNil } from 'lodash/fp';\n\nimport { errors, pagination } from '@strapi/utils';\n\ninterface BasePaginationParams {\n withCount?: boolean | 't' | '1' | 'true' | 'f' | '0' | 'false' | 0 | 1;\n}\n\ntype PagedPagination = BasePaginationParams & {\n page?: number;\n pageSize?: number;\n};\n\ntype OffsetPagination = BasePaginationParams & {\n start?: number;\n limit?: number;\n};\n\nexport type PaginationParams = PagedPagination | OffsetPagination;\n\ntype PaginationInfo =\n | {\n page: number;\n pageSize: number;\n }\n | {\n start: number;\n limit: number;\n };\n\n/**\n * Default limit values from config\n */\nconst getLimitConfigDefaults = () => ({\n defaultLimit: toNumber(strapi.config.get('api.rest.defaultLimit', 25)),\n maxLimit: toNumber(strapi.config.get('api.rest.maxLimit')) || null,\n});\n\nconst isOffsetPagination = (pagination?: PaginationParams): pagination is OffsetPagination =>\n has('start', pagination) || has('limit', pagination);\n\nconst isPagedPagination = (pagination?: PaginationParams): pagination is PagedPagination =>\n has('page', pagination) || has('pageSize', pagination) || !isOffsetPagination(pagination);\n\nconst shouldCount = (params: { pagination?: PaginationParams }) => {\n if (has('pagination.withCount', params)) {\n const withCount = params.pagination?.withCount;\n\n if (typeof withCount === 'boolean') {\n return withCount;\n }\n\n if (typeof withCount === 'undefined') {\n return false;\n }\n\n if (['true', 't', '1', 1].includes(withCount)) {\n return true;\n }\n\n if (['false', 'f', '0', 0].includes(withCount)) {\n return false;\n }\n\n throw new errors.ValidationError(\n 'Invalid withCount parameter. Expected \"t\",\"1\",\"true\",\"false\",\"0\",\"f\"'\n );\n }\n\n return Boolean(strapi.config.get('api.rest.withCount', true));\n};\n\nconst getPaginationInfo = (params: { pagination?: PaginationParams }): PaginationInfo => {\n const { defaultLimit, maxLimit } = getLimitConfigDefaults();\n\n const { start, limit } = pagination.withDefaultPagination(params.pagination || {}, {\n defaults: { offset: { limit: defaultLimit }, page: { pageSize: defaultLimit } },\n maxLimit: maxLimit || -1,\n });\n\n return { start, limit };\n};\n\nconst transformPaginationResponse = (\n paginationInfo: PaginationInfo,\n total: number | undefined,\n isPaged: boolean\n) => {\n const transform = isPaged\n ? pagination.transformPagedPaginationInfo\n : pagination.transformOffsetPaginationInfo;\n\n const paginationResponse = transform(paginationInfo, total!);\n\n if (isNil(total)) {\n // Ignore total and pageCount if `total` value is not available.\n return omit(['total', 'pageCount'], paginationResponse) as ReturnType<typeof transform>;\n }\n\n return paginationResponse;\n};\n\nexport { isPagedPagination, shouldCount, getPaginationInfo, transformPaginationResponse };\n"],"names":["toNumber","pagination","has","errors","isNil","omit"],"mappings":";;;;AAiCA,MAAM,yBAAyB,OAAO;AAAA,EACpC,cAAcA,GAAS,SAAA,OAAO,OAAO,IAAI,yBAAyB,EAAE,CAAC;AAAA,EACrE,UAAUA,GAAS,SAAA,OAAO,OAAO,IAAI,mBAAmB,CAAC,KAAK;AAChE;AAEA,MAAM,qBAAqB,CAACC,gBAC1BC,OAAI,SAASD,WAAU,KAAKC,GAAAA,IAAI,SAASD,WAAU;AAErD,MAAM,oBAAoB,CAACA,gBACzBC,GAAA,IAAI,QAAQD,WAAU,KAAKC,GAAA,IAAI,YAAYD,WAAU,KAAK,CAAC,mBAAmBA,WAAU;AAEpF,MAAA,cAAc,CAAC,WAA8C;AAC7D,MAAAC,GAAA,IAAI,wBAAwB,MAAM,GAAG;AACjC,UAAA,YAAY,OAAO,YAAY;AAEjC,QAAA,OAAO,cAAc,WAAW;AAC3B,aAAA;AAAA,IAAA;AAGL,QAAA,OAAO,cAAc,aAAa;AAC7B,aAAA;AAAA,IAAA;AAGL,QAAA,CAAC,QAAQ,KAAK,KAAK,CAAC,EAAE,SAAS,SAAS,GAAG;AACtC,aAAA;AAAA,IAAA;AAGL,QAAA,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,SAAS,SAAS,GAAG;AACvC,aAAA;AAAA,IAAA;AAGT,UAAM,IAAIC,YAAO,OAAA;AAAA,MACf;AAAA,IACF;AAAA,EAAA;AAGF,SAAO,QAAQ,OAAO,OAAO,IAAI,sBAAsB,IAAI,CAAC;AAC9D;AAEM,MAAA,oBAAoB,CAAC,WAA8D;AACvF,QAAM,EAAE,cAAc,SAAS,IAAI,uBAAuB;AAEpD,QAAA,EAAE,OAAO,UAAUF,YAAAA,WAAW,sBAAsB,OAAO,cAAc,IAAI;AAAA,IACjF,UAAU,EAAE,QAAQ,EAAE,OAAO,aAAa,GAAG,MAAM,EAAE,UAAU,eAAe;AAAA,IAC9E,UAAU,YAAY;AAAA,EAAA,CACvB;AAEM,SAAA,EAAE,OAAO,MAAM;AACxB;AAEA,MAAM,8BAA8B,CAClC,gBACA,OACA,YACG;AACH,QAAM,YAAY,UACdA,YAAW,WAAA,+BACXA,YAAW,WAAA;AAET,QAAA,qBAAqB,UAAU,gBAAgB,KAAM;AAEvD,MAAAG,GAAAA,MAAM,KAAK,GAAG;AAEhB,WAAOC,GAAK,KAAA,CAAC,SAAS,WAAW,GAAG,kBAAkB;AAAA,EAAA;AAGjD,SAAA;AACT;;;;;"}
@@ -1,10 +1,11 @@
1
- import { has, isUndefined, toNumber } from "lodash/fp";
2
- import { errors } from "@strapi/utils";
1
+ import { has, isNil, omit, toNumber } from "lodash/fp";
2
+ import { errors, pagination } from "@strapi/utils";
3
3
  const getLimitConfigDefaults = () => ({
4
4
  defaultLimit: toNumber(strapi.config.get("api.rest.defaultLimit", 25)),
5
5
  maxLimit: toNumber(strapi.config.get("api.rest.maxLimit")) || null
6
6
  });
7
- const shouldApplyMaxLimit = (limit, maxLimit, { isPagedPagination: isPagedPagination2 = false } = {}) => !isPagedPagination2 && limit === -1 || maxLimit !== null && limit > maxLimit;
7
+ const isOffsetPagination = (pagination2) => has("start", pagination2) || has("limit", pagination2);
8
+ const isPagedPagination = (pagination2) => has("page", pagination2) || has("pageSize", pagination2) || !isOffsetPagination(pagination2);
8
9
  const shouldCount = (params) => {
9
10
  if (has("pagination.withCount", params)) {
10
11
  const withCount = params.pagination?.withCount;
@@ -26,52 +27,25 @@ const shouldCount = (params) => {
26
27
  }
27
28
  return Boolean(strapi.config.get("api.rest.withCount", true));
28
29
  };
29
- const isOffsetPagination = (pagination) => has("start", pagination) || has("limit", pagination);
30
- const isPagedPagination = (pagination) => has("page", pagination) || has("pageSize", pagination);
31
30
  const getPaginationInfo = (params) => {
32
31
  const { defaultLimit, maxLimit } = getLimitConfigDefaults();
33
- const { pagination } = params;
34
- const isPaged = isPagedPagination(pagination);
35
- const isOffset = isOffsetPagination(pagination);
36
- if (isOffset && isPaged) {
37
- throw new errors.ValidationError(
38
- "Invalid pagination parameters. Expected either start/limit or page/pageSize"
39
- );
40
- }
41
- if (!isOffset && !isPaged) {
42
- return {
43
- page: 1,
44
- pageSize: defaultLimit
45
- };
46
- }
47
- if (isPagedPagination(pagination)) {
48
- const pageSize = isUndefined(pagination.pageSize) ? defaultLimit : Math.max(1, toNumber(pagination.pageSize));
49
- return {
50
- page: Math.max(1, toNumber(pagination.page || 1)),
51
- pageSize: typeof maxLimit === "number" && shouldApplyMaxLimit(pageSize, maxLimit, { isPagedPagination: true }) ? maxLimit : Math.max(1, pageSize)
52
- };
53
- }
54
- const limit = isUndefined(pagination.limit) ? defaultLimit : toNumber(pagination.limit);
55
- return {
56
- start: Math.max(0, toNumber(pagination.start || 0)),
57
- limit: shouldApplyMaxLimit(limit, maxLimit) ? maxLimit || -1 : Math.max(1, limit)
58
- };
32
+ const { start, limit } = pagination.withDefaultPagination(params.pagination || {}, {
33
+ defaults: { offset: { limit: defaultLimit }, page: { pageSize: defaultLimit } },
34
+ maxLimit: maxLimit || -1
35
+ });
36
+ return { start, limit };
59
37
  };
60
- const transformPaginationResponse = (paginationInfo, count) => {
61
- if ("page" in paginationInfo) {
62
- return {
63
- ...paginationInfo,
64
- pageCount: Math.ceil(count / paginationInfo.pageSize),
65
- total: count
66
- };
38
+ const transformPaginationResponse = (paginationInfo, total, isPaged) => {
39
+ const transform = isPaged ? pagination.transformPagedPaginationInfo : pagination.transformOffsetPaginationInfo;
40
+ const paginationResponse = transform(paginationInfo, total);
41
+ if (isNil(total)) {
42
+ return omit(["total", "pageCount"], paginationResponse);
67
43
  }
68
- return {
69
- ...paginationInfo,
70
- total: count
71
- };
44
+ return paginationResponse;
72
45
  };
73
46
  export {
74
47
  getPaginationInfo,
48
+ isPagedPagination,
75
49
  shouldCount,
76
50
  transformPaginationResponse
77
51
  };