@strapi/core 0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011 → 0.0.0-experimental.fca58d9b01ba89012d84a58a20556a6fd716cb92

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 (1014) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +52 -59
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +436 -431
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +427 -442
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/compile.js +23 -14
  9. package/dist/compile.js.map +1 -1
  10. package/dist/compile.mjs +22 -14
  11. package/dist/compile.mjs.map +1 -1
  12. package/dist/configuration/config-loader.d.ts.map +1 -1
  13. package/dist/configuration/config-loader.js +110 -93
  14. package/dist/configuration/config-loader.js.map +1 -1
  15. package/dist/configuration/config-loader.mjs +109 -92
  16. package/dist/configuration/config-loader.mjs.map +1 -1
  17. package/dist/configuration/get-dirs.d.ts +10 -0
  18. package/dist/configuration/get-dirs.d.ts.map +1 -0
  19. package/dist/configuration/get-dirs.js +33 -0
  20. package/dist/configuration/get-dirs.js.map +1 -0
  21. package/dist/configuration/get-dirs.mjs +31 -0
  22. package/dist/configuration/get-dirs.mjs.map +1 -0
  23. package/dist/configuration/index.d.ts +5 -7
  24. package/dist/configuration/index.d.ts.map +1 -1
  25. package/dist/configuration/index.js +86 -72
  26. package/dist/configuration/index.js.map +1 -1
  27. package/dist/configuration/index.mjs +84 -68
  28. package/dist/configuration/index.mjs.map +1 -1
  29. package/dist/configuration/urls.d.ts.map +1 -1
  30. package/dist/configuration/urls.js +74 -61
  31. package/dist/configuration/urls.js.map +1 -1
  32. package/dist/configuration/urls.mjs +73 -62
  33. package/dist/configuration/urls.mjs.map +1 -1
  34. package/dist/container.d.ts +2 -2
  35. package/dist/container.d.ts.map +1 -1
  36. package/dist/container.js +27 -23
  37. package/dist/container.js.map +1 -1
  38. package/dist/container.mjs +26 -24
  39. package/dist/container.mjs.map +1 -1
  40. package/dist/core-api/controller/collection-type.d.ts +3 -3
  41. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  42. package/dist/core-api/controller/collection-type.js +77 -73
  43. package/dist/core-api/controller/collection-type.js.map +1 -1
  44. package/dist/core-api/controller/collection-type.mjs +76 -74
  45. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  46. package/dist/core-api/controller/index.d.ts +3 -3
  47. package/dist/core-api/controller/index.d.ts.map +1 -1
  48. package/dist/core-api/controller/index.js +63 -48
  49. package/dist/core-api/controller/index.js.map +1 -1
  50. package/dist/core-api/controller/index.mjs +62 -49
  51. package/dist/core-api/controller/index.mjs.map +1 -1
  52. package/dist/core-api/controller/single-type.d.ts +3 -3
  53. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  54. package/dist/core-api/controller/single-type.js +41 -39
  55. package/dist/core-api/controller/single-type.js.map +1 -1
  56. package/dist/core-api/controller/single-type.mjs +40 -40
  57. package/dist/core-api/controller/single-type.mjs.map +1 -1
  58. package/dist/core-api/controller/transform.d.ts +2 -2
  59. package/dist/core-api/controller/transform.d.ts.map +1 -1
  60. package/dist/core-api/controller/transform.js +72 -66
  61. package/dist/core-api/controller/transform.js.map +1 -1
  62. package/dist/core-api/controller/transform.mjs +71 -67
  63. package/dist/core-api/controller/transform.mjs.map +1 -1
  64. package/dist/core-api/routes/index.d.ts.map +1 -1
  65. package/dist/core-api/routes/index.js +64 -62
  66. package/dist/core-api/routes/index.js.map +1 -1
  67. package/dist/core-api/routes/index.mjs +62 -62
  68. package/dist/core-api/routes/index.mjs.map +1 -1
  69. package/dist/core-api/service/collection-type.d.ts +11 -17
  70. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  71. package/dist/core-api/service/collection-type.js +73 -49
  72. package/dist/core-api/service/collection-type.js.map +1 -1
  73. package/dist/core-api/service/collection-type.mjs +72 -51
  74. package/dist/core-api/service/collection-type.mjs.map +1 -1
  75. package/dist/core-api/service/core-service.js +9 -8
  76. package/dist/core-api/service/core-service.js.map +1 -1
  77. package/dist/core-api/service/core-service.mjs +8 -9
  78. package/dist/core-api/service/core-service.mjs.map +1 -1
  79. package/dist/core-api/service/index.d.ts +3 -3
  80. package/dist/core-api/service/index.d.ts.map +1 -1
  81. package/dist/core-api/service/index.js +13 -13
  82. package/dist/core-api/service/index.js.map +1 -1
  83. package/dist/core-api/service/index.mjs +12 -14
  84. package/dist/core-api/service/index.mjs.map +1 -1
  85. package/dist/core-api/service/pagination.d.ts +4 -11
  86. package/dist/core-api/service/pagination.d.ts.map +1 -1
  87. package/dist/core-api/service/pagination.js +68 -68
  88. package/dist/core-api/service/pagination.js.map +1 -1
  89. package/dist/core-api/service/pagination.mjs +66 -71
  90. package/dist/core-api/service/pagination.mjs.map +1 -1
  91. package/dist/core-api/service/single-type.d.ts +4 -4
  92. package/dist/core-api/service/single-type.d.ts.map +1 -1
  93. package/dist/core-api/service/single-type.js +43 -32
  94. package/dist/core-api/service/single-type.js.map +1 -1
  95. package/dist/core-api/service/single-type.mjs +42 -34
  96. package/dist/core-api/service/single-type.mjs.map +1 -1
  97. package/dist/domain/content-type/index.d.ts +1 -1
  98. package/dist/domain/content-type/index.d.ts.map +1 -1
  99. package/dist/domain/content-type/index.js +95 -100
  100. package/dist/domain/content-type/index.js.map +1 -1
  101. package/dist/domain/content-type/index.mjs +94 -100
  102. package/dist/domain/content-type/index.mjs.map +1 -1
  103. package/dist/domain/content-type/validator.js +84 -69
  104. package/dist/domain/content-type/validator.js.map +1 -1
  105. package/dist/domain/content-type/validator.mjs +83 -68
  106. package/dist/domain/content-type/validator.mjs.map +1 -1
  107. package/dist/domain/module/index.d.ts +24 -23
  108. package/dist/domain/module/index.d.ts.map +1 -1
  109. package/dist/domain/module/index.js +109 -99
  110. package/dist/domain/module/index.js.map +1 -1
  111. package/dist/domain/module/index.mjs +108 -98
  112. package/dist/domain/module/index.mjs.map +1 -1
  113. package/dist/domain/module/validation.js +25 -20
  114. package/dist/domain/module/validation.js.map +1 -1
  115. package/dist/domain/module/validation.mjs +24 -21
  116. package/dist/domain/module/validation.mjs.map +1 -1
  117. package/dist/ee/index.d.ts +5 -2
  118. package/dist/ee/index.d.ts.map +1 -1
  119. package/dist/ee/index.js +171 -132
  120. package/dist/ee/index.js.map +1 -1
  121. package/dist/ee/index.mjs +170 -134
  122. package/dist/ee/index.mjs.map +1 -1
  123. package/dist/ee/license.d.ts +2 -2
  124. package/dist/ee/license.d.ts.map +1 -1
  125. package/dist/ee/license.js +100 -74
  126. package/dist/ee/license.js.map +1 -1
  127. package/dist/ee/license.mjs +99 -75
  128. package/dist/ee/license.mjs.map +1 -1
  129. package/dist/factories.d.ts +10 -10
  130. package/dist/factories.d.ts.map +1 -1
  131. package/dist/factories.js +72 -63
  132. package/dist/factories.js.map +1 -1
  133. package/dist/factories.mjs +71 -67
  134. package/dist/factories.mjs.map +1 -1
  135. package/dist/index.d.ts +18 -2
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +32 -5
  138. package/dist/index.js.map +1 -1
  139. package/dist/index.mjs +29 -5
  140. package/dist/index.mjs.map +1 -1
  141. package/dist/loaders/admin.d.ts +2 -2
  142. package/dist/loaders/admin.d.ts.map +1 -1
  143. package/dist/loaders/admin.js +21 -21
  144. package/dist/loaders/admin.js.map +1 -1
  145. package/dist/loaders/admin.mjs +20 -21
  146. package/dist/loaders/admin.mjs.map +1 -1
  147. package/dist/loaders/apis.d.ts +2 -2
  148. package/dist/loaders/apis.d.ts.map +1 -1
  149. package/dist/loaders/apis.js +143 -120
  150. package/dist/loaders/apis.js.map +1 -1
  151. package/dist/loaders/apis.mjs +142 -119
  152. package/dist/loaders/apis.mjs.map +1 -1
  153. package/dist/loaders/components.d.ts +2 -2
  154. package/dist/loaders/components.d.ts.map +1 -1
  155. package/dist/loaders/components.js +33 -34
  156. package/dist/loaders/components.js.map +1 -1
  157. package/dist/loaders/components.mjs +32 -34
  158. package/dist/loaders/components.mjs.map +1 -1
  159. package/dist/loaders/index.d.ts +2 -2
  160. package/dist/loaders/index.d.ts.map +1 -1
  161. package/dist/loaders/index.js +22 -22
  162. package/dist/loaders/index.js.map +1 -1
  163. package/dist/loaders/index.mjs +21 -23
  164. package/dist/loaders/index.mjs.map +1 -1
  165. package/dist/loaders/middlewares.d.ts +2 -2
  166. package/dist/loaders/middlewares.d.ts.map +1 -1
  167. package/dist/loaders/middlewares.js +29 -25
  168. package/dist/loaders/middlewares.js.map +1 -1
  169. package/dist/loaders/middlewares.mjs +28 -25
  170. package/dist/loaders/middlewares.mjs.map +1 -1
  171. package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
  172. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  173. package/dist/loaders/plugins/get-enabled-plugins.js +125 -100
  174. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  175. package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -99
  176. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  177. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  178. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  179. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  180. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  181. package/dist/loaders/plugins/index.d.ts +2 -2
  182. package/dist/loaders/plugins/index.d.ts.map +1 -1
  183. package/dist/loaders/plugins/index.js +141 -104
  184. package/dist/loaders/plugins/index.js.map +1 -1
  185. package/dist/loaders/plugins/index.mjs +121 -104
  186. package/dist/loaders/plugins/index.mjs.map +1 -1
  187. package/dist/loaders/policies.d.ts +2 -2
  188. package/dist/loaders/policies.d.ts.map +1 -1
  189. package/dist/loaders/policies.js +24 -20
  190. package/dist/loaders/policies.js.map +1 -1
  191. package/dist/loaders/policies.mjs +23 -20
  192. package/dist/loaders/policies.mjs.map +1 -1
  193. package/dist/loaders/sanitizers.d.ts +2 -2
  194. package/dist/loaders/sanitizers.d.ts.map +1 -1
  195. package/dist/loaders/sanitizers.js +10 -4
  196. package/dist/loaders/sanitizers.js.map +1 -1
  197. package/dist/loaders/sanitizers.mjs +9 -6
  198. package/dist/loaders/sanitizers.mjs.map +1 -1
  199. package/dist/loaders/src-index.d.ts +2 -2
  200. package/dist/loaders/src-index.d.ts.map +1 -1
  201. package/dist/loaders/src-index.js +35 -27
  202. package/dist/loaders/src-index.js.map +1 -1
  203. package/dist/loaders/src-index.mjs +34 -29
  204. package/dist/loaders/src-index.mjs.map +1 -1
  205. package/dist/loaders/validators.d.ts +2 -2
  206. package/dist/loaders/validators.d.ts.map +1 -1
  207. package/dist/loaders/validators.js +9 -4
  208. package/dist/loaders/validators.js.map +1 -1
  209. package/dist/loaders/validators.mjs +8 -6
  210. package/dist/loaders/validators.mjs.map +1 -1
  211. package/dist/middlewares/body.d.ts +4 -4
  212. package/dist/middlewares/body.d.ts.map +1 -1
  213. package/dist/middlewares/body.js +58 -54
  214. package/dist/middlewares/body.js.map +1 -1
  215. package/dist/middlewares/body.mjs +57 -51
  216. package/dist/middlewares/body.mjs.map +1 -1
  217. package/dist/middlewares/compression.d.ts +2 -2
  218. package/dist/middlewares/compression.d.ts.map +1 -1
  219. package/dist/middlewares/compression.js +6 -6
  220. package/dist/middlewares/compression.js.map +1 -1
  221. package/dist/middlewares/compression.mjs +5 -5
  222. package/dist/middlewares/compression.mjs.map +1 -1
  223. package/dist/middlewares/cors.d.ts +2 -2
  224. package/dist/middlewares/cors.d.ts.map +1 -1
  225. package/dist/middlewares/cors.js +59 -46
  226. package/dist/middlewares/cors.js.map +1 -1
  227. package/dist/middlewares/cors.mjs +58 -45
  228. package/dist/middlewares/cors.mjs.map +1 -1
  229. package/dist/middlewares/errors.d.ts +2 -2
  230. package/dist/middlewares/errors.d.ts.map +1 -1
  231. package/dist/middlewares/errors.js +32 -30
  232. package/dist/middlewares/errors.js.map +1 -1
  233. package/dist/middlewares/errors.mjs +31 -31
  234. package/dist/middlewares/errors.mjs.map +1 -1
  235. package/dist/middlewares/favicon.d.ts +2 -2
  236. package/dist/middlewares/favicon.d.ts.map +1 -1
  237. package/dist/middlewares/favicon.js +27 -17
  238. package/dist/middlewares/favicon.js.map +1 -1
  239. package/dist/middlewares/favicon.mjs +26 -16
  240. package/dist/middlewares/favicon.mjs.map +1 -1
  241. package/dist/middlewares/index.d.ts +2 -2
  242. package/dist/middlewares/index.d.ts.map +1 -1
  243. package/dist/middlewares/index.js +32 -30
  244. package/dist/middlewares/index.js.map +1 -1
  245. package/dist/middlewares/index.mjs +31 -31
  246. package/dist/middlewares/index.mjs.map +1 -1
  247. package/dist/middlewares/ip.d.ts +2 -2
  248. package/dist/middlewares/ip.d.ts.map +1 -1
  249. package/dist/middlewares/ip.js +6 -6
  250. package/dist/middlewares/ip.js.map +1 -1
  251. package/dist/middlewares/ip.mjs +5 -5
  252. package/dist/middlewares/ip.mjs.map +1 -1
  253. package/dist/middlewares/logger.d.ts +2 -2
  254. package/dist/middlewares/logger.d.ts.map +1 -1
  255. package/dist/middlewares/logger.js +10 -9
  256. package/dist/middlewares/logger.js.map +1 -1
  257. package/dist/middlewares/logger.mjs +9 -10
  258. package/dist/middlewares/logger.mjs.map +1 -1
  259. package/dist/middlewares/powered-by.d.ts +2 -2
  260. package/dist/middlewares/powered-by.d.ts.map +1 -1
  261. package/dist/middlewares/powered-by.js +13 -9
  262. package/dist/middlewares/powered-by.js.map +1 -1
  263. package/dist/middlewares/powered-by.mjs +12 -10
  264. package/dist/middlewares/powered-by.mjs.map +1 -1
  265. package/dist/middlewares/public.d.ts +2 -2
  266. package/dist/middlewares/public.d.ts.map +1 -1
  267. package/dist/middlewares/public.js +33 -29
  268. package/dist/middlewares/public.js.map +1 -1
  269. package/dist/middlewares/public.mjs +32 -28
  270. package/dist/middlewares/public.mjs.map +1 -1
  271. package/dist/middlewares/query.d.ts +2 -2
  272. package/dist/middlewares/query.d.ts.map +1 -1
  273. package/dist/middlewares/query.js +35 -32
  274. package/dist/middlewares/query.js.map +1 -1
  275. package/dist/middlewares/query.mjs +34 -31
  276. package/dist/middlewares/query.mjs.map +1 -1
  277. package/dist/middlewares/response-time.d.ts +2 -2
  278. package/dist/middlewares/response-time.d.ts.map +1 -1
  279. package/dist/middlewares/response-time.js +10 -9
  280. package/dist/middlewares/response-time.js.map +1 -1
  281. package/dist/middlewares/response-time.mjs +9 -10
  282. package/dist/middlewares/response-time.mjs.map +1 -1
  283. package/dist/middlewares/responses.d.ts +3 -3
  284. package/dist/middlewares/responses.d.ts.map +1 -1
  285. package/dist/middlewares/responses.js +14 -12
  286. package/dist/middlewares/responses.js.map +1 -1
  287. package/dist/middlewares/responses.mjs +13 -13
  288. package/dist/middlewares/responses.mjs.map +1 -1
  289. package/dist/middlewares/security.d.ts +2 -2
  290. package/dist/middlewares/security.d.ts.map +1 -1
  291. package/dist/middlewares/security.js +110 -65
  292. package/dist/middlewares/security.js.map +1 -1
  293. package/dist/middlewares/security.mjs +108 -63
  294. package/dist/middlewares/security.mjs.map +1 -1
  295. package/dist/middlewares/session.d.ts +2 -2
  296. package/dist/middlewares/session.d.ts.map +1 -1
  297. package/dist/middlewares/session.js +26 -25
  298. package/dist/middlewares/session.js.map +1 -1
  299. package/dist/middlewares/session.mjs +25 -24
  300. package/dist/middlewares/session.mjs.map +1 -1
  301. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
  302. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  303. package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
  304. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  305. package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
  306. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  307. package/dist/migrations/draft-publish.d.ts +2 -2
  308. package/dist/migrations/draft-publish.d.ts.map +1 -1
  309. package/dist/migrations/draft-publish.js +59 -49
  310. package/dist/migrations/draft-publish.js.map +1 -1
  311. package/dist/migrations/draft-publish.mjs +58 -51
  312. package/dist/migrations/draft-publish.mjs.map +1 -1
  313. package/dist/migrations/i18n.d.ts +5 -0
  314. package/dist/migrations/i18n.d.ts.map +1 -0
  315. package/dist/migrations/i18n.js +71 -0
  316. package/dist/migrations/i18n.js.map +1 -0
  317. package/dist/migrations/i18n.mjs +68 -0
  318. package/dist/migrations/i18n.mjs.map +1 -0
  319. package/dist/migrations/index.d.ts +5 -0
  320. package/dist/migrations/index.d.ts.map +1 -0
  321. package/dist/migrations/index.js +29 -0
  322. package/dist/migrations/index.js.map +1 -0
  323. package/dist/migrations/index.mjs +26 -0
  324. package/dist/migrations/index.mjs.map +1 -0
  325. package/dist/package.json.js +182 -0
  326. package/dist/package.json.js.map +1 -0
  327. package/dist/package.json.mjs +159 -0
  328. package/dist/package.json.mjs.map +1 -0
  329. package/dist/providers/admin.d.ts +3 -0
  330. package/dist/providers/admin.d.ts.map +1 -0
  331. package/dist/providers/admin.js +30 -0
  332. package/dist/providers/admin.js.map +1 -0
  333. package/dist/providers/admin.mjs +28 -0
  334. package/dist/providers/admin.mjs.map +1 -0
  335. package/dist/providers/coreStore.d.ts +3 -0
  336. package/dist/providers/coreStore.d.ts.map +1 -0
  337. package/dist/providers/coreStore.js +16 -0
  338. package/dist/providers/coreStore.js.map +1 -0
  339. package/dist/providers/coreStore.mjs +14 -0
  340. package/dist/providers/coreStore.mjs.map +1 -0
  341. package/dist/providers/cron.d.ts +3 -0
  342. package/dist/providers/cron.d.ts.map +1 -0
  343. package/dist/providers/cron.js +23 -0
  344. package/dist/providers/cron.js.map +1 -0
  345. package/dist/providers/cron.mjs +21 -0
  346. package/dist/providers/cron.mjs.map +1 -0
  347. package/dist/providers/index.d.ts +3 -0
  348. package/dist/providers/index.d.ts.map +1 -0
  349. package/dist/providers/index.js +20 -0
  350. package/dist/providers/index.js.map +1 -0
  351. package/dist/providers/index.mjs +18 -0
  352. package/dist/providers/index.mjs.map +1 -0
  353. package/dist/providers/provider.d.ts +9 -0
  354. package/dist/providers/provider.d.ts.map +1 -0
  355. package/dist/providers/provider.js +6 -0
  356. package/dist/providers/provider.js.map +1 -0
  357. package/dist/providers/provider.mjs +4 -0
  358. package/dist/providers/provider.mjs.map +1 -0
  359. package/dist/providers/registries.d.ts +3 -0
  360. package/dist/providers/registries.d.ts.map +1 -0
  361. package/dist/providers/registries.js +40 -0
  362. package/dist/providers/registries.js.map +1 -0
  363. package/dist/providers/registries.mjs +38 -0
  364. package/dist/providers/registries.mjs.map +1 -0
  365. package/dist/providers/telemetry.d.ts +3 -0
  366. package/dist/providers/telemetry.d.ts.map +1 -0
  367. package/dist/providers/telemetry.js +22 -0
  368. package/dist/providers/telemetry.js.map +1 -0
  369. package/dist/providers/telemetry.mjs +20 -0
  370. package/dist/providers/telemetry.mjs.map +1 -0
  371. package/dist/providers/webhooks.d.ts +3 -0
  372. package/dist/providers/webhooks.d.ts.map +1 -0
  373. package/dist/providers/webhooks.js +32 -0
  374. package/dist/providers/webhooks.js.map +1 -0
  375. package/dist/providers/webhooks.mjs +30 -0
  376. package/dist/providers/webhooks.mjs.map +1 -0
  377. package/dist/registries/apis.d.ts +2 -2
  378. package/dist/registries/apis.d.ts.map +1 -1
  379. package/dist/registries/apis.js +23 -20
  380. package/dist/registries/apis.js.map +1 -1
  381. package/dist/registries/apis.mjs +22 -22
  382. package/dist/registries/apis.mjs.map +1 -1
  383. package/dist/registries/components.d.ts +6 -6
  384. package/dist/registries/components.d.ts.map +1 -1
  385. package/dist/registries/components.js +35 -37
  386. package/dist/registries/components.js.map +1 -1
  387. package/dist/registries/components.mjs +34 -39
  388. package/dist/registries/components.mjs.map +1 -1
  389. package/dist/registries/content-types.d.ts +5 -5
  390. package/dist/registries/content-types.d.ts.map +1 -1
  391. package/dist/registries/content-types.js +54 -59
  392. package/dist/registries/content-types.js.map +1 -1
  393. package/dist/registries/content-types.mjs +53 -61
  394. package/dist/registries/content-types.mjs.map +1 -1
  395. package/dist/registries/controllers.d.ts +10 -10
  396. package/dist/registries/controllers.d.ts.map +1 -1
  397. package/dist/registries/controllers.js +70 -71
  398. package/dist/registries/controllers.js.map +1 -1
  399. package/dist/registries/controllers.mjs +69 -73
  400. package/dist/registries/controllers.mjs.map +1 -1
  401. package/dist/registries/custom-fields.d.ts +3 -3
  402. package/dist/registries/custom-fields.d.ts.map +1 -1
  403. package/dist/registries/custom-fields.js +75 -65
  404. package/dist/registries/custom-fields.js.map +1 -1
  405. package/dist/registries/custom-fields.mjs +74 -67
  406. package/dist/registries/custom-fields.mjs.map +1 -1
  407. package/dist/registries/hooks.js +46 -49
  408. package/dist/registries/hooks.js.map +1 -1
  409. package/dist/registries/hooks.mjs +45 -51
  410. package/dist/registries/hooks.mjs.map +1 -1
  411. package/dist/registries/index.d.ts +0 -1
  412. package/dist/registries/index.d.ts.map +1 -1
  413. package/dist/registries/middlewares.d.ts +6 -6
  414. package/dist/registries/middlewares.d.ts.map +1 -1
  415. package/dist/registries/middlewares.js +49 -51
  416. package/dist/registries/middlewares.js.map +1 -1
  417. package/dist/registries/middlewares.mjs +48 -53
  418. package/dist/registries/middlewares.mjs.map +1 -1
  419. package/dist/registries/models.js +14 -13
  420. package/dist/registries/models.js.map +1 -1
  421. package/dist/registries/models.mjs +13 -14
  422. package/dist/registries/models.mjs.map +1 -1
  423. package/dist/registries/modules.d.ts +2 -2
  424. package/dist/registries/modules.d.ts.map +1 -1
  425. package/dist/registries/modules.js +39 -36
  426. package/dist/registries/modules.js.map +1 -1
  427. package/dist/registries/modules.mjs +38 -38
  428. package/dist/registries/modules.mjs.map +1 -1
  429. package/dist/registries/namespace.js +21 -20
  430. package/dist/registries/namespace.js.map +1 -1
  431. package/dist/registries/namespace.mjs +20 -23
  432. package/dist/registries/namespace.mjs.map +1 -1
  433. package/dist/registries/plugins.d.ts +5 -5
  434. package/dist/registries/plugins.d.ts.map +1 -1
  435. package/dist/registries/plugins.js +23 -20
  436. package/dist/registries/plugins.js.map +1 -1
  437. package/dist/registries/plugins.mjs +22 -22
  438. package/dist/registries/plugins.mjs.map +1 -1
  439. package/dist/registries/policies.d.ts +22 -10
  440. package/dist/registries/policies.d.ts.map +1 -1
  441. package/dist/registries/policies.js +107 -54
  442. package/dist/registries/policies.js.map +1 -1
  443. package/dist/registries/policies.mjs +106 -56
  444. package/dist/registries/policies.mjs.map +1 -1
  445. package/dist/registries/sanitizers.js +23 -22
  446. package/dist/registries/sanitizers.js.map +1 -1
  447. package/dist/registries/sanitizers.mjs +22 -22
  448. package/dist/registries/sanitizers.mjs.map +1 -1
  449. package/dist/registries/services.d.ts +8 -8
  450. package/dist/registries/services.d.ts.map +1 -1
  451. package/dist/registries/services.js +71 -71
  452. package/dist/registries/services.js.map +1 -1
  453. package/dist/registries/services.mjs +70 -73
  454. package/dist/registries/services.mjs.map +1 -1
  455. package/dist/registries/validators.js +23 -22
  456. package/dist/registries/validators.js.map +1 -1
  457. package/dist/registries/validators.mjs +22 -22
  458. package/dist/registries/validators.mjs.map +1 -1
  459. package/dist/services/auth/index.d.ts +4 -4
  460. package/dist/services/auth/index.d.ts.map +1 -1
  461. package/dist/services/auth/index.js +74 -74
  462. package/dist/services/auth/index.js.map +1 -1
  463. package/dist/services/auth/index.mjs +73 -74
  464. package/dist/services/auth/index.mjs.map +1 -1
  465. package/dist/services/config.d.ts +3 -0
  466. package/dist/services/config.d.ts.map +1 -0
  467. package/dist/services/config.js +51 -0
  468. package/dist/services/config.js.map +1 -0
  469. package/dist/services/config.mjs +49 -0
  470. package/dist/services/config.mjs.map +1 -0
  471. package/dist/services/content-api/index.d.ts +31 -15
  472. package/dist/services/content-api/index.d.ts.map +1 -1
  473. package/dist/services/content-api/index.js +80 -53
  474. package/dist/services/content-api/index.js.map +1 -1
  475. package/dist/services/content-api/index.mjs +79 -53
  476. package/dist/services/content-api/index.mjs.map +1 -1
  477. package/dist/services/content-api/permissions/engine.js +8 -5
  478. package/dist/services/content-api/permissions/engine.js.map +1 -1
  479. package/dist/services/content-api/permissions/engine.mjs +7 -5
  480. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  481. package/dist/services/content-api/permissions/index.d.ts +13 -15
  482. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  483. package/dist/services/content-api/permissions/index.js +101 -81
  484. package/dist/services/content-api/permissions/index.js.map +1 -1
  485. package/dist/services/content-api/permissions/index.mjs +100 -81
  486. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  487. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  488. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  489. package/dist/services/content-api/permissions/providers/action.js +17 -14
  490. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  491. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  492. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  493. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  494. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  495. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  496. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  497. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  498. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  499. package/dist/services/core-store.d.ts.map +1 -1
  500. package/dist/services/core-store.js +115 -95
  501. package/dist/services/core-store.js.map +1 -1
  502. package/dist/services/core-store.mjs +114 -97
  503. package/dist/services/core-store.mjs.map +1 -1
  504. package/dist/services/cron.d.ts +5 -5
  505. package/dist/services/cron.d.ts.map +1 -1
  506. package/dist/services/cron.js +74 -60
  507. package/dist/services/cron.js.map +1 -1
  508. package/dist/services/cron.mjs +73 -62
  509. package/dist/services/cron.mjs.map +1 -1
  510. package/dist/services/custom-fields.d.ts +2 -2
  511. package/dist/services/custom-fields.d.ts.map +1 -1
  512. package/dist/services/custom-fields.js +9 -7
  513. package/dist/services/custom-fields.js.map +1 -1
  514. package/dist/services/custom-fields.mjs +8 -9
  515. package/dist/services/custom-fields.mjs.map +1 -1
  516. package/dist/services/document-service/attributes/index.d.ts +6 -0
  517. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  518. package/dist/services/document-service/attributes/index.js +27 -0
  519. package/dist/services/document-service/attributes/index.js.map +1 -0
  520. package/dist/services/document-service/attributes/index.mjs +25 -0
  521. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  522. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  523. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  524. package/dist/services/document-service/attributes/transforms.js +21 -0
  525. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  526. package/dist/services/document-service/attributes/transforms.mjs +19 -0
  527. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  528. package/dist/services/document-service/common.d.ts +2 -2
  529. package/dist/services/document-service/common.d.ts.map +1 -1
  530. package/dist/services/document-service/common.js +5 -4
  531. package/dist/services/document-service/common.js.map +1 -1
  532. package/dist/services/document-service/common.mjs +4 -5
  533. package/dist/services/document-service/common.mjs.map +1 -1
  534. package/dist/services/document-service/components.d.ts +25 -1
  535. package/dist/services/document-service/components.d.ts.map +1 -1
  536. package/dist/services/document-service/components.js +286 -0
  537. package/dist/services/document-service/components.js.map +1 -0
  538. package/dist/services/document-service/components.mjs +278 -0
  539. package/dist/services/document-service/components.mjs.map +1 -0
  540. package/dist/services/document-service/draft-and-publish.d.ts +7 -7
  541. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  542. package/dist/services/document-service/draft-and-publish.js +94 -54
  543. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  544. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  545. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  546. package/dist/services/document-service/entries.d.ts +10 -0
  547. package/dist/services/document-service/entries.d.ts.map +1 -0
  548. package/dist/services/document-service/entries.js +113 -0
  549. package/dist/services/document-service/entries.js.map +1 -0
  550. package/dist/services/document-service/entries.mjs +111 -0
  551. package/dist/services/document-service/entries.mjs.map +1 -0
  552. package/dist/services/document-service/events.d.ts +25 -0
  553. package/dist/services/document-service/events.d.ts.map +1 -0
  554. package/dist/services/document-service/events.js +59 -0
  555. package/dist/services/document-service/events.js.map +1 -0
  556. package/dist/services/document-service/events.mjs +57 -0
  557. package/dist/services/document-service/events.mjs.map +1 -0
  558. package/dist/services/document-service/index.d.ts +3 -4
  559. package/dist/services/document-service/index.d.ts.map +1 -1
  560. package/dist/services/document-service/index.js +53 -19
  561. package/dist/services/document-service/index.js.map +1 -1
  562. package/dist/services/document-service/index.mjs +52 -20
  563. package/dist/services/document-service/index.mjs.map +1 -1
  564. package/dist/services/document-service/internationalization.d.ts +5 -5
  565. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  566. package/dist/services/document-service/internationalization.js +66 -41
  567. package/dist/services/document-service/internationalization.js.map +1 -1
  568. package/dist/services/document-service/internationalization.mjs +61 -41
  569. package/dist/services/document-service/internationalization.mjs.map +1 -1
  570. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  571. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  572. package/dist/services/document-service/middlewares/errors.js +29 -0
  573. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  574. package/dist/services/document-service/middlewares/errors.mjs +27 -0
  575. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  576. package/dist/services/document-service/middlewares/index.d.ts +3 -0
  577. package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
  578. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  579. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  580. package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
  581. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  582. package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
  583. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  584. package/dist/services/document-service/params.d.ts +3 -1
  585. package/dist/services/document-service/params.d.ts.map +1 -1
  586. package/dist/services/document-service/params.js +14 -0
  587. package/dist/services/document-service/params.js.map +1 -0
  588. package/dist/services/document-service/params.mjs +12 -0
  589. package/dist/services/document-service/params.mjs.map +1 -0
  590. package/dist/services/document-service/repository.d.ts.map +1 -1
  591. package/dist/services/document-service/repository.js +353 -293
  592. package/dist/services/document-service/repository.js.map +1 -1
  593. package/dist/services/document-service/repository.mjs +352 -294
  594. package/dist/services/document-service/repository.mjs.map +1 -1
  595. package/dist/services/document-service/transform/data.d.ts.map +1 -1
  596. package/dist/services/document-service/transform/data.js +22 -10
  597. package/dist/services/document-service/transform/data.js.map +1 -1
  598. package/dist/services/document-service/transform/data.mjs +21 -11
  599. package/dist/services/document-service/transform/data.mjs.map +1 -1
  600. package/dist/services/document-service/transform/fields.d.ts +2 -2
  601. package/dist/services/document-service/transform/fields.d.ts.map +1 -1
  602. package/dist/services/document-service/transform/fields.js +26 -17
  603. package/dist/services/document-service/transform/fields.js.map +1 -1
  604. package/dist/services/document-service/transform/fields.mjs +25 -18
  605. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  606. package/dist/services/document-service/transform/id-map.d.ts +3 -3
  607. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  608. package/dist/services/document-service/transform/id-map.js +116 -69
  609. package/dist/services/document-service/transform/id-map.js.map +1 -1
  610. package/dist/services/document-service/transform/id-map.mjs +115 -70
  611. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  612. package/dist/services/document-service/transform/id-transform.d.ts +2 -2
  613. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  614. package/dist/services/document-service/transform/id-transform.js +38 -30
  615. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  616. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  617. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  618. package/dist/services/document-service/transform/populate.d.ts +2 -2
  619. package/dist/services/document-service/transform/populate.d.ts.map +1 -1
  620. package/dist/services/document-service/transform/populate.js +23 -18
  621. package/dist/services/document-service/transform/populate.js.map +1 -1
  622. package/dist/services/document-service/transform/populate.mjs +22 -19
  623. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  624. package/dist/services/document-service/transform/query.d.ts +5 -0
  625. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  626. package/dist/services/document-service/transform/query.js +14 -0
  627. package/dist/services/document-service/transform/query.js.map +1 -0
  628. package/dist/services/document-service/transform/query.mjs +12 -0
  629. package/dist/services/document-service/transform/query.mjs.map +1 -0
  630. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +8 -7
  631. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  632. package/dist/services/document-service/transform/relations/extract/data-ids.js +75 -85
  633. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  634. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +74 -86
  635. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  636. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +8 -4
  637. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  638. package/dist/services/document-service/transform/relations/transform/data-ids.js +103 -134
  639. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  640. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +102 -135
  641. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  642. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  643. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  644. package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
  645. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  646. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
  647. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  648. package/dist/services/document-service/transform/relations/utils/dp.d.ts +3 -3
  649. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  650. package/dist/services/document-service/transform/relations/utils/dp.js +53 -22
  651. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  652. package/dist/services/document-service/transform/relations/utils/dp.mjs +52 -23
  653. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  654. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +6 -6
  655. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  656. package/dist/services/document-service/transform/relations/utils/i18n.js +19 -23
  657. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  658. package/dist/services/document-service/transform/relations/utils/i18n.mjs +18 -26
  659. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  660. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  661. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  662. package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
  663. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  664. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
  665. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  666. package/dist/services/document-service/transform/relations/utils/types.d.ts +6 -0
  667. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
  668. package/dist/services/document-service/transform/types.d.ts +3 -3
  669. package/dist/services/document-service/transform/types.d.ts.map +1 -1
  670. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  671. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  672. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  673. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  674. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  675. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  676. package/dist/services/document-service/utils/populate.d.ts +9 -2
  677. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  678. package/dist/services/document-service/utils/populate.js +67 -37
  679. package/dist/services/document-service/utils/populate.js.map +1 -1
  680. package/dist/services/document-service/utils/populate.mjs +66 -38
  681. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  682. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  683. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  684. package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
  685. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  686. package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
  687. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  688. package/dist/services/entity-service/index.d.ts +4 -6
  689. package/dist/services/entity-service/index.d.ts.map +1 -1
  690. package/dist/services/entity-service/index.js +229 -319
  691. package/dist/services/entity-service/index.js.map +1 -1
  692. package/dist/services/entity-service/index.mjs +228 -318
  693. package/dist/services/entity-service/index.mjs.map +1 -1
  694. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  695. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  696. package/dist/services/entity-validator/blocks-validator.js +137 -104
  697. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  698. package/dist/services/entity-validator/blocks-validator.mjs +135 -105
  699. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  700. package/dist/services/entity-validator/index.d.ts +16 -2
  701. package/dist/services/entity-validator/index.d.ts.map +1 -1
  702. package/dist/services/entity-validator/index.js +362 -300
  703. package/dist/services/entity-validator/index.js.map +1 -1
  704. package/dist/services/entity-validator/index.mjs +358 -297
  705. package/dist/services/entity-validator/index.mjs.map +1 -1
  706. package/dist/services/entity-validator/validators.d.ts +36 -25
  707. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  708. package/dist/services/entity-validator/validators.js +283 -105
  709. package/dist/services/entity-validator/validators.js.map +1 -1
  710. package/dist/services/entity-validator/validators.mjs +274 -103
  711. package/dist/services/entity-validator/validators.mjs.map +1 -1
  712. package/dist/services/errors.js +65 -65
  713. package/dist/services/errors.js.map +1 -1
  714. package/dist/services/errors.mjs +64 -66
  715. package/dist/services/errors.mjs.map +1 -1
  716. package/dist/services/event-hub.d.ts +1 -0
  717. package/dist/services/event-hub.d.ts.map +1 -1
  718. package/dist/services/event-hub.js +82 -64
  719. package/dist/services/event-hub.js.map +1 -1
  720. package/dist/services/event-hub.mjs +81 -66
  721. package/dist/services/event-hub.mjs.map +1 -1
  722. package/dist/services/features.d.ts +3 -3
  723. package/dist/services/features.d.ts.map +1 -1
  724. package/dist/services/features.js +19 -14
  725. package/dist/services/features.js.map +1 -1
  726. package/dist/services/features.mjs +18 -15
  727. package/dist/services/features.mjs.map +1 -1
  728. package/dist/services/fs.d.ts +2 -2
  729. package/dist/services/fs.d.ts.map +1 -1
  730. package/dist/services/fs.js +41 -40
  731. package/dist/services/fs.js.map +1 -1
  732. package/dist/services/fs.mjs +40 -39
  733. package/dist/services/fs.mjs.map +1 -1
  734. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  735. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  736. package/dist/services/metrics/admin-user-hash.js +13 -11
  737. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  738. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  739. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  740. package/dist/services/metrics/index.d.ts +2 -2
  741. package/dist/services/metrics/index.d.ts.map +1 -1
  742. package/dist/services/metrics/index.js +46 -40
  743. package/dist/services/metrics/index.js.map +1 -1
  744. package/dist/services/metrics/index.mjs +45 -42
  745. package/dist/services/metrics/index.mjs.map +1 -1
  746. package/dist/services/metrics/is-truthy.js +13 -6
  747. package/dist/services/metrics/is-truthy.js.map +1 -1
  748. package/dist/services/metrics/is-truthy.mjs +12 -6
  749. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  750. package/dist/services/metrics/middleware.d.ts +2 -2
  751. package/dist/services/metrics/middleware.d.ts.map +1 -1
  752. package/dist/services/metrics/middleware.js +37 -22
  753. package/dist/services/metrics/middleware.js.map +1 -1
  754. package/dist/services/metrics/middleware.mjs +36 -24
  755. package/dist/services/metrics/middleware.mjs.map +1 -1
  756. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  757. package/dist/services/metrics/rate-limiter.js +24 -19
  758. package/dist/services/metrics/rate-limiter.js.map +1 -1
  759. package/dist/services/metrics/rate-limiter.mjs +23 -21
  760. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  761. package/dist/services/metrics/sender.d.ts +3 -3
  762. package/dist/services/metrics/sender.d.ts.map +1 -1
  763. package/dist/services/metrics/sender.js +78 -69
  764. package/dist/services/metrics/sender.js.map +1 -1
  765. package/dist/services/metrics/sender.mjs +77 -64
  766. package/dist/services/metrics/sender.mjs.map +1 -1
  767. package/dist/services/query-params.d.ts +7 -0
  768. package/dist/services/query-params.d.ts.map +1 -0
  769. package/dist/services/query-params.js +15 -0
  770. package/dist/services/query-params.js.map +1 -0
  771. package/dist/services/query-params.mjs +13 -0
  772. package/dist/services/query-params.mjs.map +1 -0
  773. package/dist/services/reloader.d.ts +7 -0
  774. package/dist/services/reloader.d.ts.map +1 -0
  775. package/dist/services/reloader.js +39 -0
  776. package/dist/services/reloader.js.map +1 -0
  777. package/dist/services/reloader.mjs +37 -0
  778. package/dist/services/reloader.mjs.map +1 -0
  779. package/dist/services/request-context.js +11 -8
  780. package/dist/services/request-context.js.map +1 -1
  781. package/dist/services/request-context.mjs +10 -10
  782. package/dist/services/request-context.mjs.map +1 -1
  783. package/dist/services/server/admin-api.d.ts +3 -3
  784. package/dist/services/server/admin-api.d.ts.map +1 -1
  785. package/dist/services/server/admin-api.js +11 -10
  786. package/dist/services/server/admin-api.js.map +1 -1
  787. package/dist/services/server/admin-api.mjs +10 -11
  788. package/dist/services/server/admin-api.mjs.map +1 -1
  789. package/dist/services/server/api.d.ts +3 -3
  790. package/dist/services/server/api.d.ts.map +1 -1
  791. package/dist/services/server/api.js +33 -27
  792. package/dist/services/server/api.js.map +1 -1
  793. package/dist/services/server/api.mjs +32 -26
  794. package/dist/services/server/api.mjs.map +1 -1
  795. package/dist/services/server/compose-endpoint.d.ts +2 -2
  796. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  797. package/dist/services/server/compose-endpoint.js +116 -106
  798. package/dist/services/server/compose-endpoint.js.map +1 -1
  799. package/dist/services/server/compose-endpoint.mjs +115 -106
  800. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  801. package/dist/services/server/content-api.d.ts +3 -3
  802. package/dist/services/server/content-api.d.ts.map +1 -1
  803. package/dist/services/server/content-api.js +11 -9
  804. package/dist/services/server/content-api.js.map +1 -1
  805. package/dist/services/server/content-api.mjs +10 -10
  806. package/dist/services/server/content-api.mjs.map +1 -1
  807. package/dist/services/server/http-server.d.ts +2 -2
  808. package/dist/services/server/http-server.d.ts.map +1 -1
  809. package/dist/services/server/http-server.js +48 -44
  810. package/dist/services/server/http-server.js.map +1 -1
  811. package/dist/services/server/http-server.mjs +47 -43
  812. package/dist/services/server/http-server.mjs.map +1 -1
  813. package/dist/services/server/index.d.ts +2 -2
  814. package/dist/services/server/index.d.ts.map +1 -1
  815. package/dist/services/server/index.js +85 -83
  816. package/dist/services/server/index.js.map +1 -1
  817. package/dist/services/server/index.mjs +84 -82
  818. package/dist/services/server/index.mjs.map +1 -1
  819. package/dist/services/server/koa.d.ts.map +1 -1
  820. package/dist/services/server/koa.js +49 -47
  821. package/dist/services/server/koa.js.map +1 -1
  822. package/dist/services/server/koa.mjs +48 -44
  823. package/dist/services/server/koa.mjs.map +1 -1
  824. package/dist/services/server/middleware.d.ts +4 -4
  825. package/dist/services/server/middleware.d.ts.map +1 -1
  826. package/dist/services/server/middleware.js +86 -82
  827. package/dist/services/server/middleware.js.map +1 -1
  828. package/dist/services/server/middleware.mjs +85 -82
  829. package/dist/services/server/middleware.mjs.map +1 -1
  830. package/dist/services/server/policy.d.ts +3 -3
  831. package/dist/services/server/policy.d.ts.map +1 -1
  832. package/dist/services/server/policy.js +25 -18
  833. package/dist/services/server/policy.js.map +1 -1
  834. package/dist/services/server/policy.mjs +23 -18
  835. package/dist/services/server/policy.mjs.map +1 -1
  836. package/dist/services/server/register-middlewares.d.ts +2 -2
  837. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  838. package/dist/services/server/register-middlewares.js +68 -61
  839. package/dist/services/server/register-middlewares.js.map +1 -1
  840. package/dist/services/server/register-middlewares.mjs +67 -63
  841. package/dist/services/server/register-middlewares.mjs.map +1 -1
  842. package/dist/services/server/register-routes.d.ts +2 -2
  843. package/dist/services/server/register-routes.d.ts.map +1 -1
  844. package/dist/services/server/register-routes.js +90 -67
  845. package/dist/services/server/register-routes.js.map +1 -1
  846. package/dist/services/server/register-routes.mjs +89 -67
  847. package/dist/services/server/register-routes.mjs.map +1 -1
  848. package/dist/services/server/routing.d.ts +5 -5
  849. package/dist/services/server/routing.d.ts.map +1 -1
  850. package/dist/services/server/routing.js +94 -81
  851. package/dist/services/server/routing.js.map +1 -1
  852. package/dist/services/server/routing.mjs +93 -81
  853. package/dist/services/server/routing.mjs.map +1 -1
  854. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  855. package/dist/services/utils/dynamic-zones.js +13 -13
  856. package/dist/services/utils/dynamic-zones.js.map +1 -1
  857. package/dist/services/utils/dynamic-zones.mjs +12 -15
  858. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  859. package/dist/services/webhook-runner.d.ts +2 -1
  860. package/dist/services/webhook-runner.d.ts.map +1 -1
  861. package/dist/services/webhook-runner.js +124 -122
  862. package/dist/services/webhook-runner.js.map +1 -1
  863. package/dist/services/webhook-runner.mjs +123 -121
  864. package/dist/services/webhook-runner.mjs.map +1 -1
  865. package/dist/services/webhook-store.d.ts +2 -8
  866. package/dist/services/webhook-store.d.ts.map +1 -1
  867. package/dist/services/webhook-store.js +132 -93
  868. package/dist/services/webhook-store.js.map +1 -1
  869. package/dist/services/webhook-store.mjs +131 -95
  870. package/dist/services/webhook-store.mjs.map +1 -1
  871. package/dist/services/worker-queue.js +44 -49
  872. package/dist/services/worker-queue.js.map +1 -1
  873. package/dist/services/worker-queue.mjs +43 -49
  874. package/dist/services/worker-queue.mjs.map +1 -1
  875. package/dist/utils/convert-custom-field-type.d.ts +2 -2
  876. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  877. package/dist/utils/convert-custom-field-type.js +17 -20
  878. package/dist/utils/convert-custom-field-type.js.map +1 -1
  879. package/dist/utils/convert-custom-field-type.mjs +16 -21
  880. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  881. package/dist/utils/cron.js +64 -30
  882. package/dist/utils/cron.js.map +1 -1
  883. package/dist/utils/cron.mjs +63 -31
  884. package/dist/utils/cron.mjs.map +1 -1
  885. package/dist/utils/fetch.d.ts +3 -3
  886. package/dist/utils/fetch.d.ts.map +1 -1
  887. package/dist/utils/fetch.js +24 -17
  888. package/dist/utils/fetch.js.map +1 -1
  889. package/dist/utils/fetch.mjs +23 -18
  890. package/dist/utils/fetch.mjs.map +1 -1
  891. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  892. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  893. package/dist/utils/filepath-to-prop-path.js +22 -9
  894. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  895. package/dist/utils/filepath-to-prop-path.mjs +20 -7
  896. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  897. package/dist/utils/index.d.ts +2 -1
  898. package/dist/utils/index.d.ts.map +1 -1
  899. package/dist/utils/is-initialized.d.ts +2 -2
  900. package/dist/utils/is-initialized.d.ts.map +1 -1
  901. package/dist/utils/is-initialized.js +21 -12
  902. package/dist/utils/is-initialized.js.map +1 -1
  903. package/dist/utils/is-initialized.mjs +20 -13
  904. package/dist/utils/is-initialized.mjs.map +1 -1
  905. package/dist/utils/lifecycles.js +6 -5
  906. package/dist/utils/lifecycles.js.map +1 -1
  907. package/dist/utils/lifecycles.mjs +5 -6
  908. package/dist/utils/lifecycles.mjs.map +1 -1
  909. package/dist/utils/load-config-file.js +40 -38
  910. package/dist/utils/load-config-file.js.map +1 -1
  911. package/dist/utils/load-config-file.mjs +39 -36
  912. package/dist/utils/load-config-file.mjs.map +1 -1
  913. package/dist/utils/load-files.d.ts.map +1 -1
  914. package/dist/utils/load-files.js +40 -35
  915. package/dist/utils/load-files.js.map +1 -1
  916. package/dist/utils/load-files.mjs +39 -32
  917. package/dist/utils/load-files.mjs.map +1 -1
  918. package/dist/utils/open-browser.d.ts +2 -2
  919. package/dist/utils/open-browser.d.ts.map +1 -1
  920. package/dist/utils/open-browser.js +8 -8
  921. package/dist/utils/open-browser.js.map +1 -1
  922. package/dist/utils/open-browser.mjs +7 -7
  923. package/dist/utils/open-browser.mjs.map +1 -1
  924. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  925. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  926. package/dist/utils/resolve-working-dirs.js +26 -0
  927. package/dist/utils/resolve-working-dirs.js.map +1 -0
  928. package/dist/utils/resolve-working-dirs.mjs +24 -0
  929. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  930. package/dist/utils/signals.d.ts +2 -2
  931. package/dist/utils/signals.d.ts.map +1 -1
  932. package/dist/utils/signals.js +20 -14
  933. package/dist/utils/signals.js.map +1 -1
  934. package/dist/utils/signals.mjs +19 -15
  935. package/dist/utils/signals.mjs.map +1 -1
  936. package/dist/utils/startup-logger.d.ts +2 -2
  937. package/dist/utils/startup-logger.d.ts.map +1 -1
  938. package/dist/utils/startup-logger.js +107 -78
  939. package/dist/utils/startup-logger.js.map +1 -1
  940. package/dist/utils/startup-logger.mjs +106 -75
  941. package/dist/utils/startup-logger.mjs.map +1 -1
  942. package/dist/utils/transform-content-types-to-models.d.ts +377 -90
  943. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  944. package/dist/utils/transform-content-types-to-models.js +357 -217
  945. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  946. package/dist/utils/transform-content-types-to-models.mjs +351 -220
  947. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  948. package/dist/utils/update-notifier/index.d.ts +2 -7
  949. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  950. package/dist/utils/update-notifier/index.js +66 -74
  951. package/dist/utils/update-notifier/index.js.map +1 -1
  952. package/dist/utils/update-notifier/index.mjs +65 -68
  953. package/dist/utils/update-notifier/index.mjs.map +1 -1
  954. package/package.json +43 -40
  955. package/dist/registries/config.d.ts +0 -4
  956. package/dist/registries/config.d.ts.map +0 -1
  957. package/dist/registries/config.js +0 -31
  958. package/dist/registries/config.js.map +0 -1
  959. package/dist/registries/config.mjs +0 -32
  960. package/dist/registries/config.mjs.map +0 -1
  961. package/dist/services/document-service/middlewares.d.ts +0 -8
  962. package/dist/services/document-service/middlewares.d.ts.map +0 -1
  963. package/dist/services/document-service/middlewares.js +0 -46
  964. package/dist/services/document-service/middlewares.js.map +0 -1
  965. package/dist/services/document-service/middlewares.mjs +0 -46
  966. package/dist/services/document-service/middlewares.mjs.map +0 -1
  967. package/dist/services/document-service/transform/filters.d.ts +0 -3
  968. package/dist/services/document-service/transform/filters.d.ts.map +0 -1
  969. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
  970. package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
  971. package/dist/services/document-service/transform/relations/utils/data.js +0 -12
  972. package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
  973. package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
  974. package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
  975. package/dist/services/document-service/transform/sort.d.ts +0 -5
  976. package/dist/services/document-service/transform/sort.d.ts.map +0 -1
  977. package/dist/services/document-service/transform/utils.d.ts +0 -9
  978. package/dist/services/document-service/transform/utils.d.ts.map +0 -1
  979. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  980. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  981. package/dist/services/entity-service/attributes/index.js +0 -22
  982. package/dist/services/entity-service/attributes/index.js.map +0 -1
  983. package/dist/services/entity-service/attributes/index.mjs +0 -22
  984. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  985. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  986. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  987. package/dist/services/entity-service/attributes/transforms.js +0 -20
  988. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  989. package/dist/services/entity-service/attributes/transforms.mjs +0 -19
  990. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  991. package/dist/services/entity-service/components.d.ts +0 -23
  992. package/dist/services/entity-service/components.d.ts.map +0 -1
  993. package/dist/services/entity-service/components.js +0 -384
  994. package/dist/services/entity-service/components.js.map +0 -1
  995. package/dist/services/entity-service/components.mjs +0 -382
  996. package/dist/services/entity-service/components.mjs.map +0 -1
  997. package/dist/services/entity-service/params.d.ts +0 -8
  998. package/dist/services/entity-service/params.d.ts.map +0 -1
  999. package/dist/services/entity-service/params.js +0 -8
  1000. package/dist/services/entity-service/params.js.map +0 -1
  1001. package/dist/services/entity-service/params.mjs +0 -8
  1002. package/dist/services/entity-service/params.mjs.map +0 -1
  1003. package/dist/services/utils/upload-files.d.ts +0 -8
  1004. package/dist/services/utils/upload-files.d.ts.map +0 -1
  1005. package/dist/services/utils/upload-files.js +0 -64
  1006. package/dist/services/utils/upload-files.js.map +0 -1
  1007. package/dist/services/utils/upload-files.mjs +0 -63
  1008. package/dist/services/utils/upload-files.mjs.map +0 -1
  1009. package/dist/utils/get-dirs.d.ts +0 -9
  1010. package/dist/utils/get-dirs.d.ts.map +0 -1
  1011. package/dist/utils/get-dirs.js +0 -30
  1012. package/dist/utils/get-dirs.js.map +0 -1
  1013. package/dist/utils/get-dirs.mjs +0 -30
  1014. package/dist/utils/get-dirs.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Strapi.mjs","sources":["../src/Strapi.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-namespace */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\nimport path from 'path';\nimport _ from 'lodash';\nimport { isFunction } from 'lodash/fp';\nimport { Logger, createLogger } from '@strapi/logger';\nimport { Database } from '@strapi/database';\nimport { hooks } from '@strapi/utils';\nimport type {\n Strapi as StrapiI,\n Server,\n EntityService,\n Documents,\n EventHub,\n StartupLogger,\n CronService,\n WebhookStore,\n CoreStore,\n TelemetryService,\n RequestContext,\n CustomFields,\n Fetch,\n StrapiFS,\n StrapiDirectories,\n Reloader,\n EntityValidator,\n Common,\n Shared,\n Schema,\n} from '@strapi/types';\n\nimport loadConfiguration from './configuration';\n\nimport * as factories from './factories';\nimport compile from './compile';\n\nimport * as utils from './utils';\nimport * as registries from './registries';\nimport * as loaders from './loaders';\nimport { Container } from './container';\nimport createStrapiFs from './services/fs';\nimport createEventHub from './services/event-hub';\nimport { createServer } from './services/server';\nimport createWebhookRunner, { WebhookRunner } from './services/webhook-runner';\nimport { webhookModel, createWebhookStore } from './services/webhook-store';\nimport { createCoreStore, coreStoreModel } from './services/core-store';\nimport createEntityService from './services/entity-service';\n\nimport createCronService from './services/cron';\nimport entityValidator from './services/entity-validator';\nimport createTelemetry from './services/metrics';\nimport requestContext from './services/request-context';\nimport createAuth from './services/auth';\nimport createCustomFields from './services/custom-fields';\nimport createContentAPI from './services/content-api';\nimport getNumberOfDynamicZones from './services/utils/dynamic-zones';\nimport { FeaturesService, createFeaturesService } from './services/features';\nimport { createDocumentService } from './services/document-service';\n\n// TODO: move somewhere else\nimport * as draftAndPublishSync from './migrations/draft-publish';\n\n/**\n * Resolve the working directories based on the instance options.\n *\n * Behavior:\n * - `appDir` is the directory where Strapi will write every file (schemas, generated APIs, controllers or services)\n * - `distDir` is the directory where Strapi will read configurations, schemas and any compiled code\n *\n * Default values:\n * - If `appDir` is `undefined`, it'll be set to `process.cwd()`\n * - If `distDir` is `undefined`, it'll be set to `appDir`\n */\nconst resolveWorkingDirectories = (opts: { appDir?: string; distDir?: string }) => {\n const cwd = process.cwd();\n\n const appDir = opts.appDir ? path.resolve(cwd, opts.appDir) : cwd;\n const distDir = opts.distDir ? path.resolve(cwd, opts.distDir) : appDir;\n\n return { app: appDir, dist: distDir };\n};\n\nconst reloader = (strapi: Strapi) => {\n const state = {\n shouldReload: 0,\n isWatching: true,\n };\n\n function reload() {\n if (state.shouldReload > 0) {\n // Reset the reloading state\n state.shouldReload -= 1;\n reload.isReloading = false;\n return;\n }\n\n if (strapi.config.get('autoReload')) {\n process.send?.('reload');\n }\n }\n\n Object.defineProperty(reload, 'isWatching', {\n configurable: true,\n enumerable: true,\n set(value) {\n // Special state when the reloader is disabled temporarly (see GraphQL plugin example).\n if (state.isWatching === false && value === true) {\n state.shouldReload += 1;\n }\n state.isWatching = value;\n },\n get() {\n return state.isWatching;\n },\n });\n\n reload.isReloading = false;\n reload.isWatching = true;\n\n return reload;\n};\n\nexport type LoadedStrapi = Required<Strapi>;\n\nclass Strapi extends Container implements StrapiI {\n server: Server;\n\n log: Logger;\n\n fs: StrapiFS;\n\n eventHub: EventHub;\n\n startupLogger: StartupLogger;\n\n cron: CronService;\n\n webhookRunner?: WebhookRunner;\n\n webhookStore?: WebhookStore;\n\n store?: CoreStore;\n\n entityValidator?: EntityValidator;\n\n entityService?: EntityService.EntityService;\n\n documents?: Documents.Service;\n\n telemetry: TelemetryService;\n\n requestContext: RequestContext;\n\n customFields: CustomFields.CustomFields;\n\n fetch: Fetch;\n\n dirs: StrapiDirectories;\n\n admin?: Common.Module;\n\n isLoaded: boolean;\n\n db?: Database;\n\n app: any;\n\n EE?: boolean;\n\n reload: Reloader;\n\n features: FeaturesService;\n\n // @ts-expect-error - Assigned in constructor\n ee: StrapiI['ee'];\n\n constructor(opts: StrapiOptions = {}) {\n super();\n\n utils.destroyOnSignal(this);\n\n const rootDirs = resolveWorkingDirectories(opts);\n\n // Load the app configuration from the dist directory\n const appConfig = loadConfiguration(rootDirs, opts);\n\n // Instantiate the Strapi container\n this.add('config', registries.config(appConfig, this))\n .add('content-types', registries.contentTypes())\n .add('components', registries.components())\n .add('services', registries.services(this))\n .add('policies', registries.policies())\n .add('middlewares', registries.middlewares())\n .add('hooks', registries.hooks())\n .add('controllers', registries.controllers(this))\n .add('modules', registries.modules(this))\n .add('plugins', registries.plugins(this))\n .add('custom-fields', registries.customFields(this))\n .add('apis', registries.apis(this))\n .add('sanitizers', registries.sanitizers())\n .add('validators', registries.validators())\n .add('content-api', createContentAPI(this))\n .add('auth', createAuth())\n .add('models', registries.models());\n\n // Create a mapping of every useful directory (for the app, dist and static directories)\n this.dirs = utils.getDirs(rootDirs, { strapi: this });\n\n // Strapi state management variables\n this.isLoaded = false;\n this.reload = reloader(this);\n\n // Instantiate the Koa app & the HTTP server\n this.server = createServer(this);\n\n // Strapi utils instantiation\n this.fs = createStrapiFs(this);\n this.eventHub = createEventHub();\n this.startupLogger = utils.createStartupLogger(this);\n\n // 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 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 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":["utils.destroyOnSignal","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","createAuth","registries.models","utils.getDirs","utils.createStartupLogger","createTelemetry","requestContext","utils.createStrapiFetch","utils.createUpdateNotifier","utils.ee","utils.LIFECYCLES","factories.isCustomController","isInitialized","utils.openBrowser","utils.isInitialized","draftAndPublishSync.disable","draftAndPublishSync.enable","loaders.loadApplicationContext","utils.convertCustomFieldType","utils.transformContentTypesToModels"],"mappings":"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"}
1
+ {"version":3,"file":"Strapi.mjs","sources":["../src/Strapi.ts"],"sourcesContent":["import * as globalAgent from 'global-agent';\nimport path from 'path';\nimport _ from 'lodash';\nimport { isFunction } from 'lodash/fp';\nimport { Logger, createLogger } from '@strapi/logger';\nimport { Database } from '@strapi/database';\n\nimport type { Core, Modules, UID, Schema } from '@strapi/types';\n\nimport tsUtils from '@strapi/typescript-utils';\nimport { loadConfiguration } from './configuration';\n\nimport * as factories from './factories';\n\nimport * as utils from './utils';\nimport { Container } from './container';\nimport createStrapiFs from './services/fs';\nimport createEventHub from './services/event-hub';\nimport { createServer } from './services/server';\nimport { createReloader } from './services/reloader';\n\nimport { providers } from './providers';\nimport createEntityService from './services/entity-service';\nimport createQueryParamService from './services/query-params';\n\nimport entityValidator from './services/entity-validator';\nimport requestContext from './services/request-context';\nimport createAuth from './services/auth';\nimport createCustomFields from './services/custom-fields';\nimport createContentAPI from './services/content-api';\nimport getNumberOfDynamicZones from './services/utils/dynamic-zones';\nimport { FeaturesService, createFeaturesService } from './services/features';\nimport { createDocumentService } from './services/document-service';\n\nimport { coreStoreModel } from './services/core-store';\nimport { createConfigProvider } from './services/config';\n\nclass Strapi extends Container implements Core.Strapi {\n app: any;\n\n isLoaded: boolean = false;\n\n internal_config: Record<string, unknown> = {};\n\n constructor(opts: StrapiOptions) {\n super();\n\n this.internal_config = loadConfiguration(opts);\n\n this.registerInternalServices();\n\n for (const provider of providers) {\n provider.init?.(this);\n }\n }\n\n get admin(): Core.Module {\n return this.get('admin');\n }\n\n get EE(): boolean {\n return utils.ee.isEE;\n }\n\n get ee(): Core.Strapi['ee'] {\n return utils.ee;\n }\n\n get dirs(): Core.StrapiDirectories {\n return this.config.get('dirs');\n }\n\n get reload(): Core.Reloader {\n return this.get('reload');\n }\n\n get db(): Database {\n return this.get('db');\n }\n\n get requestContext(): Modules.RequestContext.RequestContext {\n return this.get('requestContext');\n }\n\n get customFields(): Modules.CustomFields.CustomFields {\n return this.get('customFields');\n }\n\n get entityValidator(): Modules.EntityValidator.EntityValidator {\n return this.get('entityValidator');\n }\n\n /**\n * @deprecated `strapi.entityService` will be removed in the next major version\n */\n get entityService(): Modules.EntityService.EntityService {\n return this.get('entityService');\n }\n\n get documents(): Modules.Documents.Service {\n return this.get('documents');\n }\n\n get features(): FeaturesService {\n return this.get('features');\n }\n\n get fetch(): Modules.Fetch.Fetch {\n return this.get('fetch');\n }\n\n get cron(): Modules.Cron.CronService {\n return this.get('cron');\n }\n\n get log(): Logger {\n return this.get('logger');\n }\n\n get startupLogger(): Core.StartupLogger {\n return this.get('startupLogger');\n }\n\n get eventHub(): Modules.EventHub.EventHub {\n return this.get('eventHub');\n }\n\n get fs(): Core.StrapiFS {\n return this.get('fs');\n }\n\n get server(): Modules.Server.Server {\n return this.get('server');\n }\n\n get telemetry(): Modules.Metrics.TelemetryService {\n return this.get('telemetry');\n }\n\n get store(): Modules.CoreStore.CoreStore {\n return this.get('coreStore');\n }\n\n get config() {\n return this.get('config');\n }\n\n get services() {\n return this.get('services').getAll();\n }\n\n service(uid: UID.Service) {\n return this.get('services').get(uid);\n }\n\n get controllers() {\n return this.get('controllers').getAll();\n }\n\n controller(uid: UID.Controller) {\n return this.get('controllers').get(uid);\n }\n\n get contentTypes(): Schema.ContentTypes {\n return this.get('content-types').getAll();\n }\n\n contentType(name: UID.ContentType) {\n return this.get('content-types').get(name);\n }\n\n get components(): Schema.Components {\n return this.get('components').getAll();\n }\n\n get policies() {\n return this.get('policies').getAll();\n }\n\n policy(name: string) {\n return this.get('policies').get(name);\n }\n\n get middlewares() {\n return this.get('middlewares').getAll();\n }\n\n middleware(name: string) {\n return this.get('middlewares').get(name);\n }\n\n get plugins(): Record<string, Core.Plugin> {\n return this.get('plugins').getAll();\n }\n\n plugin(name: string): Core.Plugin {\n return this.get('plugins').get(name);\n }\n\n get hooks() {\n return this.get('hooks').getAll();\n }\n\n hook(name: string) {\n return this.get('hooks').get(name);\n }\n\n get apis() {\n return this.get('apis').getAll();\n }\n\n api(name: string): Core.Module {\n return this.get('apis').get(name);\n }\n\n get auth() {\n return this.get('auth');\n }\n\n get contentAPI() {\n return this.get('content-api');\n }\n\n get sanitizers() {\n return this.get('sanitizers');\n }\n\n get validators() {\n return this.get('validators');\n }\n\n async start() {\n try {\n if (!this.isLoaded) {\n await this.load();\n }\n\n await this.listen();\n\n return this;\n } catch (error) {\n return this.stopWithError(error);\n }\n }\n\n // TODO: split into more providers\n registerInternalServices() {\n const config = createConfigProvider(this.internal_config, this);\n\n const logger = createLogger({\n level: 'http', // Strapi defaults to level 'http'\n ...config.get('logger'), // DEPRECATED\n ...config.get('server.logger.config'),\n });\n\n // Instantiate the Strapi container\n this.add('config', () => config)\n .add('query-params', createQueryParamService(this))\n .add('content-api', createContentAPI(this))\n .add('auth', createAuth())\n .add('server', () => createServer(this))\n .add('fs', () => createStrapiFs(this))\n .add('eventHub', () => createEventHub())\n .add('startupLogger', () => utils.createStartupLogger(this))\n .add('logger', () => logger)\n .add('fetch', () => utils.createStrapiFetch(this))\n .add('features', () => createFeaturesService(this))\n .add('requestContext', requestContext)\n .add('customFields', createCustomFields(this))\n .add('entityValidator', entityValidator)\n .add('entityService', () => createEntityService({ strapi: this, db: this.db }))\n .add('documents', () => createDocumentService(this))\n .add('db', () => {\n const tsDir = tsUtils.resolveOutDirSync(this.dirs.app.root);\n const tsMigrationsEnabled =\n this.config.get('database.settings.useTypescriptMigrations') === true && tsDir;\n const projectDir = tsMigrationsEnabled ? tsDir : this.dirs.app.root;\n return new Database(\n _.merge(this.config.get('database'), {\n logger,\n settings: {\n migrations: {\n dir: path.join(projectDir, 'database/migrations'),\n },\n },\n })\n );\n })\n .add('reload', () => createReloader(this));\n }\n\n sendStartupTelemetry() {\n // Emit started event.\n // do not await to avoid slower startup\n // This event is anonymous\n this.telemetry\n .send('didStartServer', {\n groupProperties: {\n database: this.config.get('database.connection.client'),\n plugins: Object.keys(this.plugins),\n numberOfAllContentTypes: _.size(this.contentTypes), // TODO: V5: This event should be renamed numberOfContentTypes in V5 as the name is already taken to describe the number of content types using i18n.\n numberOfComponents: _.size(this.components),\n numberOfDynamicZones: getNumberOfDynamicZones(),\n numberOfCustomControllers: Object.values<Core.Controller>(this.controllers).filter(\n // TODO: Fix this at the content API loader level to prevent future types issues\n (controller) => controller !== undefined && factories.isCustomController(controller)\n ).length,\n environment: this.config.environment,\n // TODO: to add back\n // providers: this.config.installedProviders,\n },\n })\n .catch(this.log.error);\n }\n\n async openAdmin({ isInitialized }: { isInitialized: boolean }) {\n const shouldOpenAdmin =\n this.config.get('environment') === 'development' &&\n this.config.get('admin.autoOpen', true) !== false;\n\n if (shouldOpenAdmin && !isInitialized) {\n try {\n await utils.openBrowser(this.config);\n this.telemetry.send('didOpenTab');\n } catch (e) {\n this.telemetry.send('didNotOpenTab');\n }\n }\n }\n\n async postListen() {\n const isInitialized = await utils.isInitialized(this);\n\n this.startupLogger.logStartupMessage({ isInitialized });\n\n this.log.info('Strapi started successfully');\n this.sendStartupTelemetry();\n this.openAdmin({ isInitialized });\n }\n\n /**\n * Add behaviors to the server\n */\n async listen() {\n return new Promise<void>((resolve, reject) => {\n const onListen = async () => {\n try {\n await this.postListen();\n\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n\n const listenSocket = this.config.get('server.socket');\n\n if (listenSocket) {\n this.server.listen(listenSocket, onListen);\n } else {\n const { host, port } = this.config.get('server');\n\n this.server.listen(port, host, onListen);\n }\n });\n }\n\n stopWithError(err: unknown, customMessage?: string): never {\n this.log.debug(`⛔️ Server wasn't able to start properly.`);\n if (customMessage) {\n this.log.error(customMessage);\n }\n\n this.log.error(err);\n return this.stop();\n }\n\n stop(exitCode = 1): never {\n this.destroy();\n\n if (this.config.get('autoReload')) {\n process.send?.('stop');\n }\n\n // Kill process\n process.exit(exitCode);\n }\n\n async load() {\n await this.register();\n await this.bootstrap();\n\n this.isLoaded = true;\n\n return this;\n }\n\n async register() {\n // @ts-expect-error: init is internal\n this.ee.init(this.dirs.app.root, this.log);\n\n for (const provider of providers) {\n await provider.register?.(this);\n }\n\n await this.runPluginsLifecycles(utils.LIFECYCLES.REGISTER);\n await this.runUserLifecycles(utils.LIFECYCLES.REGISTER);\n\n // NOTE: Swap type customField for underlying data type\n utils.convertCustomFieldType(this);\n\n return this;\n }\n\n async bootstrap() {\n this.configureGlobalProxy();\n\n const models = [\n ...utils.transformContentTypesToModels(\n [...Object.values(this.contentTypes), ...Object.values(this.components)],\n this.db.metadata.identifiers\n ),\n ...this.get('models').get(),\n ];\n\n await this.db.init({ models });\n\n let oldContentTypes;\n if (await this.db.getSchemaConnection().hasTable(coreStoreModel.tableName)) {\n oldContentTypes = await this.store.get({\n type: 'strapi',\n name: 'content_types',\n key: 'schema',\n });\n }\n\n await this.hook('strapi::content-types.beforeSync').call({\n oldContentTypes,\n contentTypes: this.contentTypes,\n });\n\n const status = await this.db.schema.sync();\n\n // if schemas have changed, run repairs\n if (status === 'CHANGED') {\n await this.db.repair.removeOrphanMorphType({ pivot: 'component_type' });\n }\n\n if (this.EE) {\n await utils.ee.checkLicense({ strapi: this });\n }\n\n await this.hook('strapi::content-types.afterSync').call({\n oldContentTypes,\n contentTypes: this.contentTypes,\n });\n\n await this.store.set({\n type: 'strapi',\n name: 'content_types',\n key: 'schema',\n value: this.contentTypes,\n });\n\n await this.server.initMiddlewares();\n this.server.initRouting();\n\n await this.contentAPI.permissions.registerActions();\n\n await this.runPluginsLifecycles(utils.LIFECYCLES.BOOTSTRAP);\n\n for (const provider of providers) {\n await provider.bootstrap?.(this);\n }\n\n await this.runUserLifecycles(utils.LIFECYCLES.BOOTSTRAP);\n\n return this;\n }\n\n configureGlobalProxy() {\n const globalProxy = this.config.get('server.proxy.global');\n const httpProxy = this.config.get('server.proxy.http') || globalProxy;\n const httpsProxy = this.config.get('server.proxy.https') || globalProxy;\n\n if (!httpProxy && !httpsProxy) {\n return;\n }\n\n globalAgent.bootstrap();\n\n if (httpProxy) {\n this.log.info(`Using HTTP proxy: ${httpProxy}`);\n (global as any).GLOBAL_AGENT.HTTP_PROXY = httpProxy;\n }\n\n if (httpsProxy) {\n this.log.info(`Using HTTPS proxy: ${httpsProxy}`);\n (global as any).GLOBAL_AGENT.HTTPS_PROXY = httpsProxy;\n }\n }\n\n async destroy() {\n this.log.info('Shutting down Strapi');\n await this.runPluginsLifecycles(utils.LIFECYCLES.DESTROY);\n\n for (const provider of providers) {\n await provider.destroy?.(this);\n }\n\n await this.runUserLifecycles(utils.LIFECYCLES.DESTROY);\n\n await this.server.destroy();\n\n this.eventHub.destroy();\n\n await this.db?.destroy();\n\n process.removeAllListeners();\n\n // @ts-expect-error: Allow clean delete of global.strapi to allow re-instanciation\n delete global.strapi;\n\n this.log.info('Strapi has been shut down');\n }\n\n async runPluginsLifecycles(lifecycleName: 'register' | 'bootstrap' | 'destroy') {\n // plugins\n await this.get('modules')[lifecycleName]();\n }\n\n async runUserLifecycles(lifecycleName: 'register' | 'bootstrap' | 'destroy') {\n // user\n const userLifecycleFunction = this.app && this.app[lifecycleName];\n if (isFunction(userLifecycleFunction)) {\n await userLifecycleFunction({ strapi: this });\n }\n }\n\n getModel(uid: UID.ContentType): Schema.ContentType;\n getModel(uid: UID.Component): Schema.Component;\n getModel<TUID extends UID.Schema>(uid: TUID): Schema.ContentType | Schema.Component | undefined {\n if (uid in this.contentTypes) {\n return this.contentTypes[uid as UID.ContentType];\n }\n\n if (uid in this.components) {\n return this.components[uid as UID.Component];\n }\n }\n\n /**\n * @deprecated Use `strapi.db.query` instead\n */\n query(uid: UID.Schema) {\n return this.db.query(uid);\n }\n}\n\nexport interface StrapiOptions {\n appDir: string;\n distDir: string;\n autoReload?: boolean;\n serveAdminPanel?: boolean;\n}\n\nexport default Strapi;\n"],"names":["Strapi","Container","admin","get","EE","utils","isEE","ee","dirs","config","reload","db","requestContext","customFields","entityValidator","entityService","documents","features","fetch","cron","log","startupLogger","eventHub","fs","server","telemetry","store","services","getAll","service","uid","controllers","controller","contentTypes","contentType","name","components","policies","policy","middlewares","middleware","plugins","plugin","hooks","hook","apis","api","auth","contentAPI","sanitizers","validators","start","isLoaded","load","listen","error","stopWithError","registerInternalServices","createConfigProvider","internal_config","logger","createLogger","level","add","createQueryParamService","createContentAPI","createAuth","createServer","createStrapiFs","createEventHub","createFeaturesService","createCustomFields","createEntityService","strapi","createDocumentService","tsDir","tsUtils","resolveOutDirSync","app","root","tsMigrationsEnabled","projectDir","Database","_","merge","settings","migrations","dir","path","join","createReloader","sendStartupTelemetry","send","groupProperties","database","Object","keys","numberOfAllContentTypes","size","numberOfComponents","numberOfDynamicZones","getNumberOfDynamicZones","numberOfCustomControllers","values","filter","undefined","factories","length","environment","catch","openAdmin","isInitialized","shouldOpenAdmin","e","postListen","logStartupMessage","info","Promise","resolve","reject","onListen","listenSocket","host","port","err","customMessage","debug","stop","exitCode","destroy","process","exit","register","bootstrap","init","provider","providers","runPluginsLifecycles","REGISTER","runUserLifecycles","configureGlobalProxy","models","metadata","identifiers","oldContentTypes","getSchemaConnection","hasTable","coreStoreModel","tableName","type","key","call","status","schema","sync","repair","removeOrphanMorphType","pivot","checkLicense","set","value","initMiddlewares","initRouting","permissions","registerActions","BOOTSTRAP","globalProxy","httpProxy","httpsProxy","globalAgent","global","GLOBAL_AGENT","HTTP_PROXY","HTTPS_PROXY","DESTROY","removeAllListeners","lifecycleName","userLifecycleFunction","isFunction","getModel","query","constructor","opts","loadConfiguration"],"mappings":"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"}
package/dist/compile.js CHANGED
@@ -1,18 +1,27 @@
1
- "use strict";
2
- const tsUtils = require("@strapi/typescript-utils");
3
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
4
- const tsUtils__default = /* @__PURE__ */ _interopDefault(tsUtils);
1
+ 'use strict';
2
+
3
+ var tsUtils = require('@strapi/typescript-utils');
4
+
5
5
  async function compile(options) {
6
- const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};
7
- const isTSProject = await tsUtils__default.default.isUsingTypeScript(appDir);
8
- const outDir = await tsUtils__default.default.resolveOutDir(appDir);
9
- if (isTSProject) {
10
- await tsUtils__default.default.compile(appDir, {
11
- configOptions: { options: { incremental: true }, ignoreDiagnostics }
12
- });
13
- }
14
- const distDir = isTSProject ? outDir : appDir;
15
- return { appDir, distDir };
6
+ const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};
7
+ const isTSProject = await tsUtils.isUsingTypeScript(appDir);
8
+ const outDir = await tsUtils.resolveOutDir(appDir);
9
+ if (isTSProject) {
10
+ await tsUtils.compile(appDir, {
11
+ configOptions: {
12
+ options: {
13
+ incremental: true
14
+ },
15
+ ignoreDiagnostics
16
+ }
17
+ });
18
+ }
19
+ const distDir = isTSProject ? outDir : appDir;
20
+ return {
21
+ appDir,
22
+ distDir
23
+ };
16
24
  }
25
+
17
26
  module.exports = compile;
18
27
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sources":["../src/compile.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\n\ninterface Options {\n appDir?: string;\n ignoreDiagnostics?: boolean;\n}\n\nexport default async function compile(options?: Options) {\n const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (isTSProject) {\n await tsUtils.compile(appDir, {\n configOptions: { options: { incremental: true }, ignoreDiagnostics },\n });\n }\n\n const distDir = isTSProject ? outDir : appDir;\n\n return { appDir, distDir };\n}\n"],"names":["tsUtils"],"mappings":";;;;AAOA,eAA8B,QAAQ,SAAmB;AACjD,QAAA,EAAE,SAAS,QAAQ,IAAA,GAAO,oBAAoB,MAAA,IAAU,WAAW;AACzE,QAAM,cAAc,MAAMA,iBAAAA,QAAQ,kBAAkB,MAAM;AAC1D,QAAM,SAAS,MAAMA,iBAAAA,QAAQ,cAAc,MAAM;AAEjD,MAAI,aAAa;AACT,UAAAA,iBAAA,QAAQ,QAAQ,QAAQ;AAAA,MAC5B,eAAe,EAAE,SAAS,EAAE,aAAa,KAAA,GAAQ,kBAAkB;AAAA,IAAA,CACpE;AAAA,EACH;AAEM,QAAA,UAAU,cAAc,SAAS;AAEhC,SAAA,EAAE,QAAQ;AACnB;;"}
1
+ {"version":3,"file":"compile.js","sources":["../src/compile.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\n\ninterface Options {\n appDir?: string;\n ignoreDiagnostics?: boolean;\n}\n\nexport default async function compile(options?: Options) {\n const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (isTSProject) {\n await tsUtils.compile(appDir, {\n configOptions: { options: { incremental: true }, ignoreDiagnostics },\n });\n }\n\n const distDir = isTSProject ? outDir : appDir;\n\n return { appDir, distDir };\n}\n"],"names":["compile","options","appDir","process","cwd","ignoreDiagnostics","isTSProject","tsUtils","isUsingTypeScript","outDir","resolveOutDir","configOptions","incremental","distDir"],"mappings":";;;;AAOe,eAAeA,QAAQC,OAAiB,EAAA;IACrD,MAAM,EAAEC,MAASC,GAAAA,OAAAA,CAAQC,GAAG,EAAE,EAAEC,iBAAAA,GAAoB,KAAK,EAAE,GAAGJ,OAAAA,IAAW,EAAC;AAC1E,IAAA,MAAMK,WAAc,GAAA,MAAMC,OAAQC,CAAAA,iBAAiB,CAACN,MAAAA,CAAAA;AACpD,IAAA,MAAMO,MAAS,GAAA,MAAMF,OAAQG,CAAAA,aAAa,CAACR,MAAAA,CAAAA;AAE3C,IAAA,IAAII,WAAa,EAAA;QACf,MAAMC,OAAAA,CAAQP,OAAO,CAACE,MAAQ,EAAA;YAC5BS,aAAe,EAAA;gBAAEV,OAAS,EAAA;oBAAEW,WAAa,EAAA;AAAK,iBAAA;AAAGP,gBAAAA;AAAkB;AACrE,SAAA,CAAA;AACF;IAEA,MAAMQ,OAAAA,GAAUP,cAAcG,MAASP,GAAAA,MAAAA;IAEvC,OAAO;AAAEA,QAAAA,MAAAA;AAAQW,QAAAA;AAAQ,KAAA;AAC3B;;;;"}
package/dist/compile.mjs CHANGED
@@ -1,17 +1,25 @@
1
- import tsUtils from "@strapi/typescript-utils";
1
+ import tsUtils from '@strapi/typescript-utils';
2
+
2
3
  async function compile(options) {
3
- const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};
4
- const isTSProject = await tsUtils.isUsingTypeScript(appDir);
5
- const outDir = await tsUtils.resolveOutDir(appDir);
6
- if (isTSProject) {
7
- await tsUtils.compile(appDir, {
8
- configOptions: { options: { incremental: true }, ignoreDiagnostics }
9
- });
10
- }
11
- const distDir = isTSProject ? outDir : appDir;
12
- return { appDir, distDir };
4
+ const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};
5
+ const isTSProject = await tsUtils.isUsingTypeScript(appDir);
6
+ const outDir = await tsUtils.resolveOutDir(appDir);
7
+ if (isTSProject) {
8
+ await tsUtils.compile(appDir, {
9
+ configOptions: {
10
+ options: {
11
+ incremental: true
12
+ },
13
+ ignoreDiagnostics
14
+ }
15
+ });
16
+ }
17
+ const distDir = isTSProject ? outDir : appDir;
18
+ return {
19
+ appDir,
20
+ distDir
21
+ };
13
22
  }
14
- export {
15
- compile as default
16
- };
23
+
24
+ export { compile as default };
17
25
  //# sourceMappingURL=compile.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.mjs","sources":["../src/compile.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\n\ninterface Options {\n appDir?: string;\n ignoreDiagnostics?: boolean;\n}\n\nexport default async function compile(options?: Options) {\n const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (isTSProject) {\n await tsUtils.compile(appDir, {\n configOptions: { options: { incremental: true }, ignoreDiagnostics },\n });\n }\n\n const distDir = isTSProject ? outDir : appDir;\n\n return { appDir, distDir };\n}\n"],"names":[],"mappings":";AAOA,eAA8B,QAAQ,SAAmB;AACjD,QAAA,EAAE,SAAS,QAAQ,IAAA,GAAO,oBAAoB,MAAA,IAAU,WAAW;AACzE,QAAM,cAAc,MAAM,QAAQ,kBAAkB,MAAM;AAC1D,QAAM,SAAS,MAAM,QAAQ,cAAc,MAAM;AAEjD,MAAI,aAAa;AACT,UAAA,QAAQ,QAAQ,QAAQ;AAAA,MAC5B,eAAe,EAAE,SAAS,EAAE,aAAa,KAAA,GAAQ,kBAAkB;AAAA,IAAA,CACpE;AAAA,EACH;AAEM,QAAA,UAAU,cAAc,SAAS;AAEhC,SAAA,EAAE,QAAQ;AACnB;"}
1
+ {"version":3,"file":"compile.mjs","sources":["../src/compile.ts"],"sourcesContent":["import tsUtils from '@strapi/typescript-utils';\n\ninterface Options {\n appDir?: string;\n ignoreDiagnostics?: boolean;\n}\n\nexport default async function compile(options?: Options) {\n const { appDir = process.cwd(), ignoreDiagnostics = false } = options ?? {};\n const isTSProject = await tsUtils.isUsingTypeScript(appDir);\n const outDir = await tsUtils.resolveOutDir(appDir);\n\n if (isTSProject) {\n await tsUtils.compile(appDir, {\n configOptions: { options: { incremental: true }, ignoreDiagnostics },\n });\n }\n\n const distDir = isTSProject ? outDir : appDir;\n\n return { appDir, distDir };\n}\n"],"names":["compile","options","appDir","process","cwd","ignoreDiagnostics","isTSProject","tsUtils","isUsingTypeScript","outDir","resolveOutDir","configOptions","incremental","distDir"],"mappings":";;AAOe,eAAeA,QAAQC,OAAiB,EAAA;IACrD,MAAM,EAAEC,MAASC,GAAAA,OAAAA,CAAQC,GAAG,EAAE,EAAEC,iBAAAA,GAAoB,KAAK,EAAE,GAAGJ,OAAAA,IAAW,EAAC;AAC1E,IAAA,MAAMK,WAAc,GAAA,MAAMC,OAAQC,CAAAA,iBAAiB,CAACN,MAAAA,CAAAA;AACpD,IAAA,MAAMO,MAAS,GAAA,MAAMF,OAAQG,CAAAA,aAAa,CAACR,MAAAA,CAAAA;AAE3C,IAAA,IAAII,WAAa,EAAA;QACf,MAAMC,OAAAA,CAAQP,OAAO,CAACE,MAAQ,EAAA;YAC5BS,aAAe,EAAA;gBAAEV,OAAS,EAAA;oBAAEW,WAAa,EAAA;AAAK,iBAAA;AAAGP,gBAAAA;AAAkB;AACrE,SAAA,CAAA;AACF;IAEA,MAAMQ,OAAAA,GAAUP,cAAcG,MAASP,GAAAA,MAAAA;IAEvC,OAAO;AAAEA,QAAAA,MAAAA;AAAQW,QAAAA;AAAQ,KAAA;AAC3B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/configuration/config-loader.ts"],"names":[],"mappings":"8BA0DqB,MAAM;AAA3B,wBAiFE"}
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/configuration/config-loader.ts"],"names":[],"mappings":"8BA2DqB,MAAM;AAA3B,wBAoFE"}
@@ -1,102 +1,119 @@
1
- "use strict";
2
- const path = require("path");
3
- const fs = require("fs");
4
- const loadConfigFile = require("../utils/load-config-file.js");
5
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
- const path__default = /* @__PURE__ */ _interopDefault(path);
7
- const fs__default = /* @__PURE__ */ _interopDefault(fs);
8
- const VALID_EXTENSIONS = [".js", ".json"];
1
+ 'use strict';
2
+
3
+ var path = require('path');
4
+ var fs = require('fs');
5
+ var loadConfigFile = require('../utils/load-config-file.js');
6
+
7
+ const VALID_EXTENSIONS = [
8
+ '.js',
9
+ '.json'
10
+ ];
11
+ // These filenames are restricted, but will also emit a warning that the filename is probably a mistake
9
12
  const MISTAKEN_FILENAMES = {
10
- middleware: "middlewares",
11
- plugin: "plugins"
13
+ middleware: 'middlewares',
14
+ plugin: 'plugins'
12
15
  };
16
+ // the following are restricted to prevent conflicts with existing STRAPI_* env vars or root level config options
17
+ // must all be lowercase to match validator
13
18
  const RESTRICTED_FILENAMES = [
14
- // existing env vars
15
- "uuid",
16
- "hosting",
17
- "license",
18
- "enforce",
19
- "disable",
20
- "enable",
21
- "telemetry",
22
- // reserved for future internal use
23
- "strapi",
24
- "internal",
25
- // root level config options
26
- // TODO: it would be better to move these out of the root config and allow them to be loaded
27
- "launchedAt",
28
- "serveAdminPanel",
29
- "autoReload",
30
- "environment",
31
- "packageJsonStrapi",
32
- "info",
33
- "autoReload",
34
- // probably mistaken/typo filenames
35
- ...Object.keys(MISTAKEN_FILENAMES)
19
+ // existing env vars
20
+ 'uuid',
21
+ 'hosting',
22
+ 'license',
23
+ 'enforce',
24
+ 'disable',
25
+ 'enable',
26
+ 'telemetry',
27
+ // reserved for future internal use
28
+ 'strapi',
29
+ 'internal',
30
+ // root level config options
31
+ // TODO: it would be better to move these out of the root config and allow them to be loaded
32
+ 'launchedAt',
33
+ 'serveAdminPanel',
34
+ 'autoReload',
35
+ 'environment',
36
+ 'packageJsonStrapi',
37
+ 'info',
38
+ 'autoReload',
39
+ 'dirs',
40
+ // probably mistaken/typo filenames
41
+ ...Object.keys(MISTAKEN_FILENAMES)
36
42
  ];
43
+ // Existing Strapi configuration files
37
44
  const STRAPI_CONFIG_FILENAMES = [
38
- "admin",
39
- "server",
40
- "api",
41
- "database",
42
- "middlewares",
43
- "plugins",
44
- "features"
45
+ 'admin',
46
+ 'server',
47
+ 'api',
48
+ 'database',
49
+ 'middlewares',
50
+ 'plugins',
51
+ 'features'
45
52
  ];
46
- const logWarning = (message) => {
47
- console.warn(message);
48
- };
49
- const loadConfigDir = (dir) => {
50
- if (!fs__default.default.existsSync(dir))
51
- return {};
52
- const allFiles = fs__default.default.readdirSync(dir, { withFileTypes: true });
53
- const seenFilenames = /* @__PURE__ */ new Set();
54
- const configFiles = allFiles.reduce((acc, file) => {
55
- const baseName = path__default.default.basename(file.name, path__default.default.extname(file.name));
56
- const baseNameLower = baseName.toLowerCase();
57
- const extension = path__default.default.extname(file.name);
58
- const extensionLower = extension.toLowerCase();
59
- if (!file.isFile()) {
60
- return acc;
61
- }
62
- if (!VALID_EXTENSIONS.includes(extensionLower)) {
63
- logWarning(
64
- `Config file not loaded, extension must be one of ${VALID_EXTENSIONS.join(",")}): ${file.name}`
65
- );
66
- return acc;
67
- }
68
- if (RESTRICTED_FILENAMES.includes(baseNameLower)) {
69
- logWarning(`Config file not loaded, restricted filename: ${file.name}`);
70
- if (baseNameLower in MISTAKEN_FILENAMES) {
71
- console.log(
72
- `Did you mean ${MISTAKEN_FILENAMES[baseNameLower]}]} ?`
73
- );
74
- }
75
- return acc;
76
- }
77
- const restrictedPrefix = [...RESTRICTED_FILENAMES, ...STRAPI_CONFIG_FILENAMES].find(
78
- (restrictedName) => restrictedName.startsWith(baseNameLower) && restrictedName !== baseNameLower
79
- );
80
- if (restrictedPrefix) {
81
- logWarning(
82
- `Config file not loaded, filename cannot start with ${restrictedPrefix}: ${file.name}`
83
- );
84
- }
85
- if (seenFilenames.has(baseNameLower)) {
86
- logWarning(
87
- `Config file not loaded, case-insensitive name matches other config file: ${file.name}`
88
- );
89
- return acc;
90
- }
91
- seenFilenames.add(baseNameLower);
92
- acc.push(file);
93
- return acc;
94
- }, []);
95
- return configFiles.reduce((acc, file) => {
96
- const key = path__default.default.basename(file.name, path__default.default.extname(file.name));
97
- acc[key] = loadConfigFile.loadConfigFile(path__default.default.resolve(dir, file.name));
98
- return acc;
99
- }, {});
53
+ // Note: we don't have access to strapi logger at this point so we can't use it
54
+ const logWarning = (message)=>{
55
+ console.warn(message);
100
56
  };
57
+ var loadConfigDir = ((dir)=>{
58
+ if (!fs.existsSync(dir)) return {};
59
+ const allFiles = fs.readdirSync(dir, {
60
+ withFileTypes: true
61
+ });
62
+ const seenFilenames = new Set();
63
+ const configFiles = allFiles.reduce((acc, file)=>{
64
+ const baseName = path.basename(file.name, path.extname(file.name));
65
+ const baseNameLower = baseName.toLowerCase();
66
+ const extension = path.extname(file.name);
67
+ const extensionLower = extension.toLowerCase();
68
+ if (!file.isFile()) {
69
+ return acc;
70
+ }
71
+ if (!VALID_EXTENSIONS.includes(extensionLower)) {
72
+ logWarning(`Config file not loaded, extension must be one of ${VALID_EXTENSIONS.join(',')}): ${file.name}`);
73
+ return acc;
74
+ }
75
+ if (RESTRICTED_FILENAMES.includes(baseNameLower)) {
76
+ logWarning(`Config file not loaded, restricted filename: ${file.name}`);
77
+ // suggest the filename they probably meant
78
+ if (baseNameLower in MISTAKEN_FILENAMES) {
79
+ console.log(`Did you mean ${MISTAKEN_FILENAMES[baseNameLower]}]} ?`);
80
+ }
81
+ return acc;
82
+ }
83
+ // restricted names and Strapi configs are also restricted from being prefixes
84
+ const restrictedPrefix = [
85
+ ...RESTRICTED_FILENAMES,
86
+ ...STRAPI_CONFIG_FILENAMES
87
+ ].find((restrictedName)=>restrictedName.startsWith(baseNameLower) && restrictedName !== baseNameLower);
88
+ if (restrictedPrefix) {
89
+ logWarning(`Config file not loaded, filename cannot start with ${restrictedPrefix}: ${file.name}`);
90
+ }
91
+ /**
92
+ * Note: If user config files contain non-alpha-numeric characters, we won't be able to auto-load env
93
+ * into them.
94
+ *
95
+ * For the initial feature, we will only load our internal configs, but later when we provide a method
96
+ * to define the shape of custom configs, we will need to warn that those filenames can't be loaded
97
+ * for technical limitations on env variable names
98
+ * */ // if (!/^[A-Za-z0-9]+$/.test(baseName)) {
99
+ // logWarning("Using a non-alphanumeric config file name prevents Strapi from auto-loading it from environment variables.")
100
+ // }
101
+ // filter filenames without case-insensitive uniqueness
102
+ if (seenFilenames.has(baseNameLower)) {
103
+ logWarning(`Config file not loaded, case-insensitive name matches other config file: ${file.name}`);
104
+ return acc;
105
+ }
106
+ seenFilenames.add(baseNameLower);
107
+ // If file passes all filters, add it to the accumulator
108
+ acc.push(file);
109
+ return acc;
110
+ }, []);
111
+ return configFiles.reduce((acc, file)=>{
112
+ const key = path.basename(file.name, path.extname(file.name));
113
+ acc[key] = loadConfigFile.loadConfigFile(path.resolve(dir, file.name));
114
+ return acc;
115
+ }, {});
116
+ });
117
+
101
118
  module.exports = loadConfigDir;
102
119
  //# sourceMappingURL=config-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sources":["../../src/configuration/config-loader.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs';\nimport { loadConfigFile } from '../utils/load-config-file';\n\nconst VALID_EXTENSIONS = ['.js', '.json'];\n\n// These filenames are restricted, but will also emit a warning that the filename is probably a mistake\nconst MISTAKEN_FILENAMES = {\n middleware: 'middlewares',\n plugin: 'plugins',\n};\n\n// the following are restricted to prevent conflicts with existing STRAPI_* env vars or root level config options\n// must all be lowercase to match validator\nconst RESTRICTED_FILENAMES = [\n // existing env vars\n 'uuid',\n 'hosting',\n 'license',\n 'enforce',\n 'disable',\n 'enable',\n 'telemetry',\n\n // reserved for future internal use\n 'strapi',\n 'internal',\n\n // root level config options\n // TODO: it would be better to move these out of the root config and allow them to be loaded\n 'launchedAt',\n 'serveAdminPanel',\n 'autoReload',\n 'environment',\n 'packageJsonStrapi',\n 'info',\n 'autoReload',\n\n // probably mistaken/typo filenames\n ...Object.keys(MISTAKEN_FILENAMES),\n];\n\n// Existing Strapi configuration files\nconst STRAPI_CONFIG_FILENAMES = [\n 'admin',\n 'server',\n 'api',\n 'database',\n 'middlewares',\n 'plugins',\n 'features',\n];\n\n// Note: we don't have access to strapi logger at this point so we can't use it\nconst logWarning = (message: string) => {\n console.warn(message);\n};\n\nexport default (dir: string) => {\n if (!fs.existsSync(dir)) return {};\n\n const allFiles = fs.readdirSync(dir, { withFileTypes: true });\n const seenFilenames = new Set<string>();\n const configFiles = allFiles.reduce((acc, file) => {\n const baseName = path.basename(file.name, path.extname(file.name));\n const baseNameLower = baseName.toLowerCase();\n const extension = path.extname(file.name);\n const extensionLower = extension.toLowerCase();\n\n if (!file.isFile()) {\n return acc;\n }\n\n if (!VALID_EXTENSIONS.includes(extensionLower)) {\n logWarning(\n `Config file not loaded, extension must be one of ${VALID_EXTENSIONS.join(',')}): ${\n file.name\n }`\n );\n return acc;\n }\n\n if (RESTRICTED_FILENAMES.includes(baseNameLower)) {\n logWarning(`Config file not loaded, restricted filename: ${file.name}`);\n\n // suggest the filename they probably meant\n if (baseNameLower in MISTAKEN_FILENAMES) {\n console.log(\n `Did you mean ${MISTAKEN_FILENAMES[baseNameLower as keyof typeof MISTAKEN_FILENAMES]}]} ?`\n );\n }\n\n return acc;\n }\n\n // restricted names and Strapi configs are also restricted from being prefixes\n const restrictedPrefix = [...RESTRICTED_FILENAMES, ...STRAPI_CONFIG_FILENAMES].find(\n (restrictedName) =>\n restrictedName.startsWith(baseNameLower) && restrictedName !== baseNameLower\n );\n if (restrictedPrefix) {\n logWarning(\n `Config file not loaded, filename cannot start with ${restrictedPrefix}: ${file.name}`\n );\n }\n\n /**\n * Note: If user config files contain non-alpha-numeric characters, we won't be able to auto-load env\n * into them.\n *\n * For the initial feature, we will only load our internal configs, but later when we provide a method\n * to define the shape of custom configs, we will need to warn that those filenames can't be loaded\n * for technical limitations on env variable names\n * */\n // if (!/^[A-Za-z0-9]+$/.test(baseName)) {\n // logWarning(\"Using a non-alphanumeric config file name prevents Strapi from auto-loading it from environment variables.\")\n // }\n\n // filter filenames without case-insensitive uniqueness\n if (seenFilenames.has(baseNameLower)) {\n logWarning(\n `Config file not loaded, case-insensitive name matches other config file: ${file.name}`\n );\n return acc;\n }\n seenFilenames.add(baseNameLower);\n\n // If file passes all filters, add it to the accumulator\n acc.push(file);\n return acc;\n }, [] as fs.Dirent[]);\n\n return configFiles.reduce((acc, file) => {\n const key = path.basename(file.name, path.extname(file.name));\n\n acc[key] = loadConfigFile(path.resolve(dir, file.name));\n\n return acc;\n }, {} as Record<string, unknown>);\n};\n"],"names":["fs","path","loadConfigFile"],"mappings":";;;;;;;AAIA,MAAM,mBAAmB,CAAC,OAAO,OAAO;AAGxC,MAAM,qBAAqB;AAAA,EACzB,YAAY;AAAA,EACZ,QAAQ;AACV;AAIA,MAAM,uBAAuB;AAAA;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA,GAAG,OAAO,KAAK,kBAAkB;AACnC;AAGA,MAAM,0BAA0B;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGA,MAAM,aAAa,CAAC,YAAoB;AACtC,UAAQ,KAAK,OAAO;AACtB;AAEA,MAAe,gBAAA,CAAC,QAAgB;AAC1B,MAAA,CAACA,YAAAA,QAAG,WAAW,GAAG;AAAG,WAAO;AAEhC,QAAM,WAAWA,YAAAA,QAAG,YAAY,KAAK,EAAE,eAAe,MAAM;AACtD,QAAA,oCAAoB;AAC1B,QAAM,cAAc,SAAS,OAAO,CAAC,KAAK,SAAS;AAC3C,UAAA,WAAWC,cAAAA,QAAK,SAAS,KAAK,MAAMA,cAAK,QAAA,QAAQ,KAAK,IAAI,CAAC;AAC3D,UAAA,gBAAgB,SAAS;AAC/B,UAAM,YAAYA,cAAA,QAAK,QAAQ,KAAK,IAAI;AAClC,UAAA,iBAAiB,UAAU;AAE7B,QAAA,CAAC,KAAK,UAAU;AACX,aAAA;AAAA,IACT;AAEA,QAAI,CAAC,iBAAiB,SAAS,cAAc,GAAG;AAC9C;AAAA,QACE,oDAAoD,iBAAiB,KAAK,GAAG,CAAC,MAC5E,KAAK,IACP;AAAA,MAAA;AAEK,aAAA;AAAA,IACT;AAEI,QAAA,qBAAqB,SAAS,aAAa,GAAG;AACrC,iBAAA,gDAAgD,KAAK,IAAI,EAAE;AAGtE,UAAI,iBAAiB,oBAAoB;AAC/B,gBAAA;AAAA,UACN,gBAAgB,mBAAmB,aAAgD,CAAC;AAAA,QAAA;AAAA,MAExF;AAEO,aAAA;AAAA,IACT;AAGA,UAAM,mBAAmB,CAAC,GAAG,sBAAsB,GAAG,uBAAuB,EAAE;AAAA,MAC7E,CAAC,mBACC,eAAe,WAAW,aAAa,KAAK,mBAAmB;AAAA,IAAA;AAEnE,QAAI,kBAAkB;AACpB;AAAA,QACE,sDAAsD,gBAAgB,KAAK,KAAK,IAAI;AAAA,MAAA;AAAA,IAExF;AAeI,QAAA,cAAc,IAAI,aAAa,GAAG;AACpC;AAAA,QACE,4EAA4E,KAAK,IAAI;AAAA,MAAA;AAEhF,aAAA;AAAA,IACT;AACA,kBAAc,IAAI,aAAa;AAG/B,QAAI,KAAK,IAAI;AACN,WAAA;AAAA,EACT,GAAG,CAAiB,CAAA;AAEpB,SAAO,YAAY,OAAO,CAAC,KAAK,SAAS;AACjC,UAAA,MAAMA,cAAAA,QAAK,SAAS,KAAK,MAAMA,cAAK,QAAA,QAAQ,KAAK,IAAI,CAAC;AAExD,QAAA,GAAG,IAAIC,eAAAA,eAAeD,cAAA,QAAK,QAAQ,KAAK,KAAK,IAAI,CAAC;AAE/C,WAAA;AAAA,EACT,GAAG,CAA6B,CAAA;AAClC;;"}
1
+ {"version":3,"file":"config-loader.js","sources":["../../src/configuration/config-loader.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs';\nimport { loadConfigFile } from '../utils/load-config-file';\n\nconst VALID_EXTENSIONS = ['.js', '.json'];\n\n// These filenames are restricted, but will also emit a warning that the filename is probably a mistake\nconst MISTAKEN_FILENAMES = {\n middleware: 'middlewares',\n plugin: 'plugins',\n};\n\n// the following are restricted to prevent conflicts with existing STRAPI_* env vars or root level config options\n// must all be lowercase to match validator\nconst RESTRICTED_FILENAMES = [\n // existing env vars\n 'uuid',\n 'hosting',\n 'license',\n 'enforce',\n 'disable',\n 'enable',\n 'telemetry',\n\n // reserved for future internal use\n 'strapi',\n 'internal',\n\n // root level config options\n // TODO: it would be better to move these out of the root config and allow them to be loaded\n 'launchedAt',\n 'serveAdminPanel',\n 'autoReload',\n 'environment',\n 'packageJsonStrapi',\n 'info',\n 'autoReload',\n 'dirs',\n\n // probably mistaken/typo filenames\n ...Object.keys(MISTAKEN_FILENAMES),\n];\n\n// Existing Strapi configuration files\nconst STRAPI_CONFIG_FILENAMES = [\n 'admin',\n 'server',\n 'api',\n 'database',\n 'middlewares',\n 'plugins',\n 'features',\n];\n\n// Note: we don't have access to strapi logger at this point so we can't use it\nconst logWarning = (message: string) => {\n console.warn(message);\n};\n\nexport default (dir: string) => {\n if (!fs.existsSync(dir)) return {};\n\n const allFiles = fs.readdirSync(dir, { withFileTypes: true });\n const seenFilenames = new Set<string>();\n const configFiles = allFiles.reduce((acc, file) => {\n const baseName = path.basename(file.name, path.extname(file.name));\n const baseNameLower = baseName.toLowerCase();\n const extension = path.extname(file.name);\n const extensionLower = extension.toLowerCase();\n\n if (!file.isFile()) {\n return acc;\n }\n\n if (!VALID_EXTENSIONS.includes(extensionLower)) {\n logWarning(\n `Config file not loaded, extension must be one of ${VALID_EXTENSIONS.join(',')}): ${\n file.name\n }`\n );\n return acc;\n }\n\n if (RESTRICTED_FILENAMES.includes(baseNameLower)) {\n logWarning(`Config file not loaded, restricted filename: ${file.name}`);\n\n // suggest the filename they probably meant\n if (baseNameLower in MISTAKEN_FILENAMES) {\n console.log(\n `Did you mean ${MISTAKEN_FILENAMES[baseNameLower as keyof typeof MISTAKEN_FILENAMES]}]} ?`\n );\n }\n\n return acc;\n }\n\n // restricted names and Strapi configs are also restricted from being prefixes\n const restrictedPrefix = [...RESTRICTED_FILENAMES, ...STRAPI_CONFIG_FILENAMES].find(\n (restrictedName) =>\n restrictedName.startsWith(baseNameLower) && restrictedName !== baseNameLower\n );\n if (restrictedPrefix) {\n logWarning(\n `Config file not loaded, filename cannot start with ${restrictedPrefix}: ${file.name}`\n );\n }\n\n /**\n * Note: If user config files contain non-alpha-numeric characters, we won't be able to auto-load env\n * into them.\n *\n * For the initial feature, we will only load our internal configs, but later when we provide a method\n * to define the shape of custom configs, we will need to warn that those filenames can't be loaded\n * for technical limitations on env variable names\n * */\n // if (!/^[A-Za-z0-9]+$/.test(baseName)) {\n // logWarning(\"Using a non-alphanumeric config file name prevents Strapi from auto-loading it from environment variables.\")\n // }\n\n // filter filenames without case-insensitive uniqueness\n if (seenFilenames.has(baseNameLower)) {\n logWarning(\n `Config file not loaded, case-insensitive name matches other config file: ${file.name}`\n );\n return acc;\n }\n seenFilenames.add(baseNameLower);\n\n // If file passes all filters, add it to the accumulator\n acc.push(file);\n return acc;\n }, [] as fs.Dirent[]);\n\n return configFiles.reduce(\n (acc, file) => {\n const key = path.basename(file.name, path.extname(file.name));\n\n acc[key] = loadConfigFile(path.resolve(dir, file.name));\n\n return acc;\n },\n {} as Record<string, unknown>\n );\n};\n"],"names":["VALID_EXTENSIONS","MISTAKEN_FILENAMES","middleware","plugin","RESTRICTED_FILENAMES","Object","keys","STRAPI_CONFIG_FILENAMES","logWarning","message","console","warn","dir","fs","existsSync","allFiles","readdirSync","withFileTypes","seenFilenames","Set","configFiles","reduce","acc","file","baseName","path","basename","name","extname","baseNameLower","toLowerCase","extension","extensionLower","isFile","includes","join","log","restrictedPrefix","find","restrictedName","startsWith","has","add","push","key","loadConfigFile","resolve"],"mappings":"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"}