@strapi/core 5.0.0-beta.0 → 5.0.0-beta.10

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