@strapi/core 0.0.0-experimental.d362bf200f5f9359a4bbd4a549603de5ee1f04ca → 0.0.0-experimental.d65615a2b9130dd742d3c396674457d7971da928

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 (532) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +37 -46
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +190 -225
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +159 -214
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/configuration/config-loader.d.ts.map +1 -1
  9. package/dist/configuration/config-loader.js +9 -5
  10. package/dist/configuration/config-loader.js.map +1 -1
  11. package/dist/configuration/config-loader.mjs +9 -5
  12. package/dist/configuration/config-loader.mjs.map +1 -1
  13. package/dist/configuration/get-dirs.d.ts +10 -0
  14. package/dist/configuration/get-dirs.d.ts.map +1 -0
  15. package/dist/{utils → configuration}/get-dirs.js +3 -2
  16. package/dist/configuration/get-dirs.js.map +1 -0
  17. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  18. package/dist/configuration/get-dirs.mjs.map +1 -0
  19. package/dist/configuration/index.d.ts +4 -7
  20. package/dist/configuration/index.d.ts.map +1 -1
  21. package/dist/configuration/index.js +8 -6
  22. package/dist/configuration/index.js.map +1 -1
  23. package/dist/configuration/index.mjs +5 -4
  24. package/dist/configuration/index.mjs.map +1 -1
  25. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  26. package/dist/core-api/controller/collection-type.js +6 -3
  27. package/dist/core-api/controller/collection-type.js.map +1 -1
  28. package/dist/core-api/controller/collection-type.mjs +3 -0
  29. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  30. package/dist/core-api/controller/index.js +2 -2
  31. package/dist/core-api/controller/index.js.map +1 -1
  32. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  33. package/dist/core-api/controller/single-type.js +3 -2
  34. package/dist/core-api/controller/single-type.js.map +1 -1
  35. package/dist/core-api/controller/single-type.mjs +1 -0
  36. package/dist/core-api/controller/single-type.mjs.map +1 -1
  37. package/dist/core-api/controller/transform.js +8 -8
  38. package/dist/core-api/controller/transform.js.map +1 -1
  39. package/dist/core-api/routes/index.d.ts.map +1 -1
  40. package/dist/core-api/service/collection-type.d.ts +3 -9
  41. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  42. package/dist/core-api/service/collection-type.js +18 -7
  43. package/dist/core-api/service/collection-type.js.map +1 -1
  44. package/dist/core-api/service/collection-type.mjs +19 -8
  45. package/dist/core-api/service/collection-type.mjs.map +1 -1
  46. package/dist/core-api/service/pagination.d.ts +4 -11
  47. package/dist/core-api/service/pagination.d.ts.map +1 -1
  48. package/dist/core-api/service/pagination.js +18 -44
  49. package/dist/core-api/service/pagination.js.map +1 -1
  50. package/dist/core-api/service/pagination.mjs +16 -42
  51. package/dist/core-api/service/pagination.mjs.map +1 -1
  52. package/dist/core-api/service/single-type.d.ts.map +1 -1
  53. package/dist/core-api/service/single-type.js +9 -2
  54. package/dist/core-api/service/single-type.js.map +1 -1
  55. package/dist/core-api/service/single-type.mjs +9 -2
  56. package/dist/core-api/service/single-type.mjs.map +1 -1
  57. package/dist/domain/content-type/index.js +4 -4
  58. package/dist/domain/content-type/index.js.map +1 -1
  59. package/dist/ee/index.d.ts +2 -0
  60. package/dist/ee/index.d.ts.map +1 -1
  61. package/dist/ee/index.js +3 -3
  62. package/dist/ee/index.js.map +1 -1
  63. package/dist/ee/index.mjs.map +1 -1
  64. package/dist/ee/license.d.ts.map +1 -1
  65. package/dist/ee/license.js +2 -1
  66. package/dist/ee/license.js.map +1 -1
  67. package/dist/ee/license.mjs +2 -1
  68. package/dist/ee/license.mjs.map +1 -1
  69. package/dist/factories.d.ts +2 -2
  70. package/dist/factories.d.ts.map +1 -1
  71. package/dist/factories.js +4 -4
  72. package/dist/factories.js.map +1 -1
  73. package/dist/factories.mjs.map +1 -1
  74. package/dist/index.d.ts +18 -2
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +25 -1
  77. package/dist/index.js.map +1 -1
  78. package/dist/index.mjs +27 -3
  79. package/dist/index.mjs.map +1 -1
  80. package/dist/loaders/admin.js +0 -1
  81. package/dist/loaders/admin.js.map +1 -1
  82. package/dist/loaders/admin.mjs +0 -1
  83. package/dist/loaders/admin.mjs.map +1 -1
  84. package/dist/loaders/apis.d.ts.map +1 -1
  85. package/dist/loaders/apis.js +12 -12
  86. package/dist/loaders/apis.js.map +1 -1
  87. package/dist/loaders/apis.mjs +10 -10
  88. package/dist/loaders/apis.mjs.map +1 -1
  89. package/dist/loaders/index.d.ts.map +1 -1
  90. package/dist/loaders/index.js +0 -2
  91. package/dist/loaders/index.js.map +1 -1
  92. package/dist/loaders/index.mjs +0 -2
  93. package/dist/loaders/index.mjs.map +1 -1
  94. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  95. package/dist/loaders/plugins/get-enabled-plugins.js +46 -17
  96. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  97. package/dist/loaders/plugins/get-enabled-plugins.mjs +16 -9
  98. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  99. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  100. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  101. package/dist/loaders/plugins/index.d.ts.map +1 -1
  102. package/dist/loaders/plugins/index.js +34 -7
  103. package/dist/loaders/plugins/index.js.map +1 -1
  104. package/dist/loaders/plugins/index.mjs +9 -1
  105. package/dist/loaders/plugins/index.mjs.map +1 -1
  106. package/dist/middlewares/body.d.ts +2 -2
  107. package/dist/middlewares/body.d.ts.map +1 -1
  108. package/dist/middlewares/body.js +6 -6
  109. package/dist/middlewares/body.js.map +1 -1
  110. package/dist/middlewares/body.mjs +4 -4
  111. package/dist/middlewares/body.mjs.map +1 -1
  112. package/dist/middlewares/cors.d.ts.map +1 -1
  113. package/dist/middlewares/cors.js +9 -7
  114. package/dist/middlewares/cors.js.map +1 -1
  115. package/dist/middlewares/cors.mjs +9 -7
  116. package/dist/middlewares/cors.mjs.map +1 -1
  117. package/dist/middlewares/public.js +3 -3
  118. package/dist/middlewares/public.js.map +1 -1
  119. package/dist/middlewares/public.mjs +1 -1
  120. package/dist/middlewares/public.mjs.map +1 -1
  121. package/dist/middlewares/query.d.ts.map +1 -1
  122. package/dist/middlewares/query.js.map +1 -1
  123. package/dist/middlewares/query.mjs.map +1 -1
  124. package/dist/middlewares/responses.js +2 -2
  125. package/dist/middlewares/responses.js.map +1 -1
  126. package/dist/middlewares/security.d.ts.map +1 -1
  127. package/dist/middlewares/security.js +12 -5
  128. package/dist/middlewares/security.js.map +1 -1
  129. package/dist/middlewares/security.mjs +11 -4
  130. package/dist/middlewares/security.mjs.map +1 -1
  131. package/dist/middlewares/session.js +2 -2
  132. package/dist/middlewares/session.js.map +1 -1
  133. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  134. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  135. package/dist/migrations/database/5.0.0-discard-drafts.js +94 -0
  136. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  137. package/dist/migrations/database/5.0.0-discard-drafts.mjs +94 -0
  138. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  139. package/dist/migrations/draft-publish.d.ts +1 -1
  140. package/dist/migrations/draft-publish.d.ts.map +1 -1
  141. package/dist/migrations/draft-publish.js +14 -31
  142. package/dist/migrations/draft-publish.js.map +1 -1
  143. package/dist/migrations/draft-publish.mjs +15 -32
  144. package/dist/migrations/draft-publish.mjs.map +1 -1
  145. package/dist/migrations/i18n.d.ts +5 -0
  146. package/dist/migrations/i18n.d.ts.map +1 -0
  147. package/dist/migrations/i18n.js +54 -0
  148. package/dist/migrations/i18n.js.map +1 -0
  149. package/dist/migrations/i18n.mjs +54 -0
  150. package/dist/migrations/i18n.mjs.map +1 -0
  151. package/dist/migrations/index.d.ts +5 -0
  152. package/dist/migrations/index.d.ts.map +1 -0
  153. package/dist/migrations/index.js +15 -0
  154. package/dist/migrations/index.js.map +1 -0
  155. package/dist/migrations/index.mjs +15 -0
  156. package/dist/migrations/index.mjs.map +1 -0
  157. package/dist/providers/admin.d.ts +3 -0
  158. package/dist/providers/admin.d.ts.map +1 -0
  159. package/dist/providers/admin.js +20 -0
  160. package/dist/providers/admin.js.map +1 -0
  161. package/dist/providers/admin.mjs +21 -0
  162. package/dist/providers/admin.mjs.map +1 -0
  163. package/dist/providers/coreStore.d.ts +3 -0
  164. package/dist/providers/coreStore.d.ts.map +1 -0
  165. package/dist/providers/coreStore.js +11 -0
  166. package/dist/providers/coreStore.js.map +1 -0
  167. package/dist/providers/coreStore.mjs +12 -0
  168. package/dist/providers/coreStore.mjs.map +1 -0
  169. package/dist/providers/cron.d.ts +3 -0
  170. package/dist/providers/cron.d.ts.map +1 -0
  171. package/dist/providers/cron.js +20 -0
  172. package/dist/providers/cron.js.map +1 -0
  173. package/dist/providers/cron.mjs +21 -0
  174. package/dist/providers/cron.mjs.map +1 -0
  175. package/dist/providers/index.d.ts +3 -0
  176. package/dist/providers/index.d.ts.map +1 -0
  177. package/dist/providers/index.js +11 -0
  178. package/dist/providers/index.js.map +1 -0
  179. package/dist/providers/index.mjs +11 -0
  180. package/dist/providers/index.mjs.map +1 -0
  181. package/dist/providers/provider.d.ts +9 -0
  182. package/dist/providers/provider.d.ts.map +1 -0
  183. package/dist/providers/provider.js +5 -0
  184. package/dist/providers/provider.js.map +1 -0
  185. package/dist/providers/provider.mjs +5 -0
  186. package/dist/providers/provider.mjs.map +1 -0
  187. package/dist/providers/registries.d.ts +3 -0
  188. package/dist/providers/registries.d.ts.map +1 -0
  189. package/dist/providers/registries.js +35 -0
  190. package/dist/providers/registries.js.map +1 -0
  191. package/dist/providers/registries.mjs +36 -0
  192. package/dist/providers/registries.mjs.map +1 -0
  193. package/dist/providers/telemetry.d.ts +3 -0
  194. package/dist/providers/telemetry.d.ts.map +1 -0
  195. package/dist/providers/telemetry.js +19 -0
  196. package/dist/providers/telemetry.js.map +1 -0
  197. package/dist/providers/telemetry.mjs +20 -0
  198. package/dist/providers/telemetry.mjs.map +1 -0
  199. package/dist/providers/webhooks.d.ts +3 -0
  200. package/dist/providers/webhooks.d.ts.map +1 -0
  201. package/dist/providers/webhooks.js +30 -0
  202. package/dist/providers/webhooks.js.map +1 -0
  203. package/dist/providers/webhooks.mjs +31 -0
  204. package/dist/providers/webhooks.mjs.map +1 -0
  205. package/dist/registries/apis.js +2 -2
  206. package/dist/registries/apis.js.map +1 -1
  207. package/dist/registries/components.js +2 -2
  208. package/dist/registries/components.js.map +1 -1
  209. package/dist/registries/content-types.js +3 -3
  210. package/dist/registries/content-types.js.map +1 -1
  211. package/dist/registries/controllers.js +3 -3
  212. package/dist/registries/controllers.js.map +1 -1
  213. package/dist/registries/custom-fields.js +4 -4
  214. package/dist/registries/custom-fields.js.map +1 -1
  215. package/dist/registries/hooks.js +2 -2
  216. package/dist/registries/hooks.js.map +1 -1
  217. package/dist/registries/index.d.ts +0 -1
  218. package/dist/registries/index.d.ts.map +1 -1
  219. package/dist/registries/middlewares.js +3 -3
  220. package/dist/registries/middlewares.js.map +1 -1
  221. package/dist/registries/modules.js +3 -3
  222. package/dist/registries/modules.js.map +1 -1
  223. package/dist/registries/plugins.js +2 -2
  224. package/dist/registries/plugins.js.map +1 -1
  225. package/dist/registries/policies.d.ts +1 -1
  226. package/dist/registries/policies.d.ts.map +1 -1
  227. package/dist/registries/policies.js +5 -5
  228. package/dist/registries/policies.js.map +1 -1
  229. package/dist/registries/policies.mjs +1 -1
  230. package/dist/registries/policies.mjs.map +1 -1
  231. package/dist/registries/services.js +3 -3
  232. package/dist/registries/services.js.map +1 -1
  233. package/dist/services/auth/index.js +3 -3
  234. package/dist/services/auth/index.js.map +1 -1
  235. package/dist/services/config.d.ts +3 -0
  236. package/dist/services/config.d.ts.map +1 -0
  237. package/dist/{registries → services}/config.js +11 -7
  238. package/dist/services/config.js.map +1 -0
  239. package/dist/{registries → services}/config.mjs +10 -7
  240. package/dist/services/config.mjs.map +1 -0
  241. package/dist/services/content-api/index.d.ts +10 -12
  242. package/dist/services/content-api/index.d.ts.map +1 -1
  243. package/dist/services/content-api/index.js +1 -1
  244. package/dist/services/content-api/index.js.map +1 -1
  245. package/dist/services/content-api/index.mjs +1 -1
  246. package/dist/services/content-api/index.mjs.map +1 -1
  247. package/dist/services/content-api/permissions/index.d.ts +10 -12
  248. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  249. package/dist/services/content-api/permissions/index.js +1 -1
  250. package/dist/services/content-api/permissions/index.js.map +1 -1
  251. package/dist/services/content-api/permissions/index.mjs +1 -1
  252. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  253. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  254. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  255. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  256. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  257. package/dist/services/core-store.d.ts.map +1 -1
  258. package/dist/services/core-store.js +3 -3
  259. package/dist/services/core-store.js.map +1 -1
  260. package/dist/services/cron.d.ts +3 -3
  261. package/dist/services/cron.d.ts.map +1 -1
  262. package/dist/services/cron.js +3 -3
  263. package/dist/services/cron.js.map +1 -1
  264. package/dist/services/cron.mjs.map +1 -1
  265. package/dist/services/document-service/attributes/index.d.ts +6 -0
  266. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  267. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  268. package/dist/services/document-service/attributes/index.js.map +1 -0
  269. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  270. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  271. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  272. package/dist/services/{entity-service → document-service}/attributes/transforms.js +3 -3
  273. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  274. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  275. package/dist/services/document-service/common.d.ts +1 -1
  276. package/dist/services/document-service/common.d.ts.map +1 -1
  277. package/dist/services/document-service/common.js.map +1 -1
  278. package/dist/services/document-service/common.mjs.map +1 -1
  279. package/dist/services/document-service/components.d.ts +25 -1
  280. package/dist/services/document-service/components.d.ts.map +1 -1
  281. package/dist/services/{entity-service → document-service}/components.js +46 -56
  282. package/dist/services/document-service/components.js.map +1 -0
  283. package/dist/services/{entity-service → document-service}/components.mjs +36 -46
  284. package/dist/services/document-service/components.mjs.map +1 -0
  285. package/dist/services/document-service/draft-and-publish.js +16 -16
  286. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  287. package/dist/services/document-service/entries.d.ts +10 -0
  288. package/dist/services/document-service/entries.d.ts.map +1 -0
  289. package/dist/services/document-service/entries.js +96 -0
  290. package/dist/services/document-service/entries.js.map +1 -0
  291. package/dist/services/document-service/entries.mjs +96 -0
  292. package/dist/services/document-service/entries.mjs.map +1 -0
  293. package/dist/services/document-service/events.d.ts +25 -0
  294. package/dist/services/document-service/events.d.ts.map +1 -0
  295. package/dist/services/document-service/events.js +47 -0
  296. package/dist/services/document-service/events.js.map +1 -0
  297. package/dist/services/document-service/events.mjs +47 -0
  298. package/dist/services/document-service/events.mjs.map +1 -0
  299. package/dist/services/document-service/index.d.ts +0 -2
  300. package/dist/services/document-service/index.d.ts.map +1 -1
  301. package/dist/services/document-service/index.js +13 -2
  302. package/dist/services/document-service/index.js.map +1 -1
  303. package/dist/services/document-service/index.mjs +13 -2
  304. package/dist/services/document-service/index.mjs.map +1 -1
  305. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  306. package/dist/services/document-service/internationalization.js +21 -12
  307. package/dist/services/document-service/internationalization.js.map +1 -1
  308. package/dist/services/document-service/internationalization.mjs +14 -5
  309. package/dist/services/document-service/internationalization.mjs.map +1 -1
  310. package/dist/services/document-service/middlewares/middleware-manager.d.ts +5 -2
  311. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -1
  312. package/dist/services/document-service/middlewares/middleware-manager.js +8 -5
  313. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  314. package/dist/services/document-service/middlewares/middleware-manager.mjs +8 -5
  315. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  316. package/dist/services/document-service/params.d.ts +3 -1
  317. package/dist/services/document-service/params.d.ts.map +1 -1
  318. package/dist/services/{entity-service → document-service}/params.js +2 -2
  319. package/dist/services/document-service/params.js.map +1 -0
  320. package/dist/services/document-service/params.mjs.map +1 -0
  321. package/dist/services/document-service/repository.d.ts.map +1 -1
  322. package/dist/services/document-service/repository.js +177 -160
  323. package/dist/services/document-service/repository.js.map +1 -1
  324. package/dist/services/document-service/repository.mjs +154 -137
  325. package/dist/services/document-service/repository.mjs.map +1 -1
  326. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  327. package/dist/services/document-service/transform/data.js +4 -2
  328. package/dist/services/document-service/transform/data.js.map +1 -1
  329. package/dist/services/document-service/transform/data.mjs +4 -2
  330. package/dist/services/document-service/transform/data.mjs.map +1 -1
  331. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  332. package/dist/services/document-service/transform/id-transform.js +2 -2
  333. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  334. package/dist/services/document-service/transform/query.d.ts +5 -0
  335. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  336. package/dist/services/document-service/transform/query.js +9 -0
  337. package/dist/services/document-service/transform/query.js.map +1 -0
  338. package/dist/services/document-service/transform/query.mjs +9 -0
  339. package/dist/services/document-service/transform/query.mjs.map +1 -0
  340. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  341. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  342. package/dist/services/document-service/transform/relations/extract/data-ids.js +45 -78
  343. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  344. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +44 -77
  345. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  346. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +7 -3
  347. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  348. package/dist/services/document-service/transform/relations/transform/data-ids.js +61 -126
  349. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  350. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +61 -126
  351. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  352. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  353. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  354. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  355. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  356. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  357. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  358. package/dist/services/document-service/transform/relations/utils/dp.js +2 -2
  359. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  360. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +2 -2
  361. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  362. package/dist/services/document-service/transform/relations/utils/i18n.js +3 -9
  363. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  364. package/dist/services/document-service/transform/relations/utils/i18n.mjs +3 -9
  365. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  366. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  367. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  368. package/dist/services/document-service/transform/relations/utils/map-relation.js +91 -0
  369. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  370. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +91 -0
  371. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  372. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  373. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  374. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  375. package/dist/services/document-service/utils/populate.js +7 -1
  376. package/dist/services/document-service/utils/populate.js.map +1 -1
  377. package/dist/services/document-service/utils/populate.mjs +7 -1
  378. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  379. package/dist/services/document-service/utils/unidirectional-relations.d.ts +33 -0
  380. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  381. package/dist/services/document-service/utils/unidirectional-relations.js +57 -0
  382. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  383. package/dist/services/document-service/utils/unidirectional-relations.mjs +57 -0
  384. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  385. package/dist/services/entity-service/index.d.ts.map +1 -1
  386. package/dist/services/entity-service/index.js +11 -4
  387. package/dist/services/entity-service/index.js.map +1 -1
  388. package/dist/services/entity-service/index.mjs +11 -4
  389. package/dist/services/entity-service/index.mjs.map +1 -1
  390. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  391. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  392. package/dist/services/entity-validator/blocks-validator.js +4 -3
  393. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  394. package/dist/services/entity-validator/blocks-validator.mjs +3 -3
  395. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  396. package/dist/services/entity-validator/index.d.ts +15 -1
  397. package/dist/services/entity-validator/index.d.ts.map +1 -1
  398. package/dist/services/entity-validator/index.js +189 -127
  399. package/dist/services/entity-validator/index.js.map +1 -1
  400. package/dist/services/entity-validator/index.mjs +184 -122
  401. package/dist/services/entity-validator/index.mjs.map +1 -1
  402. package/dist/services/entity-validator/validators.d.ts +36 -25
  403. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  404. package/dist/services/entity-validator/validators.js +148 -33
  405. package/dist/services/entity-validator/validators.js.map +1 -1
  406. package/dist/services/entity-validator/validators.mjs +140 -25
  407. package/dist/services/entity-validator/validators.mjs.map +1 -1
  408. package/dist/services/event-hub.d.ts +1 -0
  409. package/dist/services/event-hub.d.ts.map +1 -1
  410. package/dist/services/event-hub.js +9 -4
  411. package/dist/services/event-hub.js.map +1 -1
  412. package/dist/services/event-hub.mjs +9 -4
  413. package/dist/services/event-hub.mjs.map +1 -1
  414. package/dist/services/metrics/middleware.d.ts.map +1 -1
  415. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  416. package/dist/services/metrics/rate-limiter.js.map +1 -1
  417. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  418. package/dist/services/reloader.d.ts +7 -0
  419. package/dist/services/reloader.d.ts.map +1 -0
  420. package/dist/services/reloader.js +36 -0
  421. package/dist/services/reloader.js.map +1 -0
  422. package/dist/services/reloader.mjs +36 -0
  423. package/dist/services/reloader.mjs.map +1 -0
  424. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  425. package/dist/services/server/compose-endpoint.js +7 -7
  426. package/dist/services/server/compose-endpoint.js.map +1 -1
  427. package/dist/services/server/index.js +1 -1
  428. package/dist/services/server/index.js.map +1 -1
  429. package/dist/services/server/index.mjs +1 -1
  430. package/dist/services/server/index.mjs.map +1 -1
  431. package/dist/services/server/koa.d.ts.map +1 -1
  432. package/dist/services/server/koa.js +4 -4
  433. package/dist/services/server/koa.js.map +1 -1
  434. package/dist/services/server/koa.mjs +1 -1
  435. package/dist/services/server/koa.mjs.map +1 -1
  436. package/dist/services/server/middleware.js +3 -3
  437. package/dist/services/server/middleware.js.map +1 -1
  438. package/dist/services/server/register-routes.js +3 -3
  439. package/dist/services/server/register-routes.js.map +1 -1
  440. package/dist/services/server/register-routes.mjs +3 -3
  441. package/dist/services/server/register-routes.mjs.map +1 -1
  442. package/dist/services/server/routing.d.ts +1 -1
  443. package/dist/services/server/routing.js +2 -2
  444. package/dist/services/server/routing.js.map +1 -1
  445. package/dist/services/utils/dynamic-zones.js +5 -5
  446. package/dist/services/utils/dynamic-zones.js.map +1 -1
  447. package/dist/services/webhook-runner.d.ts +2 -1
  448. package/dist/services/webhook-runner.d.ts.map +1 -1
  449. package/dist/services/webhook-runner.js.map +1 -1
  450. package/dist/services/webhook-runner.mjs.map +1 -1
  451. package/dist/services/webhook-store.d.ts +2 -8
  452. package/dist/services/webhook-store.d.ts.map +1 -1
  453. package/dist/services/webhook-store.js +14 -8
  454. package/dist/services/webhook-store.js.map +1 -1
  455. package/dist/services/webhook-store.mjs +14 -8
  456. package/dist/services/webhook-store.mjs.map +1 -1
  457. package/dist/utils/cron.js +3 -3
  458. package/dist/utils/cron.js.map +1 -1
  459. package/dist/utils/fetch.d.ts.map +1 -1
  460. package/dist/utils/fetch.js +4 -3
  461. package/dist/utils/fetch.js.map +1 -1
  462. package/dist/utils/fetch.mjs +4 -3
  463. package/dist/utils/fetch.mjs.map +1 -1
  464. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  465. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  466. package/dist/utils/filepath-to-prop-path.js +27 -6
  467. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  468. package/dist/utils/filepath-to-prop-path.mjs +25 -5
  469. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  470. package/dist/utils/index.d.ts +2 -1
  471. package/dist/utils/index.d.ts.map +1 -1
  472. package/dist/utils/is-initialized.js +3 -3
  473. package/dist/utils/is-initialized.js.map +1 -1
  474. package/dist/utils/load-files.d.ts.map +1 -1
  475. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  476. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  477. package/dist/utils/resolve-working-dirs.js +13 -0
  478. package/dist/utils/resolve-working-dirs.js.map +1 -0
  479. package/dist/utils/resolve-working-dirs.mjs +11 -0
  480. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  481. package/dist/utils/startup-logger.d.ts.map +1 -1
  482. package/dist/utils/startup-logger.js +4 -4
  483. package/dist/utils/startup-logger.js.map +1 -1
  484. package/dist/utils/startup-logger.mjs +3 -3
  485. package/dist/utils/startup-logger.mjs.map +1 -1
  486. package/dist/utils/transform-content-types-to-models.d.ts +23 -18
  487. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  488. package/dist/utils/transform-content-types-to-models.js +112 -61
  489. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  490. package/dist/utils/transform-content-types-to-models.mjs +111 -60
  491. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  492. package/dist/utils/update-notifier/index.d.ts +1 -6
  493. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  494. package/dist/utils/update-notifier/index.js +11 -14
  495. package/dist/utils/update-notifier/index.js.map +1 -1
  496. package/dist/utils/update-notifier/index.mjs +11 -14
  497. package/dist/utils/update-notifier/index.mjs.map +1 -1
  498. package/package.json +34 -30
  499. package/dist/registries/config.d.ts +0 -4
  500. package/dist/registries/config.d.ts.map +0 -1
  501. package/dist/registries/config.js.map +0 -1
  502. package/dist/registries/config.mjs.map +0 -1
  503. package/dist/services/document-service/document-engine.d.ts +0 -2
  504. package/dist/services/document-service/document-engine.d.ts.map +0 -1
  505. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -2
  506. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  507. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  508. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  509. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  510. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  511. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  512. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  513. package/dist/services/entity-service/attributes/index.js.map +0 -1
  514. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  515. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  516. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  517. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  518. package/dist/services/entity-service/components.d.ts +0 -95
  519. package/dist/services/entity-service/components.d.ts.map +0 -1
  520. package/dist/services/entity-service/components.js.map +0 -1
  521. package/dist/services/entity-service/components.mjs.map +0 -1
  522. package/dist/services/entity-service/params.d.ts +0 -8
  523. package/dist/services/entity-service/params.d.ts.map +0 -1
  524. package/dist/services/entity-service/params.js.map +0 -1
  525. package/dist/services/entity-service/params.mjs.map +0 -1
  526. package/dist/utils/get-dirs.d.ts +0 -9
  527. package/dist/utils/get-dirs.d.ts.map +0 -1
  528. package/dist/utils/get-dirs.js.map +0 -1
  529. package/dist/utils/get-dirs.mjs.map +0 -1
  530. /package/dist/services/{entity-service → document-service}/attributes/transforms.d.ts +0 -0
  531. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  532. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
package/dist/Strapi.js CHANGED
@@ -1,179 +1,139 @@
1
1
  "use strict";
2
+ const globalAgent = require("global-agent");
2
3
  const path = require("path");
3
4
  const _ = require("lodash");
4
- const _$1 = require("lodash/fp");
5
+ const fp = require("lodash/fp");
5
6
  const logger = require("@strapi/logger");
6
7
  const database = require("@strapi/database");
7
- const strapiUtils = require("@strapi/utils");
8
8
  const index = require("./configuration/index.js");
9
9
  const factories = require("./factories.js");
10
- const compile = require("./compile.js");
11
10
  const openBrowser = require("./utils/open-browser.js");
12
11
  const isInitialized = require("./utils/is-initialized.js");
13
- const getDirs = require("./utils/get-dirs.js");
14
- const index$6 = require("./ee/index.js");
15
- const index$5 = require("./utils/update-notifier/index.js");
12
+ const index$2 = require("./ee/index.js");
13
+ require("./utils/update-notifier/index.js");
16
14
  const fetch = require("./utils/fetch.js");
17
15
  const convertCustomFieldType = require("./utils/convert-custom-field-type.js");
18
16
  const startupLogger = require("./utils/startup-logger.js");
19
17
  const transformContentTypesToModels = require("./utils/transform-content-types-to-models.js");
20
- const signals = require("./utils/signals.js");
21
18
  const lifecycles = require("./utils/lifecycles.js");
22
- const contentTypes = require("./registries/content-types.js");
23
- const components = require("./registries/components.js");
24
- const services = require("./registries/services.js");
25
- const policies = require("./registries/policies.js");
26
- const middlewares = require("./registries/middlewares.js");
27
- const hooks = require("./registries/hooks.js");
28
- const controllers = require("./registries/controllers.js");
29
- const modules = require("./registries/modules.js");
30
- const plugins = require("./registries/plugins.js");
31
- const customFields = require("./registries/custom-fields.js");
32
- const config = require("./registries/config.js");
33
- const apis = require("./registries/apis.js");
34
- const sanitizers = require("./registries/sanitizers.js");
35
- const validators = require("./registries/validators.js");
36
- const models = require("./registries/models.js");
37
- const index$7 = require("./loaders/index.js");
19
+ require("node:path");
38
20
  const container = require("./container.js");
39
21
  const fs = require("./services/fs.js");
40
22
  const eventHub = require("./services/event-hub.js");
41
- const index$3 = require("./services/server/index.js");
42
- const webhookRunner = require("./services/webhook-runner.js");
43
- const webhookStore = require("./services/webhook-store.js");
44
- const coreStore = require("./services/core-store.js");
45
- const index$9 = require("./services/entity-service/index.js");
23
+ const index$5 = require("./services/server/index.js");
24
+ const reloader = require("./services/reloader.js");
25
+ const index$1 = require("./providers/index.js");
26
+ const index$7 = require("./services/entity-service/index.js");
46
27
  const queryParams = require("./services/query-params.js");
47
- const cron = require("./services/cron.js");
48
- const index$8 = require("./services/entity-validator/index.js");
49
- const index$4 = require("./services/metrics/index.js");
28
+ const index$6 = require("./services/entity-validator/index.js");
50
29
  const requestContext = require("./services/request-context.js");
51
- const index$2 = require("./services/auth/index.js");
52
- const customFields$1 = require("./services/custom-fields.js");
53
- const index$1 = require("./services/content-api/index.js");
30
+ const index$4 = require("./services/auth/index.js");
31
+ const customFields = require("./services/custom-fields.js");
32
+ const index$3 = require("./services/content-api/index.js");
54
33
  const dynamicZones = require("./services/utils/dynamic-zones.js");
55
34
  const features = require("./services/features.js");
56
- const index$a = require("./services/document-service/index.js");
57
- const draftPublish = require("./migrations/draft-publish.js");
35
+ const index$8 = require("./services/document-service/index.js");
36
+ const coreStore = require("./services/core-store.js");
37
+ const config = require("./services/config.js");
58
38
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
39
+ function _interopNamespace(e) {
40
+ if (e && e.__esModule)
41
+ return e;
42
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
43
+ if (e) {
44
+ for (const k in e) {
45
+ if (k !== "default") {
46
+ const d = Object.getOwnPropertyDescriptor(e, k);
47
+ Object.defineProperty(n, k, d.get ? d : {
48
+ enumerable: true,
49
+ get: () => e[k]
50
+ });
51
+ }
52
+ }
53
+ }
54
+ n.default = e;
55
+ return Object.freeze(n);
56
+ }
57
+ const globalAgent__namespace = /* @__PURE__ */ _interopNamespace(globalAgent);
59
58
  const path__default = /* @__PURE__ */ _interopDefault(path);
60
59
  const ___default = /* @__PURE__ */ _interopDefault(_);
61
- const resolveWorkingDirectories = (opts) => {
62
- const cwd = process.cwd();
63
- const appDir = opts.appDir ? path__default.default.resolve(cwd, opts.appDir) : cwd;
64
- const distDir = opts.distDir ? path__default.default.resolve(cwd, opts.distDir) : appDir;
65
- return { app: appDir, dist: distDir };
66
- };
67
- const reloader = (strapi) => {
68
- const state = {
69
- shouldReload: 0,
70
- isWatching: true
71
- };
72
- function reload() {
73
- if (state.shouldReload > 0) {
74
- state.shouldReload -= 1;
75
- reload.isReloading = false;
76
- return;
77
- }
78
- if (strapi.config.get("autoReload")) {
79
- process.send?.("reload");
60
+ class Strapi extends container.Container {
61
+ app;
62
+ isLoaded = false;
63
+ internal_config = {};
64
+ constructor(opts) {
65
+ super();
66
+ this.internal_config = index.loadConfiguration(opts);
67
+ this.registerInternalServices();
68
+ for (const provider of index$1.providers) {
69
+ provider.init?.(this);
80
70
  }
81
71
  }
82
- Object.defineProperty(reload, "isWatching", {
83
- configurable: true,
84
- enumerable: true,
85
- set(value) {
86
- if (state.isWatching === false && value === true) {
87
- state.shouldReload += 1;
88
- }
89
- state.isWatching = value;
90
- },
91
- get() {
92
- return state.isWatching;
93
- }
94
- });
95
- reload.isReloading = false;
96
- reload.isWatching = true;
97
- return reload;
98
- };
99
- class Strapi extends container.Container {
100
- server;
101
- log;
102
- fs;
103
- eventHub;
104
- startupLogger;
105
- cron;
106
- webhookRunner;
107
- webhookStore;
108
- store;
109
- entityValidator;
72
+ get admin() {
73
+ return this.get("admin");
74
+ }
75
+ get EE() {
76
+ return index$2.isEE;
77
+ }
78
+ get ee() {
79
+ return index$2;
80
+ }
81
+ get dirs() {
82
+ return this.config.get("dirs");
83
+ }
84
+ get reload() {
85
+ return this.get("reload");
86
+ }
87
+ get db() {
88
+ return this.get("db");
89
+ }
90
+ get requestContext() {
91
+ return this.get("requestContext");
92
+ }
93
+ get customFields() {
94
+ return this.get("customFields");
95
+ }
96
+ get entityValidator() {
97
+ return this.get("entityValidator");
98
+ }
110
99
  /**
111
100
  * @deprecated `strapi.entityService` will be removed in the next major version
112
101
  */
113
- entityService;
114
- documents;
115
- telemetry;
116
- requestContext;
117
- customFields;
118
- fetch;
119
- dirs;
120
- admin;
121
- isLoaded;
122
- db;
123
- app;
124
- EE;
125
- reload;
126
- features;
127
- // @ts-expect-error - Assigned in constructor
128
- ee;
129
- constructor(opts = {}) {
130
- super();
131
- signals.destroyOnSignal(this);
132
- const rootDirs = resolveWorkingDirectories(opts);
133
- const appConfig = index(rootDirs, opts);
134
- this.add("config", config(appConfig, this)).add("content-types", contentTypes()).add("components", components()).add("services", services(this)).add("policies", policies()).add("middlewares", middlewares()).add("hooks", hooks()).add("controllers", controllers(this)).add("modules", modules(this)).add("plugins", plugins(this)).add("custom-fields", customFields(this)).add("apis", apis(this)).add("sanitizers", sanitizers()).add("validators", validators()).add("query-params", queryParams(this)).add("content-api", index$1(this)).add("auth", index$2()).add("models", models.registry());
135
- this.dirs = getDirs.getDirs(rootDirs, { strapi: this });
136
- this.isLoaded = false;
137
- this.reload = reloader(this);
138
- this.server = index$3.createServer(this);
139
- this.fs = fs(this);
140
- this.eventHub = eventHub();
141
- this.startupLogger = startupLogger.createStartupLogger(this);
142
- const logConfig = {
143
- level: "http",
144
- // Strapi defaults to level 'http'
145
- ...this.config.get("logger"),
146
- // DEPRECATED
147
- ...this.config.get("server.logger.config")
148
- };
149
- this.log = logger.createLogger(logConfig);
150
- this.cron = cron();
151
- this.telemetry = index$4(this);
152
- this.requestContext = requestContext;
153
- this.customFields = customFields$1(this);
154
- this.fetch = fetch.createStrapiFetch(this);
155
- this.features = features.createFeaturesService(this);
156
- this.db = new database.Database(
157
- ___default.default.merge(this.config.get("database"), {
158
- settings: {
159
- migrations: {
160
- dir: path__default.default.join(this.dirs.app.root, "database/migrations")
161
- }
162
- }
163
- })
164
- );
165
- index$5.createUpdateNotifier(this).notify();
166
- Object.defineProperty(this, "EE", {
167
- get: () => {
168
- index$6.init(this.dirs.app.root, this.log);
169
- return index$6.isEE;
170
- },
171
- configurable: false
172
- });
173
- Object.defineProperty(this, "ee", {
174
- get: () => index$6,
175
- configurable: false
176
- });
102
+ get entityService() {
103
+ return this.get("entityService");
104
+ }
105
+ get documents() {
106
+ return this.get("documents");
107
+ }
108
+ get features() {
109
+ return this.get("features");
110
+ }
111
+ get fetch() {
112
+ return this.get("fetch");
113
+ }
114
+ get cron() {
115
+ return this.get("cron");
116
+ }
117
+ get log() {
118
+ return this.get("logger");
119
+ }
120
+ get startupLogger() {
121
+ return this.get("startupLogger");
122
+ }
123
+ get eventHub() {
124
+ return this.get("eventHub");
125
+ }
126
+ get fs() {
127
+ return this.get("fs");
128
+ }
129
+ get server() {
130
+ return this.get("server");
131
+ }
132
+ get telemetry() {
133
+ return this.get("telemetry");
134
+ }
135
+ get store() {
136
+ return this.get("coreStore");
177
137
  }
178
138
  get config() {
179
139
  return this.get("config");
@@ -223,12 +183,12 @@ class Strapi extends container.Container {
223
183
  hook(name) {
224
184
  return this.get("hooks").get(name);
225
185
  }
226
- // api(name) {
227
- // return this.get('apis').get(name);
228
- // }
229
- get api() {
186
+ get apis() {
230
187
  return this.get("apis").getAll();
231
188
  }
189
+ api(name) {
190
+ return this.get("apis").get(name);
191
+ }
232
192
  get auth() {
233
193
  return this.get("auth");
234
194
  }
@@ -252,17 +212,29 @@ class Strapi extends container.Container {
252
212
  return this.stopWithError(error);
253
213
  }
254
214
  }
255
- async destroy() {
256
- this.log.info("Shutting down Strapi");
257
- await this.server.destroy();
258
- await this.runLifecyclesFunctions(lifecycles.LIFECYCLES.DESTROY);
259
- this.eventHub.destroy();
260
- await this.db?.destroy();
261
- this.telemetry.destroy();
262
- this.cron.destroy();
263
- process.removeAllListeners();
264
- delete global.strapi;
265
- this.log.info("Strapi has been shut down");
215
+ // TODO: split into more providers
216
+ registerInternalServices() {
217
+ const config$1 = config.createConfigProvider(this.internal_config, this);
218
+ const logger$1 = logger.createLogger({
219
+ level: "http",
220
+ // Strapi defaults to level 'http'
221
+ ...config$1.get("logger"),
222
+ // DEPRECATED
223
+ ...config$1.get("server.logger.config")
224
+ });
225
+ this.add("config", () => config$1).add("query-params", queryParams(this)).add("content-api", index$3(this)).add("auth", index$4()).add("server", () => index$5.createServer(this)).add("fs", () => fs(this)).add("eventHub", () => eventHub()).add("startupLogger", () => startupLogger.createStartupLogger(this)).add("logger", () => logger$1).add("fetch", () => fetch.createStrapiFetch(this)).add("features", () => features.createFeaturesService(this)).add("requestContext", requestContext).add("customFields", customFields(this)).add("entityValidator", index$6).add("entityService", () => index$7({ strapi: this, db: this.db })).add("documents", () => index$8.createDocumentService(this)).add(
226
+ "db",
227
+ () => new database.Database(
228
+ ___default.default.merge(this.config.get("database"), {
229
+ logger: logger$1,
230
+ settings: {
231
+ migrations: {
232
+ dir: path__default.default.join(this.dirs.app.root, "database/migrations")
233
+ }
234
+ }
235
+ })
236
+ )
237
+ ).add("reload", () => reloader.createReloader(this));
266
238
  }
267
239
  sendStartupTelemetry() {
268
240
  this.telemetry.send("didStartServer", {
@@ -338,49 +310,32 @@ class Strapi extends container.Container {
338
310
  }
339
311
  process.exit(exitCode);
340
312
  }
341
- registerInternalHooks() {
342
- this.get("hooks").set("strapi::content-types.beforeSync", strapiUtils.hooks.createAsyncParallelHook());
343
- this.get("hooks").set("strapi::content-types.afterSync", strapiUtils.hooks.createAsyncParallelHook());
344
- this.hook("strapi::content-types.beforeSync").register(draftPublish.disable);
345
- this.hook("strapi::content-types.afterSync").register(draftPublish.enable);
313
+ async load() {
314
+ await this.register();
315
+ await this.bootstrap();
316
+ this.isLoaded = true;
317
+ return this;
346
318
  }
347
319
  async register() {
348
- await index$7.loadApplicationContext(this);
349
- this.get("models").add(coreStore.coreStoreModel).add(webhookStore.webhookModel);
350
- this.webhookRunner = webhookRunner({
351
- eventHub: this.eventHub,
352
- logger: this.log,
353
- configuration: this.config.get("server.webhooks", {}),
354
- fetch: this.fetch
355
- });
356
- this.registerInternalHooks();
357
- this.telemetry.register();
358
- await this.runLifecyclesFunctions(lifecycles.LIFECYCLES.REGISTER);
320
+ this.ee.init(this.dirs.app.root, this.log);
321
+ for (const provider of index$1.providers) {
322
+ await provider.register?.(this);
323
+ }
324
+ await this.runPluginsLifecycles(lifecycles.LIFECYCLES.REGISTER);
325
+ await this.runUserLifecycles(lifecycles.LIFECYCLES.REGISTER);
359
326
  convertCustomFieldType.convertCustomFieldType(this);
360
327
  return this;
361
328
  }
362
329
  async bootstrap() {
363
- const models2 = [
364
- ...transformContentTypesToModels.transformContentTypesToModels([
365
- ...Object.values(this.contentTypes),
366
- ...Object.values(this.components)
367
- ]),
330
+ this.configureGlobalProxy();
331
+ const models = [
332
+ ...transformContentTypesToModels.transformContentTypesToModels(
333
+ [...Object.values(this.contentTypes), ...Object.values(this.components)],
334
+ this.db.metadata.identifiers
335
+ ),
368
336
  ...this.get("models").get()
369
337
  ];
370
- await this.db.init({ models: models2 });
371
- this.store = coreStore.createCoreStore({ db: this.db });
372
- this.webhookStore = webhookStore.createWebhookStore({ db: this.db });
373
- this.entityValidator = index$8;
374
- this.entityService = index$9({
375
- strapi: this,
376
- db: this.db
377
- });
378
- this.documents = index$a.createDocumentService(this);
379
- if (this.config.get("server.cron.enabled", true)) {
380
- const cronTasks = this.config.get("server.cron.tasks", {});
381
- this.cron.add(cronTasks);
382
- }
383
- this.telemetry.bootstrap();
338
+ await this.db.init({ models });
384
339
  let oldContentTypes;
385
340
  if (await this.db.getSchemaConnection().hasTable(coreStore.coreStoreModel.tableName)) {
386
341
  oldContentTypes = await this.store.get({
@@ -395,7 +350,7 @@ class Strapi extends container.Container {
395
350
  });
396
351
  await this.db.schema.sync();
397
352
  if (this.EE) {
398
- await index$6.checkLicense({ strapi: this });
353
+ await index$2.checkLicense({ strapi: this });
399
354
  }
400
355
  await this.hook("strapi::content-types.afterSync").call({
401
356
  oldContentTypes,
@@ -407,37 +362,53 @@ class Strapi extends container.Container {
407
362
  key: "schema",
408
363
  value: this.contentTypes
409
364
  });
410
- await this.startWebhooks();
411
365
  await this.server.initMiddlewares();
412
366
  this.server.initRouting();
413
367
  await this.contentAPI.permissions.registerActions();
414
- await this.runLifecyclesFunctions(lifecycles.LIFECYCLES.BOOTSTRAP);
415
- this.cron.start();
416
- return this;
417
- }
418
- async load() {
419
- await this.register();
420
- await this.bootstrap();
421
- this.isLoaded = true;
368
+ await this.runPluginsLifecycles(lifecycles.LIFECYCLES.BOOTSTRAP);
369
+ for (const provider of index$1.providers) {
370
+ await provider.bootstrap?.(this);
371
+ }
372
+ await this.runUserLifecycles(lifecycles.LIFECYCLES.BOOTSTRAP);
422
373
  return this;
423
374
  }
424
- async startWebhooks() {
425
- const webhooks = await this.webhookStore?.findWebhooks();
426
- if (!webhooks) {
375
+ configureGlobalProxy() {
376
+ const globalProxy = this.config.get("server.proxy.global");
377
+ const httpProxy = this.config.get("server.proxy.http") || globalProxy;
378
+ const httpsProxy = this.config.get("server.proxy.https") || globalProxy;
379
+ if (!httpProxy && !httpsProxy) {
427
380
  return;
428
381
  }
429
- for (const webhook of webhooks) {
430
- this.webhookRunner?.add(webhook);
382
+ globalAgent__namespace.bootstrap();
383
+ if (httpProxy) {
384
+ this.log.info(`Using HTTP proxy: ${httpProxy}`);
385
+ global.GLOBAL_AGENT.HTTP_PROXY = httpProxy;
386
+ }
387
+ if (httpsProxy) {
388
+ this.log.info(`Using HTTPS proxy: ${httpsProxy}`);
389
+ global.GLOBAL_AGENT.HTTPS_PROXY = httpsProxy;
431
390
  }
432
391
  }
433
- async runLifecyclesFunctions(lifecycleName) {
434
- await this.get("modules")[lifecycleName]();
435
- const adminLifecycleFunction = this.admin && this.admin[lifecycleName];
436
- if (_$1.isFunction(adminLifecycleFunction)) {
437
- await adminLifecycleFunction({ strapi: this });
392
+ async destroy() {
393
+ this.log.info("Shutting down Strapi");
394
+ await this.runPluginsLifecycles(lifecycles.LIFECYCLES.DESTROY);
395
+ for (const provider of index$1.providers) {
396
+ await provider.destroy?.(this);
438
397
  }
398
+ await this.runUserLifecycles(lifecycles.LIFECYCLES.DESTROY);
399
+ await this.server.destroy();
400
+ this.eventHub.destroy();
401
+ await this.db?.destroy();
402
+ process.removeAllListeners();
403
+ delete global.strapi;
404
+ this.log.info("Strapi has been shut down");
405
+ }
406
+ async runPluginsLifecycles(lifecycleName) {
407
+ await this.get("modules")[lifecycleName]();
408
+ }
409
+ async runUserLifecycles(lifecycleName) {
439
410
  const userLifecycleFunction = this.app && this.app[lifecycleName];
440
- if (_$1.isFunction(userLifecycleFunction)) {
411
+ if (fp.isFunction(userLifecycleFunction)) {
441
412
  await userLifecycleFunction({ strapi: this });
442
413
  }
443
414
  }
@@ -456,11 +427,5 @@ class Strapi extends container.Container {
456
427
  return this.db.query(uid);
457
428
  }
458
429
  }
459
- const initFn = (options = {}) => {
460
- const strapi = new Strapi(options);
461
- global.strapi = strapi;
462
- return strapi;
463
- };
464
- const init = Object.assign(initFn, { factories, compile });
465
- module.exports = init;
430
+ module.exports = Strapi;
466
431
  //# sourceMappingURL=Strapi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Strapi.js","sources":["../src/Strapi.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-namespace */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\nimport path from 'path';\nimport _ from 'lodash';\nimport { isFunction } from 'lodash/fp';\nimport { Logger, createLogger } from '@strapi/logger';\nimport { Database } from '@strapi/database';\nimport { hooks } from '@strapi/utils';\nimport type { Core, Modules, UID, Schema } from '@strapi/types';\n\nimport loadConfiguration from './configuration';\n\nimport * as factories from './factories';\nimport compile from './compile';\n\nimport * as utils from './utils';\nimport * as registries from './registries';\nimport * as loaders from './loaders';\nimport { Container } from './container';\nimport createStrapiFs from './services/fs';\nimport createEventHub from './services/event-hub';\nimport { createServer } from './services/server';\nimport createWebhookRunner, { WebhookRunner } from './services/webhook-runner';\nimport { webhookModel, createWebhookStore } from './services/webhook-store';\nimport { createCoreStore, coreStoreModel } from './services/core-store';\nimport createEntityService from './services/entity-service';\nimport createQueryParamService from './services/query-params';\n\nimport createCronService from './services/cron';\nimport entityValidator from './services/entity-validator';\nimport createTelemetry from './services/metrics';\nimport requestContext from './services/request-context';\nimport createAuth from './services/auth';\nimport createCustomFields from './services/custom-fields';\nimport createContentAPI from './services/content-api';\nimport getNumberOfDynamicZones from './services/utils/dynamic-zones';\nimport { FeaturesService, createFeaturesService } from './services/features';\nimport { createDocumentService } from './services/document-service';\n\n// TODO: move somewhere else\nimport * as draftAndPublishSync from './migrations/draft-publish';\n\n/**\n * Resolve the working directories based on the instance options.\n *\n * Behavior:\n * - `appDir` is the directory where Strapi will write every file (schemas, generated APIs, controllers or services)\n * - `distDir` is the directory where Strapi will read configurations, schemas and any compiled code\n *\n * Default values:\n * - If `appDir` is `undefined`, it'll be set to `process.cwd()`\n * - If `distDir` is `undefined`, it'll be set to `appDir`\n */\nconst resolveWorkingDirectories = (opts: { appDir?: string; distDir?: string }) => {\n const cwd = process.cwd();\n\n const appDir = opts.appDir ? path.resolve(cwd, opts.appDir) : cwd;\n const distDir = opts.distDir ? path.resolve(cwd, opts.distDir) : appDir;\n\n return { app: appDir, dist: distDir };\n};\n\nconst reloader = (strapi: Strapi) => {\n const state = {\n shouldReload: 0,\n isWatching: true,\n };\n\n function reload() {\n if (state.shouldReload > 0) {\n // Reset the reloading state\n state.shouldReload -= 1;\n reload.isReloading = false;\n return;\n }\n\n if (strapi.config.get('autoReload')) {\n process.send?.('reload');\n }\n }\n\n Object.defineProperty(reload, 'isWatching', {\n configurable: true,\n enumerable: true,\n set(value) {\n // Special state when the reloader is disabled temporarly (see GraphQL plugin example).\n if (state.isWatching === false && value === true) {\n state.shouldReload += 1;\n }\n state.isWatching = value;\n },\n get() {\n return state.isWatching;\n },\n });\n\n reload.isReloading = false;\n reload.isWatching = true;\n\n return reload;\n};\n\nexport type LoadedStrapi = Required<Strapi>;\n\nclass Strapi extends Container implements Core.Strapi {\n server: Modules.Server.Server;\n\n log: Logger;\n\n fs: Core.StrapiFS;\n\n eventHub: Modules.EventHub.EventHub;\n\n startupLogger: Core.StartupLogger;\n\n cron: Modules.Cron.CronService;\n\n webhookRunner?: WebhookRunner;\n\n webhookStore?: Modules.WebhookStore.WebhookStore;\n\n store?: Modules.CoreStore.CoreStore;\n\n entityValidator?: Modules.EntityValidator.EntityValidator;\n\n /**\n * @deprecated `strapi.entityService` will be removed in the next major version\n */\n entityService?: Modules.EntityService.EntityService;\n\n documents?: Modules.Documents.Service;\n\n telemetry: Modules.Metrics.TelemetryService;\n\n requestContext: Modules.RequestContext.RequestContext;\n\n customFields: Modules.CustomFields.CustomFields;\n\n fetch: Modules.Fetch.Fetch;\n\n dirs: Core.StrapiDirectories;\n\n admin?: Core.Module;\n\n isLoaded: boolean;\n\n db: Database;\n\n app: any;\n\n EE?: boolean;\n\n reload: Core.Reloader;\n\n features: FeaturesService;\n\n // @ts-expect-error - Assigned in constructor\n ee: Core.Strapi['ee'];\n\n constructor(opts: StrapiOptions = {}) {\n super();\n\n utils.destroyOnSignal(this);\n\n const rootDirs = resolveWorkingDirectories(opts);\n\n // Load the app configuration from the dist directory\n const appConfig = loadConfiguration(rootDirs, opts);\n\n // Instantiate the Strapi container\n this.add('config', registries.config(appConfig, this))\n .add('content-types', registries.contentTypes())\n .add('components', registries.components())\n .add('services', registries.services(this))\n .add('policies', registries.policies())\n .add('middlewares', registries.middlewares())\n .add('hooks', registries.hooks())\n .add('controllers', registries.controllers(this))\n .add('modules', registries.modules(this))\n .add('plugins', registries.plugins(this))\n .add('custom-fields', registries.customFields(this))\n .add('apis', registries.apis(this))\n .add('sanitizers', registries.sanitizers())\n .add('validators', registries.validators())\n .add('query-params', createQueryParamService(this))\n .add('content-api', createContentAPI(this))\n .add('auth', createAuth())\n .add('models', registries.models());\n\n // Create a mapping of every useful directory (for the app, dist and static directories)\n this.dirs = utils.getDirs(rootDirs, { strapi: this });\n\n // Strapi state management variables\n this.isLoaded = false;\n this.reload = reloader(this);\n\n // Instantiate the Koa app & the HTTP server\n this.server = createServer(this);\n\n // Strapi utils instantiation\n this.fs = createStrapiFs(this);\n this.eventHub = createEventHub();\n this.startupLogger = utils.createStartupLogger(this);\n\n const logConfig = {\n level: 'http', // Strapi defaults to level 'http'\n ...this.config.get('logger'), // DEPRECATED\n ...this.config.get('server.logger.config'),\n };\n\n this.log = createLogger(logConfig);\n this.cron = createCronService();\n this.telemetry = createTelemetry(this);\n this.requestContext = requestContext;\n this.customFields = createCustomFields(this);\n this.fetch = utils.createStrapiFetch(this);\n this.features = createFeaturesService(this);\n this.db = new Database(\n _.merge(this.config.get('database'), {\n settings: {\n migrations: {\n dir: path.join(this.dirs.app.root, 'database/migrations'),\n },\n },\n })\n );\n\n utils.createUpdateNotifier(this).notify();\n\n Object.defineProperty<Strapi>(this, 'EE', {\n get: () => {\n utils.ee.init(this.dirs.app.root, this.log);\n return utils.ee.isEE;\n },\n configurable: false,\n });\n\n Object.defineProperty<Strapi>(this, 'ee', {\n get: () => utils.ee,\n configurable: false,\n });\n }\n\n get config() {\n return this.get('config');\n }\n\n get services() {\n return this.get('services').getAll();\n }\n\n service(uid: UID.Service) {\n return this.get('services').get(uid);\n }\n\n get controllers() {\n return this.get('controllers').getAll();\n }\n\n controller(uid: UID.Controller) {\n return this.get('controllers').get(uid);\n }\n\n get contentTypes(): Schema.ContentTypes {\n return this.get('content-types').getAll();\n }\n\n contentType(name: UID.ContentType) {\n return this.get('content-types').get(name);\n }\n\n get components(): Schema.Components {\n return this.get('components').getAll();\n }\n\n get policies() {\n return this.get('policies').getAll();\n }\n\n policy(name: string) {\n return this.get('policies').get(name);\n }\n\n get middlewares() {\n return this.get('middlewares').getAll();\n }\n\n middleware(name: string) {\n return this.get('middlewares').get(name);\n }\n\n get plugins(): Record<string, Core.Plugin> {\n return this.get('plugins').getAll();\n }\n\n plugin(name: string): Core.Plugin {\n return this.get('plugins').get(name);\n }\n\n get hooks() {\n return this.get('hooks').getAll();\n }\n\n hook(name: string) {\n return this.get('hooks').get(name);\n }\n\n // api(name) {\n // return this.get('apis').get(name);\n // }\n\n get api(): Record<string, Core.Module> {\n return this.get('apis').getAll();\n }\n\n get auth() {\n return this.get('auth');\n }\n\n get contentAPI() {\n return this.get('content-api');\n }\n\n get sanitizers() {\n return this.get('sanitizers');\n }\n\n get validators() {\n return this.get('validators');\n }\n\n async start() {\n try {\n if (!this.isLoaded) {\n await this.load();\n }\n\n await this.listen();\n\n return this;\n } catch (error) {\n return this.stopWithError(error);\n }\n }\n\n async destroy() {\n this.log.info('Shutting down Strapi');\n await this.server.destroy();\n await this.runLifecyclesFunctions(utils.LIFECYCLES.DESTROY);\n\n this.eventHub.destroy();\n\n await this.db?.destroy();\n\n this.telemetry.destroy();\n this.cron.destroy();\n\n process.removeAllListeners();\n\n // @ts-expect-error: Allow clean delete of global.strapi to allow re-instanciation\n delete global.strapi;\n\n this.log.info('Strapi has been shut down');\n }\n\n sendStartupTelemetry() {\n // Emit started event.\n // do not await to avoid slower startup\n // This event is anonymous\n this.telemetry\n .send('didStartServer', {\n groupProperties: {\n database: this.config.get('database.connection.client'),\n plugins: Object.keys(this.plugins),\n numberOfAllContentTypes: _.size(this.contentTypes), // 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.\n numberOfComponents: _.size(this.components),\n numberOfDynamicZones: getNumberOfDynamicZones(),\n numberOfCustomControllers: Object.values<Core.Controller>(this.controllers).filter(\n // TODO: Fix this at the content API loader level to prevent future types issues\n (controller) => controller !== undefined && factories.isCustomController(controller)\n ).length,\n environment: this.config.environment,\n // TODO: to add back\n // providers: this.config.installedProviders,\n },\n })\n .catch(this.log.error);\n }\n\n async openAdmin({ isInitialized }: { isInitialized: boolean }) {\n const shouldOpenAdmin =\n this.config.get('environment') === 'development' &&\n this.config.get('admin.autoOpen', true) !== false;\n\n if (shouldOpenAdmin && !isInitialized) {\n try {\n await utils.openBrowser(this.config);\n this.telemetry.send('didOpenTab');\n } catch (e) {\n this.telemetry.send('didNotOpenTab');\n }\n }\n }\n\n async postListen() {\n const isInitialized = await utils.isInitialized(this);\n\n this.startupLogger.logStartupMessage({ isInitialized });\n\n this.log.info('Strapi started successfully');\n this.sendStartupTelemetry();\n this.openAdmin({ isInitialized });\n }\n\n /**\n * Add behaviors to the server\n */\n async listen() {\n return new Promise<void>((resolve, reject) => {\n const onListen = async () => {\n try {\n await this.postListen();\n\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n\n const listenSocket = this.config.get('server.socket');\n\n if (listenSocket) {\n this.server.listen(listenSocket, onListen);\n } else {\n const { host, port } = this.config.get('server');\n\n this.server.listen(port, host, onListen);\n }\n });\n }\n\n stopWithError(err: unknown, customMessage?: string): never {\n this.log.debug(`⛔️ Server wasn't able to start properly.`);\n if (customMessage) {\n this.log.error(customMessage);\n }\n\n this.log.error(err);\n return this.stop();\n }\n\n stop(exitCode = 1): never {\n this.destroy();\n\n if (this.config.get('autoReload')) {\n process.send?.('stop');\n }\n\n // Kill process\n process.exit(exitCode);\n }\n\n registerInternalHooks() {\n this.get('hooks').set('strapi::content-types.beforeSync', hooks.createAsyncParallelHook());\n this.get('hooks').set('strapi::content-types.afterSync', hooks.createAsyncParallelHook());\n\n this.hook('strapi::content-types.beforeSync').register(draftAndPublishSync.disable);\n this.hook('strapi::content-types.afterSync').register(draftAndPublishSync.enable);\n }\n\n async register() {\n await loaders.loadApplicationContext(this);\n\n this.get('models').add(coreStoreModel).add(webhookModel);\n\n // init webhook runner\n this.webhookRunner = createWebhookRunner({\n eventHub: this.eventHub,\n logger: this.log,\n configuration: this.config.get('server.webhooks', {}),\n fetch: this.fetch,\n });\n\n this.registerInternalHooks();\n\n this.telemetry.register();\n\n await this.runLifecyclesFunctions(utils.LIFECYCLES.REGISTER);\n // NOTE: Swap type customField for underlying data type\n utils.convertCustomFieldType(this);\n\n return this;\n }\n\n async bootstrap() {\n const models = [\n ...utils.transformContentTypesToModels([\n ...Object.values(this.contentTypes),\n ...Object.values(this.components),\n ]),\n ...this.get('models').get(),\n ];\n\n await this.db.init({ models });\n\n this.store = createCoreStore({ db: this.db });\n this.webhookStore = createWebhookStore({ db: this.db });\n\n this.entityValidator = entityValidator;\n this.entityService = createEntityService({\n strapi: this,\n db: this.db,\n });\n\n this.documents = createDocumentService(this);\n\n if (this.config.get('server.cron.enabled', true)) {\n const cronTasks = this.config.get('server.cron.tasks', {});\n this.cron.add(cronTasks);\n }\n\n this.telemetry.bootstrap();\n\n let oldContentTypes;\n if (await this.db.getSchemaConnection().hasTable(coreStoreModel.tableName)) {\n oldContentTypes = await this.store.get({\n type: 'strapi',\n name: 'content_types',\n key: 'schema',\n });\n }\n\n await this.hook('strapi::content-types.beforeSync').call({\n oldContentTypes,\n contentTypes: this.contentTypes,\n });\n\n await this.db.schema.sync();\n\n if (this.EE) {\n await utils.ee.checkLicense({ strapi: this });\n }\n\n await this.hook('strapi::content-types.afterSync').call({\n oldContentTypes,\n contentTypes: this.contentTypes,\n });\n\n await this.store.set({\n type: 'strapi',\n name: 'content_types',\n key: 'schema',\n value: this.contentTypes,\n });\n\n await this.startWebhooks();\n\n await this.server.initMiddlewares();\n this.server.initRouting();\n\n await this.contentAPI.permissions.registerActions();\n\n await this.runLifecyclesFunctions(utils.LIFECYCLES.BOOTSTRAP);\n\n this.cron.start();\n\n return this;\n }\n\n async load() {\n await this.register();\n await this.bootstrap();\n\n this.isLoaded = true;\n\n return this as this & Required<Core.Strapi>;\n }\n\n async startWebhooks() {\n const webhooks = await this.webhookStore?.findWebhooks();\n if (!webhooks) {\n return;\n }\n\n for (const webhook of webhooks) {\n this.webhookRunner?.add(webhook);\n }\n }\n\n async runLifecyclesFunctions(lifecycleName: 'register' | 'bootstrap' | 'destroy') {\n // plugins\n await this.get('modules')[lifecycleName]();\n\n // admin\n const adminLifecycleFunction = this.admin && this.admin[lifecycleName];\n if (isFunction(adminLifecycleFunction)) {\n await adminLifecycleFunction({ strapi: this });\n }\n\n // user\n const userLifecycleFunction = this.app && this.app[lifecycleName];\n if (isFunction(userLifecycleFunction)) {\n await userLifecycleFunction({ strapi: this });\n }\n }\n\n getModel(uid: UID.ContentType): Schema.ContentType;\n getModel(uid: UID.Component): Schema.Component;\n getModel<TUID extends UID.Schema>(uid: TUID): Schema.ContentType | Schema.Component | undefined {\n if (uid in this.contentTypes) {\n return this.contentTypes[uid as UID.ContentType];\n }\n\n if (uid in this.components) {\n return this.components[uid as UID.Component];\n }\n }\n\n /**\n * @deprecated Use `strapi.db.query` instead\n */\n query(uid: UID.Schema) {\n return this.db.query(uid);\n }\n}\n\ninterface StrapiOptions {\n appDir?: string;\n distDir?: string;\n autoReload?: boolean;\n serveAdminPanel?: boolean;\n}\n\ninterface Init {\n (options?: StrapiOptions): Core.Strapi;\n factories: typeof factories;\n compile: typeof compile;\n}\n\nconst initFn = (options: StrapiOptions = {}): Core.Strapi => {\n const strapi = new Strapi(options);\n global.strapi = strapi as LoadedStrapi;\n return strapi;\n};\n\nconst init: Init = Object.assign(initFn, { factories, compile });\n\nexport default init;\n"],"names":["path","Container","utils.destroyOnSignal","loadConfiguration","registries.config","registries.contentTypes","registries.components","registries.services","registries.policies","registries.middlewares","registries.hooks","registries.controllers","registries.modules","registries.plugins","registries.customFields","registries.apis","registries.sanitizers","registries.validators","createQueryParamService","createContentAPI","createAuth","registries.models","utils.getDirs","createServer","createStrapiFs","createEventHub","utils.createStartupLogger","createLogger","createCronService","createTelemetry","createCustomFields","utils.createStrapiFetch","createFeaturesService","Database","_","utils.createUpdateNotifier","utils.ee","utils.LIFECYCLES","getNumberOfDynamicZones","factories.isCustomController","isInitialized","utils.openBrowser","utils.isInitialized","hooks","draftAndPublishSync.disable","draftAndPublishSync.enable","loaders.loadApplicationContext","coreStoreModel","webhookModel","createWebhookRunner","utils.convertCustomFieldType","models","utils.transformContentTypesToModels","createCoreStore","createWebhookStore","entityValidator","createEntityService","createDocumentService","isFunction"],"mappings":"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"}
1
+ {"version":3,"file":"Strapi.js","sources":["../src/Strapi.ts"],"sourcesContent":["import * as globalAgent from 'global-agent';\nimport path from 'path';\nimport _ from 'lodash';\nimport { isFunction } from 'lodash/fp';\nimport { Logger, createLogger } from '@strapi/logger';\nimport { Database } from '@strapi/database';\n\nimport type { Core, Modules, UID, Schema } from '@strapi/types';\n\nimport { loadConfiguration } from './configuration';\n\nimport * as factories from './factories';\n\nimport * as utils from './utils';\nimport { Container } from './container';\nimport createStrapiFs from './services/fs';\nimport createEventHub from './services/event-hub';\nimport { createServer } from './services/server';\nimport { createReloader } from './services/reloader';\n\nimport { providers } from './providers';\nimport createEntityService from './services/entity-service';\nimport createQueryParamService from './services/query-params';\n\nimport entityValidator from './services/entity-validator';\nimport requestContext from './services/request-context';\nimport createAuth from './services/auth';\nimport createCustomFields from './services/custom-fields';\nimport createContentAPI from './services/content-api';\nimport getNumberOfDynamicZones from './services/utils/dynamic-zones';\nimport { FeaturesService, createFeaturesService } from './services/features';\nimport { createDocumentService } from './services/document-service';\n\nimport { coreStoreModel } from './services/core-store';\nimport { createConfigProvider } from './services/config';\n\nclass Strapi extends Container implements Core.Strapi {\n app: any;\n\n isLoaded: boolean = false;\n\n internal_config: Record<string, unknown> = {};\n\n constructor(opts: StrapiOptions) {\n super();\n\n this.internal_config = loadConfiguration(opts);\n\n this.registerInternalServices();\n\n for (const provider of providers) {\n provider.init?.(this);\n }\n }\n\n get admin(): Core.Module {\n return this.get('admin');\n }\n\n get EE(): boolean {\n return utils.ee.isEE;\n }\n\n get ee(): Core.Strapi['ee'] {\n return utils.ee;\n }\n\n get dirs(): Core.StrapiDirectories {\n return this.config.get('dirs');\n }\n\n get reload(): Core.Reloader {\n return this.get('reload');\n }\n\n get db(): Database {\n return this.get('db');\n }\n\n get requestContext(): Modules.RequestContext.RequestContext {\n return this.get('requestContext');\n }\n\n get customFields(): Modules.CustomFields.CustomFields {\n return this.get('customFields');\n }\n\n get entityValidator(): Modules.EntityValidator.EntityValidator {\n return this.get('entityValidator');\n }\n\n /**\n * @deprecated `strapi.entityService` will be removed in the next major version\n */\n get entityService(): Modules.EntityService.EntityService {\n return this.get('entityService');\n }\n\n get documents(): Modules.Documents.Service {\n return this.get('documents');\n }\n\n get features(): FeaturesService {\n return this.get('features');\n }\n\n get fetch(): Modules.Fetch.Fetch {\n return this.get('fetch');\n }\n\n get cron(): Modules.Cron.CronService {\n return this.get('cron');\n }\n\n get log(): Logger {\n return this.get('logger');\n }\n\n get startupLogger(): Core.StartupLogger {\n return this.get('startupLogger');\n }\n\n get eventHub(): Modules.EventHub.EventHub {\n return this.get('eventHub');\n }\n\n get fs(): Core.StrapiFS {\n return this.get('fs');\n }\n\n get server(): Modules.Server.Server {\n return this.get('server');\n }\n\n get telemetry(): Modules.Metrics.TelemetryService {\n return this.get('telemetry');\n }\n\n get store(): Modules.CoreStore.CoreStore {\n return this.get('coreStore');\n }\n\n get config() {\n return this.get('config');\n }\n\n get services() {\n return this.get('services').getAll();\n }\n\n service(uid: UID.Service) {\n return this.get('services').get(uid);\n }\n\n get controllers() {\n return this.get('controllers').getAll();\n }\n\n controller(uid: UID.Controller) {\n return this.get('controllers').get(uid);\n }\n\n get contentTypes(): Schema.ContentTypes {\n return this.get('content-types').getAll();\n }\n\n contentType(name: UID.ContentType) {\n return this.get('content-types').get(name);\n }\n\n get components(): Schema.Components {\n return this.get('components').getAll();\n }\n\n get policies() {\n return this.get('policies').getAll();\n }\n\n policy(name: string) {\n return this.get('policies').get(name);\n }\n\n get middlewares() {\n return this.get('middlewares').getAll();\n }\n\n middleware(name: string) {\n return this.get('middlewares').get(name);\n }\n\n get plugins(): Record<string, Core.Plugin> {\n return this.get('plugins').getAll();\n }\n\n plugin(name: string): Core.Plugin {\n return this.get('plugins').get(name);\n }\n\n get hooks() {\n return this.get('hooks').getAll();\n }\n\n hook(name: string) {\n return this.get('hooks').get(name);\n }\n\n get apis() {\n return this.get('apis').getAll();\n }\n\n api(name: string): Core.Module {\n return this.get('apis').get(name);\n }\n\n get auth() {\n return this.get('auth');\n }\n\n get contentAPI() {\n return this.get('content-api');\n }\n\n get sanitizers() {\n return this.get('sanitizers');\n }\n\n get validators() {\n return this.get('validators');\n }\n\n async start() {\n try {\n if (!this.isLoaded) {\n await this.load();\n }\n\n await this.listen();\n\n return this;\n } catch (error) {\n return this.stopWithError(error);\n }\n }\n\n // TODO: split into more providers\n registerInternalServices() {\n const config = createConfigProvider(this.internal_config, this);\n\n const logger = createLogger({\n level: 'http', // Strapi defaults to level 'http'\n ...config.get('logger'), // DEPRECATED\n ...config.get('server.logger.config'),\n });\n\n // Instantiate the Strapi container\n this.add('config', () => config)\n .add('query-params', createQueryParamService(this))\n .add('content-api', createContentAPI(this))\n .add('auth', createAuth())\n .add('server', () => createServer(this))\n .add('fs', () => createStrapiFs(this))\n .add('eventHub', () => createEventHub())\n .add('startupLogger', () => utils.createStartupLogger(this))\n .add('logger', () => logger)\n .add('fetch', () => utils.createStrapiFetch(this))\n .add('features', () => createFeaturesService(this))\n .add('requestContext', requestContext)\n .add('customFields', createCustomFields(this))\n .add('entityValidator', entityValidator)\n .add('entityService', () => createEntityService({ strapi: this, db: this.db }))\n .add('documents', () => createDocumentService(this))\n .add(\n 'db',\n () =>\n new Database(\n _.merge(this.config.get('database'), {\n logger,\n settings: {\n migrations: {\n dir: path.join(this.dirs.app.root, 'database/migrations'),\n },\n },\n })\n )\n )\n .add('reload', () => createReloader(this));\n }\n\n sendStartupTelemetry() {\n // Emit started event.\n // do not await to avoid slower startup\n // This event is anonymous\n this.telemetry\n .send('didStartServer', {\n groupProperties: {\n database: this.config.get('database.connection.client'),\n plugins: Object.keys(this.plugins),\n numberOfAllContentTypes: _.size(this.contentTypes), // 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.\n numberOfComponents: _.size(this.components),\n numberOfDynamicZones: getNumberOfDynamicZones(),\n numberOfCustomControllers: Object.values<Core.Controller>(this.controllers).filter(\n // TODO: Fix this at the content API loader level to prevent future types issues\n (controller) => controller !== undefined && factories.isCustomController(controller)\n ).length,\n environment: this.config.environment,\n // TODO: to add back\n // providers: this.config.installedProviders,\n },\n })\n .catch(this.log.error);\n }\n\n async openAdmin({ isInitialized }: { isInitialized: boolean }) {\n const shouldOpenAdmin =\n this.config.get('environment') === 'development' &&\n this.config.get('admin.autoOpen', true) !== false;\n\n if (shouldOpenAdmin && !isInitialized) {\n try {\n await utils.openBrowser(this.config);\n this.telemetry.send('didOpenTab');\n } catch (e) {\n this.telemetry.send('didNotOpenTab');\n }\n }\n }\n\n async postListen() {\n const isInitialized = await utils.isInitialized(this);\n\n this.startupLogger.logStartupMessage({ isInitialized });\n\n this.log.info('Strapi started successfully');\n this.sendStartupTelemetry();\n this.openAdmin({ isInitialized });\n }\n\n /**\n * Add behaviors to the server\n */\n async listen() {\n return new Promise<void>((resolve, reject) => {\n const onListen = async () => {\n try {\n await this.postListen();\n\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n\n const listenSocket = this.config.get('server.socket');\n\n if (listenSocket) {\n this.server.listen(listenSocket, onListen);\n } else {\n const { host, port } = this.config.get('server');\n\n this.server.listen(port, host, onListen);\n }\n });\n }\n\n stopWithError(err: unknown, customMessage?: string): never {\n this.log.debug(`⛔️ Server wasn't able to start properly.`);\n if (customMessage) {\n this.log.error(customMessage);\n }\n\n this.log.error(err);\n return this.stop();\n }\n\n stop(exitCode = 1): never {\n this.destroy();\n\n if (this.config.get('autoReload')) {\n process.send?.('stop');\n }\n\n // Kill process\n process.exit(exitCode);\n }\n\n async load() {\n await this.register();\n await this.bootstrap();\n\n this.isLoaded = true;\n\n return this;\n }\n\n async register() {\n // @ts-expect-error: init is internal\n this.ee.init(this.dirs.app.root, this.log);\n\n for (const provider of providers) {\n await provider.register?.(this);\n }\n\n await this.runPluginsLifecycles(utils.LIFECYCLES.REGISTER);\n await this.runUserLifecycles(utils.LIFECYCLES.REGISTER);\n\n // NOTE: Swap type customField for underlying data type\n utils.convertCustomFieldType(this);\n\n return this;\n }\n\n async bootstrap() {\n this.configureGlobalProxy();\n\n const models = [\n ...utils.transformContentTypesToModels(\n [...Object.values(this.contentTypes), ...Object.values(this.components)],\n this.db.metadata.identifiers\n ),\n ...this.get('models').get(),\n ];\n\n await this.db.init({ models });\n\n let oldContentTypes;\n if (await this.db.getSchemaConnection().hasTable(coreStoreModel.tableName)) {\n oldContentTypes = await this.store.get({\n type: 'strapi',\n name: 'content_types',\n key: 'schema',\n });\n }\n\n await this.hook('strapi::content-types.beforeSync').call({\n oldContentTypes,\n contentTypes: this.contentTypes,\n });\n\n await this.db.schema.sync();\n\n if (this.EE) {\n await utils.ee.checkLicense({ strapi: this });\n }\n\n await this.hook('strapi::content-types.afterSync').call({\n oldContentTypes,\n contentTypes: this.contentTypes,\n });\n\n await this.store.set({\n type: 'strapi',\n name: 'content_types',\n key: 'schema',\n value: this.contentTypes,\n });\n\n await this.server.initMiddlewares();\n this.server.initRouting();\n\n await this.contentAPI.permissions.registerActions();\n\n await this.runPluginsLifecycles(utils.LIFECYCLES.BOOTSTRAP);\n\n for (const provider of providers) {\n await provider.bootstrap?.(this);\n }\n\n await this.runUserLifecycles(utils.LIFECYCLES.BOOTSTRAP);\n\n return this;\n }\n\n configureGlobalProxy() {\n const globalProxy = this.config.get('server.proxy.global');\n const httpProxy = this.config.get('server.proxy.http') || globalProxy;\n const httpsProxy = this.config.get('server.proxy.https') || globalProxy;\n\n if (!httpProxy && !httpsProxy) {\n return;\n }\n\n globalAgent.bootstrap();\n\n if (httpProxy) {\n this.log.info(`Using HTTP proxy: ${httpProxy}`);\n (global as any).GLOBAL_AGENT.HTTP_PROXY = httpProxy;\n }\n\n if (httpsProxy) {\n this.log.info(`Using HTTPS proxy: ${httpsProxy}`);\n (global as any).GLOBAL_AGENT.HTTPS_PROXY = httpsProxy;\n }\n }\n\n async destroy() {\n this.log.info('Shutting down Strapi');\n await this.runPluginsLifecycles(utils.LIFECYCLES.DESTROY);\n\n for (const provider of providers) {\n await provider.destroy?.(this);\n }\n\n await this.runUserLifecycles(utils.LIFECYCLES.DESTROY);\n\n await this.server.destroy();\n\n this.eventHub.destroy();\n\n await this.db?.destroy();\n\n process.removeAllListeners();\n\n // @ts-expect-error: Allow clean delete of global.strapi to allow re-instanciation\n delete global.strapi;\n\n this.log.info('Strapi has been shut down');\n }\n\n async runPluginsLifecycles(lifecycleName: 'register' | 'bootstrap' | 'destroy') {\n // plugins\n await this.get('modules')[lifecycleName]();\n }\n\n async runUserLifecycles(lifecycleName: 'register' | 'bootstrap' | 'destroy') {\n // user\n const userLifecycleFunction = this.app && this.app[lifecycleName];\n if (isFunction(userLifecycleFunction)) {\n await userLifecycleFunction({ strapi: this });\n }\n }\n\n getModel(uid: UID.ContentType): Schema.ContentType;\n getModel(uid: UID.Component): Schema.Component;\n getModel<TUID extends UID.Schema>(uid: TUID): Schema.ContentType | Schema.Component | undefined {\n if (uid in this.contentTypes) {\n return this.contentTypes[uid as UID.ContentType];\n }\n\n if (uid in this.components) {\n return this.components[uid as UID.Component];\n }\n }\n\n /**\n * @deprecated Use `strapi.db.query` instead\n */\n query(uid: UID.Schema) {\n return this.db.query(uid);\n }\n}\n\nexport interface StrapiOptions {\n appDir: string;\n distDir: string;\n autoReload?: boolean;\n serveAdminPanel?: boolean;\n}\n\nexport default Strapi;\n"],"names":["Container","loadConfiguration","providers","utils.ee","config","createConfigProvider","logger","createLogger","createQueryParamService","createContentAPI","createAuth","createServer","createStrapiFs","createEventHub","utils.createStartupLogger","utils.createStrapiFetch","createFeaturesService","createCustomFields","entityValidator","createEntityService","createDocumentService","Database","_","path","createReloader","getNumberOfDynamicZones","factories.isCustomController","isInitialized","utils.openBrowser","utils.isInitialized","utils.LIFECYCLES","utils.convertCustomFieldType","utils.transformContentTypesToModels","coreStoreModel","globalAgent","isFunction"],"mappings":"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"}