@strapi/core 0.0.0-experimental.b05633daea1bf090c66312b8ab30ec13bdb52f57 → 0.0.0-experimental.b127d7466fc2858c91fd06647dbaa742efa95505

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 (685) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/configuration/index.d.ts.map +1 -1
  3. package/dist/index.js +9954 -27
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +9932 -29
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/middlewares/body.d.ts.map +1 -1
  8. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +2 -2
  9. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  10. package/dist/migrations/draft-publish.d.ts +1 -1
  11. package/dist/migrations/draft-publish.d.ts.map +1 -1
  12. package/dist/services/document-service/components.d.ts.map +1 -1
  13. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  14. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  15. package/dist/services/document-service/events.d.ts +1 -1
  16. package/dist/services/document-service/events.d.ts.map +1 -1
  17. package/dist/services/document-service/repository.d.ts.map +1 -1
  18. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  19. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  20. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  21. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  22. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  23. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  24. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  25. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  26. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  27. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  28. package/dist/services/document-service/utils/populate.d.ts +1 -1
  29. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  30. package/dist/services/document-service/utils/unidirectional-relations.d.ts +1 -1
  31. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  32. package/dist/services/entity-validator/index.d.ts +1 -1
  33. package/dist/services/entity-validator/index.d.ts.map +1 -1
  34. package/dist/services/metrics/middleware.d.ts.map +1 -1
  35. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  36. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  37. package/package.json +23 -24
  38. package/dist/Strapi.js +0 -434
  39. package/dist/Strapi.js.map +0 -1
  40. package/dist/Strapi.mjs +0 -413
  41. package/dist/Strapi.mjs.map +0 -1
  42. package/dist/compile.js +0 -18
  43. package/dist/compile.js.map +0 -1
  44. package/dist/compile.mjs +0 -17
  45. package/dist/compile.mjs.map +0 -1
  46. package/dist/configuration/config-loader.js +0 -105
  47. package/dist/configuration/config-loader.js.map +0 -1
  48. package/dist/configuration/config-loader.mjs +0 -103
  49. package/dist/configuration/config-loader.mjs.map +0 -1
  50. package/dist/configuration/get-dirs.js +0 -31
  51. package/dist/configuration/get-dirs.js.map +0 -1
  52. package/dist/configuration/get-dirs.mjs +0 -31
  53. package/dist/configuration/get-dirs.mjs.map +0 -1
  54. package/dist/configuration/index.js +0 -85
  55. package/dist/configuration/index.js.map +0 -1
  56. package/dist/configuration/index.mjs +0 -80
  57. package/dist/configuration/index.mjs.map +0 -1
  58. package/dist/configuration/urls.js +0 -68
  59. package/dist/configuration/urls.js.map +0 -1
  60. package/dist/configuration/urls.mjs +0 -66
  61. package/dist/configuration/urls.mjs.map +0 -1
  62. package/dist/container.js +0 -30
  63. package/dist/container.js.map +0 -1
  64. package/dist/container.mjs +0 -30
  65. package/dist/container.mjs.map +0 -1
  66. package/dist/core-api/controller/collection-type.js +0 -84
  67. package/dist/core-api/controller/collection-type.js.map +0 -1
  68. package/dist/core-api/controller/collection-type.mjs +0 -84
  69. package/dist/core-api/controller/collection-type.mjs.map +0 -1
  70. package/dist/core-api/controller/index.js +0 -52
  71. package/dist/core-api/controller/index.js.map +0 -1
  72. package/dist/core-api/controller/index.mjs +0 -52
  73. package/dist/core-api/controller/index.mjs.map +0 -1
  74. package/dist/core-api/controller/single-type.js +0 -46
  75. package/dist/core-api/controller/single-type.js.map +0 -1
  76. package/dist/core-api/controller/single-type.mjs +0 -46
  77. package/dist/core-api/controller/single-type.mjs.map +0 -1
  78. package/dist/core-api/controller/transform.js +0 -76
  79. package/dist/core-api/controller/transform.js.map +0 -1
  80. package/dist/core-api/controller/transform.mjs +0 -76
  81. package/dist/core-api/controller/transform.mjs.map +0 -1
  82. package/dist/core-api/routes/index.js +0 -67
  83. package/dist/core-api/routes/index.js.map +0 -1
  84. package/dist/core-api/routes/index.mjs +0 -67
  85. package/dist/core-api/routes/index.mjs.map +0 -1
  86. package/dist/core-api/service/collection-type.js +0 -67
  87. package/dist/core-api/service/collection-type.js.map +0 -1
  88. package/dist/core-api/service/collection-type.mjs +0 -67
  89. package/dist/core-api/service/collection-type.mjs.map +0 -1
  90. package/dist/core-api/service/core-service.js +0 -12
  91. package/dist/core-api/service/core-service.js.map +0 -1
  92. package/dist/core-api/service/core-service.mjs +0 -12
  93. package/dist/core-api/service/core-service.mjs.map +0 -1
  94. package/dist/core-api/service/index.js +0 -16
  95. package/dist/core-api/service/index.js.map +0 -1
  96. package/dist/core-api/service/index.mjs +0 -16
  97. package/dist/core-api/service/index.mjs.map +0 -1
  98. package/dist/core-api/service/pagination.js +0 -52
  99. package/dist/core-api/service/pagination.js.map +0 -1
  100. package/dist/core-api/service/pagination.mjs +0 -52
  101. package/dist/core-api/service/pagination.mjs.map +0 -1
  102. package/dist/core-api/service/single-type.js +0 -45
  103. package/dist/core-api/service/single-type.js.map +0 -1
  104. package/dist/core-api/service/single-type.mjs +0 -45
  105. package/dist/core-api/service/single-type.mjs.map +0 -1
  106. package/dist/domain/content-type/index.js +0 -111
  107. package/dist/domain/content-type/index.js.map +0 -1
  108. package/dist/domain/content-type/index.mjs +0 -109
  109. package/dist/domain/content-type/index.mjs.map +0 -1
  110. package/dist/domain/content-type/validator.js +0 -77
  111. package/dist/domain/content-type/validator.js.map +0 -1
  112. package/dist/domain/content-type/validator.mjs +0 -75
  113. package/dist/domain/content-type/validator.mjs.map +0 -1
  114. package/dist/domain/module/index.js +0 -107
  115. package/dist/domain/module/index.js.map +0 -1
  116. package/dist/domain/module/index.mjs +0 -105
  117. package/dist/domain/module/index.mjs.map +0 -1
  118. package/dist/domain/module/validation.js +0 -25
  119. package/dist/domain/module/validation.js.map +0 -1
  120. package/dist/domain/module/validation.mjs +0 -25
  121. package/dist/domain/module/validation.mjs.map +0 -1
  122. package/dist/ee/index.js +0 -158
  123. package/dist/ee/index.js.map +0 -1
  124. package/dist/ee/index.mjs +0 -159
  125. package/dist/ee/index.mjs.map +0 -1
  126. package/dist/ee/license.js +0 -91
  127. package/dist/ee/license.js.map +0 -1
  128. package/dist/ee/license.mjs +0 -88
  129. package/dist/ee/license.mjs.map +0 -1
  130. package/dist/factories.js +0 -80
  131. package/dist/factories.js.map +0 -1
  132. package/dist/factories.mjs +0 -80
  133. package/dist/factories.mjs.map +0 -1
  134. package/dist/loaders/admin.js +0 -26
  135. package/dist/loaders/admin.js.map +0 -1
  136. package/dist/loaders/admin.mjs +0 -25
  137. package/dist/loaders/admin.mjs.map +0 -1
  138. package/dist/loaders/apis.js +0 -137
  139. package/dist/loaders/apis.js.map +0 -1
  140. package/dist/loaders/apis.mjs +0 -135
  141. package/dist/loaders/apis.mjs.map +0 -1
  142. package/dist/loaders/components.js +0 -38
  143. package/dist/loaders/components.js.map +0 -1
  144. package/dist/loaders/components.mjs +0 -37
  145. package/dist/loaders/components.mjs.map +0 -1
  146. package/dist/loaders/index.js +0 -24
  147. package/dist/loaders/index.js.map +0 -1
  148. package/dist/loaders/index.mjs +0 -24
  149. package/dist/loaders/index.mjs.map +0 -1
  150. package/dist/loaders/middlewares.js +0 -31
  151. package/dist/loaders/middlewares.js.map +0 -1
  152. package/dist/loaders/middlewares.mjs +0 -30
  153. package/dist/loaders/middlewares.mjs.map +0 -1
  154. package/dist/loaders/plugins/get-enabled-plugins.js +0 -141
  155. package/dist/loaders/plugins/get-enabled-plugins.js.map +0 -1
  156. package/dist/loaders/plugins/get-enabled-plugins.mjs +0 -117
  157. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  158. package/dist/loaders/plugins/get-user-plugins-config.js +0 -27
  159. package/dist/loaders/plugins/get-user-plugins-config.js.map +0 -1
  160. package/dist/loaders/plugins/get-user-plugins-config.mjs +0 -25
  161. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  162. package/dist/loaders/plugins/index.js +0 -144
  163. package/dist/loaders/plugins/index.js.map +0 -1
  164. package/dist/loaders/plugins/index.mjs +0 -125
  165. package/dist/loaders/plugins/index.mjs.map +0 -1
  166. package/dist/loaders/policies.js +0 -25
  167. package/dist/loaders/policies.js.map +0 -1
  168. package/dist/loaders/policies.mjs +0 -24
  169. package/dist/loaders/policies.mjs.map +0 -1
  170. package/dist/loaders/sanitizers.js +0 -6
  171. package/dist/loaders/sanitizers.js.map +0 -1
  172. package/dist/loaders/sanitizers.mjs +0 -7
  173. package/dist/loaders/sanitizers.mjs.map +0 -1
  174. package/dist/loaders/src-index.js +0 -33
  175. package/dist/loaders/src-index.js.map +0 -1
  176. package/dist/loaders/src-index.mjs +0 -34
  177. package/dist/loaders/src-index.mjs.map +0 -1
  178. package/dist/loaders/validators.js +0 -6
  179. package/dist/loaders/validators.js.map +0 -1
  180. package/dist/loaders/validators.mjs +0 -7
  181. package/dist/loaders/validators.mjs.map +0 -1
  182. package/dist/middlewares/body.js +0 -65
  183. package/dist/middlewares/body.js.map +0 -1
  184. package/dist/middlewares/body.mjs +0 -61
  185. package/dist/middlewares/body.mjs.map +0 -1
  186. package/dist/middlewares/compression.js +0 -8
  187. package/dist/middlewares/compression.js.map +0 -1
  188. package/dist/middlewares/compression.mjs +0 -6
  189. package/dist/middlewares/compression.mjs.map +0 -1
  190. package/dist/middlewares/cors.js +0 -53
  191. package/dist/middlewares/cors.js.map +0 -1
  192. package/dist/middlewares/cors.mjs +0 -51
  193. package/dist/middlewares/cors.mjs.map +0 -1
  194. package/dist/middlewares/errors.js +0 -33
  195. package/dist/middlewares/errors.js.map +0 -1
  196. package/dist/middlewares/errors.mjs +0 -33
  197. package/dist/middlewares/errors.mjs.map +0 -1
  198. package/dist/middlewares/favicon.js +0 -22
  199. package/dist/middlewares/favicon.js.map +0 -1
  200. package/dist/middlewares/favicon.mjs +0 -20
  201. package/dist/middlewares/favicon.mjs.map +0 -1
  202. package/dist/middlewares/index.js +0 -34
  203. package/dist/middlewares/index.js.map +0 -1
  204. package/dist/middlewares/index.mjs +0 -34
  205. package/dist/middlewares/index.mjs.map +0 -1
  206. package/dist/middlewares/ip.js +0 -8
  207. package/dist/middlewares/ip.js.map +0 -1
  208. package/dist/middlewares/ip.mjs +0 -6
  209. package/dist/middlewares/ip.mjs.map +0 -1
  210. package/dist/middlewares/logger.js +0 -12
  211. package/dist/middlewares/logger.js.map +0 -1
  212. package/dist/middlewares/logger.mjs +0 -12
  213. package/dist/middlewares/logger.mjs.map +0 -1
  214. package/dist/middlewares/powered-by.js +0 -14
  215. package/dist/middlewares/powered-by.js.map +0 -1
  216. package/dist/middlewares/powered-by.mjs +0 -14
  217. package/dist/middlewares/powered-by.mjs.map +0 -1
  218. package/dist/middlewares/public.js +0 -34
  219. package/dist/middlewares/public.js.map +0 -1
  220. package/dist/middlewares/public.mjs +0 -32
  221. package/dist/middlewares/public.mjs.map +0 -1
  222. package/dist/middlewares/query.js +0 -40
  223. package/dist/middlewares/query.js.map +0 -1
  224. package/dist/middlewares/query.mjs +0 -38
  225. package/dist/middlewares/query.mjs.map +0 -1
  226. package/dist/middlewares/response-time.js +0 -12
  227. package/dist/middlewares/response-time.js.map +0 -1
  228. package/dist/middlewares/response-time.mjs +0 -12
  229. package/dist/middlewares/response-time.mjs.map +0 -1
  230. package/dist/middlewares/responses.js +0 -15
  231. package/dist/middlewares/responses.js.map +0 -1
  232. package/dist/middlewares/responses.mjs +0 -15
  233. package/dist/middlewares/responses.mjs.map +0 -1
  234. package/dist/middlewares/security.js +0 -78
  235. package/dist/middlewares/security.js.map +0 -1
  236. package/dist/middlewares/security.mjs +0 -76
  237. package/dist/middlewares/security.mjs.map +0 -1
  238. package/dist/middlewares/session.js +0 -30
  239. package/dist/middlewares/session.js.map +0 -1
  240. package/dist/middlewares/session.mjs +0 -28
  241. package/dist/middlewares/session.mjs.map +0 -1
  242. package/dist/migrations/database/5.0.0-discard-drafts.js +0 -106
  243. package/dist/migrations/database/5.0.0-discard-drafts.js.map +0 -1
  244. package/dist/migrations/database/5.0.0-discard-drafts.mjs +0 -106
  245. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +0 -1
  246. package/dist/migrations/draft-publish.js +0 -42
  247. package/dist/migrations/draft-publish.js.map +0 -1
  248. package/dist/migrations/draft-publish.mjs +0 -42
  249. package/dist/migrations/draft-publish.mjs.map +0 -1
  250. package/dist/migrations/i18n.js +0 -54
  251. package/dist/migrations/i18n.js.map +0 -1
  252. package/dist/migrations/i18n.mjs +0 -54
  253. package/dist/migrations/i18n.mjs.map +0 -1
  254. package/dist/migrations/index.js +0 -15
  255. package/dist/migrations/index.js.map +0 -1
  256. package/dist/migrations/index.mjs +0 -15
  257. package/dist/migrations/index.mjs.map +0 -1
  258. package/dist/providers/admin.js +0 -20
  259. package/dist/providers/admin.js.map +0 -1
  260. package/dist/providers/admin.mjs +0 -21
  261. package/dist/providers/admin.mjs.map +0 -1
  262. package/dist/providers/coreStore.js +0 -11
  263. package/dist/providers/coreStore.js.map +0 -1
  264. package/dist/providers/coreStore.mjs +0 -12
  265. package/dist/providers/coreStore.mjs.map +0 -1
  266. package/dist/providers/cron.js +0 -20
  267. package/dist/providers/cron.js.map +0 -1
  268. package/dist/providers/cron.mjs +0 -21
  269. package/dist/providers/cron.mjs.map +0 -1
  270. package/dist/providers/index.js +0 -11
  271. package/dist/providers/index.js.map +0 -1
  272. package/dist/providers/index.mjs +0 -11
  273. package/dist/providers/index.mjs.map +0 -1
  274. package/dist/providers/provider.js +0 -5
  275. package/dist/providers/provider.js.map +0 -1
  276. package/dist/providers/provider.mjs +0 -5
  277. package/dist/providers/provider.mjs.map +0 -1
  278. package/dist/providers/registries.js +0 -35
  279. package/dist/providers/registries.js.map +0 -1
  280. package/dist/providers/registries.mjs +0 -36
  281. package/dist/providers/registries.mjs.map +0 -1
  282. package/dist/providers/telemetry.js +0 -19
  283. package/dist/providers/telemetry.js.map +0 -1
  284. package/dist/providers/telemetry.mjs +0 -20
  285. package/dist/providers/telemetry.mjs.map +0 -1
  286. package/dist/providers/webhooks.js +0 -30
  287. package/dist/providers/webhooks.js.map +0 -1
  288. package/dist/providers/webhooks.mjs +0 -31
  289. package/dist/providers/webhooks.mjs.map +0 -1
  290. package/dist/registries/apis.js +0 -23
  291. package/dist/registries/apis.js.map +0 -1
  292. package/dist/registries/apis.mjs +0 -24
  293. package/dist/registries/apis.mjs.map +0 -1
  294. package/dist/registries/components.js +0 -45
  295. package/dist/registries/components.js.map +0 -1
  296. package/dist/registries/components.mjs +0 -46
  297. package/dist/registries/components.mjs.map +0 -1
  298. package/dist/registries/content-types.js +0 -70
  299. package/dist/registries/content-types.js.map +0 -1
  300. package/dist/registries/content-types.mjs +0 -71
  301. package/dist/registries/content-types.mjs.map +0 -1
  302. package/dist/registries/controllers.js +0 -80
  303. package/dist/registries/controllers.js.map +0 -1
  304. package/dist/registries/controllers.mjs +0 -81
  305. package/dist/registries/controllers.mjs.map +0 -1
  306. package/dist/registries/custom-fields.js +0 -71
  307. package/dist/registries/custom-fields.js.map +0 -1
  308. package/dist/registries/custom-fields.mjs +0 -72
  309. package/dist/registries/custom-fields.mjs.map +0 -1
  310. package/dist/registries/hooks.js +0 -58
  311. package/dist/registries/hooks.js.map +0 -1
  312. package/dist/registries/hooks.mjs +0 -59
  313. package/dist/registries/hooks.mjs.map +0 -1
  314. package/dist/registries/middlewares.js +0 -60
  315. package/dist/registries/middlewares.js.map +0 -1
  316. package/dist/registries/middlewares.mjs +0 -61
  317. package/dist/registries/middlewares.mjs.map +0 -1
  318. package/dist/registries/models.js +0 -16
  319. package/dist/registries/models.js.map +0 -1
  320. package/dist/registries/models.mjs +0 -16
  321. package/dist/registries/models.mjs.map +0 -1
  322. package/dist/registries/modules.js +0 -39
  323. package/dist/registries/modules.js.map +0 -1
  324. package/dist/registries/modules.mjs +0 -40
  325. package/dist/registries/modules.mjs.map +0 -1
  326. package/dist/registries/namespace.js +0 -27
  327. package/dist/registries/namespace.js.map +0 -1
  328. package/dist/registries/namespace.mjs +0 -27
  329. package/dist/registries/namespace.mjs.map +0 -1
  330. package/dist/registries/plugins.js +0 -23
  331. package/dist/registries/plugins.js.map +0 -1
  332. package/dist/registries/plugins.mjs +0 -24
  333. package/dist/registries/plugins.mjs.map +0 -1
  334. package/dist/registries/policies.js +0 -108
  335. package/dist/registries/policies.js.map +0 -1
  336. package/dist/registries/policies.mjs +0 -109
  337. package/dist/registries/policies.mjs.map +0 -1
  338. package/dist/registries/sanitizers.js +0 -25
  339. package/dist/registries/sanitizers.js.map +0 -1
  340. package/dist/registries/sanitizers.mjs +0 -24
  341. package/dist/registries/sanitizers.mjs.map +0 -1
  342. package/dist/registries/services.js +0 -80
  343. package/dist/registries/services.js.map +0 -1
  344. package/dist/registries/services.mjs +0 -81
  345. package/dist/registries/services.mjs.map +0 -1
  346. package/dist/registries/validators.js +0 -25
  347. package/dist/registries/validators.js.map +0 -1
  348. package/dist/registries/validators.mjs +0 -24
  349. package/dist/registries/validators.mjs.map +0 -1
  350. package/dist/services/auth/index.js +0 -81
  351. package/dist/services/auth/index.js.map +0 -1
  352. package/dist/services/auth/index.mjs +0 -80
  353. package/dist/services/auth/index.mjs.map +0 -1
  354. package/dist/services/config.js +0 -47
  355. package/dist/services/config.js.map +0 -1
  356. package/dist/services/config.mjs +0 -47
  357. package/dist/services/config.mjs.map +0 -1
  358. package/dist/services/content-api/index.js +0 -85
  359. package/dist/services/content-api/index.js.map +0 -1
  360. package/dist/services/content-api/index.mjs +0 -84
  361. package/dist/services/content-api/index.mjs.map +0 -1
  362. package/dist/services/content-api/permissions/engine.js +0 -7
  363. package/dist/services/content-api/permissions/engine.js.map +0 -1
  364. package/dist/services/content-api/permissions/engine.mjs +0 -6
  365. package/dist/services/content-api/permissions/engine.mjs.map +0 -1
  366. package/dist/services/content-api/permissions/index.js +0 -87
  367. package/dist/services/content-api/permissions/index.js.map +0 -1
  368. package/dist/services/content-api/permissions/index.mjs +0 -86
  369. package/dist/services/content-api/permissions/index.mjs.map +0 -1
  370. package/dist/services/content-api/permissions/providers/action.js +0 -16
  371. package/dist/services/content-api/permissions/providers/action.js.map +0 -1
  372. package/dist/services/content-api/permissions/providers/action.mjs +0 -17
  373. package/dist/services/content-api/permissions/providers/action.mjs.map +0 -1
  374. package/dist/services/content-api/permissions/providers/condition.js +0 -16
  375. package/dist/services/content-api/permissions/providers/condition.js.map +0 -1
  376. package/dist/services/content-api/permissions/providers/condition.mjs +0 -17
  377. package/dist/services/content-api/permissions/providers/condition.mjs.map +0 -1
  378. package/dist/services/core-store.js +0 -107
  379. package/dist/services/core-store.js.map +0 -1
  380. package/dist/services/core-store.mjs +0 -107
  381. package/dist/services/core-store.mjs.map +0 -1
  382. package/dist/services/cron.js +0 -67
  383. package/dist/services/cron.js.map +0 -1
  384. package/dist/services/cron.mjs +0 -68
  385. package/dist/services/cron.mjs.map +0 -1
  386. package/dist/services/custom-fields.js +0 -10
  387. package/dist/services/custom-fields.js.map +0 -1
  388. package/dist/services/custom-fields.mjs +0 -11
  389. package/dist/services/custom-fields.mjs.map +0 -1
  390. package/dist/services/document-service/attributes/index.js +0 -22
  391. package/dist/services/document-service/attributes/index.js.map +0 -1
  392. package/dist/services/document-service/attributes/index.mjs +0 -22
  393. package/dist/services/document-service/attributes/index.mjs.map +0 -1
  394. package/dist/services/document-service/attributes/transforms.js +0 -20
  395. package/dist/services/document-service/attributes/transforms.js.map +0 -1
  396. package/dist/services/document-service/attributes/transforms.mjs +0 -19
  397. package/dist/services/document-service/attributes/transforms.mjs.map +0 -1
  398. package/dist/services/document-service/common.js +0 -7
  399. package/dist/services/document-service/common.js.map +0 -1
  400. package/dist/services/document-service/common.mjs +0 -7
  401. package/dist/services/document-service/common.mjs.map +0 -1
  402. package/dist/services/document-service/components.js +0 -288
  403. package/dist/services/document-service/components.js.map +0 -1
  404. package/dist/services/document-service/components.mjs +0 -286
  405. package/dist/services/document-service/components.mjs.map +0 -1
  406. package/dist/services/document-service/draft-and-publish.js +0 -69
  407. package/dist/services/document-service/draft-and-publish.js.map +0 -1
  408. package/dist/services/document-service/draft-and-publish.mjs +0 -69
  409. package/dist/services/document-service/draft-and-publish.mjs.map +0 -1
  410. package/dist/services/document-service/entries.js +0 -95
  411. package/dist/services/document-service/entries.js.map +0 -1
  412. package/dist/services/document-service/entries.mjs +0 -95
  413. package/dist/services/document-service/entries.mjs.map +0 -1
  414. package/dist/services/document-service/events.js +0 -47
  415. package/dist/services/document-service/events.js.map +0 -1
  416. package/dist/services/document-service/events.mjs +0 -47
  417. package/dist/services/document-service/events.mjs.map +0 -1
  418. package/dist/services/document-service/index.js +0 -36
  419. package/dist/services/document-service/index.js.map +0 -1
  420. package/dist/services/document-service/index.mjs +0 -36
  421. package/dist/services/document-service/index.mjs.map +0 -1
  422. package/dist/services/document-service/internationalization.js +0 -63
  423. package/dist/services/document-service/internationalization.js.map +0 -1
  424. package/dist/services/document-service/internationalization.mjs +0 -63
  425. package/dist/services/document-service/internationalization.mjs.map +0 -1
  426. package/dist/services/document-service/middlewares/errors.js +0 -25
  427. package/dist/services/document-service/middlewares/errors.js.map +0 -1
  428. package/dist/services/document-service/middlewares/errors.mjs +0 -25
  429. package/dist/services/document-service/middlewares/errors.mjs.map +0 -1
  430. package/dist/services/document-service/middlewares/middleware-manager.js +0 -49
  431. package/dist/services/document-service/middlewares/middleware-manager.js.map +0 -1
  432. package/dist/services/document-service/middlewares/middleware-manager.mjs +0 -49
  433. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +0 -1
  434. package/dist/services/document-service/params.js +0 -8
  435. package/dist/services/document-service/params.js.map +0 -1
  436. package/dist/services/document-service/params.mjs +0 -8
  437. package/dist/services/document-service/params.mjs.map +0 -1
  438. package/dist/services/document-service/repository.js +0 -329
  439. package/dist/services/document-service/repository.js.map +0 -1
  440. package/dist/services/document-service/repository.mjs +0 -329
  441. package/dist/services/document-service/repository.mjs.map +0 -1
  442. package/dist/services/document-service/transform/data.js +0 -15
  443. package/dist/services/document-service/transform/data.js.map +0 -1
  444. package/dist/services/document-service/transform/data.mjs +0 -15
  445. package/dist/services/document-service/transform/data.mjs.map +0 -1
  446. package/dist/services/document-service/transform/fields.js +0 -24
  447. package/dist/services/document-service/transform/fields.js.map +0 -1
  448. package/dist/services/document-service/transform/fields.mjs +0 -24
  449. package/dist/services/document-service/transform/fields.mjs.map +0 -1
  450. package/dist/services/document-service/transform/id-map.js +0 -85
  451. package/dist/services/document-service/transform/id-map.js.map +0 -1
  452. package/dist/services/document-service/transform/id-map.mjs +0 -85
  453. package/dist/services/document-service/transform/id-map.mjs.map +0 -1
  454. package/dist/services/document-service/transform/id-transform.js +0 -33
  455. package/dist/services/document-service/transform/id-transform.js.map +0 -1
  456. package/dist/services/document-service/transform/id-transform.mjs +0 -33
  457. package/dist/services/document-service/transform/id-transform.mjs.map +0 -1
  458. package/dist/services/document-service/transform/populate.js +0 -21
  459. package/dist/services/document-service/transform/populate.js.map +0 -1
  460. package/dist/services/document-service/transform/populate.mjs +0 -21
  461. package/dist/services/document-service/transform/populate.mjs.map +0 -1
  462. package/dist/services/document-service/transform/query.js +0 -9
  463. package/dist/services/document-service/transform/query.js.map +0 -1
  464. package/dist/services/document-service/transform/query.mjs +0 -9
  465. package/dist/services/document-service/transform/query.mjs.map +0 -1
  466. package/dist/services/document-service/transform/relations/extract/data-ids.js +0 -64
  467. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +0 -1
  468. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +0 -64
  469. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +0 -1
  470. package/dist/services/document-service/transform/relations/transform/data-ids.js +0 -85
  471. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +0 -1
  472. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +0 -85
  473. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +0 -1
  474. package/dist/services/document-service/transform/relations/transform/default-locale.js +0 -32
  475. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +0 -1
  476. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +0 -32
  477. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +0 -1
  478. package/dist/services/document-service/transform/relations/utils/dp.js +0 -30
  479. package/dist/services/document-service/transform/relations/utils/dp.js.map +0 -1
  480. package/dist/services/document-service/transform/relations/utils/dp.mjs +0 -30
  481. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +0 -1
  482. package/dist/services/document-service/transform/relations/utils/i18n.js +0 -25
  483. package/dist/services/document-service/transform/relations/utils/i18n.js.map +0 -1
  484. package/dist/services/document-service/transform/relations/utils/i18n.mjs +0 -25
  485. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +0 -1
  486. package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -84
  487. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +0 -1
  488. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -84
  489. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +0 -1
  490. package/dist/services/document-service/utils/populate.js +0 -47
  491. package/dist/services/document-service/utils/populate.js.map +0 -1
  492. package/dist/services/document-service/utils/populate.mjs +0 -47
  493. package/dist/services/document-service/utils/populate.mjs.map +0 -1
  494. package/dist/services/document-service/utils/unidirectional-relations.js +0 -68
  495. package/dist/services/document-service/utils/unidirectional-relations.js.map +0 -1
  496. package/dist/services/document-service/utils/unidirectional-relations.mjs +0 -68
  497. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +0 -1
  498. package/dist/services/entity-service/index.js +0 -169
  499. package/dist/services/entity-service/index.js.map +0 -1
  500. package/dist/services/entity-service/index.mjs +0 -167
  501. package/dist/services/entity-service/index.mjs.map +0 -1
  502. package/dist/services/entity-validator/blocks-validator.js +0 -128
  503. package/dist/services/entity-validator/blocks-validator.js.map +0 -1
  504. package/dist/services/entity-validator/blocks-validator.mjs +0 -128
  505. package/dist/services/entity-validator/blocks-validator.mjs.map +0 -1
  506. package/dist/services/entity-validator/index.js +0 -389
  507. package/dist/services/entity-validator/index.js.map +0 -1
  508. package/dist/services/entity-validator/index.mjs +0 -388
  509. package/dist/services/entity-validator/index.mjs.map +0 -1
  510. package/dist/services/entity-validator/validators.js +0 -241
  511. package/dist/services/entity-validator/validators.js.map +0 -1
  512. package/dist/services/entity-validator/validators.mjs +0 -239
  513. package/dist/services/entity-validator/validators.mjs.map +0 -1
  514. package/dist/services/errors.js +0 -76
  515. package/dist/services/errors.js.map +0 -1
  516. package/dist/services/errors.mjs +0 -74
  517. package/dist/services/errors.mjs.map +0 -1
  518. package/dist/services/event-hub.js +0 -72
  519. package/dist/services/event-hub.js.map +0 -1
  520. package/dist/services/event-hub.mjs +0 -73
  521. package/dist/services/event-hub.mjs.map +0 -1
  522. package/dist/services/features.js +0 -17
  523. package/dist/services/features.js.map +0 -1
  524. package/dist/services/features.mjs +0 -17
  525. package/dist/services/features.mjs.map +0 -1
  526. package/dist/services/fs.js +0 -51
  527. package/dist/services/fs.js.map +0 -1
  528. package/dist/services/fs.mjs +0 -49
  529. package/dist/services/fs.mjs.map +0 -1
  530. package/dist/services/metrics/admin-user-hash.js +0 -14
  531. package/dist/services/metrics/admin-user-hash.js.map +0 -1
  532. package/dist/services/metrics/admin-user-hash.mjs +0 -12
  533. package/dist/services/metrics/admin-user-hash.mjs.map +0 -1
  534. package/dist/services/metrics/index.js +0 -44
  535. package/dist/services/metrics/index.js.map +0 -1
  536. package/dist/services/metrics/index.mjs +0 -45
  537. package/dist/services/metrics/index.mjs.map +0 -1
  538. package/dist/services/metrics/is-truthy.js +0 -9
  539. package/dist/services/metrics/is-truthy.js.map +0 -1
  540. package/dist/services/metrics/is-truthy.mjs +0 -8
  541. package/dist/services/metrics/is-truthy.mjs.map +0 -1
  542. package/dist/services/metrics/middleware.js +0 -25
  543. package/dist/services/metrics/middleware.js.map +0 -1
  544. package/dist/services/metrics/middleware.mjs +0 -26
  545. package/dist/services/metrics/middleware.mjs.map +0 -1
  546. package/dist/services/metrics/rate-limiter.js +0 -21
  547. package/dist/services/metrics/rate-limiter.js.map +0 -1
  548. package/dist/services/metrics/rate-limiter.mjs +0 -22
  549. package/dist/services/metrics/rate-limiter.mjs.map +0 -1
  550. package/dist/services/metrics/sender.js +0 -76
  551. package/dist/services/metrics/sender.js.map +0 -1
  552. package/dist/services/metrics/sender.mjs +0 -70
  553. package/dist/services/metrics/sender.mjs.map +0 -1
  554. package/dist/services/query-params.js +0 -12
  555. package/dist/services/query-params.js.map +0 -1
  556. package/dist/services/query-params.mjs +0 -13
  557. package/dist/services/query-params.mjs.map +0 -1
  558. package/dist/services/reloader.js +0 -36
  559. package/dist/services/reloader.js.map +0 -1
  560. package/dist/services/reloader.mjs +0 -36
  561. package/dist/services/reloader.mjs.map +0 -1
  562. package/dist/services/request-context.js +0 -13
  563. package/dist/services/request-context.js.map +0 -1
  564. package/dist/services/request-context.mjs +0 -14
  565. package/dist/services/request-context.mjs.map +0 -1
  566. package/dist/services/server/admin-api.js +0 -13
  567. package/dist/services/server/admin-api.js.map +0 -1
  568. package/dist/services/server/admin-api.mjs +0 -13
  569. package/dist/services/server/admin-api.mjs.map +0 -1
  570. package/dist/services/server/api.js +0 -30
  571. package/dist/services/server/api.js.map +0 -1
  572. package/dist/services/server/api.mjs +0 -28
  573. package/dist/services/server/api.mjs.map +0 -1
  574. package/dist/services/server/compose-endpoint.js +0 -117
  575. package/dist/services/server/compose-endpoint.js.map +0 -1
  576. package/dist/services/server/compose-endpoint.mjs +0 -116
  577. package/dist/services/server/compose-endpoint.mjs.map +0 -1
  578. package/dist/services/server/content-api.js +0 -12
  579. package/dist/services/server/content-api.js.map +0 -1
  580. package/dist/services/server/content-api.mjs +0 -12
  581. package/dist/services/server/content-api.mjs.map +0 -1
  582. package/dist/services/server/http-server.js +0 -50
  583. package/dist/services/server/http-server.js.map +0 -1
  584. package/dist/services/server/http-server.mjs +0 -48
  585. package/dist/services/server/http-server.mjs.map +0 -1
  586. package/dist/services/server/index.js +0 -87
  587. package/dist/services/server/index.js.map +0 -1
  588. package/dist/services/server/index.mjs +0 -85
  589. package/dist/services/server/index.mjs.map +0 -1
  590. package/dist/services/server/koa.js +0 -52
  591. package/dist/services/server/koa.js.map +0 -1
  592. package/dist/services/server/koa.mjs +0 -48
  593. package/dist/services/server/koa.mjs.map +0 -1
  594. package/dist/services/server/middleware.js +0 -92
  595. package/dist/services/server/middleware.js.map +0 -1
  596. package/dist/services/server/middleware.mjs +0 -90
  597. package/dist/services/server/middleware.mjs.map +0 -1
  598. package/dist/services/server/policy.js +0 -20
  599. package/dist/services/server/policy.js.map +0 -1
  600. package/dist/services/server/policy.mjs +0 -20
  601. package/dist/services/server/policy.mjs.map +0 -1
  602. package/dist/services/server/register-middlewares.js +0 -72
  603. package/dist/services/server/register-middlewares.js.map +0 -1
  604. package/dist/services/server/register-middlewares.mjs +0 -73
  605. package/dist/services/server/register-middlewares.mjs.map +0 -1
  606. package/dist/services/server/register-routes.js +0 -76
  607. package/dist/services/server/register-routes.js.map +0 -1
  608. package/dist/services/server/register-routes.mjs +0 -75
  609. package/dist/services/server/register-routes.mjs.map +0 -1
  610. package/dist/services/server/routing.js +0 -91
  611. package/dist/services/server/routing.js.map +0 -1
  612. package/dist/services/server/routing.mjs +0 -89
  613. package/dist/services/server/routing.mjs.map +0 -1
  614. package/dist/services/utils/dynamic-zones.js +0 -17
  615. package/dist/services/utils/dynamic-zones.js.map +0 -1
  616. package/dist/services/utils/dynamic-zones.mjs +0 -18
  617. package/dist/services/utils/dynamic-zones.mjs.map +0 -1
  618. package/dist/services/webhook-runner.js +0 -133
  619. package/dist/services/webhook-runner.js.map +0 -1
  620. package/dist/services/webhook-runner.mjs +0 -131
  621. package/dist/services/webhook-runner.mjs.map +0 -1
  622. package/dist/services/webhook-store.js +0 -110
  623. package/dist/services/webhook-store.js.map +0 -1
  624. package/dist/services/webhook-store.mjs +0 -110
  625. package/dist/services/webhook-store.mjs.map +0 -1
  626. package/dist/services/worker-queue.js +0 -56
  627. package/dist/services/worker-queue.js.map +0 -1
  628. package/dist/services/worker-queue.mjs +0 -55
  629. package/dist/services/worker-queue.mjs.map +0 -1
  630. package/dist/utils/convert-custom-field-type.js +0 -24
  631. package/dist/utils/convert-custom-field-type.js.map +0 -1
  632. package/dist/utils/convert-custom-field-type.mjs +0 -24
  633. package/dist/utils/convert-custom-field-type.mjs.map +0 -1
  634. package/dist/utils/cron.js +0 -38
  635. package/dist/utils/cron.js.map +0 -1
  636. package/dist/utils/cron.mjs +0 -38
  637. package/dist/utils/cron.mjs.map +0 -1
  638. package/dist/utils/fetch.js +0 -21
  639. package/dist/utils/fetch.js.map +0 -1
  640. package/dist/utils/fetch.mjs +0 -21
  641. package/dist/utils/fetch.mjs.map +0 -1
  642. package/dist/utils/filepath-to-prop-path.js +0 -33
  643. package/dist/utils/filepath-to-prop-path.js.map +0 -1
  644. package/dist/utils/filepath-to-prop-path.mjs +0 -30
  645. package/dist/utils/filepath-to-prop-path.mjs.map +0 -1
  646. package/dist/utils/is-initialized.js +0 -16
  647. package/dist/utils/is-initialized.js.map +0 -1
  648. package/dist/utils/is-initialized.mjs +0 -16
  649. package/dist/utils/is-initialized.mjs.map +0 -1
  650. package/dist/utils/lifecycles.js +0 -9
  651. package/dist/utils/lifecycles.js.map +0 -1
  652. package/dist/utils/lifecycles.mjs +0 -9
  653. package/dist/utils/lifecycles.mjs.map +0 -1
  654. package/dist/utils/load-config-file.js +0 -45
  655. package/dist/utils/load-config-file.js.map +0 -1
  656. package/dist/utils/load-config-file.mjs +0 -42
  657. package/dist/utils/load-config-file.mjs.map +0 -1
  658. package/dist/utils/load-files.js +0 -38
  659. package/dist/utils/load-files.js.map +0 -1
  660. package/dist/utils/load-files.mjs +0 -34
  661. package/dist/utils/load-files.mjs.map +0 -1
  662. package/dist/utils/open-browser.js +0 -11
  663. package/dist/utils/open-browser.js.map +0 -1
  664. package/dist/utils/open-browser.mjs +0 -9
  665. package/dist/utils/open-browser.mjs.map +0 -1
  666. package/dist/utils/resolve-working-dirs.js +0 -13
  667. package/dist/utils/resolve-working-dirs.js.map +0 -1
  668. package/dist/utils/resolve-working-dirs.mjs +0 -11
  669. package/dist/utils/resolve-working-dirs.mjs.map +0 -1
  670. package/dist/utils/signals.js +0 -17
  671. package/dist/utils/signals.js.map +0 -1
  672. package/dist/utils/signals.mjs +0 -17
  673. package/dist/utils/signals.mjs.map +0 -1
  674. package/dist/utils/startup-logger.js +0 -86
  675. package/dist/utils/startup-logger.js.map +0 -1
  676. package/dist/utils/startup-logger.mjs +0 -82
  677. package/dist/utils/startup-logger.mjs.map +0 -1
  678. package/dist/utils/transform-content-types-to-models.js +0 -288
  679. package/dist/utils/transform-content-types-to-models.js.map +0 -1
  680. package/dist/utils/transform-content-types-to-models.mjs +0 -285
  681. package/dist/utils/transform-content-types-to-models.mjs.map +0 -1
  682. package/dist/utils/update-notifier/index.js +0 -85
  683. package/dist/utils/update-notifier/index.js.map +0 -1
  684. package/dist/utils/update-notifier/index.mjs +0 -78
  685. package/dist/utils/update-notifier/index.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.mjs","sources":["../../src/middlewares/query.ts"],"sourcesContent":["import qs from 'qs';\nimport type Koa from 'koa';\nimport type { Core } from '@strapi/types';\n\ntype Config = Parameters<typeof qs.parse>[1];\n\nconst defaults: Config = {\n strictNullHandling: true,\n arrayLimit: 100,\n depth: 20,\n};\n\n/**\n * Body parser hook\n */\nconst addQsParser = (app: Koa, settings: Config) => {\n Object.defineProperty(app.request, 'query', {\n configurable: false,\n enumerable: true,\n /*\n * Get parsed query-string.\n */\n get() {\n const qstr = this.querystring;\n\n this._querycache = this._querycache || {};\n const cache = this._querycache;\n\n if (!cache[qstr]) {\n cache[qstr] = qs.parse(qstr, settings);\n }\n\n return cache[qstr];\n },\n\n /*\n * Set query-string as an object.\n */\n set(obj) {\n this.querystring = qs.stringify(obj);\n },\n } satisfies PropertyDescriptor & ThisType<Koa.BaseRequest>);\n\n return app;\n};\n\nexport const query: Core.MiddlewareFactory = (\n config: Partial<Config>,\n { strapi }: { strapi: Core.Strapi }\n) => {\n addQsParser(strapi.server.app, { ...defaults, ...config } as Config);\n};\n"],"names":[],"mappings":";AAMA,MAAM,WAAmB;AAAA,EACvB,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,OAAO;AACT;AAKA,MAAM,cAAc,CAAC,KAAU,aAAqB;AAC3C,SAAA,eAAe,IAAI,SAAS,SAAS;AAAA,IAC1C,cAAc;AAAA,IACd,YAAY;AAAA;AAAA;AAAA;AAAA,IAIZ,MAAM;AACJ,YAAM,OAAO,KAAK;AAEb,WAAA,cAAc,KAAK,eAAe,CAAC;AACxC,YAAM,QAAQ,KAAK;AAEf,UAAA,CAAC,MAAM,IAAI,GAAG;AAChB,cAAM,IAAI,IAAI,GAAG,MAAM,MAAM,QAAQ;AAAA,MAAA;AAGvC,aAAO,MAAM,IAAI;AAAA,IACnB;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAK;AACF,WAAA,cAAc,GAAG,UAAU,GAAG;AAAA,IAAA;AAAA,EACrC,CACwD;AAEnD,SAAA;AACT;AAEO,MAAM,QAAgC,CAC3C,QACA,EAAE,aACC;AACS,cAAA,OAAO,OAAO,KAAK,EAAE,GAAG,UAAU,GAAG,QAAkB;AACrE;"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const responseTime = () => {
4
- return async (ctx, next) => {
5
- const start = Date.now();
6
- await next();
7
- const delta = Math.ceil(Date.now() - start);
8
- ctx.set("X-Response-Time", `${delta}ms`);
9
- };
10
- };
11
- exports.responseTime = responseTime;
12
- //# sourceMappingURL=response-time.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"response-time.js","sources":["../../src/middlewares/response-time.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const responseTime: Core.MiddlewareFactory = () => {\n return async (ctx, next) => {\n const start = Date.now();\n\n await next();\n\n const delta = Math.ceil(Date.now() - start);\n ctx.set('X-Response-Time', `${delta}ms`);\n };\n};\n"],"names":[],"mappings":";;AAEO,MAAM,eAAuC,MAAM;AACjD,SAAA,OAAO,KAAK,SAAS;AACpB,UAAA,QAAQ,KAAK,IAAI;AAEvB,UAAM,KAAK;AAEX,UAAM,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK;AAC1C,QAAI,IAAI,mBAAmB,GAAG,KAAK,IAAI;AAAA,EACzC;AACF;;"}
@@ -1,12 +0,0 @@
1
- const responseTime = () => {
2
- return async (ctx, next) => {
3
- const start = Date.now();
4
- await next();
5
- const delta = Math.ceil(Date.now() - start);
6
- ctx.set("X-Response-Time", `${delta}ms`);
7
- };
8
- };
9
- export {
10
- responseTime
11
- };
12
- //# sourceMappingURL=response-time.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"response-time.mjs","sources":["../../src/middlewares/response-time.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const responseTime: Core.MiddlewareFactory = () => {\n return async (ctx, next) => {\n const start = Date.now();\n\n await next();\n\n const delta = Math.ceil(Date.now() - start);\n ctx.set('X-Response-Time', `${delta}ms`);\n };\n};\n"],"names":[],"mappings":"AAEO,MAAM,eAAuC,MAAM;AACjD,SAAA,OAAO,KAAK,SAAS;AACpB,UAAA,QAAQ,KAAK,IAAI;AAEvB,UAAM,KAAK;AAEX,UAAM,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK;AAC1C,QAAI,IAAI,mBAAmB,GAAG,KAAK,IAAI;AAAA,EACzC;AACF;"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const responses = (config = {}) => {
5
- return async (ctx, next) => {
6
- await next();
7
- const { status } = ctx;
8
- const handler = config?.handlers?.[status];
9
- if (fp.isFunction(handler)) {
10
- await handler(ctx, next);
11
- }
12
- };
13
- };
14
- exports.responses = responses;
15
- //# sourceMappingURL=responses.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"responses.js","sources":["../../src/middlewares/responses.ts"],"sourcesContent":["import { isFunction } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\nexport interface Config {\n handlers?: Record<number, Core.MiddlewareHandler>;\n}\n\nexport const responses: Core.MiddlewareFactory<Config> = (config = {}) => {\n return async (ctx, next) => {\n await next();\n\n const { status } = ctx;\n const handler = config?.handlers?.[status];\n\n if (isFunction(handler)) {\n await handler(ctx, next);\n }\n };\n};\n"],"names":["isFunction"],"mappings":";;;AAOO,MAAM,YAA4C,CAAC,SAAS,OAAO;AACjE,SAAA,OAAO,KAAK,SAAS;AAC1B,UAAM,KAAK;AAEL,UAAA,EAAE,WAAW;AACb,UAAA,UAAU,QAAQ,WAAW,MAAM;AAErC,QAAAA,GAAAA,WAAW,OAAO,GAAG;AACjB,YAAA,QAAQ,KAAK,IAAI;AAAA,IAAA;AAAA,EAE3B;AACF;;"}
@@ -1,15 +0,0 @@
1
- import { isFunction } from "lodash/fp";
2
- const responses = (config = {}) => {
3
- return async (ctx, next) => {
4
- await next();
5
- const { status } = ctx;
6
- const handler = config?.handlers?.[status];
7
- if (isFunction(handler)) {
8
- await handler(ctx, next);
9
- }
10
- };
11
- };
12
- export {
13
- responses
14
- };
15
- //# sourceMappingURL=responses.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"responses.mjs","sources":["../../src/middlewares/responses.ts"],"sourcesContent":["import { isFunction } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\nexport interface Config {\n handlers?: Record<number, Core.MiddlewareHandler>;\n}\n\nexport const responses: Core.MiddlewareFactory<Config> = (config = {}) => {\n return async (ctx, next) => {\n await next();\n\n const { status } = ctx;\n const handler = config?.handlers?.[status];\n\n if (isFunction(handler)) {\n await handler(ctx, next);\n }\n };\n};\n"],"names":[],"mappings":";AAOO,MAAM,YAA4C,CAAC,SAAS,OAAO;AACjE,SAAA,OAAO,KAAK,SAAS;AAC1B,UAAM,KAAK;AAEL,UAAA,EAAE,WAAW;AACb,UAAA,UAAU,QAAQ,WAAW,MAAM;AAErC,QAAA,WAAW,OAAO,GAAG;AACjB,YAAA,QAAQ,KAAK,IAAI;AAAA,IAAA;AAAA,EAE3B;AACF;"}
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const helmet = require("koa-helmet");
5
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
- const helmet__default = /* @__PURE__ */ _interopDefault(helmet);
7
- const defaults = {
8
- crossOriginEmbedderPolicy: false,
9
- crossOriginOpenerPolicy: false,
10
- crossOriginResourcePolicy: false,
11
- originAgentCluster: false,
12
- contentSecurityPolicy: {
13
- useDefaults: true,
14
- directives: {
15
- "connect-src": ["'self'", "https:"],
16
- "img-src": ["'self'", "data:", "blob:", "https://market-assets.strapi.io"],
17
- "media-src": ["'self'", "data:", "blob:"],
18
- upgradeInsecureRequests: null
19
- }
20
- },
21
- xssFilter: false,
22
- hsts: {
23
- maxAge: 31536e3,
24
- includeSubDomains: true
25
- },
26
- frameguard: {
27
- action: "sameorigin"
28
- }
29
- };
30
- const mergeConfig = (existingConfig, newConfig) => {
31
- return fp.mergeWith(
32
- (obj, src) => Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : void 0,
33
- existingConfig,
34
- newConfig
35
- );
36
- };
37
- const security = (config, { strapi }) => (ctx, next) => {
38
- let helmetConfig = fp.defaultsDeep(defaults, config);
39
- const specialPaths = ["/documentation"];
40
- const directives = {
41
- "script-src": ["'self'", "'unsafe-inline'", "cdn.jsdelivr.net"],
42
- "img-src": ["'self'", "data:", "cdn.jsdelivr.net", "strapi.io"],
43
- "manifest-src": [],
44
- "frame-src": []
45
- };
46
- if (strapi.plugin("graphql")?.service("utils").playground.isEnabled()) {
47
- const { config: gqlConfig } = strapi.plugin("graphql");
48
- specialPaths.push(gqlConfig("endpoint"));
49
- directives["script-src"].push(`https: 'unsafe-inline'`);
50
- directives["img-src"].push(`'apollo-server-landing-page.cdn.apollographql.com'`);
51
- directives["manifest-src"].push(`'self'`);
52
- directives["manifest-src"].push("apollo-server-landing-page.cdn.apollographql.com");
53
- directives["frame-src"].push(`'self'`);
54
- directives["frame-src"].push("sandbox.embed.apollographql.com");
55
- }
56
- if (ctx.method === "GET" && specialPaths.some((str) => ctx.path.startsWith(str))) {
57
- helmetConfig = mergeConfig(helmetConfig, {
58
- crossOriginEmbedderPolicy: false,
59
- // TODO: only use this for graphql playground
60
- contentSecurityPolicy: {
61
- directives
62
- }
63
- });
64
- }
65
- if (["development", "test"].includes(process.env.NODE_ENV ?? "") && ctx.method === "GET" && ctx.path.startsWith(strapi.config.get("admin.path"))) {
66
- helmetConfig = mergeConfig(helmetConfig, {
67
- contentSecurityPolicy: {
68
- directives: {
69
- "script-src": ["'self'", "'unsafe-inline'"],
70
- "connect-src": ["'self'", "http:", "https:", "ws:"]
71
- }
72
- }
73
- });
74
- }
75
- return helmet__default.default(helmetConfig)(ctx, next);
76
- };
77
- exports.security = security;
78
- //# sourceMappingURL=security.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"security.js","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, mergeWith } from 'lodash/fp';\nimport helmet, { KoaHelmet } from 'koa-helmet';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<KoaHelmet>[0]>;\n\nconst defaults: Config = {\n crossOriginEmbedderPolicy: false,\n crossOriginOpenerPolicy: false,\n crossOriginResourcePolicy: false,\n originAgentCluster: false,\n contentSecurityPolicy: {\n useDefaults: true,\n directives: {\n 'connect-src': [\"'self'\", 'https:'],\n 'img-src': [\"'self'\", 'data:', 'blob:', 'https://market-assets.strapi.io'],\n 'media-src': [\"'self'\", 'data:', 'blob:'],\n upgradeInsecureRequests: null,\n },\n },\n xssFilter: false,\n hsts: {\n maxAge: 31536000,\n includeSubDomains: true,\n },\n frameguard: {\n action: 'sameorigin',\n },\n};\n\nconst mergeConfig = (existingConfig: Config, newConfig: Config) => {\n return mergeWith(\n (obj, src) => (Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : undefined),\n existingConfig,\n newConfig\n );\n};\n\nexport const security: Core.MiddlewareFactory<Config> =\n (config, { strapi }) =>\n (ctx, next) => {\n let helmetConfig: Config = defaultsDeep(defaults, config);\n\n const specialPaths = ['/documentation'];\n\n const directives: {\n 'script-src': string[];\n 'img-src': string[];\n 'manifest-src': string[];\n 'frame-src': string[];\n } = {\n 'script-src': [\"'self'\", \"'unsafe-inline'\", 'cdn.jsdelivr.net'],\n 'img-src': [\"'self'\", 'data:', 'cdn.jsdelivr.net', 'strapi.io'],\n 'manifest-src': [],\n 'frame-src': [],\n };\n\n // if apollo graphql playground is enabled, add exceptions for it\n if (strapi.plugin('graphql')?.service('utils').playground.isEnabled()) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n specialPaths.push(gqlConfig('endpoint'));\n\n directives['script-src'].push(`https: 'unsafe-inline'`);\n directives['img-src'].push(`'apollo-server-landing-page.cdn.apollographql.com'`);\n directives['manifest-src'].push(`'self'`);\n directives['manifest-src'].push('apollo-server-landing-page.cdn.apollographql.com');\n directives['frame-src'].push(`'self'`);\n directives['frame-src'].push('sandbox.embed.apollographql.com');\n }\n\n // TODO: we shouldn't combine playground exceptions with documentation for all routes, we should first check the path and then return exceptions specific to that\n if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {\n helmetConfig = mergeConfig(helmetConfig, {\n crossOriginEmbedderPolicy: false, // TODO: only use this for graphql playground\n contentSecurityPolicy: {\n directives,\n },\n });\n }\n\n /**\n * These are for vite's watch mode so it can accurately\n * connect to the HMR websocket & reconnect on failure\n * or when the server restarts.\n *\n * It only applies in development, and only on GET requests\n * that are part of the admin route.\n */\n\n if (\n ['development', 'test'].includes(process.env.NODE_ENV ?? '') &&\n ctx.method === 'GET' &&\n ctx.path.startsWith(strapi.config.get('admin.path'))\n ) {\n helmetConfig = mergeConfig(helmetConfig, {\n contentSecurityPolicy: {\n directives: {\n 'script-src': [\"'self'\", \"'unsafe-inline'\"],\n 'connect-src': [\"'self'\", 'http:', 'https:', 'ws:'],\n },\n },\n });\n }\n\n return helmet(helmetConfig)(ctx, next);\n };\n"],"names":["mergeWith","defaultsDeep","helmet"],"mappings":";;;;;;AAOA,MAAM,WAAmB;AAAA,EACvB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,IACrB,aAAa;AAAA,IACb,YAAY;AAAA,MACV,eAAe,CAAC,UAAU,QAAQ;AAAA,MAClC,WAAW,CAAC,UAAU,SAAS,SAAS,iCAAiC;AAAA,MACzE,aAAa,CAAC,UAAU,SAAS,OAAO;AAAA,MACxC,yBAAyB;AAAA,IAAA;AAAA,EAE7B;AAAA,EACA,WAAW;AAAA,EACX,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,mBAAmB;AAAA,EACrB;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,EAAA;AAEZ;AAEA,MAAM,cAAc,CAAC,gBAAwB,cAAsB;AAC1D,SAAAA,GAAA;AAAA,IACL,CAAC,KAAK,QAAS,MAAM,QAAQ,GAAG,KAAK,MAAM,QAAQ,GAAG,IAAI,IAAI,OAAO,GAAG,IAAI;AAAA,IAC5E;AAAA,IACA;AAAA,EACF;AACF;AAEa,MAAA,WACX,CAAC,QAAQ,EAAE,aACX,CAAC,KAAK,SAAS;AACT,MAAA,eAAuBC,GAAAA,aAAa,UAAU,MAAM;AAElD,QAAA,eAAe,CAAC,gBAAgB;AAEtC,QAAM,aAKF;AAAA,IACF,cAAc,CAAC,UAAU,mBAAmB,kBAAkB;AAAA,IAC9D,WAAW,CAAC,UAAU,SAAS,oBAAoB,WAAW;AAAA,IAC9D,gBAAgB,CAAC;AAAA,IACjB,aAAa,CAAA;AAAA,EACf;AAGI,MAAA,OAAO,OAAO,SAAS,GAAG,QAAQ,OAAO,EAAE,WAAW,aAAa;AACrE,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACxC,iBAAA,KAAK,UAAU,UAAU,CAAC;AAE5B,eAAA,YAAY,EAAE,KAAK,wBAAwB;AAC3C,eAAA,SAAS,EAAE,KAAK,oDAAoD;AACpE,eAAA,cAAc,EAAE,KAAK,QAAQ;AAC7B,eAAA,cAAc,EAAE,KAAK,kDAAkD;AACvE,eAAA,WAAW,EAAE,KAAK,QAAQ;AAC1B,eAAA,WAAW,EAAE,KAAK,iCAAiC;AAAA,EAAA;AAIhE,MAAI,IAAI,WAAW,SAAS,aAAa,KAAK,CAAC,QAAQ,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG;AAChF,mBAAe,YAAY,cAAc;AAAA,MACvC,2BAA2B;AAAA;AAAA,MAC3B,uBAAuB;AAAA,QACrB;AAAA,MAAA;AAAA,IACF,CACD;AAAA,EAAA;AAaD,MAAA,CAAC,eAAe,MAAM,EAAE,SAAS,QAAQ,IAAI,YAAY,EAAE,KAC3D,IAAI,WAAW,SACf,IAAI,KAAK,WAAW,OAAO,OAAO,IAAI,YAAY,CAAC,GACnD;AACA,mBAAe,YAAY,cAAc;AAAA,MACvC,uBAAuB;AAAA,QACrB,YAAY;AAAA,UACV,cAAc,CAAC,UAAU,iBAAiB;AAAA,UAC1C,eAAe,CAAC,UAAU,SAAS,UAAU,KAAK;AAAA,QAAA;AAAA,MACpD;AAAA,IACF,CACD;AAAA,EAAA;AAGH,SAAOC,wBAAO,YAAY,EAAE,KAAK,IAAI;AACvC;;"}
@@ -1,76 +0,0 @@
1
- import { defaultsDeep, mergeWith } from "lodash/fp";
2
- import helmet from "koa-helmet";
3
- const defaults = {
4
- crossOriginEmbedderPolicy: false,
5
- crossOriginOpenerPolicy: false,
6
- crossOriginResourcePolicy: false,
7
- originAgentCluster: false,
8
- contentSecurityPolicy: {
9
- useDefaults: true,
10
- directives: {
11
- "connect-src": ["'self'", "https:"],
12
- "img-src": ["'self'", "data:", "blob:", "https://market-assets.strapi.io"],
13
- "media-src": ["'self'", "data:", "blob:"],
14
- upgradeInsecureRequests: null
15
- }
16
- },
17
- xssFilter: false,
18
- hsts: {
19
- maxAge: 31536e3,
20
- includeSubDomains: true
21
- },
22
- frameguard: {
23
- action: "sameorigin"
24
- }
25
- };
26
- const mergeConfig = (existingConfig, newConfig) => {
27
- return mergeWith(
28
- (obj, src) => Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : void 0,
29
- existingConfig,
30
- newConfig
31
- );
32
- };
33
- const security = (config, { strapi }) => (ctx, next) => {
34
- let helmetConfig = defaultsDeep(defaults, config);
35
- const specialPaths = ["/documentation"];
36
- const directives = {
37
- "script-src": ["'self'", "'unsafe-inline'", "cdn.jsdelivr.net"],
38
- "img-src": ["'self'", "data:", "cdn.jsdelivr.net", "strapi.io"],
39
- "manifest-src": [],
40
- "frame-src": []
41
- };
42
- if (strapi.plugin("graphql")?.service("utils").playground.isEnabled()) {
43
- const { config: gqlConfig } = strapi.plugin("graphql");
44
- specialPaths.push(gqlConfig("endpoint"));
45
- directives["script-src"].push(`https: 'unsafe-inline'`);
46
- directives["img-src"].push(`'apollo-server-landing-page.cdn.apollographql.com'`);
47
- directives["manifest-src"].push(`'self'`);
48
- directives["manifest-src"].push("apollo-server-landing-page.cdn.apollographql.com");
49
- directives["frame-src"].push(`'self'`);
50
- directives["frame-src"].push("sandbox.embed.apollographql.com");
51
- }
52
- if (ctx.method === "GET" && specialPaths.some((str) => ctx.path.startsWith(str))) {
53
- helmetConfig = mergeConfig(helmetConfig, {
54
- crossOriginEmbedderPolicy: false,
55
- // TODO: only use this for graphql playground
56
- contentSecurityPolicy: {
57
- directives
58
- }
59
- });
60
- }
61
- if (["development", "test"].includes(process.env.NODE_ENV ?? "") && ctx.method === "GET" && ctx.path.startsWith(strapi.config.get("admin.path"))) {
62
- helmetConfig = mergeConfig(helmetConfig, {
63
- contentSecurityPolicy: {
64
- directives: {
65
- "script-src": ["'self'", "'unsafe-inline'"],
66
- "connect-src": ["'self'", "http:", "https:", "ws:"]
67
- }
68
- }
69
- });
70
- }
71
- return helmet(helmetConfig)(ctx, next);
72
- };
73
- export {
74
- security
75
- };
76
- //# sourceMappingURL=security.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"security.mjs","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, mergeWith } from 'lodash/fp';\nimport helmet, { KoaHelmet } from 'koa-helmet';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<KoaHelmet>[0]>;\n\nconst defaults: Config = {\n crossOriginEmbedderPolicy: false,\n crossOriginOpenerPolicy: false,\n crossOriginResourcePolicy: false,\n originAgentCluster: false,\n contentSecurityPolicy: {\n useDefaults: true,\n directives: {\n 'connect-src': [\"'self'\", 'https:'],\n 'img-src': [\"'self'\", 'data:', 'blob:', 'https://market-assets.strapi.io'],\n 'media-src': [\"'self'\", 'data:', 'blob:'],\n upgradeInsecureRequests: null,\n },\n },\n xssFilter: false,\n hsts: {\n maxAge: 31536000,\n includeSubDomains: true,\n },\n frameguard: {\n action: 'sameorigin',\n },\n};\n\nconst mergeConfig = (existingConfig: Config, newConfig: Config) => {\n return mergeWith(\n (obj, src) => (Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : undefined),\n existingConfig,\n newConfig\n );\n};\n\nexport const security: Core.MiddlewareFactory<Config> =\n (config, { strapi }) =>\n (ctx, next) => {\n let helmetConfig: Config = defaultsDeep(defaults, config);\n\n const specialPaths = ['/documentation'];\n\n const directives: {\n 'script-src': string[];\n 'img-src': string[];\n 'manifest-src': string[];\n 'frame-src': string[];\n } = {\n 'script-src': [\"'self'\", \"'unsafe-inline'\", 'cdn.jsdelivr.net'],\n 'img-src': [\"'self'\", 'data:', 'cdn.jsdelivr.net', 'strapi.io'],\n 'manifest-src': [],\n 'frame-src': [],\n };\n\n // if apollo graphql playground is enabled, add exceptions for it\n if (strapi.plugin('graphql')?.service('utils').playground.isEnabled()) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n specialPaths.push(gqlConfig('endpoint'));\n\n directives['script-src'].push(`https: 'unsafe-inline'`);\n directives['img-src'].push(`'apollo-server-landing-page.cdn.apollographql.com'`);\n directives['manifest-src'].push(`'self'`);\n directives['manifest-src'].push('apollo-server-landing-page.cdn.apollographql.com');\n directives['frame-src'].push(`'self'`);\n directives['frame-src'].push('sandbox.embed.apollographql.com');\n }\n\n // TODO: we shouldn't combine playground exceptions with documentation for all routes, we should first check the path and then return exceptions specific to that\n if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {\n helmetConfig = mergeConfig(helmetConfig, {\n crossOriginEmbedderPolicy: false, // TODO: only use this for graphql playground\n contentSecurityPolicy: {\n directives,\n },\n });\n }\n\n /**\n * These are for vite's watch mode so it can accurately\n * connect to the HMR websocket & reconnect on failure\n * or when the server restarts.\n *\n * It only applies in development, and only on GET requests\n * that are part of the admin route.\n */\n\n if (\n ['development', 'test'].includes(process.env.NODE_ENV ?? '') &&\n ctx.method === 'GET' &&\n ctx.path.startsWith(strapi.config.get('admin.path'))\n ) {\n helmetConfig = mergeConfig(helmetConfig, {\n contentSecurityPolicy: {\n directives: {\n 'script-src': [\"'self'\", \"'unsafe-inline'\"],\n 'connect-src': [\"'self'\", 'http:', 'https:', 'ws:'],\n },\n },\n });\n }\n\n return helmet(helmetConfig)(ctx, next);\n };\n"],"names":[],"mappings":";;AAOA,MAAM,WAAmB;AAAA,EACvB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,IACrB,aAAa;AAAA,IACb,YAAY;AAAA,MACV,eAAe,CAAC,UAAU,QAAQ;AAAA,MAClC,WAAW,CAAC,UAAU,SAAS,SAAS,iCAAiC;AAAA,MACzE,aAAa,CAAC,UAAU,SAAS,OAAO;AAAA,MACxC,yBAAyB;AAAA,IAAA;AAAA,EAE7B;AAAA,EACA,WAAW;AAAA,EACX,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,mBAAmB;AAAA,EACrB;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,EAAA;AAEZ;AAEA,MAAM,cAAc,CAAC,gBAAwB,cAAsB;AAC1D,SAAA;AAAA,IACL,CAAC,KAAK,QAAS,MAAM,QAAQ,GAAG,KAAK,MAAM,QAAQ,GAAG,IAAI,IAAI,OAAO,GAAG,IAAI;AAAA,IAC5E;AAAA,IACA;AAAA,EACF;AACF;AAEa,MAAA,WACX,CAAC,QAAQ,EAAE,aACX,CAAC,KAAK,SAAS;AACT,MAAA,eAAuB,aAAa,UAAU,MAAM;AAElD,QAAA,eAAe,CAAC,gBAAgB;AAEtC,QAAM,aAKF;AAAA,IACF,cAAc,CAAC,UAAU,mBAAmB,kBAAkB;AAAA,IAC9D,WAAW,CAAC,UAAU,SAAS,oBAAoB,WAAW;AAAA,IAC9D,gBAAgB,CAAC;AAAA,IACjB,aAAa,CAAA;AAAA,EACf;AAGI,MAAA,OAAO,OAAO,SAAS,GAAG,QAAQ,OAAO,EAAE,WAAW,aAAa;AACrE,UAAM,EAAE,QAAQ,UAAA,IAAc,OAAO,OAAO,SAAS;AACxC,iBAAA,KAAK,UAAU,UAAU,CAAC;AAE5B,eAAA,YAAY,EAAE,KAAK,wBAAwB;AAC3C,eAAA,SAAS,EAAE,KAAK,oDAAoD;AACpE,eAAA,cAAc,EAAE,KAAK,QAAQ;AAC7B,eAAA,cAAc,EAAE,KAAK,kDAAkD;AACvE,eAAA,WAAW,EAAE,KAAK,QAAQ;AAC1B,eAAA,WAAW,EAAE,KAAK,iCAAiC;AAAA,EAAA;AAIhE,MAAI,IAAI,WAAW,SAAS,aAAa,KAAK,CAAC,QAAQ,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG;AAChF,mBAAe,YAAY,cAAc;AAAA,MACvC,2BAA2B;AAAA;AAAA,MAC3B,uBAAuB;AAAA,QACrB;AAAA,MAAA;AAAA,IACF,CACD;AAAA,EAAA;AAaD,MAAA,CAAC,eAAe,MAAM,EAAE,SAAS,QAAQ,IAAI,YAAY,EAAE,KAC3D,IAAI,WAAW,SACf,IAAI,KAAK,WAAW,OAAO,OAAO,IAAI,YAAY,CAAC,GACnD;AACA,mBAAe,YAAY,cAAc;AAAA,MACvC,uBAAuB;AAAA,QACrB,YAAY;AAAA,UACV,cAAc,CAAC,UAAU,iBAAiB;AAAA,UAC1C,eAAe,CAAC,UAAU,SAAS,UAAU,KAAK;AAAA,QAAA;AAAA,MACpD;AAAA,IACF,CACD;AAAA,EAAA;AAGH,SAAO,OAAO,YAAY,EAAE,KAAK,IAAI;AACvC;"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const koaSession = require("koa-session");
5
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
- const koaSession__default = /* @__PURE__ */ _interopDefault(koaSession);
7
- const defaultConfig = {
8
- key: "koa.sess",
9
- maxAge: 864e5,
10
- autoCommit: true,
11
- overwrite: true,
12
- httpOnly: true,
13
- signed: true,
14
- rolling: false,
15
- renew: false,
16
- secure: process.env.NODE_ENV === "production",
17
- sameSite: void 0
18
- };
19
- const session = (userConfig, { strapi }) => {
20
- const { keys } = strapi.server.app;
21
- if (!fp.isArray(keys) || fp.isEmpty(keys) || keys.some(fp.isEmpty)) {
22
- throw new Error(
23
- `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`
24
- );
25
- }
26
- const config = { ...defaultConfig, ...userConfig };
27
- strapi.server.use(koaSession__default.default(config, strapi.server.app));
28
- };
29
- exports.session = session;
30
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<koaSession.opts>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<koaSession.opts> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(koaSession(config, strapi.server.app));\n};\n"],"names":["isArray","isEmpty","koaSession"],"mappings":";;;;;;AAIA,MAAM,gBAAgB;AAAA,EACpB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ,QAAQ,IAAI,aAAa;AAAA,EACjC,UAAU;AACZ;AAEO,MAAM,UAA4D,CACvE,YACA,EAAE,aACC;AACH,QAAM,EAAE,KAAA,IAAS,OAAO,OAAO;AAC3B,MAAA,CAACA,GAAAA,QAAQ,IAAI,KAAKC,GAAA,QAAQ,IAAI,KAAK,KAAK,KAAKA,GAAAA,OAAO,GAAG;AACzD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EAAA;AAGF,QAAM,SAAmC,EAAE,GAAG,eAAe,GAAG,WAAW;AAE3E,SAAO,OAAO,IAAIC,oBAAA,QAAW,QAAQ,OAAO,OAAO,GAAG,CAAC;AACzD;;"}
@@ -1,28 +0,0 @@
1
- import { isArray, isEmpty } from "lodash/fp";
2
- import koaSession from "koa-session";
3
- const defaultConfig = {
4
- key: "koa.sess",
5
- maxAge: 864e5,
6
- autoCommit: true,
7
- overwrite: true,
8
- httpOnly: true,
9
- signed: true,
10
- rolling: false,
11
- renew: false,
12
- secure: process.env.NODE_ENV === "production",
13
- sameSite: void 0
14
- };
15
- const session = (userConfig, { strapi }) => {
16
- const { keys } = strapi.server.app;
17
- if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {
18
- throw new Error(
19
- `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`
20
- );
21
- }
22
- const config = { ...defaultConfig, ...userConfig };
23
- strapi.server.use(koaSession(config, strapi.server.app));
24
- };
25
- export {
26
- session
27
- };
28
- //# sourceMappingURL=session.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.mjs","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<koaSession.opts>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<koaSession.opts> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(koaSession(config, strapi.server.app));\n};\n"],"names":[],"mappings":";;AAIA,MAAM,gBAAgB;AAAA,EACpB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ,QAAQ,IAAI,aAAa;AAAA,EACjC,UAAU;AACZ;AAEO,MAAM,UAA4D,CACvE,YACA,EAAE,aACC;AACH,QAAM,EAAE,KAAA,IAAS,OAAO,OAAO;AAC3B,MAAA,CAAC,QAAQ,IAAI,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,OAAO,GAAG;AACzD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EAAA;AAGF,QAAM,SAAmC,EAAE,GAAG,eAAe,GAAG,WAAW;AAE3E,SAAO,OAAO,IAAI,WAAW,QAAQ,OAAO,OAAO,GAAG,CAAC;AACzD;"}
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const strapiUtils = require("@strapi/utils");
4
- const index = require("../../services/document-service/index.js");
5
- const hasDraftAndPublish = async (trx, meta) => {
6
- const hasTable = await trx.schema.hasTable(meta.tableName);
7
- if (!hasTable) {
8
- return false;
9
- }
10
- const uid = meta.uid;
11
- const model = strapi.getModel(uid);
12
- const hasDP = strapiUtils.contentTypes.hasDraftAndPublish(model);
13
- if (!hasDP) {
14
- return false;
15
- }
16
- return true;
17
- };
18
- async function copyPublishedEntriesToDraft({
19
- db,
20
- trx,
21
- uid
22
- }) {
23
- const meta = db.metadata.get(uid);
24
- const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute) => {
25
- if (["id"].includes(attribute.columnName)) {
26
- return acc;
27
- }
28
- if (strapiUtils.contentTypes.isScalarAttribute(attribute)) {
29
- acc.push(attribute.columnName);
30
- }
31
- return acc;
32
- }, []);
33
- await trx.into(
34
- trx.raw(`?? (${scalarAttributes.map(() => `??`).join(", ")})`, [
35
- meta.tableName,
36
- ...scalarAttributes
37
- ])
38
- ).insert((subQb) => {
39
- subQb.select(
40
- ...scalarAttributes.map((att) => {
41
- if (att === "published_at") {
42
- return trx.raw("NULL as ??", "published_at");
43
- }
44
- return att;
45
- })
46
- ).from(meta.tableName).whereNotNull("published_at");
47
- });
48
- }
49
- async function* getBatchToDiscard({
50
- db,
51
- trx,
52
- uid,
53
- batchSize = 1e3
54
- }) {
55
- let offset = 0;
56
- let hasMore = true;
57
- while (hasMore) {
58
- const batch = await db.queryBuilder(uid).select(["id", "documentId", "locale"]).where({ publishedAt: { $ne: null } }).limit(batchSize).offset(offset).orderBy("id").transacting(trx).execute();
59
- if (batch.length < batchSize) {
60
- hasMore = false;
61
- }
62
- offset += batchSize;
63
- yield batch;
64
- }
65
- }
66
- const migrateUp = async (trx, db) => {
67
- const dpModels = [];
68
- for (const meta of db.metadata.values()) {
69
- const hasDP = await hasDraftAndPublish(trx, meta);
70
- if (hasDP) {
71
- dpModels.push(meta);
72
- }
73
- }
74
- for (const model of dpModels) {
75
- await copyPublishedEntriesToDraft({ db, trx, uid: model.uid });
76
- }
77
- const documentService = index.createDocumentService(strapi, {
78
- async validateEntityCreation(_, data) {
79
- return data;
80
- },
81
- async validateEntityUpdate(_, data) {
82
- return data;
83
- }
84
- });
85
- for (const model of dpModels) {
86
- const discardDraft = async (entry) => documentService(model.uid).discardDraft({
87
- documentId: entry.documentId,
88
- locale: entry.locale
89
- });
90
- for await (const batch of getBatchToDiscard({ db, trx, uid: model.uid })) {
91
- await strapiUtils.async.map(batch, discardDraft, { concurrency: 1 });
92
- }
93
- }
94
- };
95
- const discardDocumentDrafts = {
96
- name: "core::5.0.0-discard-drafts",
97
- async up(trx, db) {
98
- await migrateUp(trx, db);
99
- },
100
- async down() {
101
- throw new Error("not implemented");
102
- }
103
- };
104
- exports.discardDocumentDrafts = discardDocumentDrafts;
105
- exports.getBatchToDiscard = getBatchToDiscard;
106
- //# sourceMappingURL=5.0.0-discard-drafts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"5.0.0-discard-drafts.js","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"sourcesContent":["/**\n * This migration is responsible for creating the draft counterpart for all the entries that were in a published state.\n *\n * In v4, entries could either be in a draft or published state, but not both at the same time.\n * In v5, we introduced the concept of document, and an entry can be in a draft or published state.\n *\n * This means the migration needs to create the draft counterpart if an entry was published.\n *\n * This migration performs the following steps:\n * 1. Creates draft entries for all published entries, without it's components, dynamic zones or relations.\n * 2. Using the document service, discard those same drafts to copy its relations.\n */\n\n/* eslint-disable no-continue */\nimport type { UID } from '@strapi/types';\nimport type { Database, Migration } from '@strapi/database';\nimport { async, contentTypes } from '@strapi/utils';\nimport { createDocumentService } from '../../services/document-service';\n\ntype DocumentVersion = { documentId: string; locale: string };\ntype Knex = Parameters<Migration['up']>[0];\n\n/**\n * Check if the model has draft and publish enabled.\n */\nconst hasDraftAndPublish = async (trx: Knex, meta: any) => {\n const hasTable = await trx.schema.hasTable(meta.tableName);\n\n if (!hasTable) {\n return false;\n }\n\n const uid = meta.uid as UID.ContentType;\n const model = strapi.getModel(uid);\n const hasDP = contentTypes.hasDraftAndPublish(model);\n if (!hasDP) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Copy all the published entries to draft entries, without it's components, dynamic zones or relations.\n * This ensures all necessary draft's exist before copying it's relations.\n */\nasync function copyPublishedEntriesToDraft({\n db,\n trx,\n uid,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n}) {\n // Extract all scalar attributes to use in the insert query\n const meta = db.metadata.get(uid);\n\n // Get scalar attributes that will be copied over the new draft\n const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute: any) => {\n if (['id'].includes(attribute.columnName)) {\n return acc;\n }\n\n if (contentTypes.isScalarAttribute(attribute)) {\n acc.push(attribute.columnName);\n }\n\n return acc;\n }, [] as string[]);\n\n /**\n * Query to copy the published entries into draft entries.\n *\n * INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n * SELECT columnName1, columnName2, columnName3, ...\n * FROM tableName\n */\n await trx\n // INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n .into(\n trx.raw(`?? (${scalarAttributes.map(() => `??`).join(', ')})`, [\n meta.tableName,\n ...scalarAttributes,\n ])\n )\n .insert((subQb: typeof trx) => {\n // SELECT columnName1, columnName2, columnName3, ...\n subQb\n .select(\n ...scalarAttributes.map((att: string) => {\n // Override 'publishedAt' and 'updatedAt' attributes\n if (att === 'published_at') {\n return trx.raw('NULL as ??', 'published_at');\n }\n\n return att;\n })\n )\n .from(meta.tableName)\n // Only select entries that were published\n .whereNotNull('published_at');\n });\n}\n\n/**\n * Load a batch of versions to discard.\n *\n * Versions with only a draft version will be ignored.\n * Only versions with a published version (which always have a draft version) will be discarded.\n */\nexport async function* getBatchToDiscard({\n db,\n trx,\n uid,\n batchSize = 1000,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n batchSize?: number;\n}) {\n let offset = 0;\n let hasMore = true;\n\n while (hasMore) {\n // Look for the published entries to discard\n const batch: DocumentVersion[] = await db\n .queryBuilder(uid)\n .select(['id', 'documentId', 'locale'])\n .where({ publishedAt: { $ne: null } })\n .limit(batchSize)\n .offset(offset)\n .orderBy('id')\n .transacting(trx)\n .execute();\n\n if (batch.length < batchSize) {\n hasMore = false;\n }\n\n offset += batchSize;\n yield batch;\n }\n}\n\n/**\n * 2 pass migration to create the draft entries for all the published entries.\n * And then discard the drafts to copy the relations.\n */\nconst migrateUp = async (trx: Knex, db: Database) => {\n const dpModels = [];\n for (const meta of db.metadata.values()) {\n const hasDP = await hasDraftAndPublish(trx, meta);\n if (hasDP) {\n dpModels.push(meta);\n }\n }\n\n /**\n * Create plain draft entries for all the entries that were published.\n */\n for (const model of dpModels) {\n await copyPublishedEntriesToDraft({ db, trx, uid: model.uid });\n }\n\n /**\n * Discard the drafts will copy the relations from the published entries to the newly created drafts.\n *\n * Load a batch of entries (batched to prevent loading millions of rows at once ),\n * and discard them using the document service.\n *\n * NOTE: This is using a custom document service without any validations,\n * to prevent the migration from failing if users already had invalid data in V4.\n * E.g. @see https://github.com/strapi/strapi/issues/21583\n */\n const documentService = createDocumentService(strapi, {\n async validateEntityCreation(_, data) {\n return data;\n },\n async validateEntityUpdate(_, data) {\n // Data can be partially empty on partial updates\n // This migration doesn't trigger any update (or partial update),\n // so it's safe to return the data as is.\n return data as any;\n },\n });\n\n for (const model of dpModels) {\n const discardDraft = async (entry: DocumentVersion) =>\n documentService(model.uid as UID.ContentType).discardDraft({\n documentId: entry.documentId,\n locale: entry.locale,\n });\n\n for await (const batch of getBatchToDiscard({ db, trx, uid: model.uid })) {\n // NOTE: concurrency had to be disabled to prevent a race condition with self-references\n // TODO: improve performance in a safe way\n await async.map(batch, discardDraft, { concurrency: 1 });\n }\n }\n};\n\nexport const discardDocumentDrafts: Migration = {\n name: 'core::5.0.0-discard-drafts',\n async up(trx, db) {\n await migrateUp(trx, db);\n },\n async down() {\n throw new Error('not implemented');\n },\n};\n"],"names":["contentTypes","createDocumentService","async"],"mappings":"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"}
@@ -1,106 +0,0 @@
1
- import { async, contentTypes } from "@strapi/utils";
2
- import { createDocumentService } from "../../services/document-service/index.mjs";
3
- const hasDraftAndPublish = async (trx, meta) => {
4
- const hasTable = await trx.schema.hasTable(meta.tableName);
5
- if (!hasTable) {
6
- return false;
7
- }
8
- const uid = meta.uid;
9
- const model = strapi.getModel(uid);
10
- const hasDP = contentTypes.hasDraftAndPublish(model);
11
- if (!hasDP) {
12
- return false;
13
- }
14
- return true;
15
- };
16
- async function copyPublishedEntriesToDraft({
17
- db,
18
- trx,
19
- uid
20
- }) {
21
- const meta = db.metadata.get(uid);
22
- const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute) => {
23
- if (["id"].includes(attribute.columnName)) {
24
- return acc;
25
- }
26
- if (contentTypes.isScalarAttribute(attribute)) {
27
- acc.push(attribute.columnName);
28
- }
29
- return acc;
30
- }, []);
31
- await trx.into(
32
- trx.raw(`?? (${scalarAttributes.map(() => `??`).join(", ")})`, [
33
- meta.tableName,
34
- ...scalarAttributes
35
- ])
36
- ).insert((subQb) => {
37
- subQb.select(
38
- ...scalarAttributes.map((att) => {
39
- if (att === "published_at") {
40
- return trx.raw("NULL as ??", "published_at");
41
- }
42
- return att;
43
- })
44
- ).from(meta.tableName).whereNotNull("published_at");
45
- });
46
- }
47
- async function* getBatchToDiscard({
48
- db,
49
- trx,
50
- uid,
51
- batchSize = 1e3
52
- }) {
53
- let offset = 0;
54
- let hasMore = true;
55
- while (hasMore) {
56
- const batch = await db.queryBuilder(uid).select(["id", "documentId", "locale"]).where({ publishedAt: { $ne: null } }).limit(batchSize).offset(offset).orderBy("id").transacting(trx).execute();
57
- if (batch.length < batchSize) {
58
- hasMore = false;
59
- }
60
- offset += batchSize;
61
- yield batch;
62
- }
63
- }
64
- const migrateUp = async (trx, db) => {
65
- const dpModels = [];
66
- for (const meta of db.metadata.values()) {
67
- const hasDP = await hasDraftAndPublish(trx, meta);
68
- if (hasDP) {
69
- dpModels.push(meta);
70
- }
71
- }
72
- for (const model of dpModels) {
73
- await copyPublishedEntriesToDraft({ db, trx, uid: model.uid });
74
- }
75
- const documentService = createDocumentService(strapi, {
76
- async validateEntityCreation(_, data) {
77
- return data;
78
- },
79
- async validateEntityUpdate(_, data) {
80
- return data;
81
- }
82
- });
83
- for (const model of dpModels) {
84
- const discardDraft = async (entry) => documentService(model.uid).discardDraft({
85
- documentId: entry.documentId,
86
- locale: entry.locale
87
- });
88
- for await (const batch of getBatchToDiscard({ db, trx, uid: model.uid })) {
89
- await async.map(batch, discardDraft, { concurrency: 1 });
90
- }
91
- }
92
- };
93
- const discardDocumentDrafts = {
94
- name: "core::5.0.0-discard-drafts",
95
- async up(trx, db) {
96
- await migrateUp(trx, db);
97
- },
98
- async down() {
99
- throw new Error("not implemented");
100
- }
101
- };
102
- export {
103
- discardDocumentDrafts,
104
- getBatchToDiscard
105
- };
106
- //# sourceMappingURL=5.0.0-discard-drafts.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"5.0.0-discard-drafts.mjs","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"sourcesContent":["/**\n * This migration is responsible for creating the draft counterpart for all the entries that were in a published state.\n *\n * In v4, entries could either be in a draft or published state, but not both at the same time.\n * In v5, we introduced the concept of document, and an entry can be in a draft or published state.\n *\n * This means the migration needs to create the draft counterpart if an entry was published.\n *\n * This migration performs the following steps:\n * 1. Creates draft entries for all published entries, without it's components, dynamic zones or relations.\n * 2. Using the document service, discard those same drafts to copy its relations.\n */\n\n/* eslint-disable no-continue */\nimport type { UID } from '@strapi/types';\nimport type { Database, Migration } from '@strapi/database';\nimport { async, contentTypes } from '@strapi/utils';\nimport { createDocumentService } from '../../services/document-service';\n\ntype DocumentVersion = { documentId: string; locale: string };\ntype Knex = Parameters<Migration['up']>[0];\n\n/**\n * Check if the model has draft and publish enabled.\n */\nconst hasDraftAndPublish = async (trx: Knex, meta: any) => {\n const hasTable = await trx.schema.hasTable(meta.tableName);\n\n if (!hasTable) {\n return false;\n }\n\n const uid = meta.uid as UID.ContentType;\n const model = strapi.getModel(uid);\n const hasDP = contentTypes.hasDraftAndPublish(model);\n if (!hasDP) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Copy all the published entries to draft entries, without it's components, dynamic zones or relations.\n * This ensures all necessary draft's exist before copying it's relations.\n */\nasync function copyPublishedEntriesToDraft({\n db,\n trx,\n uid,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n}) {\n // Extract all scalar attributes to use in the insert query\n const meta = db.metadata.get(uid);\n\n // Get scalar attributes that will be copied over the new draft\n const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute: any) => {\n if (['id'].includes(attribute.columnName)) {\n return acc;\n }\n\n if (contentTypes.isScalarAttribute(attribute)) {\n acc.push(attribute.columnName);\n }\n\n return acc;\n }, [] as string[]);\n\n /**\n * Query to copy the published entries into draft entries.\n *\n * INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n * SELECT columnName1, columnName2, columnName3, ...\n * FROM tableName\n */\n await trx\n // INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n .into(\n trx.raw(`?? (${scalarAttributes.map(() => `??`).join(', ')})`, [\n meta.tableName,\n ...scalarAttributes,\n ])\n )\n .insert((subQb: typeof trx) => {\n // SELECT columnName1, columnName2, columnName3, ...\n subQb\n .select(\n ...scalarAttributes.map((att: string) => {\n // Override 'publishedAt' and 'updatedAt' attributes\n if (att === 'published_at') {\n return trx.raw('NULL as ??', 'published_at');\n }\n\n return att;\n })\n )\n .from(meta.tableName)\n // Only select entries that were published\n .whereNotNull('published_at');\n });\n}\n\n/**\n * Load a batch of versions to discard.\n *\n * Versions with only a draft version will be ignored.\n * Only versions with a published version (which always have a draft version) will be discarded.\n */\nexport async function* getBatchToDiscard({\n db,\n trx,\n uid,\n batchSize = 1000,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n batchSize?: number;\n}) {\n let offset = 0;\n let hasMore = true;\n\n while (hasMore) {\n // Look for the published entries to discard\n const batch: DocumentVersion[] = await db\n .queryBuilder(uid)\n .select(['id', 'documentId', 'locale'])\n .where({ publishedAt: { $ne: null } })\n .limit(batchSize)\n .offset(offset)\n .orderBy('id')\n .transacting(trx)\n .execute();\n\n if (batch.length < batchSize) {\n hasMore = false;\n }\n\n offset += batchSize;\n yield batch;\n }\n}\n\n/**\n * 2 pass migration to create the draft entries for all the published entries.\n * And then discard the drafts to copy the relations.\n */\nconst migrateUp = async (trx: Knex, db: Database) => {\n const dpModels = [];\n for (const meta of db.metadata.values()) {\n const hasDP = await hasDraftAndPublish(trx, meta);\n if (hasDP) {\n dpModels.push(meta);\n }\n }\n\n /**\n * Create plain draft entries for all the entries that were published.\n */\n for (const model of dpModels) {\n await copyPublishedEntriesToDraft({ db, trx, uid: model.uid });\n }\n\n /**\n * Discard the drafts will copy the relations from the published entries to the newly created drafts.\n *\n * Load a batch of entries (batched to prevent loading millions of rows at once ),\n * and discard them using the document service.\n *\n * NOTE: This is using a custom document service without any validations,\n * to prevent the migration from failing if users already had invalid data in V4.\n * E.g. @see https://github.com/strapi/strapi/issues/21583\n */\n const documentService = createDocumentService(strapi, {\n async validateEntityCreation(_, data) {\n return data;\n },\n async validateEntityUpdate(_, data) {\n // Data can be partially empty on partial updates\n // This migration doesn't trigger any update (or partial update),\n // so it's safe to return the data as is.\n return data as any;\n },\n });\n\n for (const model of dpModels) {\n const discardDraft = async (entry: DocumentVersion) =>\n documentService(model.uid as UID.ContentType).discardDraft({\n documentId: entry.documentId,\n locale: entry.locale,\n });\n\n for await (const batch of getBatchToDiscard({ db, trx, uid: model.uid })) {\n // NOTE: concurrency had to be disabled to prevent a race condition with self-references\n // TODO: improve performance in a safe way\n await async.map(batch, discardDraft, { concurrency: 1 });\n }\n }\n};\n\nexport const discardDocumentDrafts: Migration = {\n name: 'core::5.0.0-discard-drafts',\n async up(trx, db) {\n await migrateUp(trx, db);\n },\n async down() {\n throw new Error('not implemented');\n },\n};\n"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const strapiUtils = require("@strapi/utils");
4
- const _5_0_0DiscardDrafts = require("./database/5.0.0-discard-drafts.js");
5
- const enableDraftAndPublish = async ({ oldContentTypes, contentTypes }) => {
6
- if (!oldContentTypes) {
7
- return;
8
- }
9
- return strapi.db.transaction(async (trx) => {
10
- for (const uid in contentTypes) {
11
- if (!oldContentTypes[uid]) {
12
- continue;
13
- }
14
- const oldContentType = oldContentTypes[uid];
15
- const contentType = contentTypes[uid];
16
- if (!strapiUtils.contentTypes.hasDraftAndPublish(oldContentType) && strapiUtils.contentTypes.hasDraftAndPublish(contentType)) {
17
- const discardDraft = async (entry) => strapi.documents(uid).discardDraft({ documentId: entry.documentId, locale: entry.locale });
18
- for await (const batch of _5_0_0DiscardDrafts.getBatchToDiscard({ db: strapi.db, trx, uid })) {
19
- await strapiUtils.async.map(batch, discardDraft, { concurrency: 10 });
20
- }
21
- }
22
- }
23
- });
24
- };
25
- const disableDraftAndPublish = async ({ oldContentTypes, contentTypes }) => {
26
- if (!oldContentTypes) {
27
- return;
28
- }
29
- for (const uid in contentTypes) {
30
- if (!oldContentTypes[uid]) {
31
- continue;
32
- }
33
- const oldContentType = oldContentTypes[uid];
34
- const contentType = contentTypes[uid];
35
- if (strapiUtils.contentTypes.hasDraftAndPublish(oldContentType) && !strapiUtils.contentTypes.hasDraftAndPublish(contentType)) {
36
- await strapi.db?.queryBuilder(uid).delete().where({ published_at: null }).execute();
37
- }
38
- }
39
- };
40
- exports.disable = disableDraftAndPublish;
41
- exports.enable = enableDraftAndPublish;
42
- //# sourceMappingURL=draft-publish.js.map