@strapi/core 0.0.0-next.965570e6e12a33ad098ddb3174a9750fddb03be2 → 0.0.0-next.96a532b33a712f19b498ed0a82a84752247cd899
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @strapi/core might be problematic. Click here for more details.
- package/dist/Strapi.d.ts +1 -0
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +19 -1
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +19 -1
- package/dist/Strapi.mjs.map +1 -1
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -0
- package/dist/constants.mjs +4 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/core-api/routes/validation/mappers.d.ts.map +1 -1
- package/dist/core-api/routes/validation/mappers.js +35 -0
- package/dist/core-api/routes/validation/mappers.js.map +1 -1
- package/dist/core-api/routes/validation/mappers.mjs +35 -0
- package/dist/core-api/routes/validation/mappers.mjs.map +1 -1
- package/dist/loaders/plugins/index.js +1 -1
- package/dist/loaders/plugins/index.js.map +1 -1
- package/dist/loaders/plugins/index.mjs +1 -1
- package/dist/loaders/plugins/index.mjs.map +1 -1
- package/dist/middlewares/security.d.ts.map +1 -1
- package/dist/middlewares/security.js +2 -15
- package/dist/middlewares/security.js.map +1 -1
- package/dist/middlewares/security.mjs +2 -15
- package/dist/middlewares/security.mjs.map +1 -1
- package/dist/package.json.js +12 -11
- package/dist/package.json.js.map +1 -1
- package/dist/package.json.mjs +12 -11
- package/dist/package.json.mjs.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/index.mjs +2 -0
- package/dist/providers/index.mjs.map +1 -1
- package/dist/providers/session-manager.d.ts +3 -0
- package/dist/providers/session-manager.d.ts.map +1 -0
- package/dist/providers/session-manager.js +23 -0
- package/dist/providers/session-manager.js.map +1 -0
- package/dist/providers/session-manager.mjs +21 -0
- package/dist/providers/session-manager.mjs.map +1 -0
- package/dist/services/content-source-maps.d.ts +2 -1
- package/dist/services/content-source-maps.d.ts.map +1 -1
- package/dist/services/content-source-maps.js +29 -7
- package/dist/services/content-source-maps.js.map +1 -1
- package/dist/services/content-source-maps.mjs +29 -7
- package/dist/services/content-source-maps.mjs.map +1 -1
- package/dist/services/document-service/components.d.ts +31 -1
- package/dist/services/document-service/components.d.ts.map +1 -1
- package/dist/services/document-service/components.js +109 -0
- package/dist/services/document-service/components.js.map +1 -1
- package/dist/services/document-service/components.mjs +107 -1
- package/dist/services/document-service/components.mjs.map +1 -1
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +4 -0
- package/dist/services/document-service/repository.js.map +1 -1
- package/dist/services/document-service/repository.mjs +5 -1
- package/dist/services/document-service/repository.mjs.map +1 -1
- package/dist/services/document-service/utils/clean-component-join-table.d.ts +7 -0
- package/dist/services/document-service/utils/clean-component-join-table.d.ts.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.d.ts +19 -2
- package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.js +21 -6
- package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.mjs +21 -6
- package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
- package/dist/services/metrics/index.js +2 -1
- package/dist/services/metrics/index.js.map +1 -1
- package/dist/services/metrics/index.mjs +2 -1
- package/dist/services/metrics/index.mjs.map +1 -1
- package/dist/services/metrics/middleware.d.ts +2 -1
- package/dist/services/metrics/middleware.d.ts.map +1 -1
- package/dist/services/metrics/middleware.js +2 -2
- package/dist/services/metrics/middleware.js.map +1 -1
- package/dist/services/metrics/middleware.mjs +2 -2
- package/dist/services/metrics/middleware.mjs.map +1 -1
- package/dist/services/metrics/sender.d.ts.map +1 -1
- package/dist/services/metrics/sender.js +2 -1
- package/dist/services/metrics/sender.js.map +1 -1
- package/dist/services/metrics/sender.mjs +2 -1
- package/dist/services/metrics/sender.mjs.map +1 -1
- package/dist/services/session-manager.d.ts +167 -0
- package/dist/services/session-manager.d.ts.map +1 -0
- package/dist/services/session-manager.js +529 -0
- package/dist/services/session-manager.js.map +1 -0
- package/dist/services/session-manager.mjs +526 -0
- package/dist/services/session-manager.mjs.map +1 -0
- package/package.json +12 -11
package/dist/Strapi.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ declare class Strapi extends Container implements Core.Strapi {
|
|
|
31
31
|
get fs(): Core.StrapiFS;
|
|
32
32
|
get server(): Modules.Server.Server;
|
|
33
33
|
get telemetry(): Modules.Metrics.TelemetryService;
|
|
34
|
+
get sessionManager(): Modules.SessionManager.SessionManagerService;
|
|
34
35
|
get store(): Modules.CoreStore.CoreStore;
|
|
35
36
|
get config(): any;
|
|
36
37
|
get services(): any;
|
package/dist/Strapi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Strapi.d.ts","sourceRoot":"","sources":["../src/Strapi.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAgB,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQhE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiBxC,OAAO,EAAE,eAAe,EAAyB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Strapi.d.ts","sourceRoot":"","sources":["../src/Strapi.ts"],"names":[],"mappings":"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"}
|
package/dist/Strapi.js
CHANGED
|
@@ -64,6 +64,7 @@ function _interopNamespaceDefault(e) {
|
|
|
64
64
|
|
|
65
65
|
var globalAgent__namespace = /*#__PURE__*/_interopNamespaceDefault(globalAgent);
|
|
66
66
|
|
|
67
|
+
// import { cleanComponentJoinTable } from './services/document-service/utils/clean-component-join-table';
|
|
67
68
|
class Strapi extends container.Container {
|
|
68
69
|
get admin() {
|
|
69
70
|
return this.get('admin');
|
|
@@ -127,6 +128,9 @@ class Strapi extends container.Container {
|
|
|
127
128
|
get telemetry() {
|
|
128
129
|
return this.get('telemetry');
|
|
129
130
|
}
|
|
131
|
+
get sessionManager() {
|
|
132
|
+
return this.get('sessionManager');
|
|
133
|
+
}
|
|
130
134
|
get store() {
|
|
131
135
|
return this.get('coreStore');
|
|
132
136
|
}
|
|
@@ -352,13 +356,27 @@ class Strapi extends container.Container {
|
|
|
352
356
|
oldContentTypes,
|
|
353
357
|
contentTypes: this.contentTypes
|
|
354
358
|
});
|
|
359
|
+
// NOTE: commenting out repair logic for now as it is causing relationship loss in some cases
|
|
360
|
+
// will revisit soon in the future PR
|
|
355
361
|
const status = await this.db.schema.sync();
|
|
356
|
-
// if schemas have changed, run repairs
|
|
362
|
+
// // if schemas have changed, run repairs
|
|
357
363
|
if (status === 'CHANGED') {
|
|
358
364
|
await this.db.repair.removeOrphanMorphType({
|
|
359
365
|
pivot: 'component_type'
|
|
360
366
|
});
|
|
361
367
|
}
|
|
368
|
+
// const alreadyRanComponentRepair = await this.store.get({
|
|
369
|
+
// type: 'strapi',
|
|
370
|
+
// key: 'unidirectional-join-table-repair-ran',
|
|
371
|
+
// });
|
|
372
|
+
// if (!alreadyRanComponentRepair) {
|
|
373
|
+
// await this.db.repair.processUnidirectionalJoinTables(cleanComponentJoinTable);
|
|
374
|
+
// await this.store.set({
|
|
375
|
+
// type: 'strapi',
|
|
376
|
+
// key: 'unidirectional-join-table-repair-ran',
|
|
377
|
+
// value: true,
|
|
378
|
+
// });
|
|
379
|
+
// }
|
|
362
380
|
if (this.EE) {
|
|
363
381
|
await index.checkLicense({
|
|
364
382
|
strapi: this
|
package/dist/Strapi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Strapi.js","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 getNumberOfConditionalFields from './services/utils/conditional-fields';\nimport { FeaturesService, createFeaturesService } from './services/features';\nimport { createDocumentService } from './services/document-service';\nimport { createContentSourceMapsService } from './services/content-source-maps';\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 .add('content-source-maps', () => createContentSourceMapsService(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 numberOfConditionalFields: getNumberOfConditionalFields(),\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","createContentSourceMapsService","sendStartupTelemetry","send","groupProperties","database","Object","keys","numberOfAllContentTypes","size","numberOfComponents","numberOfDynamicZones","getNumberOfDynamicZones","numberOfConditionalFields","getNumberOfConditionalFields","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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"}
|
|
1
|
+
{"version":3,"file":"Strapi.js","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 getNumberOfConditionalFields from './services/utils/conditional-fields';\nimport { FeaturesService, createFeaturesService } from './services/features';\nimport { createDocumentService } from './services/document-service';\nimport { createContentSourceMapsService } from './services/content-source-maps';\n\nimport { coreStoreModel } from './services/core-store';\nimport { createConfigProvider } from './services/config';\n\n// import { cleanComponentJoinTable } from './services/document-service/utils/clean-component-join-table';\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 sessionManager(): Modules.SessionManager.SessionManagerService {\n return this.get('sessionManager');\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 .add('content-source-maps', () => createContentSourceMapsService(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 numberOfConditionalFields: getNumberOfConditionalFields(),\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 // NOTE: commenting out repair logic for now as it is causing relationship loss in some cases\n // will revisit soon in the future PR\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 // const alreadyRanComponentRepair = await this.store.get({\n // type: 'strapi',\n // key: 'unidirectional-join-table-repair-ran',\n // });\n\n // if (!alreadyRanComponentRepair) {\n // await this.db.repair.processUnidirectionalJoinTables(cleanComponentJoinTable);\n // await this.store.set({\n // type: 'strapi',\n // key: 'unidirectional-join-table-repair-ran',\n // value: true,\n // });\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","sessionManager","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","createContentSourceMapsService","sendStartupTelemetry","send","groupProperties","database","Object","keys","numberOfAllContentTypes","size","numberOfComponents","numberOfDynamicZones","getNumberOfDynamicZones","numberOfConditionalFields","getNumberOfConditionalFields","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/Strapi.mjs
CHANGED
|
@@ -43,6 +43,7 @@ import { createContentSourceMapsService } from './services/content-source-maps.m
|
|
|
43
43
|
import { coreStoreModel } from './services/core-store.mjs';
|
|
44
44
|
import { createConfigProvider } from './services/config.mjs';
|
|
45
45
|
|
|
46
|
+
// import { cleanComponentJoinTable } from './services/document-service/utils/clean-component-join-table';
|
|
46
47
|
class Strapi extends Container {
|
|
47
48
|
get admin() {
|
|
48
49
|
return this.get('admin');
|
|
@@ -106,6 +107,9 @@ class Strapi extends Container {
|
|
|
106
107
|
get telemetry() {
|
|
107
108
|
return this.get('telemetry');
|
|
108
109
|
}
|
|
110
|
+
get sessionManager() {
|
|
111
|
+
return this.get('sessionManager');
|
|
112
|
+
}
|
|
109
113
|
get store() {
|
|
110
114
|
return this.get('coreStore');
|
|
111
115
|
}
|
|
@@ -331,13 +335,27 @@ class Strapi extends Container {
|
|
|
331
335
|
oldContentTypes,
|
|
332
336
|
contentTypes: this.contentTypes
|
|
333
337
|
});
|
|
338
|
+
// NOTE: commenting out repair logic for now as it is causing relationship loss in some cases
|
|
339
|
+
// will revisit soon in the future PR
|
|
334
340
|
const status = await this.db.schema.sync();
|
|
335
|
-
// if schemas have changed, run repairs
|
|
341
|
+
// // if schemas have changed, run repairs
|
|
336
342
|
if (status === 'CHANGED') {
|
|
337
343
|
await this.db.repair.removeOrphanMorphType({
|
|
338
344
|
pivot: 'component_type'
|
|
339
345
|
});
|
|
340
346
|
}
|
|
347
|
+
// const alreadyRanComponentRepair = await this.store.get({
|
|
348
|
+
// type: 'strapi',
|
|
349
|
+
// key: 'unidirectional-join-table-repair-ran',
|
|
350
|
+
// });
|
|
351
|
+
// if (!alreadyRanComponentRepair) {
|
|
352
|
+
// await this.db.repair.processUnidirectionalJoinTables(cleanComponentJoinTable);
|
|
353
|
+
// await this.store.set({
|
|
354
|
+
// type: 'strapi',
|
|
355
|
+
// key: 'unidirectional-join-table-repair-ran',
|
|
356
|
+
// value: true,
|
|
357
|
+
// });
|
|
358
|
+
// }
|
|
341
359
|
if (this.EE) {
|
|
342
360
|
await index.checkLicense({
|
|
343
361
|
strapi: this
|
package/dist/Strapi.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 getNumberOfConditionalFields from './services/utils/conditional-fields';\nimport { FeaturesService, createFeaturesService } from './services/features';\nimport { createDocumentService } from './services/document-service';\nimport { createContentSourceMapsService } from './services/content-source-maps';\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 .add('content-source-maps', () => createContentSourceMapsService(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 numberOfConditionalFields: getNumberOfConditionalFields(),\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","createContentSourceMapsService","sendStartupTelemetry","send","groupProperties","database","Object","keys","numberOfAllContentTypes","size","numberOfComponents","numberOfDynamicZones","getNumberOfDynamicZones","numberOfConditionalFields","getNumberOfConditionalFields","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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"}
|
|
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 getNumberOfConditionalFields from './services/utils/conditional-fields';\nimport { FeaturesService, createFeaturesService } from './services/features';\nimport { createDocumentService } from './services/document-service';\nimport { createContentSourceMapsService } from './services/content-source-maps';\n\nimport { coreStoreModel } from './services/core-store';\nimport { createConfigProvider } from './services/config';\n\n// import { cleanComponentJoinTable } from './services/document-service/utils/clean-component-join-table';\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 sessionManager(): Modules.SessionManager.SessionManagerService {\n return this.get('sessionManager');\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 .add('content-source-maps', () => createContentSourceMapsService(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 numberOfConditionalFields: getNumberOfConditionalFields(),\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 // NOTE: commenting out repair logic for now as it is causing relationship loss in some cases\n // will revisit soon in the future PR\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 // const alreadyRanComponentRepair = await this.store.get({\n // type: 'strapi',\n // key: 'unidirectional-join-table-repair-ran',\n // });\n\n // if (!alreadyRanComponentRepair) {\n // await this.db.repair.processUnidirectionalJoinTables(cleanComponentJoinTable);\n // await this.store.set({\n // type: 'strapi',\n // key: 'unidirectional-join-table-repair-ran',\n // value: true,\n // });\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","sessionManager","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","createContentSourceMapsService","sendStartupTelemetry","send","groupProperties","database","Object","keys","numberOfAllContentTypes","size","numberOfComponents","numberOfDynamicZones","getNumberOfDynamicZones","numberOfConditionalFields","getNumberOfConditionalFields","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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,eAAO,MAAM,iBAAiB,EAAE,SAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["import type { Algorithm } from 'jsonwebtoken';\n\nexport const DEFAULT_ALGORITHM: Algorithm = 'HS256';\n"],"names":["DEFAULT_ALGORITHM"],"mappings":";;AAEO,MAAMA,oBAA+B;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../src/constants.ts"],"sourcesContent":["import type { Algorithm } from 'jsonwebtoken';\n\nexport const DEFAULT_ALGORITHM: Algorithm = 'HS256';\n"],"names":["DEFAULT_ALGORITHM"],"mappings":"AAEO,MAAMA,oBAA+B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../../../../src/core-api/routes/validation/mappers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../../../../src/core-api/routes/validation/mappers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAgB5B;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,eACrB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,SAAS,CAAC,YAAY,CAAC,EAAE,mCASvE,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,2BAA2B,eAC1B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,SAAS,CAAC,YAAY,CAAC,EAAE,mCASvE,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,oBAAoB,cAAe,OAAO,SAAS,CAAC,YAAY,KAAG,EAAE,UAiEjF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,yBAAyB,cACzB,OAAO,SAAS,CAAC,YAAY,KACvC,EAAE,UAiEJ,CAAC"}
|
|
@@ -22,6 +22,9 @@ function _interopNamespaceDefault(e) {
|
|
|
22
22
|
|
|
23
23
|
var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
24
24
|
|
|
25
|
+
const isCustomFieldAttribute = (attribute)=>{
|
|
26
|
+
return !!attribute && typeof attribute === 'object' && attribute.type === 'customField' && typeof attribute.customField === 'string';
|
|
27
|
+
};
|
|
25
28
|
/**
|
|
26
29
|
* Creates a Zod schema for a collection of Strapi attributes.
|
|
27
30
|
*
|
|
@@ -136,6 +139,22 @@ var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
|
136
139
|
return attributes.uidToSchema(attribute);
|
|
137
140
|
default:
|
|
138
141
|
{
|
|
142
|
+
if (isCustomFieldAttribute(attribute)) {
|
|
143
|
+
const attrCF = attribute;
|
|
144
|
+
const strapiInstance = global.strapi;
|
|
145
|
+
if (!strapiInstance) {
|
|
146
|
+
throw new Error('Strapi instance not available for custom field conversion');
|
|
147
|
+
}
|
|
148
|
+
const customField = strapiInstance.get('custom-fields').get(attrCF.customField);
|
|
149
|
+
if (!customField) {
|
|
150
|
+
throw new Error(`Custom field '${attrCF.customField}' not found`);
|
|
151
|
+
}
|
|
152
|
+
// Re-dispatch with the resolved underlying Strapi kind
|
|
153
|
+
return mapAttributeToSchema({
|
|
154
|
+
...attrCF,
|
|
155
|
+
type: customField.type
|
|
156
|
+
});
|
|
157
|
+
}
|
|
139
158
|
const { type } = attribute;
|
|
140
159
|
throw new Error(`Unsupported attribute type: ${type}`);
|
|
141
160
|
}
|
|
@@ -225,6 +244,22 @@ var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
|
225
244
|
return attributes.uidToInputSchema(attribute);
|
|
226
245
|
default:
|
|
227
246
|
{
|
|
247
|
+
if (isCustomFieldAttribute(attribute)) {
|
|
248
|
+
const attrCF = attribute;
|
|
249
|
+
const strapiInstance = global.strapi;
|
|
250
|
+
if (!strapiInstance) {
|
|
251
|
+
throw new Error('Strapi instance not available for custom field conversion');
|
|
252
|
+
}
|
|
253
|
+
const customField = strapiInstance.get('custom-fields').get(attrCF.customField);
|
|
254
|
+
if (!customField) {
|
|
255
|
+
throw new Error(`Custom field '${attrCF.customField}' not found`);
|
|
256
|
+
}
|
|
257
|
+
// Re-dispatch with the resolved underlying Strapi kind
|
|
258
|
+
return mapAttributeToInputSchema({
|
|
259
|
+
...attrCF,
|
|
260
|
+
type: customField.type
|
|
261
|
+
});
|
|
262
|
+
}
|
|
228
263
|
const { type } = attribute;
|
|
229
264
|
throw new Error(`Unsupported attribute type: ${type}`);
|
|
230
265
|
}
|