@strapi/core 5.0.0-beta.2 → 5.0.0-beta.3

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 (234) hide show
  1. package/dist/Strapi.d.ts +30 -34
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +134 -206
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +124 -196
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/config-loader.d.ts.map +1 -1
  8. package/dist/configuration/config-loader.js +1 -0
  9. package/dist/configuration/config-loader.js.map +1 -1
  10. package/dist/configuration/config-loader.mjs +1 -0
  11. package/dist/configuration/config-loader.mjs.map +1 -1
  12. package/dist/configuration/get-dirs.d.ts +10 -0
  13. package/dist/configuration/get-dirs.d.ts.map +1 -0
  14. package/dist/{utils → configuration}/get-dirs.js +3 -2
  15. package/dist/configuration/get-dirs.js.map +1 -0
  16. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  17. package/dist/configuration/get-dirs.mjs.map +1 -0
  18. package/dist/configuration/index.d.ts +4 -7
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +6 -4
  21. package/dist/configuration/index.js.map +1 -1
  22. package/dist/configuration/index.mjs +5 -4
  23. package/dist/configuration/index.mjs.map +1 -1
  24. package/dist/core-api/service/collection-type.d.ts +4 -4
  25. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  26. package/dist/core-api/service/collection-type.js +14 -5
  27. package/dist/core-api/service/collection-type.js.map +1 -1
  28. package/dist/core-api/service/collection-type.mjs +14 -5
  29. package/dist/core-api/service/collection-type.mjs.map +1 -1
  30. package/dist/core-api/service/single-type.d.ts.map +1 -1
  31. package/dist/core-api/service/single-type.js +8 -2
  32. package/dist/core-api/service/single-type.js.map +1 -1
  33. package/dist/core-api/service/single-type.mjs +8 -2
  34. package/dist/core-api/service/single-type.mjs.map +1 -1
  35. package/dist/ee/index.d.ts +2 -0
  36. package/dist/ee/index.d.ts.map +1 -1
  37. package/dist/ee/index.js.map +1 -1
  38. package/dist/ee/index.mjs.map +1 -1
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +18 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.mjs +18 -1
  44. package/dist/index.mjs.map +1 -1
  45. package/dist/loaders/admin.js +0 -1
  46. package/dist/loaders/admin.js.map +1 -1
  47. package/dist/loaders/admin.mjs +0 -1
  48. package/dist/loaders/admin.mjs.map +1 -1
  49. package/dist/loaders/index.d.ts.map +1 -1
  50. package/dist/loaders/index.js +0 -2
  51. package/dist/loaders/index.js.map +1 -1
  52. package/dist/loaders/index.mjs +0 -2
  53. package/dist/loaders/index.mjs.map +1 -1
  54. package/dist/middlewares/body.d.ts +2 -2
  55. package/dist/middlewares/body.d.ts.map +1 -1
  56. package/dist/middlewares/body.js +4 -4
  57. package/dist/middlewares/body.js.map +1 -1
  58. package/dist/middlewares/body.mjs +4 -4
  59. package/dist/middlewares/body.mjs.map +1 -1
  60. package/dist/middlewares/public.js +1 -1
  61. package/dist/middlewares/public.js.map +1 -1
  62. package/dist/middlewares/public.mjs +1 -1
  63. package/dist/middlewares/public.mjs.map +1 -1
  64. package/dist/providers/admin.d.ts +3 -0
  65. package/dist/providers/admin.d.ts.map +1 -0
  66. package/dist/providers/admin.js +20 -0
  67. package/dist/providers/admin.js.map +1 -0
  68. package/dist/providers/admin.mjs +21 -0
  69. package/dist/providers/admin.mjs.map +1 -0
  70. package/dist/providers/coreStore.d.ts +3 -0
  71. package/dist/providers/coreStore.d.ts.map +1 -0
  72. package/dist/providers/coreStore.js +11 -0
  73. package/dist/providers/coreStore.js.map +1 -0
  74. package/dist/providers/coreStore.mjs +12 -0
  75. package/dist/providers/coreStore.mjs.map +1 -0
  76. package/dist/providers/cron.d.ts +3 -0
  77. package/dist/providers/cron.d.ts.map +1 -0
  78. package/dist/providers/cron.js +20 -0
  79. package/dist/providers/cron.js.map +1 -0
  80. package/dist/providers/cron.mjs +21 -0
  81. package/dist/providers/cron.mjs.map +1 -0
  82. package/dist/providers/index.d.ts +3 -0
  83. package/dist/providers/index.d.ts.map +1 -0
  84. package/dist/providers/index.js +11 -0
  85. package/dist/providers/index.js.map +1 -0
  86. package/dist/providers/index.mjs +11 -0
  87. package/dist/providers/index.mjs.map +1 -0
  88. package/dist/providers/provider.d.ts +9 -0
  89. package/dist/providers/provider.d.ts.map +1 -0
  90. package/dist/providers/provider.js +5 -0
  91. package/dist/providers/provider.js.map +1 -0
  92. package/dist/providers/provider.mjs +5 -0
  93. package/dist/providers/provider.mjs.map +1 -0
  94. package/dist/providers/registries.d.ts +3 -0
  95. package/dist/providers/registries.d.ts.map +1 -0
  96. package/dist/providers/registries.js +33 -0
  97. package/dist/providers/registries.js.map +1 -0
  98. package/dist/providers/registries.mjs +34 -0
  99. package/dist/providers/registries.mjs.map +1 -0
  100. package/dist/providers/telemetry.d.ts +3 -0
  101. package/dist/providers/telemetry.d.ts.map +1 -0
  102. package/dist/providers/telemetry.js +19 -0
  103. package/dist/providers/telemetry.js.map +1 -0
  104. package/dist/providers/telemetry.mjs +20 -0
  105. package/dist/providers/telemetry.mjs.map +1 -0
  106. package/dist/providers/webhooks.d.ts +3 -0
  107. package/dist/providers/webhooks.d.ts.map +1 -0
  108. package/dist/providers/webhooks.js +30 -0
  109. package/dist/providers/webhooks.js.map +1 -0
  110. package/dist/providers/webhooks.mjs +31 -0
  111. package/dist/providers/webhooks.mjs.map +1 -0
  112. package/dist/registries/index.d.ts +0 -1
  113. package/dist/registries/index.d.ts.map +1 -1
  114. package/dist/services/config.d.ts +3 -0
  115. package/dist/services/config.d.ts.map +1 -0
  116. package/dist/{registries → services}/config.js +11 -7
  117. package/dist/services/config.js.map +1 -0
  118. package/dist/{registries → services}/config.mjs +10 -7
  119. package/dist/services/config.mjs.map +1 -0
  120. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  121. package/dist/services/document-service/attributes/index.js.map +1 -0
  122. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  123. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  124. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  125. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  126. package/dist/services/document-service/common.d.ts +1 -1
  127. package/dist/services/document-service/common.d.ts.map +1 -1
  128. package/dist/services/document-service/common.js.map +1 -1
  129. package/dist/services/document-service/common.mjs.map +1 -1
  130. package/dist/services/document-service/components.d.ts +97 -1
  131. package/dist/services/document-service/components.d.ts.map +1 -1
  132. package/dist/services/{entity-service → document-service}/components.js +21 -27
  133. package/dist/services/document-service/components.js.map +1 -0
  134. package/dist/services/{entity-service → document-service}/components.mjs +21 -27
  135. package/dist/services/document-service/components.mjs.map +1 -0
  136. package/dist/services/document-service/entries.d.ts +8 -0
  137. package/dist/services/document-service/entries.d.ts.map +1 -0
  138. package/dist/services/document-service/entries.js +62 -0
  139. package/dist/services/document-service/entries.js.map +1 -0
  140. package/dist/services/document-service/entries.mjs +62 -0
  141. package/dist/services/document-service/entries.mjs.map +1 -0
  142. package/dist/services/document-service/index.d.ts +0 -2
  143. package/dist/services/document-service/index.d.ts.map +1 -1
  144. package/dist/services/document-service/index.js +10 -1
  145. package/dist/services/document-service/index.js.map +1 -1
  146. package/dist/services/document-service/index.mjs +10 -1
  147. package/dist/services/document-service/index.mjs.map +1 -1
  148. package/dist/services/document-service/middlewares/middleware-manager.d.ts +4 -1
  149. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -1
  150. package/dist/services/document-service/middlewares/middleware-manager.js +8 -5
  151. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  152. package/dist/services/document-service/middlewares/middleware-manager.mjs +8 -5
  153. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  154. package/dist/services/document-service/params.d.ts +7 -1
  155. package/dist/services/document-service/params.d.ts.map +1 -1
  156. package/dist/services/document-service/params.js.map +1 -0
  157. package/dist/services/document-service/params.mjs.map +1 -0
  158. package/dist/services/document-service/repository.d.ts.map +1 -1
  159. package/dist/services/document-service/repository.js +73 -104
  160. package/dist/services/document-service/repository.js.map +1 -1
  161. package/dist/services/document-service/repository.mjs +57 -88
  162. package/dist/services/document-service/repository.mjs.map +1 -1
  163. package/dist/services/document-service/transform/query.d.ts +5 -0
  164. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  165. package/dist/services/document-service/transform/query.js +9 -0
  166. package/dist/services/document-service/transform/query.js.map +1 -0
  167. package/dist/services/document-service/transform/query.mjs +9 -0
  168. package/dist/services/document-service/transform/query.mjs.map +1 -0
  169. package/dist/services/entity-service/index.d.ts.map +1 -1
  170. package/dist/services/entity-service/index.js +11 -4
  171. package/dist/services/entity-service/index.js.map +1 -1
  172. package/dist/services/entity-service/index.mjs +11 -4
  173. package/dist/services/entity-service/index.mjs.map +1 -1
  174. package/dist/services/reloader.d.ts +7 -0
  175. package/dist/services/reloader.d.ts.map +1 -0
  176. package/dist/services/reloader.js +36 -0
  177. package/dist/services/reloader.js.map +1 -0
  178. package/dist/services/reloader.mjs +36 -0
  179. package/dist/services/reloader.mjs.map +1 -0
  180. package/dist/services/server/register-routes.js +1 -1
  181. package/dist/services/server/register-routes.js.map +1 -1
  182. package/dist/services/server/register-routes.mjs +1 -1
  183. package/dist/services/server/register-routes.mjs.map +1 -1
  184. package/dist/services/server/routing.d.ts +1 -1
  185. package/dist/services/webhook-store.d.ts.map +1 -1
  186. package/dist/services/webhook-store.js +5 -6
  187. package/dist/services/webhook-store.js.map +1 -1
  188. package/dist/services/webhook-store.mjs +5 -6
  189. package/dist/services/webhook-store.mjs.map +1 -1
  190. package/dist/utils/index.d.ts +2 -1
  191. package/dist/utils/index.d.ts.map +1 -1
  192. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  193. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  194. package/dist/utils/resolve-working-dirs.js +13 -0
  195. package/dist/utils/resolve-working-dirs.js.map +1 -0
  196. package/dist/utils/resolve-working-dirs.mjs +11 -0
  197. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  198. package/dist/utils/update-notifier/index.d.ts +1 -6
  199. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  200. package/dist/utils/update-notifier/index.js +11 -14
  201. package/dist/utils/update-notifier/index.js.map +1 -1
  202. package/dist/utils/update-notifier/index.mjs +11 -14
  203. package/dist/utils/update-notifier/index.mjs.map +1 -1
  204. package/package.json +20 -20
  205. package/dist/registries/config.d.ts +0 -4
  206. package/dist/registries/config.d.ts.map +0 -1
  207. package/dist/registries/config.js.map +0 -1
  208. package/dist/registries/config.mjs.map +0 -1
  209. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  210. package/dist/services/entity-service/attributes/index.js.map +0 -1
  211. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  212. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  213. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  214. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  215. package/dist/services/entity-service/components.d.ts +0 -95
  216. package/dist/services/entity-service/components.d.ts.map +0 -1
  217. package/dist/services/entity-service/components.js.map +0 -1
  218. package/dist/services/entity-service/components.mjs.map +0 -1
  219. package/dist/services/entity-service/params.d.ts +0 -8
  220. package/dist/services/entity-service/params.d.ts.map +0 -1
  221. package/dist/services/entity-service/params.js.map +0 -1
  222. package/dist/services/entity-service/params.mjs.map +0 -1
  223. package/dist/utils/get-dirs.d.ts +0 -9
  224. package/dist/utils/get-dirs.d.ts.map +0 -1
  225. package/dist/utils/get-dirs.js.map +0 -1
  226. package/dist/utils/get-dirs.mjs.map +0 -1
  227. /package/dist/services/{entity-service → document-service}/attributes/index.d.ts +0 -0
  228. /package/dist/services/{entity-service → document-service}/attributes/index.js +0 -0
  229. /package/dist/services/{entity-service → document-service}/attributes/index.mjs +0 -0
  230. /package/dist/services/{entity-service → document-service}/attributes/transforms.d.ts +0 -0
  231. /package/dist/services/{entity-service → document-service}/attributes/transforms.js +0 -0
  232. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  233. /package/dist/services/{entity-service → document-service}/params.js +0 -0
  234. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
package/dist/Strapi.d.ts CHANGED
@@ -2,39 +2,36 @@ import { Logger } from '@strapi/logger';
2
2
  import { Database } from '@strapi/database';
3
3
  import type { Core, Modules, UID, Schema } from '@strapi/types';
4
4
  import { Container } from './container';
5
- import { WebhookRunner } from './services/webhook-runner';
6
5
  import { FeaturesService } from './services/features';
7
- export type LoadedStrapi = Required<Strapi>;
8
6
  declare class Strapi extends Container implements Core.Strapi {
9
- server: Modules.Server.Server;
10
- log: Logger;
11
- fs: Core.StrapiFS;
12
- eventHub: Modules.EventHub.EventHub;
13
- startupLogger: Core.StartupLogger;
14
- cron: Modules.Cron.CronService;
15
- webhookRunner?: WebhookRunner;
16
- webhookStore?: Modules.WebhookStore.WebhookStore;
17
- store?: Modules.CoreStore.CoreStore;
18
- entityValidator?: Modules.EntityValidator.EntityValidator;
7
+ app: any;
8
+ isLoaded: boolean;
9
+ internal_config: Record<string, unknown>;
10
+ constructor(opts: StrapiOptions);
11
+ get admin(): Core.Module;
12
+ get EE(): boolean;
13
+ get ee(): Core.Strapi['ee'];
14
+ get dirs(): Core.StrapiDirectories;
15
+ get reload(): Core.Reloader;
16
+ get db(): Database;
17
+ get requestContext(): Modules.RequestContext.RequestContext;
18
+ get customFields(): Modules.CustomFields.CustomFields;
19
+ get entityValidator(): Modules.EntityValidator.EntityValidator;
19
20
  /**
20
21
  * @deprecated `strapi.entityService` will be removed in the next major version
21
22
  */
22
- entityService?: Modules.EntityService.EntityService;
23
- documents?: Modules.Documents.Service;
24
- telemetry: Modules.Metrics.TelemetryService;
25
- requestContext: Modules.RequestContext.RequestContext;
26
- customFields: Modules.CustomFields.CustomFields;
27
- fetch: Modules.Fetch.Fetch;
28
- dirs: Core.StrapiDirectories;
29
- admin?: Core.Module;
30
- isLoaded: boolean;
31
- db: Database;
32
- app: any;
33
- EE?: boolean;
34
- reload: Core.Reloader;
35
- features: FeaturesService;
36
- ee: Core.Strapi['ee'];
37
- constructor(opts?: StrapiOptions);
23
+ get entityService(): Modules.EntityService.EntityService;
24
+ get documents(): Modules.Documents.Service;
25
+ get features(): FeaturesService;
26
+ get fetch(): Modules.Fetch.Fetch;
27
+ get cron(): Modules.Cron.CronService;
28
+ get log(): Logger;
29
+ get startupLogger(): Core.StartupLogger;
30
+ get eventHub(): Modules.EventHub.EventHub;
31
+ get fs(): Core.StrapiFS;
32
+ get server(): Modules.Server.Server;
33
+ get telemetry(): Modules.Metrics.TelemetryService;
34
+ get store(): Modules.CoreStore.CoreStore;
38
35
  get config(): any;
39
36
  get services(): any;
40
37
  service(uid: UID.Service): any;
@@ -58,7 +55,7 @@ declare class Strapi extends Container implements Core.Strapi {
58
55
  get sanitizers(): any;
59
56
  get validators(): any;
60
57
  start(): Promise<this>;
61
- destroy(): Promise<void>;
58
+ registerInternalServices(): void;
62
59
  sendStartupTelemetry(): void;
63
60
  openAdmin({ isInitialized }: {
64
61
  isInitialized: boolean;
@@ -70,11 +67,10 @@ declare class Strapi extends Container implements Core.Strapi {
70
67
  listen(): Promise<void>;
71
68
  stopWithError(err: unknown, customMessage?: string): never;
72
69
  stop(exitCode?: number): never;
73
- registerInternalHooks(): void;
70
+ load(): Promise<this>;
74
71
  register(): Promise<this>;
75
72
  bootstrap(): Promise<this>;
76
- load(): Promise<this & Required<Core.Strapi>>;
77
- startWebhooks(): Promise<void>;
73
+ destroy(): Promise<void>;
78
74
  runLifecyclesFunctions(lifecycleName: 'register' | 'bootstrap' | 'destroy'): Promise<void>;
79
75
  getModel(uid: UID.ContentType): Schema.ContentType;
80
76
  getModel(uid: UID.Component): Schema.Component;
@@ -84,8 +80,8 @@ declare class Strapi extends Container implements Core.Strapi {
84
80
  query(uid: UID.Schema): import("@strapi/database/dist/entity-manager").Repository;
85
81
  }
86
82
  export interface StrapiOptions {
87
- appDir?: string;
88
- distDir?: string;
83
+ appDir: string;
84
+ distDir: string;
89
85
  autoReload?: boolean;
90
86
  serveAdminPanel?: boolean;
91
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Strapi.d.ts","sourceRoot":"","sources":["../src/Strapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Strapi.d.ts","sourceRoot":"","sources":["../src/Strapi.ts"],"names":[],"mappings":"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"}
package/dist/Strapi.js CHANGED
@@ -4,175 +4,116 @@ const _ = require("lodash");
4
4
  const _$1 = require("lodash/fp");
5
5
  const logger = require("@strapi/logger");
6
6
  const database = require("@strapi/database");
7
- const strapiUtils = require("@strapi/utils");
8
7
  const index = require("./configuration/index.js");
9
8
  const factories = require("./factories.js");
10
9
  const openBrowser = require("./utils/open-browser.js");
11
10
  const isInitialized = require("./utils/is-initialized.js");
12
- const getDirs = require("./utils/get-dirs.js");
13
- const index$6 = require("./ee/index.js");
14
- const index$5 = require("./utils/update-notifier/index.js");
11
+ const index$2 = require("./ee/index.js");
12
+ require("./utils/update-notifier/index.js");
15
13
  const fetch = require("./utils/fetch.js");
16
14
  const convertCustomFieldType = require("./utils/convert-custom-field-type.js");
17
15
  const startupLogger = require("./utils/startup-logger.js");
18
16
  const transformContentTypesToModels = require("./utils/transform-content-types-to-models.js");
19
- const signals = require("./utils/signals.js");
20
17
  const lifecycles = require("./utils/lifecycles.js");
21
- const contentTypes = require("./registries/content-types.js");
22
- const components = require("./registries/components.js");
23
- const services = require("./registries/services.js");
24
- const policies = require("./registries/policies.js");
25
- const middlewares = require("./registries/middlewares.js");
26
- const hooks = require("./registries/hooks.js");
27
- const controllers = require("./registries/controllers.js");
28
- const modules = require("./registries/modules.js");
29
- const plugins = require("./registries/plugins.js");
30
- const customFields = require("./registries/custom-fields.js");
31
- const config = require("./registries/config.js");
32
- const apis = require("./registries/apis.js");
33
- const sanitizers = require("./registries/sanitizers.js");
34
- const validators = require("./registries/validators.js");
35
- const models = require("./registries/models.js");
36
- const index$7 = require("./loaders/index.js");
18
+ require("node:path");
37
19
  const container = require("./container.js");
38
20
  const fs = require("./services/fs.js");
39
21
  const eventHub = require("./services/event-hub.js");
40
- const index$3 = require("./services/server/index.js");
41
- const webhookRunner = require("./services/webhook-runner.js");
42
- const webhookStore = require("./services/webhook-store.js");
43
- const coreStore = require("./services/core-store.js");
44
- const index$9 = require("./services/entity-service/index.js");
22
+ const index$5 = require("./services/server/index.js");
23
+ const reloader = require("./services/reloader.js");
24
+ const index$1 = require("./providers/index.js");
25
+ const index$7 = require("./services/entity-service/index.js");
45
26
  const queryParams = require("./services/query-params.js");
46
- const cron = require("./services/cron.js");
47
- const index$8 = require("./services/entity-validator/index.js");
48
- const index$4 = require("./services/metrics/index.js");
27
+ const index$6 = require("./services/entity-validator/index.js");
49
28
  const requestContext = require("./services/request-context.js");
50
- const index$2 = require("./services/auth/index.js");
51
- const customFields$1 = require("./services/custom-fields.js");
52
- const index$1 = require("./services/content-api/index.js");
29
+ const index$4 = require("./services/auth/index.js");
30
+ const customFields = require("./services/custom-fields.js");
31
+ const index$3 = require("./services/content-api/index.js");
53
32
  const dynamicZones = require("./services/utils/dynamic-zones.js");
54
33
  const features = require("./services/features.js");
55
- const index$a = require("./services/document-service/index.js");
56
- const draftPublish = require("./migrations/draft-publish.js");
34
+ const index$8 = require("./services/document-service/index.js");
35
+ const coreStore = require("./services/core-store.js");
36
+ const config = require("./services/config.js");
57
37
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
58
38
  const path__default = /* @__PURE__ */ _interopDefault(path);
59
39
  const ___default = /* @__PURE__ */ _interopDefault(_);
60
- const resolveWorkingDirectories = (opts) => {
61
- const cwd = process.cwd();
62
- const appDir = opts.appDir ? path__default.default.resolve(cwd, opts.appDir) : cwd;
63
- const distDir = opts.distDir ? path__default.default.resolve(cwd, opts.distDir) : appDir;
64
- return { app: appDir, dist: distDir };
65
- };
66
- const reloader = (strapi) => {
67
- const state = {
68
- shouldReload: 0,
69
- isWatching: true
70
- };
71
- function reload() {
72
- if (state.shouldReload > 0) {
73
- state.shouldReload -= 1;
74
- reload.isReloading = false;
75
- return;
76
- }
77
- if (strapi.config.get("autoReload")) {
78
- process.send?.("reload");
40
+ class Strapi extends container.Container {
41
+ app;
42
+ isLoaded = false;
43
+ internal_config = {};
44
+ constructor(opts) {
45
+ super();
46
+ this.internal_config = index.loadConfiguration(opts);
47
+ this.registerInternalServices();
48
+ for (const provider of index$1.providers) {
49
+ provider.init?.(this);
79
50
  }
80
51
  }
81
- Object.defineProperty(reload, "isWatching", {
82
- configurable: true,
83
- enumerable: true,
84
- set(value) {
85
- if (state.isWatching === false && value === true) {
86
- state.shouldReload += 1;
87
- }
88
- state.isWatching = value;
89
- },
90
- get() {
91
- return state.isWatching;
92
- }
93
- });
94
- reload.isReloading = false;
95
- reload.isWatching = true;
96
- return reload;
97
- };
98
- class Strapi extends container.Container {
99
- server;
100
- log;
101
- fs;
102
- eventHub;
103
- startupLogger;
104
- cron;
105
- webhookRunner;
106
- webhookStore;
107
- store;
108
- entityValidator;
52
+ get admin() {
53
+ return this.get("admin");
54
+ }
55
+ get EE() {
56
+ return index$2.isEE;
57
+ }
58
+ get ee() {
59
+ return index$2;
60
+ }
61
+ get dirs() {
62
+ return this.config.get("dirs");
63
+ }
64
+ get reload() {
65
+ return this.get("reload");
66
+ }
67
+ get db() {
68
+ return this.get("db");
69
+ }
70
+ get requestContext() {
71
+ return this.get("requestContext");
72
+ }
73
+ get customFields() {
74
+ return this.get("customFields");
75
+ }
76
+ get entityValidator() {
77
+ return this.get("entityValidator");
78
+ }
109
79
  /**
110
80
  * @deprecated `strapi.entityService` will be removed in the next major version
111
81
  */
112
- entityService;
113
- documents;
114
- telemetry;
115
- requestContext;
116
- customFields;
117
- fetch;
118
- dirs;
119
- admin;
120
- isLoaded;
121
- db;
122
- app;
123
- EE;
124
- reload;
125
- features;
126
- // @ts-expect-error - Assigned in constructor
127
- ee;
128
- constructor(opts = {}) {
129
- super();
130
- signals.destroyOnSignal(this);
131
- const rootDirs = resolveWorkingDirectories(opts);
132
- const appConfig = index(rootDirs, opts);
133
- this.add("config", config(appConfig, this)).add("content-types", contentTypes()).add("components", components()).add("services", services(this)).add("policies", policies()).add("middlewares", middlewares()).add("hooks", hooks()).add("controllers", controllers(this)).add("modules", modules(this)).add("plugins", plugins(this)).add("custom-fields", customFields(this)).add("apis", apis(this)).add("sanitizers", sanitizers()).add("validators", validators()).add("query-params", queryParams(this)).add("content-api", index$1(this)).add("auth", index$2()).add("models", models.registry());
134
- this.dirs = getDirs.getDirs(rootDirs, { strapi: this });
135
- this.isLoaded = false;
136
- this.reload = reloader(this);
137
- this.server = index$3.createServer(this);
138
- this.fs = fs(this);
139
- this.eventHub = eventHub();
140
- this.startupLogger = startupLogger.createStartupLogger(this);
141
- const logConfig = {
142
- level: "http",
143
- // Strapi defaults to level 'http'
144
- ...this.config.get("logger"),
145
- // DEPRECATED
146
- ...this.config.get("server.logger.config")
147
- };
148
- this.log = logger.createLogger(logConfig);
149
- this.cron = cron();
150
- this.telemetry = index$4(this);
151
- this.requestContext = requestContext;
152
- this.customFields = customFields$1(this);
153
- this.fetch = fetch.createStrapiFetch(this);
154
- this.features = features.createFeaturesService(this);
155
- this.db = new database.Database(
156
- ___default.default.merge(this.config.get("database"), {
157
- settings: {
158
- migrations: {
159
- dir: path__default.default.join(this.dirs.app.root, "database/migrations")
160
- }
161
- }
162
- })
163
- );
164
- index$5.createUpdateNotifier(this).notify();
165
- Object.defineProperty(this, "EE", {
166
- get: () => {
167
- index$6.init(this.dirs.app.root, this.log);
168
- return index$6.isEE;
169
- },
170
- configurable: false
171
- });
172
- Object.defineProperty(this, "ee", {
173
- get: () => index$6,
174
- configurable: false
175
- });
82
+ get entityService() {
83
+ return this.get("entityService");
84
+ }
85
+ get documents() {
86
+ return this.get("documents");
87
+ }
88
+ get features() {
89
+ return this.get("features");
90
+ }
91
+ get fetch() {
92
+ return this.get("fetch");
93
+ }
94
+ get cron() {
95
+ return this.get("cron");
96
+ }
97
+ get log() {
98
+ return this.get("logger");
99
+ }
100
+ get startupLogger() {
101
+ return this.get("startupLogger");
102
+ }
103
+ get eventHub() {
104
+ return this.get("eventHub");
105
+ }
106
+ get fs() {
107
+ return this.get("fs");
108
+ }
109
+ get server() {
110
+ return this.get("server");
111
+ }
112
+ get telemetry() {
113
+ return this.get("telemetry");
114
+ }
115
+ get store() {
116
+ return this.get("coreStore");
176
117
  }
177
118
  get config() {
178
119
  return this.get("config");
@@ -251,17 +192,28 @@ class Strapi extends container.Container {
251
192
  return this.stopWithError(error);
252
193
  }
253
194
  }
254
- async destroy() {
255
- this.log.info("Shutting down Strapi");
256
- await this.server.destroy();
257
- await this.runLifecyclesFunctions(lifecycles.LIFECYCLES.DESTROY);
258
- this.eventHub.destroy();
259
- await this.db?.destroy();
260
- this.telemetry.destroy();
261
- this.cron.destroy();
262
- process.removeAllListeners();
263
- delete global.strapi;
264
- this.log.info("Strapi has been shut down");
195
+ // TODO: split into more providers
196
+ registerInternalServices() {
197
+ this.add("config", () => config.createConfigProvider(this.internal_config, this)).add("query-params", queryParams(this)).add("content-api", index$3(this)).add("auth", index$4()).add("server", () => index$5.createServer(this)).add("fs", () => fs(this)).add("eventHub", () => eventHub()).add("startupLogger", () => startupLogger.createStartupLogger(this)).add("logger", () => {
198
+ return logger.createLogger({
199
+ level: "http",
200
+ // Strapi defaults to level 'http'
201
+ ...this.config.get("logger"),
202
+ // DEPRECATED
203
+ ...this.config.get("server.logger.config")
204
+ });
205
+ }).add("fetch", () => fetch.createStrapiFetch(this)).add("features", () => features.createFeaturesService(this)).add("requestContext", requestContext).add("customFields", customFields(this)).add("entityValidator", index$6).add("entityService", () => index$7({ strapi: this, db: this.db })).add("documents", () => index$8.createDocumentService(this)).add(
206
+ "db",
207
+ () => new database.Database(
208
+ ___default.default.merge(this.config.get("database"), {
209
+ settings: {
210
+ migrations: {
211
+ dir: path__default.default.join(this.dirs.app.root, "database/migrations")
212
+ }
213
+ }
214
+ })
215
+ )
216
+ ).add("reload", () => reloader.createReloader(this));
265
217
  }
266
218
  sendStartupTelemetry() {
267
219
  this.telemetry.send("didStartServer", {
@@ -337,49 +289,30 @@ class Strapi extends container.Container {
337
289
  }
338
290
  process.exit(exitCode);
339
291
  }
340
- registerInternalHooks() {
341
- this.get("hooks").set("strapi::content-types.beforeSync", strapiUtils.hooks.createAsyncParallelHook());
342
- this.get("hooks").set("strapi::content-types.afterSync", strapiUtils.hooks.createAsyncParallelHook());
343
- this.hook("strapi::content-types.beforeSync").register(draftPublish.disable);
344
- this.hook("strapi::content-types.afterSync").register(draftPublish.enable);
292
+ async load() {
293
+ await this.register();
294
+ await this.bootstrap();
295
+ this.isLoaded = true;
296
+ return this;
345
297
  }
346
298
  async register() {
347
- await index$7.loadApplicationContext(this);
348
- this.get("models").add(coreStore.coreStoreModel).add(webhookStore.webhookModel);
349
- this.webhookRunner = webhookRunner({
350
- eventHub: this.eventHub,
351
- logger: this.log,
352
- configuration: this.config.get("server.webhooks", {}),
353
- fetch: this.fetch
354
- });
355
- this.registerInternalHooks();
356
- this.telemetry.register();
299
+ this.ee.init(this.dirs.app.root, this.log);
300
+ for (const provider of index$1.providers) {
301
+ await provider.register?.(this);
302
+ }
357
303
  await this.runLifecyclesFunctions(lifecycles.LIFECYCLES.REGISTER);
358
304
  convertCustomFieldType.convertCustomFieldType(this);
359
305
  return this;
360
306
  }
361
307
  async bootstrap() {
362
- const models2 = [
308
+ const models = [
363
309
  ...transformContentTypesToModels.transformContentTypesToModels(
364
310
  [...Object.values(this.contentTypes), ...Object.values(this.components)],
365
311
  this.db.metadata.identifiers
366
312
  ),
367
313
  ...this.get("models").get()
368
314
  ];
369
- await this.db.init({ models: models2 });
370
- this.store = coreStore.createCoreStore({ db: this.db });
371
- this.webhookStore = webhookStore.createWebhookStore({ db: this.db });
372
- this.entityValidator = index$8;
373
- this.entityService = index$9({
374
- strapi: this,
375
- db: this.db
376
- });
377
- this.documents = index$a.createDocumentService(this);
378
- if (this.config.get("server.cron.enabled", true)) {
379
- const cronTasks = this.config.get("server.cron.tasks", {});
380
- this.cron.add(cronTasks);
381
- }
382
- this.telemetry.bootstrap();
315
+ await this.db.init({ models });
383
316
  let oldContentTypes;
384
317
  if (await this.db.getSchemaConnection().hasTable(coreStore.coreStoreModel.tableName)) {
385
318
  oldContentTypes = await this.store.get({
@@ -394,7 +327,7 @@ class Strapi extends container.Container {
394
327
  });
395
328
  await this.db.schema.sync();
396
329
  if (this.EE) {
397
- await index$6.checkLicense({ strapi: this });
330
+ await index$2.checkLicense({ strapi: this });
398
331
  }
399
332
  await this.hook("strapi::content-types.afterSync").call({
400
333
  oldContentTypes,
@@ -406,35 +339,30 @@ class Strapi extends container.Container {
406
339
  key: "schema",
407
340
  value: this.contentTypes
408
341
  });
409
- await this.startWebhooks();
410
342
  await this.server.initMiddlewares();
411
343
  this.server.initRouting();
412
344
  await this.contentAPI.permissions.registerActions();
413
345
  await this.runLifecyclesFunctions(lifecycles.LIFECYCLES.BOOTSTRAP);
414
- this.cron.start();
415
- return this;
416
- }
417
- async load() {
418
- await this.register();
419
- await this.bootstrap();
420
- this.isLoaded = true;
346
+ for (const provider of index$1.providers) {
347
+ await provider.bootstrap?.(this);
348
+ }
421
349
  return this;
422
350
  }
423
- async startWebhooks() {
424
- const webhooks = await this.webhookStore?.findWebhooks();
425
- if (!webhooks) {
426
- return;
427
- }
428
- for (const webhook of webhooks) {
429
- this.webhookRunner?.add(webhook);
351
+ async destroy() {
352
+ this.log.info("Shutting down Strapi");
353
+ await this.runLifecyclesFunctions(lifecycles.LIFECYCLES.DESTROY);
354
+ for (const provider of index$1.providers) {
355
+ await provider.destroy?.(this);
430
356
  }
357
+ await this.server.destroy();
358
+ this.eventHub.destroy();
359
+ await this.db?.destroy();
360
+ process.removeAllListeners();
361
+ delete global.strapi;
362
+ this.log.info("Strapi has been shut down");
431
363
  }
432
364
  async runLifecyclesFunctions(lifecycleName) {
433
365
  await this.get("modules")[lifecycleName]();
434
- const adminLifecycleFunction = this.admin && this.admin[lifecycleName];
435
- if (_$1.isFunction(adminLifecycleFunction)) {
436
- await adminLifecycleFunction({ strapi: this });
437
- }
438
366
  const userLifecycleFunction = this.app && this.app[lifecycleName];
439
367
  if (_$1.isFunction(userLifecycleFunction)) {
440
368
  await userLifecycleFunction({ strapi: this });