@strapi/core 0.0.0-next.5d0cd5a1a7d80ae3da90f2331d25161b28f06910 → 0.0.0-next.5f27c76d39a0c192701bdc9daabce3bb59389ce3

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

Potentially problematic release.


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

Files changed (721) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +428 -408
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +428 -408
  5. package/dist/Strapi.mjs.map +1 -1
  6. package/dist/compile.js +23 -14
  7. package/dist/compile.js.map +1 -1
  8. package/dist/compile.mjs +22 -14
  9. package/dist/compile.mjs.map +1 -1
  10. package/dist/configuration/config-loader.js +110 -96
  11. package/dist/configuration/config-loader.js.map +1 -1
  12. package/dist/configuration/config-loader.mjs +109 -95
  13. package/dist/configuration/config-loader.mjs.map +1 -1
  14. package/dist/configuration/get-dirs.js +31 -29
  15. package/dist/configuration/get-dirs.js.map +1 -1
  16. package/dist/configuration/get-dirs.mjs +30 -30
  17. package/dist/configuration/get-dirs.mjs.map +1 -1
  18. package/dist/configuration/index.d.ts +1 -0
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +85 -78
  21. package/dist/configuration/index.js.map +1 -1
  22. package/dist/configuration/index.mjs +84 -74
  23. package/dist/configuration/index.mjs.map +1 -1
  24. package/dist/configuration/urls.d.ts.map +1 -1
  25. package/dist/configuration/urls.js +74 -61
  26. package/dist/configuration/urls.js.map +1 -1
  27. package/dist/configuration/urls.mjs +73 -62
  28. package/dist/configuration/urls.mjs.map +1 -1
  29. package/dist/container.js +27 -23
  30. package/dist/container.js.map +1 -1
  31. package/dist/container.mjs +26 -24
  32. package/dist/container.mjs.map +1 -1
  33. package/dist/core-api/controller/collection-type.js +77 -76
  34. package/dist/core-api/controller/collection-type.js.map +1 -1
  35. package/dist/core-api/controller/collection-type.mjs +76 -77
  36. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  37. package/dist/core-api/controller/index.js +63 -48
  38. package/dist/core-api/controller/index.js.map +1 -1
  39. package/dist/core-api/controller/index.mjs +62 -49
  40. package/dist/core-api/controller/index.mjs.map +1 -1
  41. package/dist/core-api/controller/single-type.js +41 -40
  42. package/dist/core-api/controller/single-type.js.map +1 -1
  43. package/dist/core-api/controller/single-type.mjs +40 -41
  44. package/dist/core-api/controller/single-type.mjs.map +1 -1
  45. package/dist/core-api/controller/transform.js +72 -63
  46. package/dist/core-api/controller/transform.js.map +1 -1
  47. package/dist/core-api/controller/transform.mjs +71 -64
  48. package/dist/core-api/controller/transform.mjs.map +1 -1
  49. package/dist/core-api/routes/index.js +64 -62
  50. package/dist/core-api/routes/index.js.map +1 -1
  51. package/dist/core-api/routes/index.mjs +62 -62
  52. package/dist/core-api/routes/index.mjs.map +1 -1
  53. package/dist/core-api/service/collection-type.js +73 -60
  54. package/dist/core-api/service/collection-type.js.map +1 -1
  55. package/dist/core-api/service/collection-type.mjs +72 -62
  56. package/dist/core-api/service/collection-type.mjs.map +1 -1
  57. package/dist/core-api/service/core-service.js +9 -8
  58. package/dist/core-api/service/core-service.js.map +1 -1
  59. package/dist/core-api/service/core-service.mjs +8 -9
  60. package/dist/core-api/service/core-service.mjs.map +1 -1
  61. package/dist/core-api/service/index.js +13 -13
  62. package/dist/core-api/service/index.js.map +1 -1
  63. package/dist/core-api/service/index.mjs +12 -14
  64. package/dist/core-api/service/index.mjs.map +1 -1
  65. package/dist/core-api/service/pagination.js +69 -43
  66. package/dist/core-api/service/pagination.js.map +1 -1
  67. package/dist/core-api/service/pagination.mjs +68 -47
  68. package/dist/core-api/service/pagination.mjs.map +1 -1
  69. package/dist/core-api/service/single-type.js +43 -38
  70. package/dist/core-api/service/single-type.js.map +1 -1
  71. package/dist/core-api/service/single-type.mjs +42 -40
  72. package/dist/core-api/service/single-type.mjs.map +1 -1
  73. package/dist/domain/content-type/index.js +95 -100
  74. package/dist/domain/content-type/index.js.map +1 -1
  75. package/dist/domain/content-type/index.mjs +94 -100
  76. package/dist/domain/content-type/index.mjs.map +1 -1
  77. package/dist/domain/content-type/validator.js +84 -69
  78. package/dist/domain/content-type/validator.js.map +1 -1
  79. package/dist/domain/content-type/validator.mjs +83 -68
  80. package/dist/domain/content-type/validator.mjs.map +1 -1
  81. package/dist/domain/module/index.js +109 -100
  82. package/dist/domain/module/index.js.map +1 -1
  83. package/dist/domain/module/index.mjs +108 -99
  84. package/dist/domain/module/index.mjs.map +1 -1
  85. package/dist/domain/module/validation.js +25 -20
  86. package/dist/domain/module/validation.js.map +1 -1
  87. package/dist/domain/module/validation.mjs +24 -21
  88. package/dist/domain/module/validation.mjs.map +1 -1
  89. package/dist/ee/index.d.ts +7 -0
  90. package/dist/ee/index.d.ts.map +1 -1
  91. package/dist/ee/index.js +197 -137
  92. package/dist/ee/index.js.map +1 -1
  93. package/dist/ee/index.mjs +196 -139
  94. package/dist/ee/index.mjs.map +1 -1
  95. package/dist/ee/license.d.ts +3 -1
  96. package/dist/ee/license.d.ts.map +1 -1
  97. package/dist/ee/license.js +105 -75
  98. package/dist/ee/license.js.map +1 -1
  99. package/dist/ee/license.mjs +103 -76
  100. package/dist/ee/license.mjs.map +1 -1
  101. package/dist/factories.js +72 -67
  102. package/dist/factories.js.map +1 -1
  103. package/dist/factories.mjs +71 -71
  104. package/dist/factories.mjs.map +1 -1
  105. package/dist/index.js +29 -26
  106. package/dist/index.js.map +1 -1
  107. package/dist/index.mjs +29 -29
  108. package/dist/index.mjs.map +1 -1
  109. package/dist/loaders/admin.d.ts.map +1 -1
  110. package/dist/loaders/admin.js +21 -20
  111. package/dist/loaders/admin.js.map +1 -1
  112. package/dist/loaders/admin.mjs +20 -20
  113. package/dist/loaders/admin.mjs.map +1 -1
  114. package/dist/loaders/apis.js +143 -120
  115. package/dist/loaders/apis.js.map +1 -1
  116. package/dist/loaders/apis.mjs +142 -119
  117. package/dist/loaders/apis.mjs.map +1 -1
  118. package/dist/loaders/components.js +33 -34
  119. package/dist/loaders/components.js.map +1 -1
  120. package/dist/loaders/components.mjs +32 -34
  121. package/dist/loaders/components.mjs.map +1 -1
  122. package/dist/loaders/index.js +22 -20
  123. package/dist/loaders/index.js.map +1 -1
  124. package/dist/loaders/index.mjs +21 -21
  125. package/dist/loaders/index.mjs.map +1 -1
  126. package/dist/loaders/middlewares.js +29 -25
  127. package/dist/loaders/middlewares.js.map +1 -1
  128. package/dist/loaders/middlewares.mjs +28 -25
  129. package/dist/loaders/middlewares.mjs.map +1 -1
  130. package/dist/loaders/plugins/get-enabled-plugins.js +126 -131
  131. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  132. package/dist/loaders/plugins/get-enabled-plugins.mjs +125 -108
  133. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  134. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  135. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  136. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  137. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  138. package/dist/loaders/plugins/index.js +132 -121
  139. package/dist/loaders/plugins/index.js.map +1 -1
  140. package/dist/loaders/plugins/index.mjs +121 -112
  141. package/dist/loaders/plugins/index.mjs.map +1 -1
  142. package/dist/loaders/policies.js +24 -20
  143. package/dist/loaders/policies.js.map +1 -1
  144. package/dist/loaders/policies.mjs +23 -20
  145. package/dist/loaders/policies.mjs.map +1 -1
  146. package/dist/loaders/sanitizers.js +10 -4
  147. package/dist/loaders/sanitizers.js.map +1 -1
  148. package/dist/loaders/sanitizers.mjs +9 -6
  149. package/dist/loaders/sanitizers.mjs.map +1 -1
  150. package/dist/loaders/src-index.js +35 -27
  151. package/dist/loaders/src-index.js.map +1 -1
  152. package/dist/loaders/src-index.mjs +34 -29
  153. package/dist/loaders/src-index.mjs.map +1 -1
  154. package/dist/loaders/validators.js +9 -4
  155. package/dist/loaders/validators.js.map +1 -1
  156. package/dist/loaders/validators.mjs +8 -6
  157. package/dist/loaders/validators.mjs.map +1 -1
  158. package/dist/middlewares/body.d.ts.map +1 -1
  159. package/dist/middlewares/body.js +58 -54
  160. package/dist/middlewares/body.js.map +1 -1
  161. package/dist/middlewares/body.mjs +57 -51
  162. package/dist/middlewares/body.mjs.map +1 -1
  163. package/dist/middlewares/compression.js +6 -6
  164. package/dist/middlewares/compression.js.map +1 -1
  165. package/dist/middlewares/compression.mjs +5 -5
  166. package/dist/middlewares/compression.mjs.map +1 -1
  167. package/dist/middlewares/cors.js +59 -48
  168. package/dist/middlewares/cors.js.map +1 -1
  169. package/dist/middlewares/cors.mjs +58 -47
  170. package/dist/middlewares/cors.mjs.map +1 -1
  171. package/dist/middlewares/errors.js +32 -30
  172. package/dist/middlewares/errors.js.map +1 -1
  173. package/dist/middlewares/errors.mjs +31 -31
  174. package/dist/middlewares/errors.mjs.map +1 -1
  175. package/dist/middlewares/favicon.js +27 -17
  176. package/dist/middlewares/favicon.js.map +1 -1
  177. package/dist/middlewares/favicon.mjs +26 -16
  178. package/dist/middlewares/favicon.mjs.map +1 -1
  179. package/dist/middlewares/index.js +32 -30
  180. package/dist/middlewares/index.js.map +1 -1
  181. package/dist/middlewares/index.mjs +31 -31
  182. package/dist/middlewares/index.mjs.map +1 -1
  183. package/dist/middlewares/ip.js +6 -6
  184. package/dist/middlewares/ip.js.map +1 -1
  185. package/dist/middlewares/ip.mjs +5 -5
  186. package/dist/middlewares/ip.mjs.map +1 -1
  187. package/dist/middlewares/logger.js +10 -9
  188. package/dist/middlewares/logger.js.map +1 -1
  189. package/dist/middlewares/logger.mjs +9 -10
  190. package/dist/middlewares/logger.mjs.map +1 -1
  191. package/dist/middlewares/powered-by.js +13 -9
  192. package/dist/middlewares/powered-by.js.map +1 -1
  193. package/dist/middlewares/powered-by.mjs +12 -10
  194. package/dist/middlewares/powered-by.mjs.map +1 -1
  195. package/dist/middlewares/public.js +33 -29
  196. package/dist/middlewares/public.js.map +1 -1
  197. package/dist/middlewares/public.mjs +32 -28
  198. package/dist/middlewares/public.mjs.map +1 -1
  199. package/dist/middlewares/query.js +35 -32
  200. package/dist/middlewares/query.js.map +1 -1
  201. package/dist/middlewares/query.mjs +34 -31
  202. package/dist/middlewares/query.mjs.map +1 -1
  203. package/dist/middlewares/response-time.js +10 -9
  204. package/dist/middlewares/response-time.js.map +1 -1
  205. package/dist/middlewares/response-time.mjs +9 -10
  206. package/dist/middlewares/response-time.mjs.map +1 -1
  207. package/dist/middlewares/responses.js +14 -12
  208. package/dist/middlewares/responses.js.map +1 -1
  209. package/dist/middlewares/responses.mjs +13 -13
  210. package/dist/middlewares/responses.mjs.map +1 -1
  211. package/dist/middlewares/security.js +109 -71
  212. package/dist/middlewares/security.js.map +1 -1
  213. package/dist/middlewares/security.mjs +108 -70
  214. package/dist/middlewares/security.mjs.map +1 -1
  215. package/dist/middlewares/session.js +26 -25
  216. package/dist/middlewares/session.js.map +1 -1
  217. package/dist/middlewares/session.mjs +25 -24
  218. package/dist/middlewares/session.mjs.map +1 -1
  219. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +2 -2
  220. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  221. package/dist/migrations/database/5.0.0-discard-drafts.js +152 -90
  222. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  223. package/dist/migrations/database/5.0.0-discard-drafts.mjs +151 -92
  224. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  225. package/dist/migrations/draft-publish.d.ts +1 -1
  226. package/dist/migrations/draft-publish.d.ts.map +1 -1
  227. package/dist/migrations/draft-publish.js +61 -34
  228. package/dist/migrations/draft-publish.js.map +1 -1
  229. package/dist/migrations/draft-publish.mjs +60 -36
  230. package/dist/migrations/draft-publish.mjs.map +1 -1
  231. package/dist/migrations/i18n.js +62 -45
  232. package/dist/migrations/i18n.js.map +1 -1
  233. package/dist/migrations/i18n.mjs +61 -47
  234. package/dist/migrations/i18n.mjs.map +1 -1
  235. package/dist/migrations/index.js +24 -10
  236. package/dist/migrations/index.js.map +1 -1
  237. package/dist/migrations/index.mjs +23 -12
  238. package/dist/migrations/index.mjs.map +1 -1
  239. package/dist/package.json.js +184 -0
  240. package/dist/package.json.js.map +1 -0
  241. package/dist/package.json.mjs +161 -0
  242. package/dist/package.json.mjs.map +1 -0
  243. package/dist/providers/admin.js +27 -17
  244. package/dist/providers/admin.js.map +1 -1
  245. package/dist/providers/admin.mjs +26 -19
  246. package/dist/providers/admin.mjs.map +1 -1
  247. package/dist/providers/coreStore.js +13 -8
  248. package/dist/providers/coreStore.js.map +1 -1
  249. package/dist/providers/coreStore.mjs +12 -10
  250. package/dist/providers/coreStore.mjs.map +1 -1
  251. package/dist/providers/cron.js +19 -16
  252. package/dist/providers/cron.js.map +1 -1
  253. package/dist/providers/cron.mjs +18 -18
  254. package/dist/providers/cron.mjs.map +1 -1
  255. package/dist/providers/index.js +18 -9
  256. package/dist/providers/index.js.map +1 -1
  257. package/dist/providers/index.mjs +17 -10
  258. package/dist/providers/index.mjs.map +1 -1
  259. package/dist/providers/provider.js +4 -3
  260. package/dist/providers/provider.js.map +1 -1
  261. package/dist/providers/provider.mjs +3 -4
  262. package/dist/providers/provider.mjs.map +1 -1
  263. package/dist/providers/registries.js +37 -32
  264. package/dist/providers/registries.js.map +1 -1
  265. package/dist/providers/registries.mjs +36 -34
  266. package/dist/providers/registries.mjs.map +1 -1
  267. package/dist/providers/telemetry.js +19 -16
  268. package/dist/providers/telemetry.js.map +1 -1
  269. package/dist/providers/telemetry.mjs +18 -18
  270. package/dist/providers/telemetry.mjs.map +1 -1
  271. package/dist/providers/webhooks.js +28 -26
  272. package/dist/providers/webhooks.js.map +1 -1
  273. package/dist/providers/webhooks.mjs +27 -28
  274. package/dist/providers/webhooks.mjs.map +1 -1
  275. package/dist/registries/apis.js +23 -20
  276. package/dist/registries/apis.js.map +1 -1
  277. package/dist/registries/apis.mjs +22 -22
  278. package/dist/registries/apis.mjs.map +1 -1
  279. package/dist/registries/components.js +35 -37
  280. package/dist/registries/components.js.map +1 -1
  281. package/dist/registries/components.mjs +34 -39
  282. package/dist/registries/components.mjs.map +1 -1
  283. package/dist/registries/content-types.js +54 -59
  284. package/dist/registries/content-types.js.map +1 -1
  285. package/dist/registries/content-types.mjs +53 -61
  286. package/dist/registries/content-types.mjs.map +1 -1
  287. package/dist/registries/controllers.js +70 -71
  288. package/dist/registries/controllers.js.map +1 -1
  289. package/dist/registries/controllers.mjs +69 -73
  290. package/dist/registries/controllers.mjs.map +1 -1
  291. package/dist/registries/custom-fields.js +75 -65
  292. package/dist/registries/custom-fields.js.map +1 -1
  293. package/dist/registries/custom-fields.mjs +74 -67
  294. package/dist/registries/custom-fields.mjs.map +1 -1
  295. package/dist/registries/hooks.js +46 -49
  296. package/dist/registries/hooks.js.map +1 -1
  297. package/dist/registries/hooks.mjs +45 -51
  298. package/dist/registries/hooks.mjs.map +1 -1
  299. package/dist/registries/middlewares.js +49 -51
  300. package/dist/registries/middlewares.js.map +1 -1
  301. package/dist/registries/middlewares.mjs +48 -53
  302. package/dist/registries/middlewares.mjs.map +1 -1
  303. package/dist/registries/models.js +14 -13
  304. package/dist/registries/models.js.map +1 -1
  305. package/dist/registries/models.mjs +13 -14
  306. package/dist/registries/models.mjs.map +1 -1
  307. package/dist/registries/modules.js +39 -36
  308. package/dist/registries/modules.js.map +1 -1
  309. package/dist/registries/modules.mjs +38 -38
  310. package/dist/registries/modules.mjs.map +1 -1
  311. package/dist/registries/namespace.js +21 -20
  312. package/dist/registries/namespace.js.map +1 -1
  313. package/dist/registries/namespace.mjs +20 -23
  314. package/dist/registries/namespace.mjs.map +1 -1
  315. package/dist/registries/plugins.js +23 -20
  316. package/dist/registries/plugins.js.map +1 -1
  317. package/dist/registries/plugins.mjs +22 -22
  318. package/dist/registries/plugins.mjs.map +1 -1
  319. package/dist/registries/policies.js +103 -96
  320. package/dist/registries/policies.js.map +1 -1
  321. package/dist/registries/policies.mjs +102 -98
  322. package/dist/registries/policies.mjs.map +1 -1
  323. package/dist/registries/sanitizers.js +23 -22
  324. package/dist/registries/sanitizers.js.map +1 -1
  325. package/dist/registries/sanitizers.mjs +22 -22
  326. package/dist/registries/sanitizers.mjs.map +1 -1
  327. package/dist/registries/services.js +71 -71
  328. package/dist/registries/services.js.map +1 -1
  329. package/dist/registries/services.mjs +70 -73
  330. package/dist/registries/services.mjs.map +1 -1
  331. package/dist/registries/validators.js +23 -22
  332. package/dist/registries/validators.js.map +1 -1
  333. package/dist/registries/validators.mjs +22 -22
  334. package/dist/registries/validators.mjs.map +1 -1
  335. package/dist/services/auth/index.js +74 -74
  336. package/dist/services/auth/index.js.map +1 -1
  337. package/dist/services/auth/index.mjs +73 -74
  338. package/dist/services/auth/index.mjs.map +1 -1
  339. package/dist/services/config.js +47 -43
  340. package/dist/services/config.js.map +1 -1
  341. package/dist/services/config.mjs +46 -44
  342. package/dist/services/config.mjs.map +1 -1
  343. package/dist/services/content-api/index.js +80 -79
  344. package/dist/services/content-api/index.js.map +1 -1
  345. package/dist/services/content-api/index.mjs +79 -79
  346. package/dist/services/content-api/index.mjs.map +1 -1
  347. package/dist/services/content-api/permissions/engine.js +8 -5
  348. package/dist/services/content-api/permissions/engine.js.map +1 -1
  349. package/dist/services/content-api/permissions/engine.mjs +7 -5
  350. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  351. package/dist/services/content-api/permissions/index.js +101 -81
  352. package/dist/services/content-api/permissions/index.js.map +1 -1
  353. package/dist/services/content-api/permissions/index.mjs +100 -81
  354. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  355. package/dist/services/content-api/permissions/providers/action.js +17 -14
  356. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  357. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  358. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  359. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  360. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  361. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  362. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  363. package/dist/services/core-store.d.ts +2 -2
  364. package/dist/services/core-store.d.ts.map +1 -1
  365. package/dist/services/core-store.js +115 -95
  366. package/dist/services/core-store.js.map +1 -1
  367. package/dist/services/core-store.mjs +114 -97
  368. package/dist/services/core-store.mjs.map +1 -1
  369. package/dist/services/cron.js +74 -64
  370. package/dist/services/cron.js.map +1 -1
  371. package/dist/services/cron.mjs +73 -66
  372. package/dist/services/cron.mjs.map +1 -1
  373. package/dist/services/custom-fields.js +9 -7
  374. package/dist/services/custom-fields.js.map +1 -1
  375. package/dist/services/custom-fields.mjs +8 -9
  376. package/dist/services/custom-fields.mjs.map +1 -1
  377. package/dist/services/document-service/attributes/index.js +23 -18
  378. package/dist/services/document-service/attributes/index.js.map +1 -1
  379. package/dist/services/document-service/attributes/index.mjs +22 -19
  380. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  381. package/dist/services/document-service/attributes/transforms.js +16 -15
  382. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  383. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  384. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  385. package/dist/services/document-service/common.js +5 -4
  386. package/dist/services/document-service/common.js.map +1 -1
  387. package/dist/services/document-service/common.mjs +4 -5
  388. package/dist/services/document-service/common.mjs.map +1 -1
  389. package/dist/services/document-service/components.d.ts.map +1 -1
  390. package/dist/services/document-service/components.js +255 -257
  391. package/dist/services/document-service/components.js.map +1 -1
  392. package/dist/services/document-service/components.mjs +254 -262
  393. package/dist/services/document-service/components.mjs.map +1 -1
  394. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  395. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  396. package/dist/services/document-service/draft-and-publish.js +88 -48
  397. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  398. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  399. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  400. package/dist/services/document-service/entries.d.ts.map +1 -1
  401. package/dist/services/document-service/entries.js +151 -91
  402. package/dist/services/document-service/entries.js.map +1 -1
  403. package/dist/services/document-service/entries.mjs +150 -92
  404. package/dist/services/document-service/entries.mjs.map +1 -1
  405. package/dist/services/document-service/events.d.ts +1 -1
  406. package/dist/services/document-service/events.d.ts.map +1 -1
  407. package/dist/services/document-service/events.js +52 -40
  408. package/dist/services/document-service/events.js.map +1 -1
  409. package/dist/services/document-service/events.mjs +51 -41
  410. package/dist/services/document-service/events.mjs.map +1 -1
  411. package/dist/services/document-service/index.js +53 -33
  412. package/dist/services/document-service/index.js.map +1 -1
  413. package/dist/services/document-service/index.mjs +52 -34
  414. package/dist/services/document-service/index.mjs.map +1 -1
  415. package/dist/services/document-service/internationalization.d.ts +6 -1
  416. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  417. package/dist/services/document-service/internationalization.js +94 -46
  418. package/dist/services/document-service/internationalization.js.map +1 -1
  419. package/dist/services/document-service/internationalization.mjs +92 -50
  420. package/dist/services/document-service/internationalization.mjs.map +1 -1
  421. package/dist/services/document-service/middlewares/errors.js +23 -19
  422. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  423. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  424. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  425. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  426. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  427. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  428. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  429. package/dist/services/document-service/params.js +11 -5
  430. package/dist/services/document-service/params.js.map +1 -1
  431. package/dist/services/document-service/params.mjs +10 -6
  432. package/dist/services/document-service/params.mjs.map +1 -1
  433. package/dist/services/document-service/repository.d.ts.map +1 -1
  434. package/dist/services/document-service/repository.js +354 -321
  435. package/dist/services/document-service/repository.js.map +1 -1
  436. package/dist/services/document-service/repository.mjs +353 -322
  437. package/dist/services/document-service/repository.mjs.map +1 -1
  438. package/dist/services/document-service/transform/data.js +22 -12
  439. package/dist/services/document-service/transform/data.js.map +1 -1
  440. package/dist/services/document-service/transform/data.mjs +21 -13
  441. package/dist/services/document-service/transform/data.mjs.map +1 -1
  442. package/dist/services/document-service/transform/fields.js +26 -17
  443. package/dist/services/document-service/transform/fields.js.map +1 -1
  444. package/dist/services/document-service/transform/fields.mjs +25 -18
  445. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  446. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  447. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  448. package/dist/services/document-service/transform/id-map.js +115 -75
  449. package/dist/services/document-service/transform/id-map.js.map +1 -1
  450. package/dist/services/document-service/transform/id-map.mjs +114 -76
  451. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  452. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  453. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  454. package/dist/services/document-service/transform/id-transform.js +37 -29
  455. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  456. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  457. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  458. package/dist/services/document-service/transform/populate.js +23 -18
  459. package/dist/services/document-service/transform/populate.js.map +1 -1
  460. package/dist/services/document-service/transform/populate.mjs +22 -19
  461. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  462. package/dist/services/document-service/transform/query.js +11 -6
  463. package/dist/services/document-service/transform/query.js.map +1 -1
  464. package/dist/services/document-service/transform/query.mjs +10 -7
  465. package/dist/services/document-service/transform/query.mjs.map +1 -1
  466. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  467. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  468. package/dist/services/document-service/transform/relations/extract/data-ids.js +70 -54
  469. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  470. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +69 -55
  471. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  472. package/dist/services/document-service/transform/relations/transform/data-ids.js +96 -71
  473. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  474. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +95 -72
  475. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  476. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  477. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  478. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  479. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  480. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  481. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  482. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  483. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  484. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  485. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  486. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  487. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  488. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  489. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  490. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  491. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  492. package/dist/services/document-service/transform/relations/utils/map-relation.js +116 -70
  493. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  494. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -72
  495. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  496. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  497. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  498. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  499. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  500. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  501. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  502. package/dist/services/document-service/utils/populate.d.ts +1 -1
  503. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  504. package/dist/services/document-service/utils/populate.js +66 -42
  505. package/dist/services/document-service/utils/populate.js.map +1 -1
  506. package/dist/services/document-service/utils/populate.mjs +65 -43
  507. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  508. package/dist/services/document-service/utils/unidirectional-relations.d.ts +1 -1
  509. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  510. package/dist/services/document-service/utils/unidirectional-relations.js +110 -62
  511. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
  512. package/dist/services/document-service/utils/unidirectional-relations.mjs +109 -64
  513. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
  514. package/dist/services/entity-service/index.js +230 -161
  515. package/dist/services/entity-service/index.js.map +1 -1
  516. package/dist/services/entity-service/index.mjs +229 -160
  517. package/dist/services/entity-service/index.mjs.map +1 -1
  518. package/dist/services/entity-validator/blocks-validator.js +135 -103
  519. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  520. package/dist/services/entity-validator/blocks-validator.mjs +134 -104
  521. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  522. package/dist/services/entity-validator/index.d.ts +1 -1
  523. package/dist/services/entity-validator/index.d.ts.map +1 -1
  524. package/dist/services/entity-validator/index.js +370 -366
  525. package/dist/services/entity-validator/index.js.map +1 -1
  526. package/dist/services/entity-validator/index.mjs +366 -363
  527. package/dist/services/entity-validator/index.mjs.map +1 -1
  528. package/dist/services/entity-validator/validators.d.ts +1 -0
  529. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  530. package/dist/services/entity-validator/validators.js +270 -209
  531. package/dist/services/entity-validator/validators.js.map +1 -1
  532. package/dist/services/entity-validator/validators.mjs +269 -215
  533. package/dist/services/entity-validator/validators.mjs.map +1 -1
  534. package/dist/services/errors.js +65 -65
  535. package/dist/services/errors.js.map +1 -1
  536. package/dist/services/errors.mjs +64 -66
  537. package/dist/services/errors.mjs.map +1 -1
  538. package/dist/services/event-hub.js +82 -69
  539. package/dist/services/event-hub.js.map +1 -1
  540. package/dist/services/event-hub.mjs +81 -71
  541. package/dist/services/event-hub.mjs.map +1 -1
  542. package/dist/services/features.js +19 -14
  543. package/dist/services/features.js.map +1 -1
  544. package/dist/services/features.mjs +18 -15
  545. package/dist/services/features.mjs.map +1 -1
  546. package/dist/services/fs.js +41 -40
  547. package/dist/services/fs.js.map +1 -1
  548. package/dist/services/fs.mjs +40 -39
  549. package/dist/services/fs.mjs.map +1 -1
  550. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  551. package/dist/services/metrics/admin-user-hash.js +13 -11
  552. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  553. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  554. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  555. package/dist/services/metrics/index.js +46 -39
  556. package/dist/services/metrics/index.js.map +1 -1
  557. package/dist/services/metrics/index.mjs +45 -41
  558. package/dist/services/metrics/index.mjs.map +1 -1
  559. package/dist/services/metrics/is-truthy.js +13 -6
  560. package/dist/services/metrics/is-truthy.js.map +1 -1
  561. package/dist/services/metrics/is-truthy.mjs +12 -6
  562. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  563. package/dist/services/metrics/middleware.d.ts.map +1 -1
  564. package/dist/services/metrics/middleware.js +37 -22
  565. package/dist/services/metrics/middleware.js.map +1 -1
  566. package/dist/services/metrics/middleware.mjs +36 -24
  567. package/dist/services/metrics/middleware.mjs.map +1 -1
  568. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  569. package/dist/services/metrics/rate-limiter.js +24 -19
  570. package/dist/services/metrics/rate-limiter.js.map +1 -1
  571. package/dist/services/metrics/rate-limiter.mjs +23 -21
  572. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  573. package/dist/services/metrics/sender.d.ts.map +1 -1
  574. package/dist/services/metrics/sender.js +78 -69
  575. package/dist/services/metrics/sender.js.map +1 -1
  576. package/dist/services/metrics/sender.mjs +77 -64
  577. package/dist/services/metrics/sender.mjs.map +1 -1
  578. package/dist/services/query-params.js +13 -10
  579. package/dist/services/query-params.js.map +1 -1
  580. package/dist/services/query-params.mjs +12 -12
  581. package/dist/services/query-params.mjs.map +1 -1
  582. package/dist/services/reloader.js +35 -32
  583. package/dist/services/reloader.js.map +1 -1
  584. package/dist/services/reloader.mjs +34 -33
  585. package/dist/services/reloader.mjs.map +1 -1
  586. package/dist/services/request-context.js +11 -8
  587. package/dist/services/request-context.js.map +1 -1
  588. package/dist/services/request-context.mjs +10 -10
  589. package/dist/services/request-context.mjs.map +1 -1
  590. package/dist/services/server/admin-api.js +11 -10
  591. package/dist/services/server/admin-api.js.map +1 -1
  592. package/dist/services/server/admin-api.mjs +10 -11
  593. package/dist/services/server/admin-api.mjs.map +1 -1
  594. package/dist/services/server/api.js +33 -27
  595. package/dist/services/server/api.js.map +1 -1
  596. package/dist/services/server/api.mjs +32 -26
  597. package/dist/services/server/api.mjs.map +1 -1
  598. package/dist/services/server/compose-endpoint.js +116 -105
  599. package/dist/services/server/compose-endpoint.js.map +1 -1
  600. package/dist/services/server/compose-endpoint.mjs +115 -105
  601. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  602. package/dist/services/server/content-api.js +11 -9
  603. package/dist/services/server/content-api.js.map +1 -1
  604. package/dist/services/server/content-api.mjs +10 -10
  605. package/dist/services/server/content-api.mjs.map +1 -1
  606. package/dist/services/server/http-server.js +48 -44
  607. package/dist/services/server/http-server.js.map +1 -1
  608. package/dist/services/server/http-server.mjs +47 -43
  609. package/dist/services/server/http-server.mjs.map +1 -1
  610. package/dist/services/server/index.js +85 -82
  611. package/dist/services/server/index.js.map +1 -1
  612. package/dist/services/server/index.mjs +84 -81
  613. package/dist/services/server/index.mjs.map +1 -1
  614. package/dist/services/server/koa.js +49 -47
  615. package/dist/services/server/koa.js.map +1 -1
  616. package/dist/services/server/koa.mjs +48 -44
  617. package/dist/services/server/koa.mjs.map +1 -1
  618. package/dist/services/server/middleware.js +86 -82
  619. package/dist/services/server/middleware.js.map +1 -1
  620. package/dist/services/server/middleware.mjs +85 -82
  621. package/dist/services/server/middleware.mjs.map +1 -1
  622. package/dist/services/server/policy.js +24 -17
  623. package/dist/services/server/policy.js.map +1 -1
  624. package/dist/services/server/policy.mjs +23 -18
  625. package/dist/services/server/policy.mjs.map +1 -1
  626. package/dist/services/server/register-middlewares.js +68 -61
  627. package/dist/services/server/register-middlewares.js.map +1 -1
  628. package/dist/services/server/register-middlewares.mjs +67 -63
  629. package/dist/services/server/register-middlewares.mjs.map +1 -1
  630. package/dist/services/server/register-routes.js +90 -67
  631. package/dist/services/server/register-routes.js.map +1 -1
  632. package/dist/services/server/register-routes.mjs +89 -67
  633. package/dist/services/server/register-routes.mjs.map +1 -1
  634. package/dist/services/server/routing.js +94 -81
  635. package/dist/services/server/routing.js.map +1 -1
  636. package/dist/services/server/routing.mjs +93 -81
  637. package/dist/services/server/routing.mjs.map +1 -1
  638. package/dist/services/utils/conditional-fields.d.ts +3 -0
  639. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  640. package/dist/services/utils/conditional-fields.js +22 -0
  641. package/dist/services/utils/conditional-fields.js.map +1 -0
  642. package/dist/services/utils/conditional-fields.mjs +20 -0
  643. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  644. package/dist/services/utils/dynamic-zones.js +13 -14
  645. package/dist/services/utils/dynamic-zones.js.map +1 -1
  646. package/dist/services/utils/dynamic-zones.mjs +12 -16
  647. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  648. package/dist/services/webhook-runner.js +124 -122
  649. package/dist/services/webhook-runner.js.map +1 -1
  650. package/dist/services/webhook-runner.mjs +123 -121
  651. package/dist/services/webhook-runner.mjs.map +1 -1
  652. package/dist/services/webhook-store.js +132 -99
  653. package/dist/services/webhook-store.js.map +1 -1
  654. package/dist/services/webhook-store.mjs +131 -101
  655. package/dist/services/webhook-store.mjs.map +1 -1
  656. package/dist/services/worker-queue.js +44 -49
  657. package/dist/services/worker-queue.js.map +1 -1
  658. package/dist/services/worker-queue.mjs +43 -49
  659. package/dist/services/worker-queue.mjs.map +1 -1
  660. package/dist/utils/convert-custom-field-type.js +17 -20
  661. package/dist/utils/convert-custom-field-type.js.map +1 -1
  662. package/dist/utils/convert-custom-field-type.mjs +16 -21
  663. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  664. package/dist/utils/cron.js +64 -30
  665. package/dist/utils/cron.js.map +1 -1
  666. package/dist/utils/cron.mjs +63 -31
  667. package/dist/utils/cron.mjs.map +1 -1
  668. package/dist/utils/fetch.d.ts +5 -1
  669. package/dist/utils/fetch.d.ts.map +1 -1
  670. package/dist/utils/fetch.js +28 -18
  671. package/dist/utils/fetch.js.map +1 -1
  672. package/dist/utils/fetch.mjs +27 -19
  673. package/dist/utils/fetch.mjs.map +1 -1
  674. package/dist/utils/filepath-to-prop-path.js +20 -28
  675. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  676. package/dist/utils/filepath-to-prop-path.mjs +19 -26
  677. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  678. package/dist/utils/is-initialized.js +21 -12
  679. package/dist/utils/is-initialized.js.map +1 -1
  680. package/dist/utils/is-initialized.mjs +20 -13
  681. package/dist/utils/is-initialized.mjs.map +1 -1
  682. package/dist/utils/lifecycles.js +6 -5
  683. package/dist/utils/lifecycles.js.map +1 -1
  684. package/dist/utils/lifecycles.mjs +5 -6
  685. package/dist/utils/lifecycles.mjs.map +1 -1
  686. package/dist/utils/load-config-file.js +40 -38
  687. package/dist/utils/load-config-file.js.map +1 -1
  688. package/dist/utils/load-config-file.mjs +39 -36
  689. package/dist/utils/load-config-file.mjs.map +1 -1
  690. package/dist/utils/load-files.js +40 -34
  691. package/dist/utils/load-files.js.map +1 -1
  692. package/dist/utils/load-files.mjs +39 -31
  693. package/dist/utils/load-files.mjs.map +1 -1
  694. package/dist/utils/open-browser.js +8 -8
  695. package/dist/utils/open-browser.js.map +1 -1
  696. package/dist/utils/open-browser.mjs +7 -7
  697. package/dist/utils/open-browser.mjs.map +1 -1
  698. package/dist/utils/resolve-working-dirs.js +23 -10
  699. package/dist/utils/resolve-working-dirs.js.map +1 -1
  700. package/dist/utils/resolve-working-dirs.mjs +22 -9
  701. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  702. package/dist/utils/signals.js +20 -14
  703. package/dist/utils/signals.js.map +1 -1
  704. package/dist/utils/signals.mjs +19 -15
  705. package/dist/utils/signals.mjs.map +1 -1
  706. package/dist/utils/startup-logger.js +107 -83
  707. package/dist/utils/startup-logger.js.map +1 -1
  708. package/dist/utils/startup-logger.mjs +106 -80
  709. package/dist/utils/startup-logger.mjs.map +1 -1
  710. package/dist/utils/transform-content-types-to-models.d.ts +197 -0
  711. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  712. package/dist/utils/transform-content-types-to-models.js +350 -261
  713. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  714. package/dist/utils/transform-content-types-to-models.mjs +349 -269
  715. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  716. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  717. package/dist/utils/update-notifier/index.js +68 -73
  718. package/dist/utils/update-notifier/index.js.map +1 -1
  719. package/dist/utils/update-notifier/index.mjs +67 -67
  720. package/dist/utils/update-notifier/index.mjs.map +1 -1
  721. package/package.json +27 -26
package/dist/Strapi.mjs CHANGED
@@ -1,416 +1,436 @@
1
- import * as globalAgent from "global-agent";
2
- import path from "path";
3
- import _ from "lodash";
4
- import { isFunction } from "lodash/fp";
5
- import { createLogger } from "@strapi/logger";
6
- import { Database } from "@strapi/database";
7
- import tsUtils from "@strapi/typescript-utils";
8
- import { loadConfiguration } from "./configuration/index.mjs";
9
- import { isCustomController } from "./factories.mjs";
10
- import { openBrowser } from "./utils/open-browser.mjs";
11
- import { isInitialized } from "./utils/is-initialized.mjs";
12
- import index from "./ee/index.mjs";
13
- import "./utils/update-notifier/index.mjs";
14
- import { createStrapiFetch } from "./utils/fetch.mjs";
15
- import { convertCustomFieldType } from "./utils/convert-custom-field-type.mjs";
16
- import { createStartupLogger } from "./utils/startup-logger.mjs";
17
- import { transformContentTypesToModels } from "./utils/transform-content-types-to-models.mjs";
18
- import { LIFECYCLES } from "./utils/lifecycles.mjs";
19
- import "node:path";
20
- import { Container } from "./container.mjs";
21
- import createStrapiFs from "./services/fs.mjs";
22
- import createEventHub from "./services/event-hub.mjs";
23
- import { createServer } from "./services/server/index.mjs";
24
- import { createReloader } from "./services/reloader.mjs";
25
- import { providers } from "./providers/index.mjs";
26
- import createEntityService from "./services/entity-service/index.mjs";
27
- import createQueryParamService from "./services/query-params.mjs";
28
- import entityValidator from "./services/entity-validator/index.mjs";
29
- import requestCtx from "./services/request-context.mjs";
30
- import createAuthentication from "./services/auth/index.mjs";
31
- import createCustomFields from "./services/custom-fields.mjs";
32
- import createContentAPI from "./services/content-api/index.mjs";
33
- import getNumberOfDynamicZones from "./services/utils/dynamic-zones.mjs";
34
- import { createFeaturesService } from "./services/features.mjs";
35
- import { createDocumentService } from "./services/document-service/index.mjs";
36
- import { coreStoreModel } from "./services/core-store.mjs";
37
- import { createConfigProvider } from "./services/config.mjs";
1
+ import * as globalAgent from 'global-agent';
2
+ import path from 'path';
3
+ import _ from 'lodash';
4
+ import { isFunction } from 'lodash/fp';
5
+ import { createLogger } from '@strapi/logger';
6
+ import { Database } from '@strapi/database';
7
+ import tsUtils from '@strapi/typescript-utils';
8
+ import { loadConfiguration } from './configuration/index.mjs';
9
+ import { isCustomController } from './factories.mjs';
10
+ import { openBrowser } from './utils/open-browser.mjs';
11
+ import { isInitialized } from './utils/is-initialized.mjs';
12
+ import index from './ee/index.mjs';
13
+ import 'package-json';
14
+ import 'configstore';
15
+ import 'semver';
16
+ import 'boxen';
17
+ import 'chalk';
18
+ import '@strapi/utils';
19
+ import { createStrapiFetch } from './utils/fetch.mjs';
20
+ import { convertCustomFieldType } from './utils/convert-custom-field-type.mjs';
21
+ import { createStartupLogger } from './utils/startup-logger.mjs';
22
+ import { transformContentTypesToModels } from './utils/transform-content-types-to-models.mjs';
23
+ import { LIFECYCLES } from './utils/lifecycles.mjs';
24
+ import 'node:path';
25
+ import { Container } from './container.mjs';
26
+ import createStrapiFs from './services/fs.mjs';
27
+ import createEventHub from './services/event-hub.mjs';
28
+ import { createServer } from './services/server/index.mjs';
29
+ import { createReloader } from './services/reloader.mjs';
30
+ import { providers } from './providers/index.mjs';
31
+ import createEntityService from './services/entity-service/index.mjs';
32
+ import createQueryParamService from './services/query-params.mjs';
33
+ import entityValidator from './services/entity-validator/index.mjs';
34
+ import requestCtx from './services/request-context.mjs';
35
+ import createAuthentication from './services/auth/index.mjs';
36
+ import createCustomFields from './services/custom-fields.mjs';
37
+ import createContentAPI from './services/content-api/index.mjs';
38
+ import getNumberOfDynamicZones from './services/utils/dynamic-zones.mjs';
39
+ import getNumberOfConditionalFields from './services/utils/conditional-fields.mjs';
40
+ import { createFeaturesService } from './services/features.mjs';
41
+ import { createDocumentService } from './services/document-service/index.mjs';
42
+ import { coreStoreModel } from './services/core-store.mjs';
43
+ import { createConfigProvider } from './services/config.mjs';
44
+
38
45
  class Strapi extends Container {
39
- app;
40
- isLoaded = false;
41
- internal_config = {};
42
- constructor(opts) {
43
- super();
44
- this.internal_config = loadConfiguration(opts);
45
- this.registerInternalServices();
46
- for (const provider of providers) {
47
- provider.init?.(this);
48
- }
49
- }
50
- get admin() {
51
- return this.get("admin");
52
- }
53
- get EE() {
54
- return index.isEE;
55
- }
56
- get ee() {
57
- return index;
58
- }
59
- get dirs() {
60
- return this.config.get("dirs");
61
- }
62
- get reload() {
63
- return this.get("reload");
64
- }
65
- get db() {
66
- return this.get("db");
67
- }
68
- get requestContext() {
69
- return this.get("requestContext");
70
- }
71
- get customFields() {
72
- return this.get("customFields");
73
- }
74
- get entityValidator() {
75
- return this.get("entityValidator");
76
- }
77
- /**
46
+ get admin() {
47
+ return this.get('admin');
48
+ }
49
+ get EE() {
50
+ return index.isEE;
51
+ }
52
+ get ee() {
53
+ return index;
54
+ }
55
+ get dirs() {
56
+ return this.config.get('dirs');
57
+ }
58
+ get reload() {
59
+ return this.get('reload');
60
+ }
61
+ get db() {
62
+ return this.get('db');
63
+ }
64
+ get requestContext() {
65
+ return this.get('requestContext');
66
+ }
67
+ get customFields() {
68
+ return this.get('customFields');
69
+ }
70
+ get entityValidator() {
71
+ return this.get('entityValidator');
72
+ }
73
+ /**
78
74
  * @deprecated `strapi.entityService` will be removed in the next major version
79
- */
80
- get entityService() {
81
- return this.get("entityService");
82
- }
83
- get documents() {
84
- return this.get("documents");
85
- }
86
- get features() {
87
- return this.get("features");
88
- }
89
- get fetch() {
90
- return this.get("fetch");
91
- }
92
- get cron() {
93
- return this.get("cron");
94
- }
95
- get log() {
96
- return this.get("logger");
97
- }
98
- get startupLogger() {
99
- return this.get("startupLogger");
100
- }
101
- get eventHub() {
102
- return this.get("eventHub");
103
- }
104
- get fs() {
105
- return this.get("fs");
106
- }
107
- get server() {
108
- return this.get("server");
109
- }
110
- get telemetry() {
111
- return this.get("telemetry");
112
- }
113
- get store() {
114
- return this.get("coreStore");
115
- }
116
- get config() {
117
- return this.get("config");
118
- }
119
- get services() {
120
- return this.get("services").getAll();
121
- }
122
- service(uid) {
123
- return this.get("services").get(uid);
124
- }
125
- get controllers() {
126
- return this.get("controllers").getAll();
127
- }
128
- controller(uid) {
129
- return this.get("controllers").get(uid);
130
- }
131
- get contentTypes() {
132
- return this.get("content-types").getAll();
133
- }
134
- contentType(name) {
135
- return this.get("content-types").get(name);
136
- }
137
- get components() {
138
- return this.get("components").getAll();
139
- }
140
- get policies() {
141
- return this.get("policies").getAll();
142
- }
143
- policy(name) {
144
- return this.get("policies").get(name);
145
- }
146
- get middlewares() {
147
- return this.get("middlewares").getAll();
148
- }
149
- middleware(name) {
150
- return this.get("middlewares").get(name);
151
- }
152
- get plugins() {
153
- return this.get("plugins").getAll();
154
- }
155
- plugin(name) {
156
- return this.get("plugins").get(name);
157
- }
158
- get hooks() {
159
- return this.get("hooks").getAll();
160
- }
161
- hook(name) {
162
- return this.get("hooks").get(name);
163
- }
164
- get apis() {
165
- return this.get("apis").getAll();
166
- }
167
- api(name) {
168
- return this.get("apis").get(name);
169
- }
170
- get auth() {
171
- return this.get("auth");
172
- }
173
- get contentAPI() {
174
- return this.get("content-api");
175
- }
176
- get sanitizers() {
177
- return this.get("sanitizers");
178
- }
179
- get validators() {
180
- return this.get("validators");
181
- }
182
- async start() {
183
- try {
184
- if (!this.isLoaded) {
185
- await this.load();
186
- }
187
- await this.listen();
188
- return this;
189
- } catch (error) {
190
- return this.stopWithError(error);
191
- }
192
- }
193
- // TODO: split into more providers
194
- registerInternalServices() {
195
- const config = createConfigProvider(this.internal_config, this);
196
- const logger = createLogger({
197
- level: "http",
198
- // Strapi defaults to level 'http'
199
- ...config.get("logger"),
200
- // DEPRECATED
201
- ...config.get("server.logger.config")
202
- });
203
- this.add("config", () => config).add("query-params", createQueryParamService(this)).add("content-api", createContentAPI(this)).add("auth", createAuthentication()).add("server", () => createServer(this)).add("fs", () => createStrapiFs(this)).add("eventHub", () => createEventHub()).add("startupLogger", () => createStartupLogger(this)).add("logger", () => logger).add("fetch", () => createStrapiFetch(this)).add("features", () => createFeaturesService(this)).add("requestContext", requestCtx).add("customFields", createCustomFields(this)).add("entityValidator", entityValidator).add("entityService", () => createEntityService({ strapi: this, db: this.db })).add("documents", () => createDocumentService(this)).add("db", () => {
204
- const tsDir = tsUtils.resolveOutDirSync(this.dirs.app.root);
205
- const tsMigrationsEnabled = this.config.get("database.settings.useTypescriptMigrations") === true && tsDir;
206
- const projectDir = tsMigrationsEnabled ? tsDir : this.dirs.app.root;
207
- return new Database(
208
- _.merge(this.config.get("database"), {
209
- logger,
210
- settings: {
211
- migrations: {
212
- dir: path.join(projectDir, "database/migrations")
213
- }
214
- }
215
- })
216
- );
217
- }).add("reload", () => createReloader(this));
218
- }
219
- sendStartupTelemetry() {
220
- this.telemetry.send("didStartServer", {
221
- groupProperties: {
222
- database: this.config.get("database.connection.client"),
223
- plugins: Object.keys(this.plugins),
224
- numberOfAllContentTypes: _.size(this.contentTypes),
225
- // TODO: V5: This event should be renamed numberOfContentTypes in V5 as the name is already taken to describe the number of content types using i18n.
226
- numberOfComponents: _.size(this.components),
227
- numberOfDynamicZones: getNumberOfDynamicZones(),
228
- numberOfCustomControllers: Object.values(this.controllers).filter(
229
- // TODO: Fix this at the content API loader level to prevent future types issues
230
- (controller) => controller !== void 0 && isCustomController(controller)
231
- ).length,
232
- environment: this.config.environment
233
- // TODO: to add back
234
- // providers: this.config.installedProviders,
235
- }
236
- }).catch(this.log.error);
237
- }
238
- async openAdmin({ isInitialized: isInitialized2 }) {
239
- const shouldOpenAdmin = this.config.get("environment") === "development" && this.config.get("admin.autoOpen", true) !== false;
240
- if (shouldOpenAdmin && !isInitialized2) {
241
- try {
242
- await openBrowser(this.config);
243
- this.telemetry.send("didOpenTab");
244
- } catch (e) {
245
- this.telemetry.send("didNotOpenTab");
246
- }
247
- }
248
- }
249
- async postListen() {
250
- const isInitialized$1 = await isInitialized(this);
251
- this.startupLogger.logStartupMessage({ isInitialized: isInitialized$1 });
252
- this.log.info("Strapi started successfully");
253
- this.sendStartupTelemetry();
254
- this.openAdmin({ isInitialized: isInitialized$1 });
255
- }
256
- /**
257
- * Add behaviors to the server
258
- */
259
- async listen() {
260
- return new Promise((resolve, reject) => {
261
- const onListen = async () => {
75
+ */ get entityService() {
76
+ return this.get('entityService');
77
+ }
78
+ get documents() {
79
+ return this.get('documents');
80
+ }
81
+ get features() {
82
+ return this.get('features');
83
+ }
84
+ get fetch() {
85
+ return this.get('fetch');
86
+ }
87
+ get cron() {
88
+ return this.get('cron');
89
+ }
90
+ get log() {
91
+ return this.get('logger');
92
+ }
93
+ get startupLogger() {
94
+ return this.get('startupLogger');
95
+ }
96
+ get eventHub() {
97
+ return this.get('eventHub');
98
+ }
99
+ get fs() {
100
+ return this.get('fs');
101
+ }
102
+ get server() {
103
+ return this.get('server');
104
+ }
105
+ get telemetry() {
106
+ return this.get('telemetry');
107
+ }
108
+ get store() {
109
+ return this.get('coreStore');
110
+ }
111
+ get config() {
112
+ return this.get('config');
113
+ }
114
+ get services() {
115
+ return this.get('services').getAll();
116
+ }
117
+ service(uid) {
118
+ return this.get('services').get(uid);
119
+ }
120
+ get controllers() {
121
+ return this.get('controllers').getAll();
122
+ }
123
+ controller(uid) {
124
+ return this.get('controllers').get(uid);
125
+ }
126
+ get contentTypes() {
127
+ return this.get('content-types').getAll();
128
+ }
129
+ contentType(name) {
130
+ return this.get('content-types').get(name);
131
+ }
132
+ get components() {
133
+ return this.get('components').getAll();
134
+ }
135
+ get policies() {
136
+ return this.get('policies').getAll();
137
+ }
138
+ policy(name) {
139
+ return this.get('policies').get(name);
140
+ }
141
+ get middlewares() {
142
+ return this.get('middlewares').getAll();
143
+ }
144
+ middleware(name) {
145
+ return this.get('middlewares').get(name);
146
+ }
147
+ get plugins() {
148
+ return this.get('plugins').getAll();
149
+ }
150
+ plugin(name) {
151
+ return this.get('plugins').get(name);
152
+ }
153
+ get hooks() {
154
+ return this.get('hooks').getAll();
155
+ }
156
+ hook(name) {
157
+ return this.get('hooks').get(name);
158
+ }
159
+ get apis() {
160
+ return this.get('apis').getAll();
161
+ }
162
+ api(name) {
163
+ return this.get('apis').get(name);
164
+ }
165
+ get auth() {
166
+ return this.get('auth');
167
+ }
168
+ get contentAPI() {
169
+ return this.get('content-api');
170
+ }
171
+ get sanitizers() {
172
+ return this.get('sanitizers');
173
+ }
174
+ get validators() {
175
+ return this.get('validators');
176
+ }
177
+ async start() {
262
178
  try {
263
- await this.postListen();
264
- resolve();
179
+ if (!this.isLoaded) {
180
+ await this.load();
181
+ }
182
+ await this.listen();
183
+ return this;
265
184
  } catch (error) {
266
- reject(error);
185
+ return this.stopWithError(error);
186
+ }
187
+ }
188
+ // TODO: split into more providers
189
+ registerInternalServices() {
190
+ const config = createConfigProvider(this.internal_config, this);
191
+ const logger = createLogger({
192
+ level: 'http',
193
+ ...config.get('logger'),
194
+ ...config.get('server.logger.config')
195
+ });
196
+ // Instantiate the Strapi container
197
+ this.add('config', ()=>config).add('query-params', createQueryParamService(this)).add('content-api', createContentAPI(this)).add('auth', createAuthentication()).add('server', ()=>createServer(this)).add('fs', ()=>createStrapiFs(this)).add('eventHub', ()=>createEventHub()).add('startupLogger', ()=>createStartupLogger(this)).add('logger', ()=>logger).add('fetch', ()=>createStrapiFetch(this)).add('features', ()=>createFeaturesService(this)).add('requestContext', requestCtx).add('customFields', createCustomFields(this)).add('entityValidator', entityValidator).add('entityService', ()=>createEntityService({
198
+ strapi: this,
199
+ db: this.db
200
+ })).add('documents', ()=>createDocumentService(this)).add('db', ()=>{
201
+ const tsDir = tsUtils.resolveOutDirSync(this.dirs.app.root);
202
+ const tsMigrationsEnabled = this.config.get('database.settings.useTypescriptMigrations') === true && tsDir;
203
+ const projectDir = tsMigrationsEnabled ? tsDir : this.dirs.app.root;
204
+ return new Database(_.merge(this.config.get('database'), {
205
+ logger,
206
+ settings: {
207
+ migrations: {
208
+ dir: path.join(projectDir, 'database/migrations')
209
+ }
210
+ }
211
+ }));
212
+ }).add('reload', ()=>createReloader(this));
213
+ }
214
+ sendStartupTelemetry() {
215
+ // Emit started event.
216
+ // do not await to avoid slower startup
217
+ // This event is anonymous
218
+ this.telemetry.send('didStartServer', {
219
+ groupProperties: {
220
+ database: this.config.get('database.connection.client'),
221
+ plugins: Object.keys(this.plugins),
222
+ numberOfAllContentTypes: _.size(this.contentTypes),
223
+ numberOfComponents: _.size(this.components),
224
+ numberOfDynamicZones: getNumberOfDynamicZones(),
225
+ numberOfConditionalFields: getNumberOfConditionalFields(),
226
+ numberOfCustomControllers: Object.values(this.controllers).filter(// TODO: Fix this at the content API loader level to prevent future types issues
227
+ (controller)=>controller !== undefined && isCustomController(controller)).length,
228
+ environment: this.config.environment
229
+ }
230
+ }).catch(this.log.error);
231
+ }
232
+ async openAdmin({ isInitialized }) {
233
+ const shouldOpenAdmin = this.config.get('environment') === 'development' && this.config.get('admin.autoOpen', true) !== false;
234
+ if (shouldOpenAdmin && !isInitialized) {
235
+ try {
236
+ await openBrowser(this.config);
237
+ this.telemetry.send('didOpenTab');
238
+ } catch (e) {
239
+ this.telemetry.send('didNotOpenTab');
240
+ }
241
+ }
242
+ }
243
+ async postListen() {
244
+ const isInitialized$1 = await isInitialized(this);
245
+ this.startupLogger.logStartupMessage({
246
+ isInitialized: isInitialized$1
247
+ });
248
+ this.log.info('Strapi started successfully');
249
+ this.sendStartupTelemetry();
250
+ this.openAdmin({
251
+ isInitialized: isInitialized$1
252
+ });
253
+ }
254
+ /**
255
+ * Add behaviors to the server
256
+ */ async listen() {
257
+ return new Promise((resolve, reject)=>{
258
+ const onListen = async ()=>{
259
+ try {
260
+ await this.postListen();
261
+ resolve();
262
+ } catch (error) {
263
+ reject(error);
264
+ }
265
+ };
266
+ const listenSocket = this.config.get('server.socket');
267
+ if (listenSocket) {
268
+ this.server.listen(listenSocket, onListen);
269
+ } else {
270
+ const { host, port } = this.config.get('server');
271
+ this.server.listen(port, host, onListen);
272
+ }
273
+ });
274
+ }
275
+ stopWithError(err, customMessage) {
276
+ this.log.debug(`⛔️ Server wasn't able to start properly.`);
277
+ if (customMessage) {
278
+ this.log.error(customMessage);
279
+ }
280
+ this.log.error(err);
281
+ return this.stop();
282
+ }
283
+ stop(exitCode = 1) {
284
+ this.destroy();
285
+ if (this.config.get('autoReload')) {
286
+ process.send?.('stop');
287
+ }
288
+ // Kill process
289
+ process.exit(exitCode);
290
+ }
291
+ async load() {
292
+ await this.register();
293
+ await this.bootstrap();
294
+ this.isLoaded = true;
295
+ return this;
296
+ }
297
+ async register() {
298
+ // @ts-expect-error: init is internal
299
+ this.ee.init(this.dirs.app.root, this.log);
300
+ for (const provider of providers){
301
+ await provider.register?.(this);
267
302
  }
268
- };
269
- const listenSocket = this.config.get("server.socket");
270
- if (listenSocket) {
271
- this.server.listen(listenSocket, onListen);
272
- } else {
273
- const { host, port } = this.config.get("server");
274
- this.server.listen(port, host, onListen);
275
- }
276
- });
277
- }
278
- stopWithError(err, customMessage) {
279
- this.log.debug(`⛔️ Server wasn't able to start properly.`);
280
- if (customMessage) {
281
- this.log.error(customMessage);
282
- }
283
- this.log.error(err);
284
- return this.stop();
285
- }
286
- stop(exitCode = 1) {
287
- this.destroy();
288
- if (this.config.get("autoReload")) {
289
- process.send?.("stop");
290
- }
291
- process.exit(exitCode);
292
- }
293
- async load() {
294
- await this.register();
295
- await this.bootstrap();
296
- this.isLoaded = true;
297
- return this;
298
- }
299
- async register() {
300
- this.ee.init(this.dirs.app.root, this.log);
301
- for (const provider of providers) {
302
- await provider.register?.(this);
303
- }
304
- await this.runPluginsLifecycles(LIFECYCLES.REGISTER);
305
- await this.runUserLifecycles(LIFECYCLES.REGISTER);
306
- convertCustomFieldType(this);
307
- return this;
308
- }
309
- async bootstrap() {
310
- this.configureGlobalProxy();
311
- const models = [
312
- ...transformContentTypesToModels(
313
- [...Object.values(this.contentTypes), ...Object.values(this.components)],
314
- this.db.metadata.identifiers
315
- ),
316
- ...this.get("models").get()
317
- ];
318
- await this.db.init({ models });
319
- let oldContentTypes;
320
- if (await this.db.getSchemaConnection().hasTable(coreStoreModel.tableName)) {
321
- oldContentTypes = await this.store.get({
322
- type: "strapi",
323
- name: "content_types",
324
- key: "schema"
325
- });
326
- }
327
- await this.hook("strapi::content-types.beforeSync").call({
328
- oldContentTypes,
329
- contentTypes: this.contentTypes
330
- });
331
- const status = await this.db.schema.sync();
332
- if (status === "CHANGED") {
333
- await this.db.repair.removeOrphanMorphType({ pivot: "component_type" });
334
- }
335
- if (this.EE) {
336
- await index.checkLicense({ strapi: this });
337
- }
338
- await this.hook("strapi::content-types.afterSync").call({
339
- oldContentTypes,
340
- contentTypes: this.contentTypes
341
- });
342
- await this.store.set({
343
- type: "strapi",
344
- name: "content_types",
345
- key: "schema",
346
- value: this.contentTypes
347
- });
348
- await this.server.initMiddlewares();
349
- this.server.initRouting();
350
- await this.contentAPI.permissions.registerActions();
351
- await this.runPluginsLifecycles(LIFECYCLES.BOOTSTRAP);
352
- for (const provider of providers) {
353
- await provider.bootstrap?.(this);
354
- }
355
- await this.runUserLifecycles(LIFECYCLES.BOOTSTRAP);
356
- return this;
357
- }
358
- configureGlobalProxy() {
359
- const globalProxy = this.config.get("server.proxy.global");
360
- const httpProxy = this.config.get("server.proxy.http") || globalProxy;
361
- const httpsProxy = this.config.get("server.proxy.https") || globalProxy;
362
- if (!httpProxy && !httpsProxy) {
363
- return;
364
- }
365
- globalAgent.bootstrap();
366
- if (httpProxy) {
367
- this.log.info(`Using HTTP proxy: ${httpProxy}`);
368
- global.GLOBAL_AGENT.HTTP_PROXY = httpProxy;
369
- }
370
- if (httpsProxy) {
371
- this.log.info(`Using HTTPS proxy: ${httpsProxy}`);
372
- global.GLOBAL_AGENT.HTTPS_PROXY = httpsProxy;
373
- }
374
- }
375
- async destroy() {
376
- this.log.info("Shutting down Strapi");
377
- await this.runPluginsLifecycles(LIFECYCLES.DESTROY);
378
- for (const provider of providers) {
379
- await provider.destroy?.(this);
380
- }
381
- await this.runUserLifecycles(LIFECYCLES.DESTROY);
382
- await this.server.destroy();
383
- this.eventHub.destroy();
384
- await this.db?.destroy();
385
- process.removeAllListeners();
386
- delete global.strapi;
387
- this.log.info("Strapi has been shut down");
388
- }
389
- async runPluginsLifecycles(lifecycleName) {
390
- await this.get("modules")[lifecycleName]();
391
- }
392
- async runUserLifecycles(lifecycleName) {
393
- const userLifecycleFunction = this.app && this.app[lifecycleName];
394
- if (isFunction(userLifecycleFunction)) {
395
- await userLifecycleFunction({ strapi: this });
396
- }
397
- }
398
- getModel(uid) {
399
- if (uid in this.contentTypes) {
400
- return this.contentTypes[uid];
401
- }
402
- if (uid in this.components) {
403
- return this.components[uid];
404
- }
405
- }
406
- /**
303
+ await this.runPluginsLifecycles(LIFECYCLES.REGISTER);
304
+ await this.runUserLifecycles(LIFECYCLES.REGISTER);
305
+ // NOTE: Swap type customField for underlying data type
306
+ convertCustomFieldType(this);
307
+ return this;
308
+ }
309
+ async bootstrap() {
310
+ this.configureGlobalProxy();
311
+ const models = [
312
+ ...transformContentTypesToModels([
313
+ ...Object.values(this.contentTypes),
314
+ ...Object.values(this.components)
315
+ ], this.db.metadata.identifiers),
316
+ ...this.get('models').get()
317
+ ];
318
+ await this.db.init({
319
+ models
320
+ });
321
+ let oldContentTypes;
322
+ if (await this.db.getSchemaConnection().hasTable(coreStoreModel.tableName)) {
323
+ oldContentTypes = await this.store.get({
324
+ type: 'strapi',
325
+ name: 'content_types',
326
+ key: 'schema'
327
+ });
328
+ }
329
+ await this.hook('strapi::content-types.beforeSync').call({
330
+ oldContentTypes,
331
+ contentTypes: this.contentTypes
332
+ });
333
+ const status = await this.db.schema.sync();
334
+ // if schemas have changed, run repairs
335
+ if (status === 'CHANGED') {
336
+ await this.db.repair.removeOrphanMorphType({
337
+ pivot: 'component_type'
338
+ });
339
+ }
340
+ if (this.EE) {
341
+ await index.checkLicense({
342
+ strapi: this
343
+ });
344
+ }
345
+ await this.hook('strapi::content-types.afterSync').call({
346
+ oldContentTypes,
347
+ contentTypes: this.contentTypes
348
+ });
349
+ await this.store.set({
350
+ type: 'strapi',
351
+ name: 'content_types',
352
+ key: 'schema',
353
+ value: this.contentTypes
354
+ });
355
+ await this.server.initMiddlewares();
356
+ this.server.initRouting();
357
+ await this.contentAPI.permissions.registerActions();
358
+ await this.runPluginsLifecycles(LIFECYCLES.BOOTSTRAP);
359
+ for (const provider of providers){
360
+ await provider.bootstrap?.(this);
361
+ }
362
+ await this.runUserLifecycles(LIFECYCLES.BOOTSTRAP);
363
+ return this;
364
+ }
365
+ configureGlobalProxy() {
366
+ const globalProxy = this.config.get('server.proxy.global');
367
+ const httpProxy = this.config.get('server.proxy.http') || globalProxy;
368
+ const httpsProxy = this.config.get('server.proxy.https') || globalProxy;
369
+ if (!httpProxy && !httpsProxy) {
370
+ return;
371
+ }
372
+ globalAgent.bootstrap();
373
+ if (httpProxy) {
374
+ this.log.info(`Using HTTP proxy: ${httpProxy}`);
375
+ global.GLOBAL_AGENT.HTTP_PROXY = httpProxy;
376
+ }
377
+ if (httpsProxy) {
378
+ this.log.info(`Using HTTPS proxy: ${httpsProxy}`);
379
+ global.GLOBAL_AGENT.HTTPS_PROXY = httpsProxy;
380
+ }
381
+ }
382
+ async destroy() {
383
+ this.log.info('Shutting down Strapi');
384
+ await this.runPluginsLifecycles(LIFECYCLES.DESTROY);
385
+ for (const provider of providers){
386
+ await provider.destroy?.(this);
387
+ }
388
+ await this.runUserLifecycles(LIFECYCLES.DESTROY);
389
+ await this.server.destroy();
390
+ this.eventHub.destroy();
391
+ await this.db?.destroy();
392
+ process.removeAllListeners();
393
+ // @ts-expect-error: Allow clean delete of global.strapi to allow re-instanciation
394
+ delete global.strapi;
395
+ this.log.info('Strapi has been shut down');
396
+ }
397
+ async runPluginsLifecycles(lifecycleName) {
398
+ // plugins
399
+ await this.get('modules')[lifecycleName]();
400
+ }
401
+ async runUserLifecycles(lifecycleName) {
402
+ // user
403
+ const userLifecycleFunction = this.app && this.app[lifecycleName];
404
+ if (isFunction(userLifecycleFunction)) {
405
+ await userLifecycleFunction({
406
+ strapi: this
407
+ });
408
+ }
409
+ }
410
+ getModel(uid) {
411
+ if (uid in this.contentTypes) {
412
+ return this.contentTypes[uid];
413
+ }
414
+ if (uid in this.components) {
415
+ return this.components[uid];
416
+ }
417
+ }
418
+ /**
407
419
  * @deprecated Use `strapi.db.query` instead
408
- */
409
- query(uid) {
410
- return this.db.query(uid);
411
- }
420
+ */ query(uid) {
421
+ return this.db.query(uid);
422
+ }
423
+ constructor(opts){
424
+ super();
425
+ this.isLoaded = false;
426
+ this.internal_config = {};
427
+ this.internal_config = loadConfiguration(opts);
428
+ this.registerInternalServices();
429
+ for (const provider of providers){
430
+ provider.init?.(this);
431
+ }
432
+ }
412
433
  }
413
- export {
414
- Strapi as default
415
- };
434
+
435
+ export { Strapi as default };
416
436
  //# sourceMappingURL=Strapi.mjs.map