@strapi/core 0.0.0-experimental.651a6b8ded3c452fedf2a8598f08c51c214e6cf7 → 0.0.0-experimental.80cf2c74a2003f3c0602abc81888dd9f36dc68a3

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

Potentially problematic release.


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

Files changed (543) 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 -16
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +31 -16
  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 +6 -1
  29. package/dist/core-api/controller/index.js.map +1 -1
  30. package/dist/core-api/controller/index.mjs +6 -1
  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 +6 -6
  242. package/dist/registries/policies.d.ts.map +1 -1
  243. package/dist/registries/policies.js.map +1 -1
  244. package/dist/registries/policies.mjs.map +1 -1
  245. package/dist/registries/services.d.ts +8 -8
  246. package/dist/registries/services.d.ts.map +1 -1
  247. package/dist/registries/services.js.map +1 -1
  248. package/dist/registries/services.mjs.map +1 -1
  249. package/dist/services/auth/index.d.ts +4 -4
  250. package/dist/services/auth/index.d.ts.map +1 -1
  251. package/dist/services/auth/index.js.map +1 -1
  252. package/dist/services/auth/index.mjs.map +1 -1
  253. package/dist/services/content-api/index.d.ts +3 -3
  254. package/dist/services/content-api/index.d.ts.map +1 -1
  255. package/dist/services/content-api/index.js.map +1 -1
  256. package/dist/services/content-api/index.mjs.map +1 -1
  257. package/dist/services/content-api/permissions/index.d.ts +3 -3
  258. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  259. package/dist/services/content-api/permissions/index.js.map +1 -1
  260. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  261. package/dist/services/cron.d.ts +2 -2
  262. package/dist/services/cron.d.ts.map +1 -1
  263. package/dist/services/cron.js.map +1 -1
  264. package/dist/services/cron.mjs.map +1 -1
  265. package/dist/services/custom-fields.d.ts +2 -2
  266. package/dist/services/custom-fields.d.ts.map +1 -1
  267. package/dist/services/custom-fields.js.map +1 -1
  268. package/dist/services/custom-fields.mjs.map +1 -1
  269. package/dist/services/document-service/common.d.ts +2 -2
  270. package/dist/services/document-service/common.d.ts.map +1 -1
  271. package/dist/services/document-service/common.js.map +1 -1
  272. package/dist/services/document-service/common.mjs.map +1 -1
  273. package/dist/services/document-service/document-engine.d.ts +1 -7
  274. package/dist/services/document-service/document-engine.d.ts.map +1 -1
  275. package/dist/services/document-service/draft-and-publish.d.ts +9 -23
  276. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  277. package/dist/services/document-service/draft-and-publish.js +37 -9
  278. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  279. package/dist/services/document-service/draft-and-publish.mjs +38 -10
  280. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  281. package/dist/services/document-service/index.d.ts +2 -2
  282. package/dist/services/document-service/index.d.ts.map +1 -1
  283. package/dist/services/document-service/index.js +10 -8
  284. package/dist/services/document-service/index.js.map +1 -1
  285. package/dist/services/document-service/index.mjs +4 -2
  286. package/dist/services/document-service/index.mjs.map +1 -1
  287. package/dist/services/document-service/internationalization.d.ts +5 -5
  288. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  289. package/dist/services/document-service/internationalization.js.map +1 -1
  290. package/dist/services/document-service/internationalization.mjs.map +1 -1
  291. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  292. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  293. package/dist/services/document-service/middlewares/errors.js +25 -0
  294. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  295. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  296. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  297. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  298. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  299. package/dist/services/document-service/{middlewares.d.ts → middlewares/middleware-manager.d.ts} +3 -4
  300. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  301. package/dist/services/document-service/{middlewares.js → middlewares/middleware-manager.js} +1 -1
  302. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  303. package/dist/services/document-service/{middlewares.mjs → middlewares/middleware-manager.mjs} +1 -1
  304. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  305. package/dist/services/document-service/repository.d.ts +3 -0
  306. package/dist/services/document-service/repository.d.ts.map +1 -0
  307. package/dist/services/document-service/repository.js +297 -0
  308. package/dist/services/document-service/repository.js.map +1 -0
  309. package/dist/services/document-service/repository.mjs +297 -0
  310. package/dist/services/document-service/repository.mjs.map +1 -0
  311. package/dist/services/document-service/transform/fields.d.ts +2 -2
  312. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  313. package/dist/services/document-service/transform/fields.js.map +1 -1
  314. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  315. package/dist/services/document-service/transform/id-map.d.ts +4 -4
  316. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  317. package/dist/services/document-service/transform/id-map.js +15 -9
  318. package/dist/services/document-service/transform/id-map.js.map +1 -1
  319. package/dist/services/document-service/transform/id-map.mjs +16 -10
  320. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  321. package/dist/services/document-service/transform/id-transform.d.ts +4 -18
  322. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  323. package/dist/services/document-service/transform/id-transform.js +18 -12
  324. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  325. package/dist/services/document-service/transform/id-transform.mjs +18 -12
  326. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  327. package/dist/services/document-service/transform/populate.d.ts +5 -2
  328. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  329. package/dist/services/document-service/transform/populate.js.map +1 -1
  330. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  331. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +3 -3
  332. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  333. package/dist/services/document-service/transform/relations/extract/data-ids.js +23 -12
  334. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  335. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +23 -12
  336. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  337. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +3 -3
  338. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  339. package/dist/services/document-service/transform/relations/transform/data-ids.js +61 -37
  340. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  341. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +62 -38
  342. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  343. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +2 -0
  344. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +1 -0
  345. package/dist/services/document-service/transform/relations/utils/dp.d.ts +10 -0
  346. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
  347. package/dist/services/document-service/transform/relations/utils/dp.js +30 -0
  348. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  349. package/dist/services/document-service/transform/relations/utils/dp.mjs +30 -0
  350. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  351. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +4 -4
  352. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  353. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  354. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  355. package/dist/services/document-service/transform/relations/utils/types.d.ts +4 -1
  356. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  357. package/dist/services/document-service/transform/types.d.ts +4 -4
  358. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  359. package/dist/services/document-service/utils/populate.d.ts +9 -2
  360. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  361. package/dist/services/document-service/utils/populate.js +5 -5
  362. package/dist/services/document-service/utils/populate.js.map +1 -1
  363. package/dist/services/document-service/utils/populate.mjs +5 -5
  364. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  365. package/dist/services/entity-service/attributes/index.d.ts +4 -4
  366. package/dist/services/entity-service/attributes/index.d.ts.map +1 -1
  367. package/dist/services/entity-service/attributes/index.js.map +1 -1
  368. package/dist/services/entity-service/attributes/index.mjs.map +1 -1
  369. package/dist/services/entity-service/attributes/transforms.d.ts +3 -3
  370. package/dist/services/entity-service/attributes/transforms.d.ts.map +1 -1
  371. package/dist/services/entity-service/attributes/transforms.js.map +1 -1
  372. package/dist/services/entity-service/attributes/transforms.mjs.map +1 -1
  373. package/dist/services/entity-service/components.d.ts +88 -16
  374. package/dist/services/entity-service/components.d.ts.map +1 -1
  375. package/dist/services/entity-service/components.js +13 -99
  376. package/dist/services/entity-service/components.js.map +1 -1
  377. package/dist/services/entity-service/components.mjs +14 -100
  378. package/dist/services/entity-service/components.mjs.map +1 -1
  379. package/dist/services/entity-service/index.d.ts +4 -6
  380. package/dist/services/entity-service/index.d.ts.map +1 -1
  381. package/dist/services/entity-service/index.js +34 -199
  382. package/dist/services/entity-service/index.js.map +1 -1
  383. package/dist/services/entity-service/index.mjs +27 -192
  384. package/dist/services/entity-service/index.mjs.map +1 -1
  385. package/dist/services/entity-service/params.d.ts +5 -5
  386. package/dist/services/entity-service/params.d.ts.map +1 -1
  387. package/dist/services/entity-service/params.js +1 -1
  388. package/dist/services/entity-service/params.js.map +1 -1
  389. package/dist/services/entity-service/params.mjs +1 -1
  390. package/dist/services/entity-service/params.mjs.map +1 -1
  391. package/dist/services/entity-validator/index.d.ts +2 -2
  392. package/dist/services/entity-validator/index.d.ts.map +1 -1
  393. package/dist/services/entity-validator/index.js +8 -3
  394. package/dist/services/entity-validator/index.js.map +1 -1
  395. package/dist/services/entity-validator/index.mjs +8 -3
  396. package/dist/services/entity-validator/index.mjs.map +1 -1
  397. package/dist/services/entity-validator/validators.d.ts +18 -18
  398. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  399. package/dist/services/entity-validator/validators.js +6 -1
  400. package/dist/services/entity-validator/validators.js.map +1 -1
  401. package/dist/services/entity-validator/validators.mjs +6 -1
  402. package/dist/services/entity-validator/validators.mjs.map +1 -1
  403. package/dist/services/features.d.ts +3 -3
  404. package/dist/services/features.d.ts.map +1 -1
  405. package/dist/services/features.js.map +1 -1
  406. package/dist/services/features.mjs.map +1 -1
  407. package/dist/services/fs.d.ts +2 -2
  408. package/dist/services/fs.d.ts.map +1 -1
  409. package/dist/services/fs.js.map +1 -1
  410. package/dist/services/fs.mjs.map +1 -1
  411. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  412. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  413. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  414. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  415. package/dist/services/metrics/index.d.ts +2 -2
  416. package/dist/services/metrics/index.d.ts.map +1 -1
  417. package/dist/services/metrics/index.js.map +1 -1
  418. package/dist/services/metrics/index.mjs.map +1 -1
  419. package/dist/services/metrics/middleware.d.ts +2 -2
  420. package/dist/services/metrics/middleware.d.ts.map +1 -1
  421. package/dist/services/metrics/middleware.js.map +1 -1
  422. package/dist/services/metrics/middleware.mjs.map +1 -1
  423. package/dist/services/metrics/sender.d.ts +3 -3
  424. package/dist/services/metrics/sender.d.ts.map +1 -1
  425. package/dist/services/metrics/sender.js.map +1 -1
  426. package/dist/services/metrics/sender.mjs.map +1 -1
  427. package/dist/services/server/admin-api.d.ts +3 -3
  428. package/dist/services/server/admin-api.d.ts.map +1 -1
  429. package/dist/services/server/admin-api.js.map +1 -1
  430. package/dist/services/server/admin-api.mjs.map +1 -1
  431. package/dist/services/server/api.d.ts +3 -3
  432. package/dist/services/server/api.d.ts.map +1 -1
  433. package/dist/services/server/api.js.map +1 -1
  434. package/dist/services/server/api.mjs.map +1 -1
  435. package/dist/services/server/compose-endpoint.d.ts +2 -2
  436. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  437. package/dist/services/server/compose-endpoint.js.map +1 -1
  438. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  439. package/dist/services/server/content-api.d.ts +3 -3
  440. package/dist/services/server/content-api.d.ts.map +1 -1
  441. package/dist/services/server/content-api.js.map +1 -1
  442. package/dist/services/server/content-api.mjs.map +1 -1
  443. package/dist/services/server/http-server.d.ts +2 -2
  444. package/dist/services/server/http-server.d.ts.map +1 -1
  445. package/dist/services/server/http-server.js.map +1 -1
  446. package/dist/services/server/http-server.mjs.map +1 -1
  447. package/dist/services/server/index.d.ts +2 -2
  448. package/dist/services/server/index.d.ts.map +1 -1
  449. package/dist/services/server/index.js +1 -2
  450. package/dist/services/server/index.js.map +1 -1
  451. package/dist/services/server/index.mjs +1 -2
  452. package/dist/services/server/index.mjs.map +1 -1
  453. package/dist/services/server/middleware.d.ts +4 -4
  454. package/dist/services/server/middleware.d.ts.map +1 -1
  455. package/dist/services/server/middleware.js.map +1 -1
  456. package/dist/services/server/middleware.mjs.map +1 -1
  457. package/dist/services/server/policy.d.ts +2 -2
  458. package/dist/services/server/policy.d.ts.map +1 -1
  459. package/dist/services/server/policy.js.map +1 -1
  460. package/dist/services/server/policy.mjs.map +1 -1
  461. package/dist/services/server/register-middlewares.d.ts +2 -2
  462. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  463. package/dist/services/server/register-middlewares.js.map +1 -1
  464. package/dist/services/server/register-middlewares.mjs.map +1 -1
  465. package/dist/services/server/register-routes.d.ts +2 -2
  466. package/dist/services/server/register-routes.d.ts.map +1 -1
  467. package/dist/services/server/register-routes.js.map +1 -1
  468. package/dist/services/server/register-routes.mjs.map +1 -1
  469. package/dist/services/server/routing.d.ts +4 -4
  470. package/dist/services/server/routing.d.ts.map +1 -1
  471. package/dist/services/server/routing.js.map +1 -1
  472. package/dist/services/server/routing.mjs.map +1 -1
  473. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  474. package/dist/services/utils/dynamic-zones.js +2 -1
  475. package/dist/services/utils/dynamic-zones.js.map +1 -1
  476. package/dist/services/utils/dynamic-zones.mjs +2 -1
  477. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  478. package/dist/services/webhook-runner.js.map +1 -1
  479. package/dist/services/webhook-runner.mjs.map +1 -1
  480. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  481. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  482. package/dist/utils/convert-custom-field-type.js.map +1 -1
  483. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  484. package/dist/utils/fetch.d.ts +3 -3
  485. package/dist/utils/fetch.d.ts.map +1 -1
  486. package/dist/utils/fetch.js.map +1 -1
  487. package/dist/utils/fetch.mjs.map +1 -1
  488. package/dist/utils/get-dirs.d.ts +3 -3
  489. package/dist/utils/get-dirs.d.ts.map +1 -1
  490. package/dist/utils/get-dirs.js.map +1 -1
  491. package/dist/utils/get-dirs.mjs.map +1 -1
  492. package/dist/utils/is-initialized.d.ts +2 -2
  493. package/dist/utils/is-initialized.d.ts.map +1 -1
  494. package/dist/utils/is-initialized.js +1 -1
  495. package/dist/utils/is-initialized.js.map +1 -1
  496. package/dist/utils/is-initialized.mjs +1 -1
  497. package/dist/utils/is-initialized.mjs.map +1 -1
  498. package/dist/utils/load-config-file.js +1 -1
  499. package/dist/utils/load-config-file.js.map +1 -1
  500. package/dist/utils/load-config-file.mjs +2 -2
  501. package/dist/utils/load-config-file.mjs.map +1 -1
  502. package/dist/utils/open-browser.d.ts +2 -2
  503. package/dist/utils/open-browser.d.ts.map +1 -1
  504. package/dist/utils/open-browser.js.map +1 -1
  505. package/dist/utils/open-browser.mjs.map +1 -1
  506. package/dist/utils/signals.d.ts +2 -2
  507. package/dist/utils/signals.d.ts.map +1 -1
  508. package/dist/utils/signals.js.map +1 -1
  509. package/dist/utils/signals.mjs.map +1 -1
  510. package/dist/utils/startup-logger.d.ts +2 -2
  511. package/dist/utils/startup-logger.d.ts.map +1 -1
  512. package/dist/utils/startup-logger.js.map +1 -1
  513. package/dist/utils/startup-logger.mjs.map +1 -1
  514. package/dist/utils/transform-content-types-to-models.d.ts +49 -94
  515. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  516. package/dist/utils/transform-content-types-to-models.js +90 -44
  517. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  518. package/dist/utils/transform-content-types-to-models.mjs +90 -44
  519. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  520. package/dist/utils/update-notifier/index.d.ts +2 -2
  521. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  522. package/dist/utils/update-notifier/index.js.map +1 -1
  523. package/dist/utils/update-notifier/index.mjs.map +1 -1
  524. package/package.json +15 -15
  525. package/dist/services/document-service/document-engine.js +0 -241
  526. package/dist/services/document-service/document-engine.js.map +0 -1
  527. package/dist/services/document-service/document-engine.mjs +0 -242
  528. package/dist/services/document-service/document-engine.mjs.map +0 -1
  529. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  530. package/dist/services/document-service/middlewares.js.map +0 -1
  531. package/dist/services/document-service/middlewares.mjs.map +0 -1
  532. package/dist/services/document-service/repositories/content-type.d.ts +0 -3
  533. package/dist/services/document-service/repositories/content-type.d.ts.map +0 -1
  534. package/dist/services/document-service/repositories/content-type.js +0 -139
  535. package/dist/services/document-service/repositories/content-type.js.map +0 -1
  536. package/dist/services/document-service/repositories/content-type.mjs +0 -139
  537. package/dist/services/document-service/repositories/content-type.mjs.map +0 -1
  538. package/dist/services/utils/upload-files.d.ts +0 -8
  539. package/dist/services/utils/upload-files.d.ts.map +0 -1
  540. package/dist/services/utils/upload-files.js +0 -64
  541. package/dist/services/utils/upload-files.js.map +0 -1
  542. package/dist/services/utils/upload-files.mjs +0 -63
  543. 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
@@ -53,6 +53,7 @@ const index$1 = require("./services/content-api/index.js");
53
53
  const dynamicZones = require("./services/utils/dynamic-zones.js");
54
54
  const features = require("./services/features.js");
55
55
  const index$a = require("./services/document-service/index.js");
56
+ const draftPublish = require("./migrations/draft-publish.js");
56
57
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
57
58
  const path__default = /* @__PURE__ */ _interopDefault(path);
58
59
  const ___default = /* @__PURE__ */ _interopDefault(_);
@@ -105,6 +106,9 @@ class Strapi extends container.Container {
105
106
  webhookStore;
106
107
  store;
107
108
  entityValidator;
109
+ /**
110
+ * @deprecated `strapi.entityService` will be removed in the next major version
111
+ */
108
112
  entityService;
109
113
  documents;
110
114
  telemetry;
@@ -126,7 +130,7 @@ class Strapi extends container.Container {
126
130
  signals.destroyOnSignal(this);
127
131
  const rootDirs = resolveWorkingDirectories(opts);
128
132
  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());
133
+ 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("content-api", index$1(this)).add("auth", index$2()).add("models", models.registry());
130
134
  this.dirs = getDirs.getDirs(rootDirs, { strapi: this });
131
135
  this.isLoaded = false;
132
136
  this.reload = reloader(this);
@@ -134,17 +138,29 @@ class Strapi extends container.Container {
134
138
  this.fs = fs(this);
135
139
  this.eventHub = eventHub();
136
140
  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);
141
+ const logConfig = {
142
+ level: "http",
143
+ // Strapi defaults to level 'http'
144
+ ...this.config.get("logger"),
145
+ // DEPRECATED
146
+ ...this.config.get("server.logger.config")
147
+ };
148
+ this.log = logger.createLogger(logConfig);
142
149
  this.cron = cron();
143
150
  this.telemetry = index$4(this);
144
151
  this.requestContext = requestContext;
145
152
  this.customFields = customFields$1(this);
146
153
  this.fetch = fetch.createStrapiFetch(this);
147
154
  this.features = features.createFeaturesService(this);
155
+ this.db = new database.Database(
156
+ ___default.default.merge(this.config.get("database"), {
157
+ settings: {
158
+ migrations: {
159
+ dir: path__default.default.join(this.dirs.app.root, "database/migrations")
160
+ }
161
+ }
162
+ })
163
+ );
148
164
  index$5.createUpdateNotifier(this).notify();
149
165
  Object.defineProperty(this, "EE", {
150
166
  get: () => {
@@ -321,6 +337,8 @@ class Strapi extends container.Container {
321
337
  registerInternalHooks() {
322
338
  this.get("hooks").set("strapi::content-types.beforeSync", strapiUtils.hooks.createAsyncParallelHook());
323
339
  this.get("hooks").set("strapi::content-types.afterSync", strapiUtils.hooks.createAsyncParallelHook());
340
+ this.hook("strapi::content-types.beforeSync").register(draftPublish.disable);
341
+ this.hook("strapi::content-types.afterSync").register(draftPublish.enable);
324
342
  }
325
343
  async register() {
326
344
  await index$7.loadApplicationContext(this);
@@ -339,21 +357,19 @@ class Strapi extends container.Container {
339
357
  }
340
358
  async bootstrap() {
341
359
  const models2 = [
342
- ...transformContentTypesToModels.transformContentTypesToModels([
343
- ...Object.values(this.contentTypes),
344
- ...Object.values(this.components)
345
- ]),
360
+ ...transformContentTypesToModels.transformContentTypesToModels(
361
+ [...Object.values(this.contentTypes), ...Object.values(this.components)],
362
+ { maxLength: this.db.DEFAULT_MAX_IDENTIFIER_LENGTH }
363
+ ),
346
364
  ...this.get("models").get()
347
365
  ];
348
- this.db = await database.Database.init({ ...this.config.get("database"), models: models2 });
366
+ await this.db.init({ models: models2 });
349
367
  this.store = coreStore.createCoreStore({ db: this.db });
350
368
  this.webhookStore = webhookStore.createWebhookStore({ db: this.db });
351
369
  this.entityValidator = index$8;
352
370
  this.entityService = index$9({
353
371
  strapi: this,
354
- db: this.db,
355
- eventHub: this.eventHub,
356
- entityValidator: this.entityValidator
372
+ db: this.db
357
373
  });
358
374
  this.documents = index$a.createDocumentService(this);
359
375
  if (this.config.get("server.cron.enabled", true)) {
@@ -430,8 +446,7 @@ class Strapi extends container.Container {
430
446
  }
431
447
  }
432
448
  /**
433
- * Binds queries with a specific model
434
- * @param {string} uid
449
+ * @deprecated Use `strapi.db.query` instead
435
450
  */
436
451
  query(uid) {
437
452
  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';\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('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 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<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.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), ...Object.values(this.components)],\n { maxLength: this.db.DEFAULT_MAX_IDENTIFIER_LENGTH }\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","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
@@ -53,6 +53,7 @@ import createContentAPI from "./services/content-api/index.mjs";
53
53
  import getNumberOfDynamicZones from "./services/utils/dynamic-zones.mjs";
54
54
  import { createFeaturesService } from "./services/features.mjs";
55
55
  import { createDocumentService } from "./services/document-service/index.mjs";
56
+ import { disable as disableDraftAndPublish, enable as enableDraftAndPublish } from "./migrations/draft-publish.mjs";
56
57
  const resolveWorkingDirectories = (opts) => {
57
58
  const cwd = process.cwd();
58
59
  const appDir = opts.appDir ? path.resolve(cwd, opts.appDir) : cwd;
@@ -102,6 +103,9 @@ class Strapi extends Container {
102
103
  webhookStore;
103
104
  store;
104
105
  entityValidator;
106
+ /**
107
+ * @deprecated `strapi.entityService` will be removed in the next major version
108
+ */
105
109
  entityService;
106
110
  documents;
107
111
  telemetry;
@@ -123,7 +127,7 @@ class Strapi extends Container {
123
127
  destroyOnSignal(this);
124
128
  const rootDirs = resolveWorkingDirectories(opts);
125
129
  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());
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());
127
131
  this.dirs = getDirs(rootDirs, { strapi: this });
128
132
  this.isLoaded = false;
129
133
  this.reload = reloader(this);
@@ -131,17 +135,29 @@ class Strapi extends Container {
131
135
  this.fs = createStrapiFs(this);
132
136
  this.eventHub = createEventHub();
133
137
  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);
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);
139
146
  this.cron = createCronService();
140
147
  this.telemetry = createTelemetryInstance(this);
141
148
  this.requestContext = requestCtx;
142
149
  this.customFields = createCustomFields(this);
143
150
  this.fetch = createStrapiFetch(this);
144
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
+ );
145
161
  createUpdateNotifier(this).notify();
146
162
  Object.defineProperty(this, "EE", {
147
163
  get: () => {
@@ -318,6 +334,8 @@ class Strapi extends Container {
318
334
  registerInternalHooks() {
319
335
  this.get("hooks").set("strapi::content-types.beforeSync", hooks.createAsyncParallelHook());
320
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);
321
339
  }
322
340
  async register() {
323
341
  await loadApplicationContext(this);
@@ -336,21 +354,19 @@ class Strapi extends Container {
336
354
  }
337
355
  async bootstrap() {
338
356
  const models = [
339
- ...transformContentTypesToModels([
340
- ...Object.values(this.contentTypes),
341
- ...Object.values(this.components)
342
- ]),
357
+ ...transformContentTypesToModels(
358
+ [...Object.values(this.contentTypes), ...Object.values(this.components)],
359
+ { maxLength: this.db.DEFAULT_MAX_IDENTIFIER_LENGTH }
360
+ ),
343
361
  ...this.get("models").get()
344
362
  ];
345
- this.db = await Database.init({ ...this.config.get("database"), models });
363
+ await this.db.init({ models });
346
364
  this.store = createCoreStore({ db: this.db });
347
365
  this.webhookStore = createWebhookStore({ db: this.db });
348
366
  this.entityValidator = entityValidator;
349
367
  this.entityService = createEntityService({
350
368
  strapi: this,
351
- db: this.db,
352
- eventHub: this.eventHub,
353
- entityValidator: this.entityValidator
369
+ db: this.db
354
370
  });
355
371
  this.documents = createDocumentService(this);
356
372
  if (this.config.get("server.cron.enabled", true)) {
@@ -427,8 +443,7 @@ class Strapi extends Container {
427
443
  }
428
444
  }
429
445
  /**
430
- * Binds queries with a specific model
431
- * @param {string} uid
446
+ * @deprecated Use `strapi.db.query` instead
432
447
  */
433
448
  query(uid) {
434
449
  return this.db.query(uid);