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

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 (563) hide show
  1. package/dist/Strapi.d.ts +38 -36
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +31 -12
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +31 -12
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/index.d.ts.map +1 -1
  8. package/dist/configuration/index.js +4 -4
  9. package/dist/configuration/index.js.map +1 -1
  10. package/dist/configuration/index.mjs +1 -1
  11. package/dist/configuration/index.mjs.map +1 -1
  12. package/dist/configuration/urls.d.ts +8 -0
  13. package/dist/configuration/urls.d.ts.map +1 -0
  14. package/dist/configuration/urls.js +68 -0
  15. package/dist/configuration/urls.js.map +1 -0
  16. package/dist/configuration/urls.mjs +66 -0
  17. package/dist/configuration/urls.mjs.map +1 -0
  18. package/dist/container.d.ts +2 -2
  19. package/dist/container.d.ts.map +1 -1
  20. package/dist/container.js.map +1 -1
  21. package/dist/container.mjs.map +1 -1
  22. package/dist/core-api/controller/collection-type.d.ts +3 -3
  23. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  24. package/dist/core-api/controller/collection-type.js.map +1 -1
  25. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  26. package/dist/core-api/controller/index.d.ts +3 -3
  27. package/dist/core-api/controller/index.d.ts.map +1 -1
  28. package/dist/core-api/controller/index.js +11 -6
  29. package/dist/core-api/controller/index.js.map +1 -1
  30. package/dist/core-api/controller/index.mjs +12 -7
  31. package/dist/core-api/controller/index.mjs.map +1 -1
  32. package/dist/core-api/controller/single-type.d.ts +3 -3
  33. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  34. package/dist/core-api/controller/single-type.js.map +1 -1
  35. package/dist/core-api/controller/single-type.mjs.map +1 -1
  36. package/dist/core-api/controller/transform.d.ts +10 -9
  37. package/dist/core-api/controller/transform.d.ts.map +1 -1
  38. package/dist/core-api/controller/transform.js +19 -13
  39. package/dist/core-api/controller/transform.js.map +1 -1
  40. package/dist/core-api/controller/transform.mjs +19 -13
  41. package/dist/core-api/controller/transform.mjs.map +1 -1
  42. package/dist/core-api/service/collection-type.d.ts +10 -10
  43. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  44. package/dist/core-api/service/collection-type.js.map +1 -1
  45. package/dist/core-api/service/collection-type.mjs.map +1 -1
  46. package/dist/core-api/service/index.d.ts +3 -3
  47. package/dist/core-api/service/index.d.ts.map +1 -1
  48. package/dist/core-api/service/index.js.map +1 -1
  49. package/dist/core-api/service/index.mjs.map +1 -1
  50. package/dist/core-api/service/single-type.d.ts +5 -5
  51. package/dist/core-api/service/single-type.d.ts.map +1 -1
  52. package/dist/core-api/service/single-type.js +3 -4
  53. package/dist/core-api/service/single-type.js.map +1 -1
  54. package/dist/core-api/service/single-type.mjs +3 -4
  55. package/dist/core-api/service/single-type.mjs.map +1 -1
  56. package/dist/domain/content-type/index.d.ts +1 -1
  57. package/dist/domain/content-type/index.d.ts.map +1 -1
  58. package/dist/domain/content-type/index.js +3 -0
  59. package/dist/domain/content-type/index.js.map +1 -1
  60. package/dist/domain/content-type/index.mjs +3 -0
  61. package/dist/domain/content-type/index.mjs.map +1 -1
  62. package/dist/domain/content-type/validator.d.ts.map +1 -1
  63. package/dist/domain/content-type/validator.js +1 -1
  64. package/dist/domain/content-type/validator.js.map +1 -1
  65. package/dist/domain/content-type/validator.mjs +2 -2
  66. package/dist/domain/content-type/validator.mjs.map +1 -1
  67. package/dist/domain/module/index.d.ts +24 -23
  68. package/dist/domain/module/index.d.ts.map +1 -1
  69. package/dist/domain/module/index.js +3 -3
  70. package/dist/domain/module/index.js.map +1 -1
  71. package/dist/domain/module/index.mjs +4 -4
  72. package/dist/domain/module/index.mjs.map +1 -1
  73. package/dist/ee/index.d.ts +2 -2
  74. package/dist/ee/index.d.ts.map +1 -1
  75. package/dist/ee/index.js.map +1 -1
  76. package/dist/ee/index.mjs.map +1 -1
  77. package/dist/ee/license.d.ts +2 -2
  78. package/dist/ee/license.d.ts.map +1 -1
  79. package/dist/ee/license.js.map +1 -1
  80. package/dist/ee/license.mjs.map +1 -1
  81. package/dist/factories.d.ts +10 -10
  82. package/dist/factories.d.ts.map +1 -1
  83. package/dist/factories.js +6 -2
  84. package/dist/factories.js.map +1 -1
  85. package/dist/factories.mjs +6 -2
  86. package/dist/factories.mjs.map +1 -1
  87. package/dist/loaders/admin.d.ts +2 -2
  88. package/dist/loaders/admin.d.ts.map +1 -1
  89. package/dist/loaders/admin.js.map +1 -1
  90. package/dist/loaders/admin.mjs.map +1 -1
  91. package/dist/loaders/apis.d.ts +2 -2
  92. package/dist/loaders/apis.d.ts.map +1 -1
  93. package/dist/loaders/apis.js +1 -1
  94. package/dist/loaders/apis.js.map +1 -1
  95. package/dist/loaders/apis.mjs +2 -2
  96. package/dist/loaders/apis.mjs.map +1 -1
  97. package/dist/loaders/components.d.ts +2 -2
  98. package/dist/loaders/components.d.ts.map +1 -1
  99. package/dist/loaders/components.js.map +1 -1
  100. package/dist/loaders/components.mjs.map +1 -1
  101. package/dist/loaders/index.d.ts +2 -2
  102. package/dist/loaders/index.d.ts.map +1 -1
  103. package/dist/loaders/index.js.map +1 -1
  104. package/dist/loaders/index.mjs.map +1 -1
  105. package/dist/loaders/middlewares.d.ts +2 -2
  106. package/dist/loaders/middlewares.d.ts.map +1 -1
  107. package/dist/loaders/middlewares.js.map +1 -1
  108. package/dist/loaders/middlewares.mjs.map +1 -1
  109. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  110. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  111. package/dist/loaders/plugins/get-enabled-plugins.js +2 -1
  112. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  113. package/dist/loaders/plugins/get-enabled-plugins.mjs +3 -2
  114. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  115. package/dist/loaders/plugins/index.d.ts +2 -2
  116. package/dist/loaders/plugins/index.d.ts.map +1 -1
  117. package/dist/loaders/plugins/index.js.map +1 -1
  118. package/dist/loaders/plugins/index.mjs.map +1 -1
  119. package/dist/loaders/policies.d.ts +2 -2
  120. package/dist/loaders/policies.d.ts.map +1 -1
  121. package/dist/loaders/policies.js.map +1 -1
  122. package/dist/loaders/policies.mjs.map +1 -1
  123. package/dist/loaders/sanitizers.d.ts +2 -2
  124. package/dist/loaders/sanitizers.d.ts.map +1 -1
  125. package/dist/loaders/sanitizers.js.map +1 -1
  126. package/dist/loaders/sanitizers.mjs.map +1 -1
  127. package/dist/loaders/src-index.d.ts +2 -2
  128. package/dist/loaders/src-index.d.ts.map +1 -1
  129. package/dist/loaders/src-index.js.map +1 -1
  130. package/dist/loaders/src-index.mjs.map +1 -1
  131. package/dist/loaders/validators.d.ts +2 -2
  132. package/dist/loaders/validators.d.ts.map +1 -1
  133. package/dist/loaders/validators.js.map +1 -1
  134. package/dist/loaders/validators.mjs.map +1 -1
  135. package/dist/middlewares/body.d.ts +2 -2
  136. package/dist/middlewares/body.d.ts.map +1 -1
  137. package/dist/middlewares/body.js.map +1 -1
  138. package/dist/middlewares/body.mjs.map +1 -1
  139. package/dist/middlewares/compression.d.ts +2 -2
  140. package/dist/middlewares/compression.d.ts.map +1 -1
  141. package/dist/middlewares/compression.js.map +1 -1
  142. package/dist/middlewares/compression.mjs.map +1 -1
  143. package/dist/middlewares/cors.d.ts +2 -2
  144. package/dist/middlewares/cors.d.ts.map +1 -1
  145. package/dist/middlewares/cors.js.map +1 -1
  146. package/dist/middlewares/cors.mjs.map +1 -1
  147. package/dist/middlewares/errors.d.ts +2 -2
  148. package/dist/middlewares/errors.d.ts.map +1 -1
  149. package/dist/middlewares/errors.js.map +1 -1
  150. package/dist/middlewares/errors.mjs.map +1 -1
  151. package/dist/middlewares/favicon.d.ts +2 -2
  152. package/dist/middlewares/favicon.d.ts.map +1 -1
  153. package/dist/middlewares/favicon.js.map +1 -1
  154. package/dist/middlewares/favicon.mjs.map +1 -1
  155. package/dist/middlewares/index.d.ts +2 -2
  156. package/dist/middlewares/index.d.ts.map +1 -1
  157. package/dist/middlewares/index.js.map +1 -1
  158. package/dist/middlewares/index.mjs.map +1 -1
  159. package/dist/middlewares/ip.d.ts +2 -2
  160. package/dist/middlewares/ip.d.ts.map +1 -1
  161. package/dist/middlewares/ip.js.map +1 -1
  162. package/dist/middlewares/ip.mjs.map +1 -1
  163. package/dist/middlewares/logger.d.ts +2 -2
  164. package/dist/middlewares/logger.d.ts.map +1 -1
  165. package/dist/middlewares/logger.js.map +1 -1
  166. package/dist/middlewares/logger.mjs.map +1 -1
  167. package/dist/middlewares/powered-by.d.ts +2 -2
  168. package/dist/middlewares/powered-by.d.ts.map +1 -1
  169. package/dist/middlewares/powered-by.js.map +1 -1
  170. package/dist/middlewares/powered-by.mjs.map +1 -1
  171. package/dist/middlewares/public.d.ts +2 -2
  172. package/dist/middlewares/public.d.ts.map +1 -1
  173. package/dist/middlewares/public.js.map +1 -1
  174. package/dist/middlewares/public.mjs.map +1 -1
  175. package/dist/middlewares/query.d.ts +2 -2
  176. package/dist/middlewares/query.d.ts.map +1 -1
  177. package/dist/middlewares/query.js.map +1 -1
  178. package/dist/middlewares/query.mjs.map +1 -1
  179. package/dist/middlewares/response-time.d.ts +2 -2
  180. package/dist/middlewares/response-time.d.ts.map +1 -1
  181. package/dist/middlewares/response-time.js.map +1 -1
  182. package/dist/middlewares/response-time.mjs.map +1 -1
  183. package/dist/middlewares/responses.d.ts +3 -3
  184. package/dist/middlewares/responses.d.ts.map +1 -1
  185. package/dist/middlewares/responses.js.map +1 -1
  186. package/dist/middlewares/responses.mjs.map +1 -1
  187. package/dist/middlewares/security.d.ts +2 -2
  188. package/dist/middlewares/security.d.ts.map +1 -1
  189. package/dist/middlewares/security.js +2 -2
  190. package/dist/middlewares/security.js.map +1 -1
  191. package/dist/middlewares/security.mjs +2 -2
  192. package/dist/middlewares/security.mjs.map +1 -1
  193. package/dist/middlewares/session.d.ts +2 -2
  194. package/dist/middlewares/session.d.ts.map +1 -1
  195. package/dist/middlewares/session.js.map +1 -1
  196. package/dist/middlewares/session.mjs.map +1 -1
  197. package/dist/migrations/draft-publish.d.ts +17 -0
  198. package/dist/migrations/draft-publish.d.ts.map +1 -0
  199. package/dist/migrations/draft-publish.js +59 -0
  200. package/dist/migrations/draft-publish.js.map +1 -0
  201. package/dist/migrations/draft-publish.mjs +59 -0
  202. package/dist/migrations/draft-publish.mjs.map +1 -0
  203. package/dist/registries/apis.d.ts +2 -2
  204. package/dist/registries/apis.d.ts.map +1 -1
  205. package/dist/registries/apis.js.map +1 -1
  206. package/dist/registries/apis.mjs.map +1 -1
  207. package/dist/registries/components.d.ts +6 -6
  208. package/dist/registries/components.d.ts.map +1 -1
  209. package/dist/registries/components.js.map +1 -1
  210. package/dist/registries/components.mjs.map +1 -1
  211. package/dist/registries/config.d.ts +2 -2
  212. package/dist/registries/config.d.ts.map +1 -1
  213. package/dist/registries/config.js +26 -6
  214. package/dist/registries/config.js.map +1 -1
  215. package/dist/registries/config.mjs +27 -5
  216. package/dist/registries/config.mjs.map +1 -1
  217. package/dist/registries/content-types.d.ts +5 -5
  218. package/dist/registries/content-types.d.ts.map +1 -1
  219. package/dist/registries/content-types.js.map +1 -1
  220. package/dist/registries/content-types.mjs.map +1 -1
  221. package/dist/registries/controllers.d.ts +10 -10
  222. package/dist/registries/controllers.d.ts.map +1 -1
  223. package/dist/registries/controllers.js.map +1 -1
  224. package/dist/registries/controllers.mjs.map +1 -1
  225. package/dist/registries/custom-fields.d.ts +3 -3
  226. package/dist/registries/custom-fields.d.ts.map +1 -1
  227. package/dist/registries/custom-fields.js.map +1 -1
  228. package/dist/registries/custom-fields.mjs.map +1 -1
  229. package/dist/registries/middlewares.d.ts +6 -6
  230. package/dist/registries/middlewares.d.ts.map +1 -1
  231. package/dist/registries/middlewares.js.map +1 -1
  232. package/dist/registries/middlewares.mjs.map +1 -1
  233. package/dist/registries/modules.d.ts +2 -2
  234. package/dist/registries/modules.d.ts.map +1 -1
  235. package/dist/registries/modules.js.map +1 -1
  236. package/dist/registries/modules.mjs.map +1 -1
  237. package/dist/registries/plugins.d.ts +5 -5
  238. package/dist/registries/plugins.d.ts.map +1 -1
  239. package/dist/registries/plugins.js.map +1 -1
  240. package/dist/registries/plugins.mjs.map +1 -1
  241. package/dist/registries/policies.d.ts +23 -11
  242. package/dist/registries/policies.d.ts.map +1 -1
  243. package/dist/registries/policies.js +64 -18
  244. package/dist/registries/policies.js.map +1 -1
  245. package/dist/registries/policies.mjs +65 -19
  246. package/dist/registries/policies.mjs.map +1 -1
  247. package/dist/registries/services.d.ts +8 -8
  248. package/dist/registries/services.d.ts.map +1 -1
  249. package/dist/registries/services.js.map +1 -1
  250. package/dist/registries/services.mjs.map +1 -1
  251. package/dist/services/auth/index.d.ts +4 -4
  252. package/dist/services/auth/index.d.ts.map +1 -1
  253. package/dist/services/auth/index.js.map +1 -1
  254. package/dist/services/auth/index.mjs.map +1 -1
  255. package/dist/services/content-api/index.d.ts +21 -3
  256. package/dist/services/content-api/index.d.ts.map +1 -1
  257. package/dist/services/content-api/index.js +27 -1
  258. package/dist/services/content-api/index.js.map +1 -1
  259. package/dist/services/content-api/index.mjs +27 -1
  260. package/dist/services/content-api/index.mjs.map +1 -1
  261. package/dist/services/content-api/permissions/index.d.ts +3 -3
  262. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  263. package/dist/services/content-api/permissions/index.js.map +1 -1
  264. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  265. package/dist/services/cron.d.ts +2 -2
  266. package/dist/services/cron.d.ts.map +1 -1
  267. package/dist/services/cron.js.map +1 -1
  268. package/dist/services/cron.mjs.map +1 -1
  269. package/dist/services/custom-fields.d.ts +2 -2
  270. package/dist/services/custom-fields.d.ts.map +1 -1
  271. package/dist/services/custom-fields.js.map +1 -1
  272. package/dist/services/custom-fields.mjs.map +1 -1
  273. package/dist/services/document-service/common.d.ts +2 -2
  274. package/dist/services/document-service/common.d.ts.map +1 -1
  275. package/dist/services/document-service/common.js.map +1 -1
  276. package/dist/services/document-service/common.mjs.map +1 -1
  277. package/dist/services/document-service/document-engine.d.ts +1 -7
  278. package/dist/services/document-service/document-engine.d.ts.map +1 -1
  279. package/dist/services/document-service/draft-and-publish.d.ts +9 -23
  280. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  281. package/dist/services/document-service/draft-and-publish.js +37 -9
  282. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  283. package/dist/services/document-service/draft-and-publish.mjs +38 -10
  284. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  285. package/dist/services/document-service/index.d.ts +2 -2
  286. package/dist/services/document-service/index.d.ts.map +1 -1
  287. package/dist/services/document-service/index.js +10 -8
  288. package/dist/services/document-service/index.js.map +1 -1
  289. package/dist/services/document-service/index.mjs +4 -2
  290. package/dist/services/document-service/index.mjs.map +1 -1
  291. package/dist/services/document-service/internationalization.d.ts +5 -5
  292. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  293. package/dist/services/document-service/internationalization.js.map +1 -1
  294. package/dist/services/document-service/internationalization.mjs.map +1 -1
  295. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  296. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  297. package/dist/services/document-service/middlewares/errors.js +25 -0
  298. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  299. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  300. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  301. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  302. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  303. package/dist/services/document-service/{middlewares.d.ts → middlewares/middleware-manager.d.ts} +3 -4
  304. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  305. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +1 -1
  306. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  307. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +1 -1
  308. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  309. package/dist/services/document-service/repository.d.ts +3 -0
  310. package/dist/services/document-service/repository.d.ts.map +1 -0
  311. package/dist/services/document-service/repository.js +297 -0
  312. package/dist/services/document-service/repository.js.map +1 -0
  313. package/dist/services/document-service/repository.mjs +297 -0
  314. package/dist/services/document-service/repository.mjs.map +1 -0
  315. package/dist/services/document-service/transform/fields.d.ts +2 -2
  316. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  317. package/dist/services/document-service/transform/fields.js.map +1 -1
  318. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  319. package/dist/services/document-service/transform/id-map.d.ts +4 -4
  320. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  321. package/dist/services/document-service/transform/id-map.js +15 -9
  322. package/dist/services/document-service/transform/id-map.js.map +1 -1
  323. package/dist/services/document-service/transform/id-map.mjs +16 -10
  324. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  325. package/dist/services/document-service/transform/id-transform.d.ts +4 -18
  326. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  327. package/dist/services/document-service/transform/id-transform.js +18 -12
  328. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  329. package/dist/services/document-service/transform/id-transform.mjs +18 -12
  330. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  331. package/dist/services/document-service/transform/populate.d.ts +5 -2
  332. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  333. package/dist/services/document-service/transform/populate.js +1 -1
  334. package/dist/services/document-service/transform/populate.js.map +1 -1
  335. package/dist/services/document-service/transform/populate.mjs +1 -1
  336. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  337. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +3 -3
  338. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  339. package/dist/services/document-service/transform/relations/extract/data-ids.js +24 -13
  340. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  341. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +24 -13
  342. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  343. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +3 -3
  344. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  345. package/dist/services/document-service/transform/relations/transform/data-ids.js +62 -38
  346. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  347. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +63 -39
  348. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  349. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +1 -3
  350. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +1 -1
  351. package/dist/services/document-service/transform/relations/utils/dp.d.ts +10 -0
  352. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
  353. package/dist/services/document-service/transform/relations/utils/dp.js +30 -0
  354. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  355. package/dist/services/document-service/transform/relations/utils/dp.mjs +30 -0
  356. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  357. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +4 -4
  358. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  359. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  360. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  361. package/dist/services/document-service/transform/relations/utils/types.d.ts +4 -1
  362. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  363. package/dist/services/document-service/transform/types.d.ts +4 -4
  364. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  365. package/dist/services/document-service/utils/populate.d.ts +9 -2
  366. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  367. package/dist/services/document-service/utils/populate.js +5 -5
  368. package/dist/services/document-service/utils/populate.js.map +1 -1
  369. package/dist/services/document-service/utils/populate.mjs +5 -5
  370. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  371. package/dist/services/entity-service/attributes/index.d.ts +4 -4
  372. package/dist/services/entity-service/attributes/index.d.ts.map +1 -1
  373. package/dist/services/entity-service/attributes/index.js.map +1 -1
  374. package/dist/services/entity-service/attributes/index.mjs.map +1 -1
  375. package/dist/services/entity-service/attributes/transforms.d.ts +3 -3
  376. package/dist/services/entity-service/attributes/transforms.d.ts.map +1 -1
  377. package/dist/services/entity-service/attributes/transforms.js.map +1 -1
  378. package/dist/services/entity-service/attributes/transforms.mjs.map +1 -1
  379. package/dist/services/entity-service/components.d.ts +88 -16
  380. package/dist/services/entity-service/components.d.ts.map +1 -1
  381. package/dist/services/entity-service/components.js +13 -99
  382. package/dist/services/entity-service/components.js.map +1 -1
  383. package/dist/services/entity-service/components.mjs +14 -100
  384. package/dist/services/entity-service/components.mjs.map +1 -1
  385. package/dist/services/entity-service/index.d.ts +4 -6
  386. package/dist/services/entity-service/index.d.ts.map +1 -1
  387. package/dist/services/entity-service/index.js +38 -204
  388. package/dist/services/entity-service/index.js.map +1 -1
  389. package/dist/services/entity-service/index.mjs +32 -198
  390. package/dist/services/entity-service/index.mjs.map +1 -1
  391. package/dist/services/entity-service/params.d.ts +5 -5
  392. package/dist/services/entity-service/params.d.ts.map +1 -1
  393. package/dist/services/entity-service/params.js +1 -1
  394. package/dist/services/entity-service/params.js.map +1 -1
  395. package/dist/services/entity-service/params.mjs +1 -1
  396. package/dist/services/entity-service/params.mjs.map +1 -1
  397. package/dist/services/entity-validator/index.d.ts +2 -2
  398. package/dist/services/entity-validator/index.d.ts.map +1 -1
  399. package/dist/services/entity-validator/index.js +8 -3
  400. package/dist/services/entity-validator/index.js.map +1 -1
  401. package/dist/services/entity-validator/index.mjs +8 -3
  402. package/dist/services/entity-validator/index.mjs.map +1 -1
  403. package/dist/services/entity-validator/validators.d.ts +18 -18
  404. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  405. package/dist/services/entity-validator/validators.js +6 -1
  406. package/dist/services/entity-validator/validators.js.map +1 -1
  407. package/dist/services/entity-validator/validators.mjs +6 -1
  408. package/dist/services/entity-validator/validators.mjs.map +1 -1
  409. package/dist/services/features.d.ts +3 -3
  410. package/dist/services/features.d.ts.map +1 -1
  411. package/dist/services/features.js.map +1 -1
  412. package/dist/services/features.mjs.map +1 -1
  413. package/dist/services/fs.d.ts +2 -2
  414. package/dist/services/fs.d.ts.map +1 -1
  415. package/dist/services/fs.js.map +1 -1
  416. package/dist/services/fs.mjs.map +1 -1
  417. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  418. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  419. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  420. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  421. package/dist/services/metrics/index.d.ts +2 -2
  422. package/dist/services/metrics/index.d.ts.map +1 -1
  423. package/dist/services/metrics/index.js.map +1 -1
  424. package/dist/services/metrics/index.mjs.map +1 -1
  425. package/dist/services/metrics/middleware.d.ts +2 -2
  426. package/dist/services/metrics/middleware.d.ts.map +1 -1
  427. package/dist/services/metrics/middleware.js.map +1 -1
  428. package/dist/services/metrics/middleware.mjs.map +1 -1
  429. package/dist/services/metrics/sender.d.ts +3 -3
  430. package/dist/services/metrics/sender.d.ts.map +1 -1
  431. package/dist/services/metrics/sender.js.map +1 -1
  432. package/dist/services/metrics/sender.mjs.map +1 -1
  433. package/dist/services/query-params.d.ts +7 -0
  434. package/dist/services/query-params.d.ts.map +1 -0
  435. package/dist/services/query-params.js +12 -0
  436. package/dist/services/query-params.js.map +1 -0
  437. package/dist/services/query-params.mjs +13 -0
  438. package/dist/services/query-params.mjs.map +1 -0
  439. package/dist/services/server/admin-api.d.ts +3 -3
  440. package/dist/services/server/admin-api.d.ts.map +1 -1
  441. package/dist/services/server/admin-api.js.map +1 -1
  442. package/dist/services/server/admin-api.mjs.map +1 -1
  443. package/dist/services/server/api.d.ts +3 -3
  444. package/dist/services/server/api.d.ts.map +1 -1
  445. package/dist/services/server/api.js.map +1 -1
  446. package/dist/services/server/api.mjs.map +1 -1
  447. package/dist/services/server/compose-endpoint.d.ts +2 -2
  448. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  449. package/dist/services/server/compose-endpoint.js +1 -2
  450. package/dist/services/server/compose-endpoint.js.map +1 -1
  451. package/dist/services/server/compose-endpoint.mjs +2 -3
  452. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  453. package/dist/services/server/content-api.d.ts +3 -3
  454. package/dist/services/server/content-api.d.ts.map +1 -1
  455. package/dist/services/server/content-api.js.map +1 -1
  456. package/dist/services/server/content-api.mjs.map +1 -1
  457. package/dist/services/server/http-server.d.ts +2 -2
  458. package/dist/services/server/http-server.d.ts.map +1 -1
  459. package/dist/services/server/http-server.js.map +1 -1
  460. package/dist/services/server/http-server.mjs.map +1 -1
  461. package/dist/services/server/index.d.ts +2 -2
  462. package/dist/services/server/index.d.ts.map +1 -1
  463. package/dist/services/server/index.js +1 -2
  464. package/dist/services/server/index.js.map +1 -1
  465. package/dist/services/server/index.mjs +1 -2
  466. package/dist/services/server/index.mjs.map +1 -1
  467. package/dist/services/server/middleware.d.ts +4 -4
  468. package/dist/services/server/middleware.d.ts.map +1 -1
  469. package/dist/services/server/middleware.js.map +1 -1
  470. package/dist/services/server/middleware.mjs.map +1 -1
  471. package/dist/services/server/policy.d.ts +3 -3
  472. package/dist/services/server/policy.d.ts.map +1 -1
  473. package/dist/services/server/policy.js +4 -4
  474. package/dist/services/server/policy.js.map +1 -1
  475. package/dist/services/server/policy.mjs +4 -4
  476. package/dist/services/server/policy.mjs.map +1 -1
  477. package/dist/services/server/register-middlewares.d.ts +2 -2
  478. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  479. package/dist/services/server/register-middlewares.js.map +1 -1
  480. package/dist/services/server/register-middlewares.mjs.map +1 -1
  481. package/dist/services/server/register-routes.d.ts +2 -2
  482. package/dist/services/server/register-routes.d.ts.map +1 -1
  483. package/dist/services/server/register-routes.js.map +1 -1
  484. package/dist/services/server/register-routes.mjs.map +1 -1
  485. package/dist/services/server/routing.d.ts +4 -4
  486. package/dist/services/server/routing.d.ts.map +1 -1
  487. package/dist/services/server/routing.js.map +1 -1
  488. package/dist/services/server/routing.mjs.map +1 -1
  489. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  490. package/dist/services/utils/dynamic-zones.js +2 -1
  491. package/dist/services/utils/dynamic-zones.js.map +1 -1
  492. package/dist/services/utils/dynamic-zones.mjs +2 -1
  493. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  494. package/dist/services/webhook-runner.js.map +1 -1
  495. package/dist/services/webhook-runner.mjs.map +1 -1
  496. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  497. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  498. package/dist/utils/convert-custom-field-type.js.map +1 -1
  499. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  500. package/dist/utils/fetch.d.ts +3 -3
  501. package/dist/utils/fetch.d.ts.map +1 -1
  502. package/dist/utils/fetch.js.map +1 -1
  503. package/dist/utils/fetch.mjs.map +1 -1
  504. package/dist/utils/get-dirs.d.ts +3 -3
  505. package/dist/utils/get-dirs.d.ts.map +1 -1
  506. package/dist/utils/get-dirs.js.map +1 -1
  507. package/dist/utils/get-dirs.mjs.map +1 -1
  508. package/dist/utils/is-initialized.d.ts +2 -2
  509. package/dist/utils/is-initialized.d.ts.map +1 -1
  510. package/dist/utils/is-initialized.js +1 -1
  511. package/dist/utils/is-initialized.js.map +1 -1
  512. package/dist/utils/is-initialized.mjs +1 -1
  513. package/dist/utils/is-initialized.mjs.map +1 -1
  514. package/dist/utils/load-config-file.js +1 -1
  515. package/dist/utils/load-config-file.js.map +1 -1
  516. package/dist/utils/load-config-file.mjs +2 -2
  517. package/dist/utils/load-config-file.mjs.map +1 -1
  518. package/dist/utils/open-browser.d.ts +2 -2
  519. package/dist/utils/open-browser.d.ts.map +1 -1
  520. package/dist/utils/open-browser.js.map +1 -1
  521. package/dist/utils/open-browser.mjs.map +1 -1
  522. package/dist/utils/signals.d.ts +2 -2
  523. package/dist/utils/signals.d.ts.map +1 -1
  524. package/dist/utils/signals.js.map +1 -1
  525. package/dist/utils/signals.mjs.map +1 -1
  526. package/dist/utils/startup-logger.d.ts +2 -2
  527. package/dist/utils/startup-logger.d.ts.map +1 -1
  528. package/dist/utils/startup-logger.js.map +1 -1
  529. package/dist/utils/startup-logger.mjs.map +1 -1
  530. package/dist/utils/transform-content-types-to-models.d.ts +34 -84
  531. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  532. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  533. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  534. package/dist/utils/update-notifier/index.d.ts +2 -2
  535. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  536. package/dist/utils/update-notifier/index.js.map +1 -1
  537. package/dist/utils/update-notifier/index.mjs.map +1 -1
  538. package/package.json +15 -15
  539. package/dist/services/document-service/document-engine.js +0 -241
  540. package/dist/services/document-service/document-engine.js.map +0 -1
  541. package/dist/services/document-service/document-engine.mjs +0 -242
  542. package/dist/services/document-service/document-engine.mjs.map +0 -1
  543. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  544. package/dist/services/document-service/middlewares.js.map +0 -1
  545. package/dist/services/document-service/middlewares.mjs.map +0 -1
  546. package/dist/services/document-service/repositories/content-type.d.ts +0 -3
  547. package/dist/services/document-service/repositories/content-type.d.ts.map +0 -1
  548. package/dist/services/document-service/repositories/content-type.js +0 -139
  549. package/dist/services/document-service/repositories/content-type.js.map +0 -1
  550. package/dist/services/document-service/repositories/content-type.mjs +0 -139
  551. package/dist/services/document-service/repositories/content-type.mjs.map +0 -1
  552. package/dist/services/document-service/transform/filters.d.ts +0 -3
  553. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  554. package/dist/services/document-service/transform/sort.d.ts +0 -5
  555. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  556. package/dist/services/document-service/transform/utils.d.ts +0 -9
  557. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  558. package/dist/services/utils/upload-files.d.ts +0 -8
  559. package/dist/services/utils/upload-files.d.ts.map +0 -1
  560. package/dist/services/utils/upload-files.js +0 -64
  561. package/dist/services/utils/upload-files.js.map +0 -1
  562. package/dist/services/utils/upload-files.mjs +0 -63
  563. package/dist/services/utils/upload-files.mjs.map +0 -1
package/dist/Strapi.d.ts CHANGED
@@ -1,56 +1,59 @@
1
1
  import { Logger } from '@strapi/logger';
2
2
  import { Database } from '@strapi/database';
3
- import type { Strapi as StrapiI, Server, EntityService, Documents, EventHub, StartupLogger, CronService, WebhookStore, CoreStore, TelemetryService, RequestContext, CustomFields, Fetch, StrapiFS, StrapiDirectories, Reloader, EntityValidator, Common, Shared, Schema } from '@strapi/types';
3
+ import type { Core, Modules, UID, Schema } from '@strapi/types';
4
4
  import * as factories from './factories';
5
5
  import compile from './compile';
6
6
  import { Container } from './container';
7
7
  import { WebhookRunner } from './services/webhook-runner';
8
8
  import { FeaturesService } from './services/features';
9
9
  export type LoadedStrapi = Required<Strapi>;
10
- declare class Strapi extends Container implements StrapiI {
11
- server: Server;
10
+ declare class Strapi extends Container implements Core.Strapi {
11
+ server: Modules.Server.Server;
12
12
  log: Logger;
13
- fs: StrapiFS;
14
- eventHub: EventHub;
15
- startupLogger: StartupLogger;
16
- cron: CronService;
13
+ fs: Core.StrapiFS;
14
+ eventHub: Modules.EventHub.EventHub;
15
+ startupLogger: Core.StartupLogger;
16
+ cron: Modules.Cron.CronService;
17
17
  webhookRunner?: WebhookRunner;
18
- webhookStore?: WebhookStore;
19
- store?: CoreStore;
20
- entityValidator?: EntityValidator;
21
- entityService?: EntityService.EntityService;
22
- documents?: Documents.Service;
23
- telemetry: TelemetryService;
24
- requestContext: RequestContext;
25
- customFields: CustomFields.CustomFields;
26
- fetch: Fetch;
27
- dirs: StrapiDirectories;
28
- admin?: Common.Module;
18
+ webhookStore?: Modules.WebhookStore.WebhookStore;
19
+ store?: Modules.CoreStore.CoreStore;
20
+ entityValidator?: Modules.EntityValidator.EntityValidator;
21
+ /**
22
+ * @deprecated `strapi.entityService` will be removed in the next major version
23
+ */
24
+ entityService?: Modules.EntityService.EntityService;
25
+ documents?: Modules.Documents.Service;
26
+ telemetry: Modules.Metrics.TelemetryService;
27
+ requestContext: Modules.RequestContext.RequestContext;
28
+ customFields: Modules.CustomFields.CustomFields;
29
+ fetch: Modules.Fetch.Fetch;
30
+ dirs: Core.StrapiDirectories;
31
+ admin?: Core.Module;
29
32
  isLoaded: boolean;
30
- db?: Database;
33
+ db: Database;
31
34
  app: any;
32
35
  EE?: boolean;
33
- reload: Reloader;
36
+ reload: Core.Reloader;
34
37
  features: FeaturesService;
35
- ee: StrapiI['ee'];
38
+ ee: Core.Strapi['ee'];
36
39
  constructor(opts?: StrapiOptions);
37
40
  get config(): any;
38
41
  get services(): any;
39
- service(uid: Common.UID.Service): any;
42
+ service(uid: UID.Service): any;
40
43
  get controllers(): any;
41
- controller(uid: Common.UID.Controller): any;
42
- get contentTypes(): Shared.ContentTypes;
43
- contentType(name: Common.UID.ContentType): any;
44
- get components(): Shared.Components;
44
+ controller(uid: UID.Controller): any;
45
+ get contentTypes(): Schema.ContentTypes;
46
+ contentType(name: UID.ContentType): any;
47
+ get components(): Schema.Components;
45
48
  get policies(): any;
46
49
  policy(name: string): any;
47
50
  get middlewares(): any;
48
51
  middleware(name: string): any;
49
- get plugins(): Record<string, Common.Plugin>;
50
- plugin(name: string): Common.Plugin;
52
+ get plugins(): Record<string, Core.Plugin>;
53
+ plugin(name: string): Core.Plugin;
51
54
  get hooks(): any;
52
55
  hook(name: string): any;
53
- get api(): Record<string, Common.Module>;
56
+ get api(): Record<string, Core.Module>;
54
57
  get auth(): any;
55
58
  get contentAPI(): any;
56
59
  get sanitizers(): any;
@@ -71,16 +74,15 @@ declare class Strapi extends Container implements StrapiI {
71
74
  registerInternalHooks(): void;
72
75
  register(): Promise<this>;
73
76
  bootstrap(): Promise<this>;
74
- load(): Promise<this & Required<StrapiI>>;
77
+ load(): Promise<this & Required<Core.Strapi>>;
75
78
  startWebhooks(): Promise<void>;
76
79
  runLifecyclesFunctions(lifecycleName: 'register' | 'bootstrap' | 'destroy'): Promise<void>;
77
- getModel(uid: Common.UID.ContentType): Schema.ContentType;
78
- getModel(uid: Common.UID.Component): Schema.Component;
80
+ getModel(uid: UID.ContentType): Schema.ContentType;
81
+ getModel(uid: UID.Component): Schema.Component;
79
82
  /**
80
- * Binds queries with a specific model
81
- * @param {string} uid
83
+ * @deprecated Use `strapi.db.query` instead
82
84
  */
83
- query(uid: Common.UID.Schema): import("@strapi/database/dist/entity-manager").Repository;
85
+ query(uid: UID.Schema): import("@strapi/database/dist/entity-manager").Repository;
84
86
  }
85
87
  interface StrapiOptions {
86
88
  appDir?: string;
@@ -89,7 +91,7 @@ interface StrapiOptions {
89
91
  serveAdminPanel?: boolean;
90
92
  }
91
93
  interface Init {
92
- (options?: StrapiOptions): StrapiI;
94
+ (options?: StrapiOptions): Core.Strapi;
93
95
  factories: typeof factories;
94
96
  compile: typeof compile;
95
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Strapi.d.ts","sourceRoot":"","sources":["../src/Strapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Strapi.d.ts","sourceRoot":"","sources":["../src/Strapi.ts"],"names":[],"mappings":"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"}
package/dist/Strapi.js CHANGED
@@ -43,6 +43,7 @@ const webhookRunner = require("./services/webhook-runner.js");
43
43
  const webhookStore = require("./services/webhook-store.js");
44
44
  const coreStore = require("./services/core-store.js");
45
45
  const index$9 = require("./services/entity-service/index.js");
46
+ const queryParams = require("./services/query-params.js");
46
47
  const cron = require("./services/cron.js");
47
48
  const index$8 = require("./services/entity-validator/index.js");
48
49
  const index$4 = require("./services/metrics/index.js");
@@ -53,6 +54,7 @@ const index$1 = require("./services/content-api/index.js");
53
54
  const dynamicZones = require("./services/utils/dynamic-zones.js");
54
55
  const features = require("./services/features.js");
55
56
  const index$a = require("./services/document-service/index.js");
57
+ const draftPublish = require("./migrations/draft-publish.js");
56
58
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
57
59
  const path__default = /* @__PURE__ */ _interopDefault(path);
58
60
  const ___default = /* @__PURE__ */ _interopDefault(_);
@@ -105,6 +107,9 @@ class Strapi extends container.Container {
105
107
  webhookStore;
106
108
  store;
107
109
  entityValidator;
110
+ /**
111
+ * @deprecated `strapi.entityService` will be removed in the next major version
112
+ */
108
113
  entityService;
109
114
  documents;
110
115
  telemetry;
@@ -126,7 +131,7 @@ class Strapi extends container.Container {
126
131
  signals.destroyOnSignal(this);
127
132
  const rootDirs = resolveWorkingDirectories(opts);
128
133
  const appConfig = index(rootDirs, opts);
129
- this.add("config", config(appConfig)).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("content-api", index$1(this)).add("auth", index$2()).add("models", models.registry());
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());
130
135
  this.dirs = getDirs.getDirs(rootDirs, { strapi: this });
131
136
  this.isLoaded = false;
132
137
  this.reload = reloader(this);
@@ -134,17 +139,29 @@ class Strapi extends container.Container {
134
139
  this.fs = fs(this);
135
140
  this.eventHub = eventHub();
136
141
  this.startupLogger = startupLogger.createStartupLogger(this);
137
- const logLevel = this.config.get(
138
- "server.logger.config",
139
- this.config.get("logger", { level: "info" })
140
- );
141
- this.log = logger.createLogger(logLevel);
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);
142
150
  this.cron = cron();
143
151
  this.telemetry = index$4(this);
144
152
  this.requestContext = requestContext;
145
153
  this.customFields = customFields$1(this);
146
154
  this.fetch = fetch.createStrapiFetch(this);
147
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
+ );
148
165
  index$5.createUpdateNotifier(this).notify();
149
166
  Object.defineProperty(this, "EE", {
150
167
  get: () => {
@@ -236,6 +253,7 @@ class Strapi extends container.Container {
236
253
  }
237
254
  }
238
255
  async destroy() {
256
+ this.log.info("Shutting down Strapi");
239
257
  await this.server.destroy();
240
258
  await this.runLifecyclesFunctions(lifecycles.LIFECYCLES.DESTROY);
241
259
  this.eventHub.destroy();
@@ -244,6 +262,7 @@ class Strapi extends container.Container {
244
262
  this.cron.destroy();
245
263
  process.removeAllListeners();
246
264
  delete global.strapi;
265
+ this.log.info("Strapi has been shut down");
247
266
  }
248
267
  sendStartupTelemetry() {
249
268
  this.telemetry.send("didStartServer", {
@@ -278,6 +297,7 @@ class Strapi extends container.Container {
278
297
  async postListen() {
279
298
  const isInitialized$1 = await isInitialized.isInitialized(this);
280
299
  this.startupLogger.logStartupMessage({ isInitialized: isInitialized$1 });
300
+ this.log.info("Strapi started successfully");
281
301
  this.sendStartupTelemetry();
282
302
  this.openAdmin({ isInitialized: isInitialized$1 });
283
303
  }
@@ -321,6 +341,8 @@ class Strapi extends container.Container {
321
341
  registerInternalHooks() {
322
342
  this.get("hooks").set("strapi::content-types.beforeSync", strapiUtils.hooks.createAsyncParallelHook());
323
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);
324
346
  }
325
347
  async register() {
326
348
  await index$7.loadApplicationContext(this);
@@ -345,15 +367,13 @@ class Strapi extends container.Container {
345
367
  ]),
346
368
  ...this.get("models").get()
347
369
  ];
348
- this.db = await database.Database.init({ ...this.config.get("database"), models: models2 });
370
+ await this.db.init({ models: models2 });
349
371
  this.store = coreStore.createCoreStore({ db: this.db });
350
372
  this.webhookStore = webhookStore.createWebhookStore({ db: this.db });
351
373
  this.entityValidator = index$8;
352
374
  this.entityService = index$9({
353
375
  strapi: this,
354
- db: this.db,
355
- eventHub: this.eventHub,
356
- entityValidator: this.entityValidator
376
+ db: this.db
357
377
  });
358
378
  this.documents = index$a.createDocumentService(this);
359
379
  if (this.config.get("server.cron.enabled", true)) {
@@ -430,8 +450,7 @@ class Strapi extends container.Container {
430
450
  }
431
451
  }
432
452
  /**
433
- * Binds queries with a specific model
434
- * @param {string} uid
453
+ * @deprecated Use `strapi.db.query` instead
435
454
  */
436
455
  query(uid) {
437
456
  return this.db.query(uid);
@@ -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/**\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 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))\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 // We will continue to support 'logger' to prevent unnecessary deprecations but prioritize server.logger.config\n // So we find: server.logger.config || logger || 'info'\n const logLevel = this.config.get(\n 'server.logger.config',\n this.config.get('logger', { level: 'info' })\n );\n this.log = createLogger(logLevel);\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\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\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 this.db = await Database.init({ ...this.config.get('database'), 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 eventHub: this.eventHub,\n entityValidator: this.entityValidator,\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 * Binds queries with a specific model\n * @param {string} uid\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","utils.createUpdateNotifier","utils.ee","utils.LIFECYCLES","_","getNumberOfDynamicZones","factories.isCustomController","isInitialized","utils.openBrowser","utils.isInitialized","hooks","loaders.loadApplicationContext","coreStoreModel","webhookModel","createWebhookRunner","utils.convertCustomFieldType","models","utils.transformContentTypesToModels","Database","createCoreStore","createWebhookStore","entityValidator","createEntityService","createDocumentService","isFunction"],"mappings":"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"}
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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"}
package/dist/Strapi.mjs CHANGED
@@ -43,6 +43,7 @@ import createWebhookRunner from "./services/webhook-runner.mjs";
43
43
  import { webhookModel, createWebhookStore } from "./services/webhook-store.mjs";
44
44
  import { coreStoreModel, createCoreStore } from "./services/core-store.mjs";
45
45
  import createEntityService from "./services/entity-service/index.mjs";
46
+ import createQueryParamService from "./services/query-params.mjs";
46
47
  import createCronService from "./services/cron.mjs";
47
48
  import entityValidator from "./services/entity-validator/index.mjs";
48
49
  import createTelemetryInstance from "./services/metrics/index.mjs";
@@ -53,6 +54,7 @@ import createContentAPI from "./services/content-api/index.mjs";
53
54
  import getNumberOfDynamicZones from "./services/utils/dynamic-zones.mjs";
54
55
  import { createFeaturesService } from "./services/features.mjs";
55
56
  import { createDocumentService } from "./services/document-service/index.mjs";
57
+ import { disable as disableDraftAndPublish, enable as enableDraftAndPublish } from "./migrations/draft-publish.mjs";
56
58
  const resolveWorkingDirectories = (opts) => {
57
59
  const cwd = process.cwd();
58
60
  const appDir = opts.appDir ? path.resolve(cwd, opts.appDir) : cwd;
@@ -102,6 +104,9 @@ class Strapi extends Container {
102
104
  webhookStore;
103
105
  store;
104
106
  entityValidator;
107
+ /**
108
+ * @deprecated `strapi.entityService` will be removed in the next major version
109
+ */
105
110
  entityService;
106
111
  documents;
107
112
  telemetry;
@@ -123,7 +128,7 @@ class Strapi extends Container {
123
128
  destroyOnSignal(this);
124
129
  const rootDirs = resolveWorkingDirectories(opts);
125
130
  const appConfig = loadConfiguration(rootDirs, opts);
126
- this.add("config", config(appConfig)).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.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("query-params", createQueryParamService(this)).add("content-api", createContentAPI(this)).add("auth", createAuthentication()).add("models", registry());
127
132
  this.dirs = getDirs(rootDirs, { strapi: this });
128
133
  this.isLoaded = false;
129
134
  this.reload = reloader(this);
@@ -131,17 +136,29 @@ class Strapi extends Container {
131
136
  this.fs = createStrapiFs(this);
132
137
  this.eventHub = createEventHub();
133
138
  this.startupLogger = createStartupLogger(this);
134
- const logLevel = this.config.get(
135
- "server.logger.config",
136
- this.config.get("logger", { level: "info" })
137
- );
138
- this.log = createLogger(logLevel);
139
+ const logConfig = {
140
+ level: "http",
141
+ // Strapi defaults to level 'http'
142
+ ...this.config.get("logger"),
143
+ // DEPRECATED
144
+ ...this.config.get("server.logger.config")
145
+ };
146
+ this.log = createLogger(logConfig);
139
147
  this.cron = createCronService();
140
148
  this.telemetry = createTelemetryInstance(this);
141
149
  this.requestContext = requestCtx;
142
150
  this.customFields = createCustomFields(this);
143
151
  this.fetch = createStrapiFetch(this);
144
152
  this.features = createFeaturesService(this);
153
+ this.db = new Database(
154
+ _.merge(this.config.get("database"), {
155
+ settings: {
156
+ migrations: {
157
+ dir: path.join(this.dirs.app.root, "database/migrations")
158
+ }
159
+ }
160
+ })
161
+ );
145
162
  createUpdateNotifier(this).notify();
146
163
  Object.defineProperty(this, "EE", {
147
164
  get: () => {
@@ -233,6 +250,7 @@ class Strapi extends Container {
233
250
  }
234
251
  }
235
252
  async destroy() {
253
+ this.log.info("Shutting down Strapi");
236
254
  await this.server.destroy();
237
255
  await this.runLifecyclesFunctions(LIFECYCLES.DESTROY);
238
256
  this.eventHub.destroy();
@@ -241,6 +259,7 @@ class Strapi extends Container {
241
259
  this.cron.destroy();
242
260
  process.removeAllListeners();
243
261
  delete global.strapi;
262
+ this.log.info("Strapi has been shut down");
244
263
  }
245
264
  sendStartupTelemetry() {
246
265
  this.telemetry.send("didStartServer", {
@@ -275,6 +294,7 @@ class Strapi extends Container {
275
294
  async postListen() {
276
295
  const isInitialized$1 = await isInitialized(this);
277
296
  this.startupLogger.logStartupMessage({ isInitialized: isInitialized$1 });
297
+ this.log.info("Strapi started successfully");
278
298
  this.sendStartupTelemetry();
279
299
  this.openAdmin({ isInitialized: isInitialized$1 });
280
300
  }
@@ -318,6 +338,8 @@ class Strapi extends Container {
318
338
  registerInternalHooks() {
319
339
  this.get("hooks").set("strapi::content-types.beforeSync", hooks.createAsyncParallelHook());
320
340
  this.get("hooks").set("strapi::content-types.afterSync", hooks.createAsyncParallelHook());
341
+ this.hook("strapi::content-types.beforeSync").register(disableDraftAndPublish);
342
+ this.hook("strapi::content-types.afterSync").register(enableDraftAndPublish);
321
343
  }
322
344
  async register() {
323
345
  await loadApplicationContext(this);
@@ -342,15 +364,13 @@ class Strapi extends Container {
342
364
  ]),
343
365
  ...this.get("models").get()
344
366
  ];
345
- this.db = await Database.init({ ...this.config.get("database"), models });
367
+ await this.db.init({ models });
346
368
  this.store = createCoreStore({ db: this.db });
347
369
  this.webhookStore = createWebhookStore({ db: this.db });
348
370
  this.entityValidator = entityValidator;
349
371
  this.entityService = createEntityService({
350
372
  strapi: this,
351
- db: this.db,
352
- eventHub: this.eventHub,
353
- entityValidator: this.entityValidator
373
+ db: this.db
354
374
  });
355
375
  this.documents = createDocumentService(this);
356
376
  if (this.config.get("server.cron.enabled", true)) {
@@ -427,8 +447,7 @@ class Strapi extends Container {
427
447
  }
428
448
  }
429
449
  /**
430
- * Binds queries with a specific model
431
- * @param {string} uid
450
+ * @deprecated Use `strapi.db.query` instead
432
451
  */
433
452
  query(uid) {
434
453
  return this.db.query(uid);