@strapi/core 5.33.4 → 5.35.0

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.
@@ -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
@@ -364,6 +364,9 @@ class Strapi extends container.Container {
364
364
  await this.db.repair.removeOrphanMorphType({
365
365
  pivot: 'component_type'
366
366
  });
367
+ await this.db.repair.removeOrphanMorphType({
368
+ pivot: 'related_type'
369
+ });
367
370
  }
368
371
  const alreadyRanComponentRepair = await this.store.get({
369
372
  type: 'strapi',
@@ -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\nimport { 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","alreadyRanComponentRepair","processUnidirectionalJoinTables","cleanComponentJoinTable","set","value","checkLicense","initMiddlewares","initRouting","permissions","registerActions","BOOTSTRAP","globalProxy","httpProxy","httpsProxy","globalAgent","global","GLOBAL_AGENT","HTTP_PROXY","HTTPS_PROXY","DESTROY","removeAllListeners","lifecycleName","userLifecycleFunction","isFunction","getModel","query","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\nimport { 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 await this.db.repair.removeOrphanMorphType({ pivot: 'related_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","alreadyRanComponentRepair","processUnidirectionalJoinTables","cleanComponentJoinTable","set","value","checkLicense","initMiddlewares","initRouting","permissions","registerActions","BOOTSTRAP","globalProxy","httpProxy","httpsProxy","globalAgent","global","GLOBAL_AGENT","HTTP_PROXY","HTTPS_PROXY","DESTROY","removeAllListeners","lifecycleName","userLifecycleFunction","isFunction","getModel","query","opts","loadConfiguration"],"mappings":"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"}
package/dist/Strapi.mjs CHANGED
@@ -343,6 +343,9 @@ class Strapi extends Container {
343
343
  await this.db.repair.removeOrphanMorphType({
344
344
  pivot: 'component_type'
345
345
  });
346
+ await this.db.repair.removeOrphanMorphType({
347
+ pivot: 'related_type'
348
+ });
346
349
  }
347
350
  const alreadyRanComponentRepair = await this.store.get({
348
351
  type: 'strapi',
@@ -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\nimport { 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","alreadyRanComponentRepair","processUnidirectionalJoinTables","cleanComponentJoinTable","set","value","checkLicense","initMiddlewares","initRouting","permissions","registerActions","BOOTSTRAP","globalProxy","httpProxy","httpsProxy","globalAgent","global","GLOBAL_AGENT","HTTP_PROXY","HTTPS_PROXY","DESTROY","removeAllListeners","lifecycleName","userLifecycleFunction","isFunction","getModel","query","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\nimport { 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 await this.db.repair.removeOrphanMorphType({ pivot: 'related_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","alreadyRanComponentRepair","processUnidirectionalJoinTables","cleanComponentJoinTable","set","value","checkLicense","initMiddlewares","initRouting","permissions","registerActions","BOOTSTRAP","globalProxy","httpProxy","httpsProxy","globalAgent","global","GLOBAL_AGENT","HTTP_PROXY","HTTPS_PROXY","DESTROY","removeAllListeners","lifecycleName","userLifecycleFunction","isFunction","getModel","query","opts","loadConfiguration"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "@strapi/core";
6
- var version = "5.33.4";
6
+ var version = "5.35.0";
7
7
  var description = "Core of Strapi";
8
8
  var homepage = "https://strapi.io";
9
9
  var bugs = {
@@ -59,14 +59,14 @@ var dependencies = {
59
59
  "@koa/cors": "5.0.0",
60
60
  "@koa/router": "12.0.2",
61
61
  "@paralleldrive/cuid2": "2.2.2",
62
- "@strapi/admin": "5.33.4",
63
- "@strapi/database": "5.33.4",
64
- "@strapi/generators": "5.33.4",
65
- "@strapi/logger": "5.33.4",
66
- "@strapi/permissions": "5.33.4",
67
- "@strapi/types": "5.33.4",
68
- "@strapi/typescript-utils": "5.33.4",
69
- "@strapi/utils": "5.33.4",
62
+ "@strapi/admin": "5.35.0",
63
+ "@strapi/database": "5.35.0",
64
+ "@strapi/generators": "5.35.0",
65
+ "@strapi/logger": "5.35.0",
66
+ "@strapi/permissions": "5.35.0",
67
+ "@strapi/types": "5.35.0",
68
+ "@strapi/typescript-utils": "5.35.0",
69
+ "@strapi/utils": "5.35.0",
70
70
  "@vercel/stega": "0.1.2",
71
71
  bcryptjs: "2.4.3",
72
72
  boxen: "5.1.2",
@@ -134,9 +134,9 @@ var devDependencies = {
134
134
  "@types/node": "24.10.0",
135
135
  "@types/node-schedule": "2.1.7",
136
136
  "@types/statuses": "2.0.1",
137
- "eslint-config-custom": "5.33.4",
137
+ "eslint-config-custom": "5.35.0",
138
138
  supertest: "6.3.3",
139
- tsconfig: "5.33.4"
139
+ tsconfig: "5.35.0"
140
140
  };
141
141
  var engines = {
142
142
  node: ">=20.0.0 <=24.x.x",
@@ -1,5 +1,5 @@
1
1
  var name = "@strapi/core";
2
- var version = "5.33.4";
2
+ var version = "5.35.0";
3
3
  var description = "Core of Strapi";
4
4
  var homepage = "https://strapi.io";
5
5
  var bugs = {
@@ -55,14 +55,14 @@ var dependencies = {
55
55
  "@koa/cors": "5.0.0",
56
56
  "@koa/router": "12.0.2",
57
57
  "@paralleldrive/cuid2": "2.2.2",
58
- "@strapi/admin": "5.33.4",
59
- "@strapi/database": "5.33.4",
60
- "@strapi/generators": "5.33.4",
61
- "@strapi/logger": "5.33.4",
62
- "@strapi/permissions": "5.33.4",
63
- "@strapi/types": "5.33.4",
64
- "@strapi/typescript-utils": "5.33.4",
65
- "@strapi/utils": "5.33.4",
58
+ "@strapi/admin": "5.35.0",
59
+ "@strapi/database": "5.35.0",
60
+ "@strapi/generators": "5.35.0",
61
+ "@strapi/logger": "5.35.0",
62
+ "@strapi/permissions": "5.35.0",
63
+ "@strapi/types": "5.35.0",
64
+ "@strapi/typescript-utils": "5.35.0",
65
+ "@strapi/utils": "5.35.0",
66
66
  "@vercel/stega": "0.1.2",
67
67
  bcryptjs: "2.4.3",
68
68
  boxen: "5.1.2",
@@ -130,9 +130,9 @@ var devDependencies = {
130
130
  "@types/node": "24.10.0",
131
131
  "@types/node-schedule": "2.1.7",
132
132
  "@types/statuses": "2.0.1",
133
- "eslint-config-custom": "5.33.4",
133
+ "eslint-config-custom": "5.35.0",
134
134
  supertest: "6.3.3",
135
- tsconfig: "5.33.4"
135
+ tsconfig: "5.35.0"
136
136
  };
137
137
  var engines = {
138
138
  node: ">=20.0.0 <=24.x.x",
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/repository.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAuB3E,eAAO,MAAM,2BAA2B,EAAE,uBA4bzC,CAAC"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/repository.ts"],"names":[],"mappings":"AAWA,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAwB3E,eAAO,MAAM,2BAA2B,EAAE,uBAodzC,CAAC"}
@@ -17,6 +17,7 @@ var unidirectionalRelations = require('./utils/unidirectional-relations.js');
17
17
  var bidirectionalRelations = require('./utils/bidirectional-relations.js');
18
18
  var index = require('../entity-validator/index.js');
19
19
  var firstPublishedAt = require('./first-published-at.js');
20
+ var orderedParallel = require('./utils/ordered-parallel.js');
20
21
 
21
22
  const { validators } = strapiUtils.validate;
22
23
  // we have to typecast to reconcile the differences between validator and database getModel
@@ -47,14 +48,30 @@ const createContentTypeRepository = (uid, validator = index)=>{
47
48
  ]
48
49
  };
49
50
  const validateParams = async (params)=>{
51
+ // Cache model lookups for this request to avoid repeating the same work
52
+ const modelCache = strapiUtils.createModelCache(getModel);
50
53
  const ctx = {
51
54
  schema: contentType,
52
- getModel
55
+ getModel: modelCache.getModel
53
56
  };
54
- await validators.validateFilters(ctx, params.filters, filtersValidations);
55
- await validators.validateSort(ctx, params.sort, sortValidations);
56
- await validators.validateFields(ctx, params.fields, fieldValidations);
57
- await validators.validatePopulate(ctx, params.populate, populateValidations);
57
+ // Only validate what is actually provided
58
+ const validations = [];
59
+ if (params.filters && !fp.isEmpty(params.filters)) {
60
+ validations.push(validators.validateFilters(ctx, params.filters, filtersValidations));
61
+ }
62
+ if (params.sort && !fp.isEmpty(params.sort)) {
63
+ validations.push(validators.validateSort(ctx, params.sort, sortValidations));
64
+ }
65
+ if (params.fields && !fp.isEmpty(params.fields)) {
66
+ validations.push(validators.validateFields(ctx, params.fields, fieldValidations));
67
+ }
68
+ if (params.populate && !fp.isEmpty(params.populate)) {
69
+ validations.push(validators.validatePopulate(ctx, params.populate, populateValidations));
70
+ }
71
+ // Run validations together but keep the same error order as before
72
+ await orderedParallel.runParallelWithOrderedErrors(validations);
73
+ // Clean up cache after validation
74
+ modelCache.clear();
58
75
  // Strip lookup from params, it's only used internally
59
76
  if (params.lookup) {
60
77
  throw new strapiUtils.errors.ValidationError("Invalid params: 'lookup'");
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sources":["../../../src/services/document-service/repository.ts"],"sourcesContent":["import { omit, assoc, merge, curry } from 'lodash/fp';\n\nimport { async, contentTypes as contentTypesUtils, validate, errors } from '@strapi/utils';\n\nimport type { UID } from '@strapi/types';\nimport { wrapInTransaction, type RepositoryFactoryMethod } from './common';\nimport * as DP from './draft-and-publish';\nimport * as i18n from './internationalization';\nimport { copyNonLocalizedFields } from './internationalization';\nimport * as components from './components';\n\nimport { createEntriesService } from './entries';\nimport { pickSelectionParams } from './params';\nimport { createDocumentId } from '../../utils/transform-content-types-to-models';\nimport { getDeepPopulate } from './utils/populate';\nimport { transformParamsToQuery } from './transform/query';\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { createEventManager } from './events';\nimport * as unidirectionalRelations from './utils/unidirectional-relations';\nimport * as bidirectionalRelations from './utils/bidirectional-relations';\nimport entityValidator from '../entity-validator';\nimport { addFirstPublishedAtToDraft, filterDataFirstPublishedAt } from './first-published-at';\n\nconst { validators } = validate;\n\n// we have to typecast to reconcile the differences between validator and database getModel\nconst getModel = ((schema: UID.Schema) => strapi.getModel(schema)) as (schema: string) => any;\n\nexport const createContentTypeRepository: RepositoryFactoryMethod = (\n uid,\n validator = entityValidator\n) => {\n const contentType = strapi.contentType(uid);\n const hasDraftAndPublish = contentTypesUtils.hasDraftAndPublish(contentType);\n\n // Define the validations that should be performed\n const sortValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const fieldValidations = ['scalarAttributes'];\n const filtersValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const populateValidations = {\n sort: sortValidations,\n field: fieldValidations,\n filters: filtersValidations,\n populate: ['nonAttributesOperators'],\n };\n\n const validateParams = async (params: any) => {\n const ctx = { schema: contentType, getModel };\n await validators.validateFilters(ctx, params.filters, filtersValidations);\n await validators.validateSort(ctx, params.sort, sortValidations);\n await validators.validateFields(ctx, params.fields, fieldValidations);\n await validators.validatePopulate(ctx, params.populate, populateValidations);\n\n // Strip lookup from params, it's only used internally\n if (params.lookup) {\n throw new errors.ValidationError(\"Invalid params: 'lookup'\");\n }\n\n // TODO: add validate status, locale, pagination\n\n return params;\n };\n\n const entries = createEntriesService(uid, validator);\n\n const eventManager = createEventManager(strapi, uid);\n const emitEvent = curry(eventManager.emitEvent);\n\n async function findMany(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params || {});\n\n return strapi.db.query(uid).findMany(query);\n }\n\n async function findFirst(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n // TODO: do we really want to add filters on the findOne now that we have findFirst ?\n async function findOne(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n async function deleteDocument(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n omit('status'),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n if (params.status === 'draft') {\n throw new Error('Cannot delete a draft document');\n }\n\n const entriesToDelete = await strapi.db.query(uid).findMany(query);\n\n // Delete all matched entries and its components\n const deletedEntries = await async.map(entriesToDelete, (entryToDelete: any) =>\n entries.delete(entryToDelete.id)\n );\n\n entriesToDelete.forEach(emitEvent('entry.delete'));\n\n return { documentId, entries: deletedEntries };\n }\n\n async function create(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToData(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const doc = await entries.create(queryParams);\n\n emitEvent('entry.create', doc);\n\n if (hasDraftAndPublish && params.status === 'published') {\n return publish({\n ...params,\n documentId: doc.documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return doc;\n }\n\n async function clone(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n // Get deep populate\n const entriesToClone = await strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n // DP Enabled: Clone drafts\n // DP Disabled: Clone only the existing version (published)\n publishedAt: { $null: hasDraftAndPublish },\n },\n populate: getDeepPopulate(uid, { relationalFields: ['id'] }),\n });\n\n const clonedEntries = await async.map(\n entriesToClone,\n async.pipe(\n validateParams,\n omit(['id', 'createdAt', 'updatedAt']),\n // assign new documentId\n assoc('documentId', createDocumentId()),\n // Merge new data into it\n (data) => merge(data, queryParams.data),\n (data) => entries.create({ ...queryParams, data, status: 'draft' })\n )\n );\n\n clonedEntries.forEach(emitEvent('entry.create'));\n\n return { documentId: clonedEntries.at(0)?.documentId, entries: clonedEntries };\n }\n\n async function update(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n filterDataFirstPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToLookup(contentType),\n DP.statusToData(contentType),\n // Default locale will be set if not provided\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const { data, ...restParams } = await transformParamsDocumentId(uid, queryParams || {});\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams || {}) as any);\n\n // Validation\n // Find if document exists\n const entryToUpdate = await strapi.db\n .query(uid)\n .findOne({ ...query, where: { ...queryParams?.lookup, ...query?.where, documentId } });\n\n let updatedDraft = null;\n if (entryToUpdate) {\n updatedDraft = await entries.update(entryToUpdate, queryParams);\n emitEvent('entry.update', updatedDraft);\n }\n\n if (!updatedDraft) {\n const documentExists = await strapi.db\n .query(contentType.uid)\n .findOne({ where: { documentId } });\n\n if (documentExists) {\n const mergedData = await copyNonLocalizedFields(contentType, documentId, {\n ...queryParams.data,\n documentId,\n });\n\n updatedDraft = await entries.create({\n ...queryParams,\n data: mergedData,\n });\n emitEvent('entry.create', updatedDraft);\n }\n }\n\n if (hasDraftAndPublish && updatedDraft && params.status === 'published') {\n return publish({\n ...params,\n documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return updatedDraft;\n }\n\n async function count(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultStatus(contentType),\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).count(query);\n }\n\n async function publish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [draftsToPublish, oldPublishedVersions] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null, // Ignore lookup\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targetting the old published entries\n const relationsToSync = await unidirectionalRelations.load(\n uid,\n {\n newVersions: draftsToPublish,\n oldVersions: oldPublishedVersions,\n },\n {\n shouldPropagateRelation: components.createComponentRelationFilter(),\n }\n );\n\n const bidirectionalRelationsToSync = await bidirectionalRelations.load(uid, {\n newVersions: draftsToPublish,\n oldVersions: oldPublishedVersions,\n });\n\n // Delete old published versions\n await async.map(oldPublishedVersions, (entry: any) => entries.delete(entry.id));\n\n // Add firstPublishedAt to draft if it doesn't exist\n const updatedDraft = await async.map(draftsToPublish, (draft: any) =>\n addFirstPublishedAtToDraft(draft, entries.update, contentType)\n );\n\n // Transform draft entry data and create published versions\n const publishedEntries = await async.map(updatedDraft, (draft: any) =>\n entries.publish(draft, queryParams)\n );\n\n // Sync unidirectional relations with the new published entries\n await unidirectionalRelations.sync(\n [...oldPublishedVersions, ...updatedDraft],\n publishedEntries,\n relationsToSync\n );\n\n await bidirectionalRelations.sync(\n [...oldPublishedVersions, ...updatedDraft],\n publishedEntries,\n bidirectionalRelationsToSync\n );\n\n publishedEntries.forEach(emitEvent('entry.publish'));\n\n return { documentId, entries: publishedEntries };\n }\n\n async function unpublish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId, publishedAt: { $ne: null } }, query)\n )(params);\n\n // Delete all published versions\n const versionsToDelete = await strapi.db.query(uid).findMany(query);\n await async.map(versionsToDelete, (entry: any) => entries.delete(entry.id));\n\n versionsToDelete.forEach(emitEvent('entry.unpublish'));\n return { documentId, entries: versionsToDelete };\n }\n\n async function discardDraft(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [versionsToDraft, oldDrafts] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null,\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targeting the old drafts\n const relationsToSync = await unidirectionalRelations.load(\n uid,\n {\n newVersions: versionsToDraft,\n oldVersions: oldDrafts,\n },\n {\n shouldPropagateRelation: components.createComponentRelationFilter(),\n }\n );\n\n const bidirectionalRelationsToSync = await bidirectionalRelations.load(uid, {\n newVersions: versionsToDraft,\n oldVersions: oldDrafts,\n });\n\n // Delete old drafts\n await async.map(oldDrafts, (entry: any) => entries.delete(entry.id));\n\n // Transform published entry data and create draft versions\n const draftEntries = await async.map(versionsToDraft, (entry: any) =>\n entries.discardDraft(entry, queryParams)\n );\n\n // Sync unidirectional relations with the new draft entries\n await unidirectionalRelations.sync(\n [...oldDrafts, ...versionsToDraft],\n draftEntries,\n relationsToSync\n );\n\n await bidirectionalRelations.sync(\n [...oldDrafts, ...versionsToDraft],\n draftEntries,\n bidirectionalRelationsToSync\n );\n\n draftEntries.forEach(emitEvent('entry.draft-discard'));\n return { documentId, entries: draftEntries };\n }\n\n async function updateComponents(entry: any, data: any) {\n return components.updateComponents(uid, entry, data);\n }\n\n function omitComponentData(data: any) {\n return components.omitComponentData(contentType, data);\n }\n\n return {\n findMany: wrapInTransaction(findMany),\n findFirst: wrapInTransaction(findFirst),\n findOne: wrapInTransaction(findOne),\n delete: wrapInTransaction(deleteDocument),\n create: wrapInTransaction(create),\n clone: wrapInTransaction(clone),\n update: wrapInTransaction(update),\n count: wrapInTransaction(count),\n publish: hasDraftAndPublish ? wrapInTransaction(publish) : (undefined as any),\n unpublish: hasDraftAndPublish ? wrapInTransaction(unpublish) : (undefined as any),\n discardDraft: hasDraftAndPublish ? wrapInTransaction(discardDraft) : (undefined as any),\n\n updateComponents,\n omitComponentData,\n };\n};\n"],"names":["validators","validate","getModel","schema","strapi","createContentTypeRepository","uid","validator","entityValidator","contentType","hasDraftAndPublish","contentTypesUtils","sortValidations","fieldValidations","filtersValidations","populateValidations","sort","field","filters","populate","validateParams","params","ctx","validateFilters","validateSort","validateFields","fields","validatePopulate","lookup","errors","ValidationError","entries","createEntriesService","eventManager","createEventManager","emitEvent","curry","findMany","query","async","pipe","DP","i18n","transformParamsDocumentId","transformParamsToQuery","db","findFirst","findOne","opts","documentId","assoc","where","deleteDocument","omit","status","Error","entriesToDelete","deletedEntries","map","entryToDelete","delete","id","forEach","create","queryParams","doc","publish","then","clone","entriesToClone","publishedAt","$null","getDeepPopulate","relationalFields","clonedEntries","createDocumentId","data","merge","at","update","filterDataFirstPublishedAt","restParams","pickSelectionParams","entryToUpdate","updatedDraft","documentExists","mergedData","copyNonLocalizedFields","count","draftsToPublish","oldPublishedVersions","Promise","all","$ne","select","relationsToSync","unidirectionalRelations","newVersions","oldVersions","shouldPropagateRelation","components","bidirectionalRelationsToSync","bidirectionalRelations","entry","draft","addFirstPublishedAtToDraft","publishedEntries","unpublish","versionsToDelete","discardDraft","versionsToDraft","oldDrafts","draftEntries","updateComponents","omitComponentData","wrapInTransaction","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sources":["../../../src/services/document-service/repository.ts"],"sourcesContent":["import { omit, assoc, merge, curry, isEmpty } from 'lodash/fp';\n\nimport {\n async,\n contentTypes as contentTypesUtils,\n validate,\n errors,\n createModelCache,\n} from '@strapi/utils';\n\nimport type { UID } from '@strapi/types';\nimport { wrapInTransaction, type RepositoryFactoryMethod } from './common';\nimport * as DP from './draft-and-publish';\nimport * as i18n from './internationalization';\nimport { copyNonLocalizedFields } from './internationalization';\nimport * as components from './components';\n\nimport { createEntriesService } from './entries';\nimport { pickSelectionParams } from './params';\nimport { createDocumentId } from '../../utils/transform-content-types-to-models';\nimport { getDeepPopulate } from './utils/populate';\nimport { transformParamsToQuery } from './transform/query';\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { createEventManager } from './events';\nimport * as unidirectionalRelations from './utils/unidirectional-relations';\nimport * as bidirectionalRelations from './utils/bidirectional-relations';\nimport entityValidator from '../entity-validator';\nimport { addFirstPublishedAtToDraft, filterDataFirstPublishedAt } from './first-published-at';\nimport { runParallelWithOrderedErrors } from './utils/ordered-parallel';\n\nconst { validators } = validate;\n\n// we have to typecast to reconcile the differences between validator and database getModel\nconst getModel = ((schema: UID.Schema) => strapi.getModel(schema)) as (schema: string) => any;\n\nexport const createContentTypeRepository: RepositoryFactoryMethod = (\n uid,\n validator = entityValidator\n) => {\n const contentType = strapi.contentType(uid);\n const hasDraftAndPublish = contentTypesUtils.hasDraftAndPublish(contentType);\n\n // Define the validations that should be performed\n const sortValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const fieldValidations = ['scalarAttributes'];\n const filtersValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const populateValidations = {\n sort: sortValidations,\n field: fieldValidations,\n filters: filtersValidations,\n populate: ['nonAttributesOperators'],\n };\n\n const validateParams = async (params: any) => {\n // Cache model lookups for this request to avoid repeating the same work\n const modelCache = createModelCache(getModel);\n\n const ctx = { schema: contentType, getModel: modelCache.getModel };\n\n // Only validate what is actually provided\n const validations: Promise<unknown>[] = [];\n\n if (params.filters && !isEmpty(params.filters)) {\n validations.push(validators.validateFilters(ctx, params.filters, filtersValidations));\n }\n\n if (params.sort && !isEmpty(params.sort)) {\n validations.push(validators.validateSort(ctx, params.sort, sortValidations));\n }\n\n if (params.fields && !isEmpty(params.fields)) {\n validations.push(validators.validateFields(ctx, params.fields, fieldValidations));\n }\n\n if (params.populate && !isEmpty(params.populate)) {\n validations.push(validators.validatePopulate(ctx, params.populate, populateValidations));\n }\n\n // Run validations together but keep the same error order as before\n await runParallelWithOrderedErrors(validations);\n\n // Clean up cache after validation\n modelCache.clear();\n\n // Strip lookup from params, it's only used internally\n if (params.lookup) {\n throw new errors.ValidationError(\"Invalid params: 'lookup'\");\n }\n\n // TODO: add validate status, locale, pagination\n\n return params;\n };\n\n const entries = createEntriesService(uid, validator);\n\n const eventManager = createEventManager(strapi, uid);\n const emitEvent = curry(eventManager.emitEvent);\n\n async function findMany(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params || {});\n\n return strapi.db.query(uid).findMany(query);\n }\n\n async function findFirst(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n // TODO: do we really want to add filters on the findOne now that we have findFirst ?\n async function findOne(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n async function deleteDocument(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n omit('status'),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n if (params.status === 'draft') {\n throw new Error('Cannot delete a draft document');\n }\n\n const entriesToDelete = await strapi.db.query(uid).findMany(query);\n\n // Delete all matched entries and its components\n const deletedEntries = await async.map(entriesToDelete, (entryToDelete: any) =>\n entries.delete(entryToDelete.id)\n );\n\n entriesToDelete.forEach(emitEvent('entry.delete'));\n\n return { documentId, entries: deletedEntries };\n }\n\n async function create(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToData(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const doc = await entries.create(queryParams);\n\n emitEvent('entry.create', doc);\n\n if (hasDraftAndPublish && params.status === 'published') {\n return publish({\n ...params,\n documentId: doc.documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return doc;\n }\n\n async function clone(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n // Get deep populate\n const entriesToClone = await strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n // DP Enabled: Clone drafts\n // DP Disabled: Clone only the existing version (published)\n publishedAt: { $null: hasDraftAndPublish },\n },\n populate: getDeepPopulate(uid, { relationalFields: ['id'] }),\n });\n\n const clonedEntries = await async.map(\n entriesToClone,\n async.pipe(\n validateParams,\n omit(['id', 'createdAt', 'updatedAt']),\n // assign new documentId\n assoc('documentId', createDocumentId()),\n // Merge new data into it\n (data) => merge(data, queryParams.data),\n (data) => entries.create({ ...queryParams, data, status: 'draft' })\n )\n );\n\n clonedEntries.forEach(emitEvent('entry.create'));\n\n return { documentId: clonedEntries.at(0)?.documentId, entries: clonedEntries };\n }\n\n async function update(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n filterDataFirstPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToLookup(contentType),\n DP.statusToData(contentType),\n // Default locale will be set if not provided\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const { data, ...restParams } = await transformParamsDocumentId(uid, queryParams || {});\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams || {}) as any);\n\n // Validation\n // Find if document exists\n const entryToUpdate = await strapi.db\n .query(uid)\n .findOne({ ...query, where: { ...queryParams?.lookup, ...query?.where, documentId } });\n\n let updatedDraft = null;\n if (entryToUpdate) {\n updatedDraft = await entries.update(entryToUpdate, queryParams);\n emitEvent('entry.update', updatedDraft);\n }\n\n if (!updatedDraft) {\n const documentExists = await strapi.db\n .query(contentType.uid)\n .findOne({ where: { documentId } });\n\n if (documentExists) {\n const mergedData = await copyNonLocalizedFields(contentType, documentId, {\n ...queryParams.data,\n documentId,\n });\n\n updatedDraft = await entries.create({\n ...queryParams,\n data: mergedData,\n });\n emitEvent('entry.create', updatedDraft);\n }\n }\n\n if (hasDraftAndPublish && updatedDraft && params.status === 'published') {\n return publish({\n ...params,\n documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return updatedDraft;\n }\n\n async function count(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultStatus(contentType),\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).count(query);\n }\n\n async function publish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [draftsToPublish, oldPublishedVersions] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null, // Ignore lookup\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targetting the old published entries\n const relationsToSync = await unidirectionalRelations.load(\n uid,\n {\n newVersions: draftsToPublish,\n oldVersions: oldPublishedVersions,\n },\n {\n shouldPropagateRelation: components.createComponentRelationFilter(),\n }\n );\n\n const bidirectionalRelationsToSync = await bidirectionalRelations.load(uid, {\n newVersions: draftsToPublish,\n oldVersions: oldPublishedVersions,\n });\n\n // Delete old published versions\n await async.map(oldPublishedVersions, (entry: any) => entries.delete(entry.id));\n\n // Add firstPublishedAt to draft if it doesn't exist\n const updatedDraft = await async.map(draftsToPublish, (draft: any) =>\n addFirstPublishedAtToDraft(draft, entries.update, contentType)\n );\n\n // Transform draft entry data and create published versions\n const publishedEntries = await async.map(updatedDraft, (draft: any) =>\n entries.publish(draft, queryParams)\n );\n\n // Sync unidirectional relations with the new published entries\n await unidirectionalRelations.sync(\n [...oldPublishedVersions, ...updatedDraft],\n publishedEntries,\n relationsToSync\n );\n\n await bidirectionalRelations.sync(\n [...oldPublishedVersions, ...updatedDraft],\n publishedEntries,\n bidirectionalRelationsToSync\n );\n\n publishedEntries.forEach(emitEvent('entry.publish'));\n\n return { documentId, entries: publishedEntries };\n }\n\n async function unpublish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId, publishedAt: { $ne: null } }, query)\n )(params);\n\n // Delete all published versions\n const versionsToDelete = await strapi.db.query(uid).findMany(query);\n await async.map(versionsToDelete, (entry: any) => entries.delete(entry.id));\n\n versionsToDelete.forEach(emitEvent('entry.unpublish'));\n return { documentId, entries: versionsToDelete };\n }\n\n async function discardDraft(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [versionsToDraft, oldDrafts] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null,\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targeting the old drafts\n const relationsToSync = await unidirectionalRelations.load(\n uid,\n {\n newVersions: versionsToDraft,\n oldVersions: oldDrafts,\n },\n {\n shouldPropagateRelation: components.createComponentRelationFilter(),\n }\n );\n\n const bidirectionalRelationsToSync = await bidirectionalRelations.load(uid, {\n newVersions: versionsToDraft,\n oldVersions: oldDrafts,\n });\n\n // Delete old drafts\n await async.map(oldDrafts, (entry: any) => entries.delete(entry.id));\n\n // Transform published entry data and create draft versions\n const draftEntries = await async.map(versionsToDraft, (entry: any) =>\n entries.discardDraft(entry, queryParams)\n );\n\n // Sync unidirectional relations with the new draft entries\n await unidirectionalRelations.sync(\n [...oldDrafts, ...versionsToDraft],\n draftEntries,\n relationsToSync\n );\n\n await bidirectionalRelations.sync(\n [...oldDrafts, ...versionsToDraft],\n draftEntries,\n bidirectionalRelationsToSync\n );\n\n draftEntries.forEach(emitEvent('entry.draft-discard'));\n return { documentId, entries: draftEntries };\n }\n\n async function updateComponents(entry: any, data: any) {\n return components.updateComponents(uid, entry, data);\n }\n\n function omitComponentData(data: any) {\n return components.omitComponentData(contentType, data);\n }\n\n return {\n findMany: wrapInTransaction(findMany),\n findFirst: wrapInTransaction(findFirst),\n findOne: wrapInTransaction(findOne),\n delete: wrapInTransaction(deleteDocument),\n create: wrapInTransaction(create),\n clone: wrapInTransaction(clone),\n update: wrapInTransaction(update),\n count: wrapInTransaction(count),\n publish: hasDraftAndPublish ? wrapInTransaction(publish) : (undefined as any),\n unpublish: hasDraftAndPublish ? wrapInTransaction(unpublish) : (undefined as any),\n discardDraft: hasDraftAndPublish ? wrapInTransaction(discardDraft) : (undefined as any),\n\n updateComponents,\n omitComponentData,\n };\n};\n"],"names":["validators","validate","getModel","schema","strapi","createContentTypeRepository","uid","validator","entityValidator","contentType","hasDraftAndPublish","contentTypesUtils","sortValidations","fieldValidations","filtersValidations","populateValidations","sort","field","filters","populate","validateParams","params","modelCache","createModelCache","ctx","validations","isEmpty","push","validateFilters","validateSort","fields","validateFields","validatePopulate","runParallelWithOrderedErrors","clear","lookup","errors","ValidationError","entries","createEntriesService","eventManager","createEventManager","emitEvent","curry","findMany","query","async","pipe","DP","i18n","transformParamsDocumentId","transformParamsToQuery","db","findFirst","findOne","opts","documentId","assoc","where","deleteDocument","omit","status","Error","entriesToDelete","deletedEntries","map","entryToDelete","delete","id","forEach","create","queryParams","doc","publish","then","clone","entriesToClone","publishedAt","$null","getDeepPopulate","relationalFields","clonedEntries","createDocumentId","data","merge","at","update","filterDataFirstPublishedAt","restParams","pickSelectionParams","entryToUpdate","updatedDraft","documentExists","mergedData","copyNonLocalizedFields","count","draftsToPublish","oldPublishedVersions","Promise","all","$ne","select","relationsToSync","unidirectionalRelations","newVersions","oldVersions","shouldPropagateRelation","components","bidirectionalRelationsToSync","bidirectionalRelations","entry","draft","addFirstPublishedAtToDraft","publishedEntries","unpublish","versionsToDelete","discardDraft","versionsToDraft","oldDrafts","draftEntries","updateComponents","omitComponentData","wrapInTransaction","undefined"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { curry, assoc, omit, merge } from 'lodash/fp';
2
- import { contentTypes, async, errors, validate } from '@strapi/utils';
1
+ import { curry, assoc, omit, merge, isEmpty } from 'lodash/fp';
2
+ import { contentTypes, async, createModelCache, errors, validate } from '@strapi/utils';
3
3
  import { wrapInTransaction } from './common.mjs';
4
4
  import { defaultToDraft as defaultToDraftCurry, statusToLookup as statusToLookupCurry, filterDataPublishedAt as filterDataPublishedAtCurry, setStatusToDraft as setStatusToDraftCurry, statusToData as statusToDataCurry, defaultStatus as defaultStatusCurry } from './draft-and-publish.mjs';
5
5
  import { defaultLocale as defaultLocaleCurry, multiLocaleToLookup as multiLocaleToLookupCurry, localeToLookup as localeToLookupCurry, localeToData as localeToDataCurry, copyNonLocalizedFields } from './internationalization.mjs';
@@ -15,6 +15,7 @@ import { load, sync } from './utils/unidirectional-relations.mjs';
15
15
  import { load as load$1, sync as sync$1 } from './utils/bidirectional-relations.mjs';
16
16
  import entityValidator from '../entity-validator/index.mjs';
17
17
  import { filterDataFirstPublishedAt, addFirstPublishedAtToDraft } from './first-published-at.mjs';
18
+ import { runParallelWithOrderedErrors } from './utils/ordered-parallel.mjs';
18
19
 
19
20
  const { validators } = validate;
20
21
  // we have to typecast to reconcile the differences between validator and database getModel
@@ -45,14 +46,30 @@ const createContentTypeRepository = (uid, validator = entityValidator)=>{
45
46
  ]
46
47
  };
47
48
  const validateParams = async (params)=>{
49
+ // Cache model lookups for this request to avoid repeating the same work
50
+ const modelCache = createModelCache(getModel);
48
51
  const ctx = {
49
52
  schema: contentType,
50
- getModel
53
+ getModel: modelCache.getModel
51
54
  };
52
- await validators.validateFilters(ctx, params.filters, filtersValidations);
53
- await validators.validateSort(ctx, params.sort, sortValidations);
54
- await validators.validateFields(ctx, params.fields, fieldValidations);
55
- await validators.validatePopulate(ctx, params.populate, populateValidations);
55
+ // Only validate what is actually provided
56
+ const validations = [];
57
+ if (params.filters && !isEmpty(params.filters)) {
58
+ validations.push(validators.validateFilters(ctx, params.filters, filtersValidations));
59
+ }
60
+ if (params.sort && !isEmpty(params.sort)) {
61
+ validations.push(validators.validateSort(ctx, params.sort, sortValidations));
62
+ }
63
+ if (params.fields && !isEmpty(params.fields)) {
64
+ validations.push(validators.validateFields(ctx, params.fields, fieldValidations));
65
+ }
66
+ if (params.populate && !isEmpty(params.populate)) {
67
+ validations.push(validators.validatePopulate(ctx, params.populate, populateValidations));
68
+ }
69
+ // Run validations together but keep the same error order as before
70
+ await runParallelWithOrderedErrors(validations);
71
+ // Clean up cache after validation
72
+ modelCache.clear();
56
73
  // Strip lookup from params, it's only used internally
57
74
  if (params.lookup) {
58
75
  throw new errors.ValidationError("Invalid params: 'lookup'");
@@ -1 +1 @@
1
- {"version":3,"file":"repository.mjs","sources":["../../../src/services/document-service/repository.ts"],"sourcesContent":["import { omit, assoc, merge, curry } from 'lodash/fp';\n\nimport { async, contentTypes as contentTypesUtils, validate, errors } from '@strapi/utils';\n\nimport type { UID } from '@strapi/types';\nimport { wrapInTransaction, type RepositoryFactoryMethod } from './common';\nimport * as DP from './draft-and-publish';\nimport * as i18n from './internationalization';\nimport { copyNonLocalizedFields } from './internationalization';\nimport * as components from './components';\n\nimport { createEntriesService } from './entries';\nimport { pickSelectionParams } from './params';\nimport { createDocumentId } from '../../utils/transform-content-types-to-models';\nimport { getDeepPopulate } from './utils/populate';\nimport { transformParamsToQuery } from './transform/query';\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { createEventManager } from './events';\nimport * as unidirectionalRelations from './utils/unidirectional-relations';\nimport * as bidirectionalRelations from './utils/bidirectional-relations';\nimport entityValidator from '../entity-validator';\nimport { addFirstPublishedAtToDraft, filterDataFirstPublishedAt } from './first-published-at';\n\nconst { validators } = validate;\n\n// we have to typecast to reconcile the differences between validator and database getModel\nconst getModel = ((schema: UID.Schema) => strapi.getModel(schema)) as (schema: string) => any;\n\nexport const createContentTypeRepository: RepositoryFactoryMethod = (\n uid,\n validator = entityValidator\n) => {\n const contentType = strapi.contentType(uid);\n const hasDraftAndPublish = contentTypesUtils.hasDraftAndPublish(contentType);\n\n // Define the validations that should be performed\n const sortValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const fieldValidations = ['scalarAttributes'];\n const filtersValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const populateValidations = {\n sort: sortValidations,\n field: fieldValidations,\n filters: filtersValidations,\n populate: ['nonAttributesOperators'],\n };\n\n const validateParams = async (params: any) => {\n const ctx = { schema: contentType, getModel };\n await validators.validateFilters(ctx, params.filters, filtersValidations);\n await validators.validateSort(ctx, params.sort, sortValidations);\n await validators.validateFields(ctx, params.fields, fieldValidations);\n await validators.validatePopulate(ctx, params.populate, populateValidations);\n\n // Strip lookup from params, it's only used internally\n if (params.lookup) {\n throw new errors.ValidationError(\"Invalid params: 'lookup'\");\n }\n\n // TODO: add validate status, locale, pagination\n\n return params;\n };\n\n const entries = createEntriesService(uid, validator);\n\n const eventManager = createEventManager(strapi, uid);\n const emitEvent = curry(eventManager.emitEvent);\n\n async function findMany(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params || {});\n\n return strapi.db.query(uid).findMany(query);\n }\n\n async function findFirst(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n // TODO: do we really want to add filters on the findOne now that we have findFirst ?\n async function findOne(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n async function deleteDocument(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n omit('status'),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n if (params.status === 'draft') {\n throw new Error('Cannot delete a draft document');\n }\n\n const entriesToDelete = await strapi.db.query(uid).findMany(query);\n\n // Delete all matched entries and its components\n const deletedEntries = await async.map(entriesToDelete, (entryToDelete: any) =>\n entries.delete(entryToDelete.id)\n );\n\n entriesToDelete.forEach(emitEvent('entry.delete'));\n\n return { documentId, entries: deletedEntries };\n }\n\n async function create(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToData(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const doc = await entries.create(queryParams);\n\n emitEvent('entry.create', doc);\n\n if (hasDraftAndPublish && params.status === 'published') {\n return publish({\n ...params,\n documentId: doc.documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return doc;\n }\n\n async function clone(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n // Get deep populate\n const entriesToClone = await strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n // DP Enabled: Clone drafts\n // DP Disabled: Clone only the existing version (published)\n publishedAt: { $null: hasDraftAndPublish },\n },\n populate: getDeepPopulate(uid, { relationalFields: ['id'] }),\n });\n\n const clonedEntries = await async.map(\n entriesToClone,\n async.pipe(\n validateParams,\n omit(['id', 'createdAt', 'updatedAt']),\n // assign new documentId\n assoc('documentId', createDocumentId()),\n // Merge new data into it\n (data) => merge(data, queryParams.data),\n (data) => entries.create({ ...queryParams, data, status: 'draft' })\n )\n );\n\n clonedEntries.forEach(emitEvent('entry.create'));\n\n return { documentId: clonedEntries.at(0)?.documentId, entries: clonedEntries };\n }\n\n async function update(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n filterDataFirstPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToLookup(contentType),\n DP.statusToData(contentType),\n // Default locale will be set if not provided\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const { data, ...restParams } = await transformParamsDocumentId(uid, queryParams || {});\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams || {}) as any);\n\n // Validation\n // Find if document exists\n const entryToUpdate = await strapi.db\n .query(uid)\n .findOne({ ...query, where: { ...queryParams?.lookup, ...query?.where, documentId } });\n\n let updatedDraft = null;\n if (entryToUpdate) {\n updatedDraft = await entries.update(entryToUpdate, queryParams);\n emitEvent('entry.update', updatedDraft);\n }\n\n if (!updatedDraft) {\n const documentExists = await strapi.db\n .query(contentType.uid)\n .findOne({ where: { documentId } });\n\n if (documentExists) {\n const mergedData = await copyNonLocalizedFields(contentType, documentId, {\n ...queryParams.data,\n documentId,\n });\n\n updatedDraft = await entries.create({\n ...queryParams,\n data: mergedData,\n });\n emitEvent('entry.create', updatedDraft);\n }\n }\n\n if (hasDraftAndPublish && updatedDraft && params.status === 'published') {\n return publish({\n ...params,\n documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return updatedDraft;\n }\n\n async function count(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultStatus(contentType),\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).count(query);\n }\n\n async function publish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [draftsToPublish, oldPublishedVersions] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null, // Ignore lookup\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targetting the old published entries\n const relationsToSync = await unidirectionalRelations.load(\n uid,\n {\n newVersions: draftsToPublish,\n oldVersions: oldPublishedVersions,\n },\n {\n shouldPropagateRelation: components.createComponentRelationFilter(),\n }\n );\n\n const bidirectionalRelationsToSync = await bidirectionalRelations.load(uid, {\n newVersions: draftsToPublish,\n oldVersions: oldPublishedVersions,\n });\n\n // Delete old published versions\n await async.map(oldPublishedVersions, (entry: any) => entries.delete(entry.id));\n\n // Add firstPublishedAt to draft if it doesn't exist\n const updatedDraft = await async.map(draftsToPublish, (draft: any) =>\n addFirstPublishedAtToDraft(draft, entries.update, contentType)\n );\n\n // Transform draft entry data and create published versions\n const publishedEntries = await async.map(updatedDraft, (draft: any) =>\n entries.publish(draft, queryParams)\n );\n\n // Sync unidirectional relations with the new published entries\n await unidirectionalRelations.sync(\n [...oldPublishedVersions, ...updatedDraft],\n publishedEntries,\n relationsToSync\n );\n\n await bidirectionalRelations.sync(\n [...oldPublishedVersions, ...updatedDraft],\n publishedEntries,\n bidirectionalRelationsToSync\n );\n\n publishedEntries.forEach(emitEvent('entry.publish'));\n\n return { documentId, entries: publishedEntries };\n }\n\n async function unpublish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId, publishedAt: { $ne: null } }, query)\n )(params);\n\n // Delete all published versions\n const versionsToDelete = await strapi.db.query(uid).findMany(query);\n await async.map(versionsToDelete, (entry: any) => entries.delete(entry.id));\n\n versionsToDelete.forEach(emitEvent('entry.unpublish'));\n return { documentId, entries: versionsToDelete };\n }\n\n async function discardDraft(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [versionsToDraft, oldDrafts] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null,\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targeting the old drafts\n const relationsToSync = await unidirectionalRelations.load(\n uid,\n {\n newVersions: versionsToDraft,\n oldVersions: oldDrafts,\n },\n {\n shouldPropagateRelation: components.createComponentRelationFilter(),\n }\n );\n\n const bidirectionalRelationsToSync = await bidirectionalRelations.load(uid, {\n newVersions: versionsToDraft,\n oldVersions: oldDrafts,\n });\n\n // Delete old drafts\n await async.map(oldDrafts, (entry: any) => entries.delete(entry.id));\n\n // Transform published entry data and create draft versions\n const draftEntries = await async.map(versionsToDraft, (entry: any) =>\n entries.discardDraft(entry, queryParams)\n );\n\n // Sync unidirectional relations with the new draft entries\n await unidirectionalRelations.sync(\n [...oldDrafts, ...versionsToDraft],\n draftEntries,\n relationsToSync\n );\n\n await bidirectionalRelations.sync(\n [...oldDrafts, ...versionsToDraft],\n draftEntries,\n bidirectionalRelationsToSync\n );\n\n draftEntries.forEach(emitEvent('entry.draft-discard'));\n return { documentId, entries: draftEntries };\n }\n\n async function updateComponents(entry: any, data: any) {\n return components.updateComponents(uid, entry, data);\n }\n\n function omitComponentData(data: any) {\n return components.omitComponentData(contentType, data);\n }\n\n return {\n findMany: wrapInTransaction(findMany),\n findFirst: wrapInTransaction(findFirst),\n findOne: wrapInTransaction(findOne),\n delete: wrapInTransaction(deleteDocument),\n create: wrapInTransaction(create),\n clone: wrapInTransaction(clone),\n update: wrapInTransaction(update),\n count: wrapInTransaction(count),\n publish: hasDraftAndPublish ? wrapInTransaction(publish) : (undefined as any),\n unpublish: hasDraftAndPublish ? wrapInTransaction(unpublish) : (undefined as any),\n discardDraft: hasDraftAndPublish ? wrapInTransaction(discardDraft) : (undefined as any),\n\n updateComponents,\n omitComponentData,\n };\n};\n"],"names":["validators","validate","getModel","schema","strapi","createContentTypeRepository","uid","validator","entityValidator","contentType","hasDraftAndPublish","contentTypesUtils","sortValidations","fieldValidations","filtersValidations","populateValidations","sort","field","filters","populate","validateParams","params","ctx","validateFilters","validateSort","validateFields","fields","validatePopulate","lookup","errors","ValidationError","entries","createEntriesService","eventManager","createEventManager","emitEvent","curry","findMany","query","async","pipe","DP","i18n","transformParamsDocumentId","transformParamsToQuery","db","findFirst","findOne","opts","documentId","assoc","where","deleteDocument","omit","status","Error","entriesToDelete","deletedEntries","map","entryToDelete","delete","id","forEach","create","queryParams","doc","publish","then","clone","entriesToClone","publishedAt","$null","getDeepPopulate","relationalFields","clonedEntries","createDocumentId","data","merge","at","update","filterDataFirstPublishedAt","restParams","pickSelectionParams","entryToUpdate","updatedDraft","documentExists","mergedData","copyNonLocalizedFields","count","draftsToPublish","oldPublishedVersions","Promise","all","$ne","select","relationsToSync","unidirectionalRelations","newVersions","oldVersions","shouldPropagateRelation","components","bidirectionalRelationsToSync","bidirectionalRelations","entry","draft","addFirstPublishedAtToDraft","publishedEntries","unpublish","versionsToDelete","discardDraft","versionsToDraft","oldDrafts","draftEntries","updateComponents","omitComponentData","wrapInTransaction","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"repository.mjs","sources":["../../../src/services/document-service/repository.ts"],"sourcesContent":["import { omit, assoc, merge, curry, isEmpty } from 'lodash/fp';\n\nimport {\n async,\n contentTypes as contentTypesUtils,\n validate,\n errors,\n createModelCache,\n} from '@strapi/utils';\n\nimport type { UID } from '@strapi/types';\nimport { wrapInTransaction, type RepositoryFactoryMethod } from './common';\nimport * as DP from './draft-and-publish';\nimport * as i18n from './internationalization';\nimport { copyNonLocalizedFields } from './internationalization';\nimport * as components from './components';\n\nimport { createEntriesService } from './entries';\nimport { pickSelectionParams } from './params';\nimport { createDocumentId } from '../../utils/transform-content-types-to-models';\nimport { getDeepPopulate } from './utils/populate';\nimport { transformParamsToQuery } from './transform/query';\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { createEventManager } from './events';\nimport * as unidirectionalRelations from './utils/unidirectional-relations';\nimport * as bidirectionalRelations from './utils/bidirectional-relations';\nimport entityValidator from '../entity-validator';\nimport { addFirstPublishedAtToDraft, filterDataFirstPublishedAt } from './first-published-at';\nimport { runParallelWithOrderedErrors } from './utils/ordered-parallel';\n\nconst { validators } = validate;\n\n// we have to typecast to reconcile the differences between validator and database getModel\nconst getModel = ((schema: UID.Schema) => strapi.getModel(schema)) as (schema: string) => any;\n\nexport const createContentTypeRepository: RepositoryFactoryMethod = (\n uid,\n validator = entityValidator\n) => {\n const contentType = strapi.contentType(uid);\n const hasDraftAndPublish = contentTypesUtils.hasDraftAndPublish(contentType);\n\n // Define the validations that should be performed\n const sortValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const fieldValidations = ['scalarAttributes'];\n const filtersValidations = ['nonAttributesOperators', 'dynamicZones', 'morphRelations'];\n const populateValidations = {\n sort: sortValidations,\n field: fieldValidations,\n filters: filtersValidations,\n populate: ['nonAttributesOperators'],\n };\n\n const validateParams = async (params: any) => {\n // Cache model lookups for this request to avoid repeating the same work\n const modelCache = createModelCache(getModel);\n\n const ctx = { schema: contentType, getModel: modelCache.getModel };\n\n // Only validate what is actually provided\n const validations: Promise<unknown>[] = [];\n\n if (params.filters && !isEmpty(params.filters)) {\n validations.push(validators.validateFilters(ctx, params.filters, filtersValidations));\n }\n\n if (params.sort && !isEmpty(params.sort)) {\n validations.push(validators.validateSort(ctx, params.sort, sortValidations));\n }\n\n if (params.fields && !isEmpty(params.fields)) {\n validations.push(validators.validateFields(ctx, params.fields, fieldValidations));\n }\n\n if (params.populate && !isEmpty(params.populate)) {\n validations.push(validators.validatePopulate(ctx, params.populate, populateValidations));\n }\n\n // Run validations together but keep the same error order as before\n await runParallelWithOrderedErrors(validations);\n\n // Clean up cache after validation\n modelCache.clear();\n\n // Strip lookup from params, it's only used internally\n if (params.lookup) {\n throw new errors.ValidationError(\"Invalid params: 'lookup'\");\n }\n\n // TODO: add validate status, locale, pagination\n\n return params;\n };\n\n const entries = createEntriesService(uid, validator);\n\n const eventManager = createEventManager(strapi, uid);\n const emitEvent = curry(eventManager.emitEvent);\n\n async function findMany(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params || {});\n\n return strapi.db.query(uid).findMany(query);\n }\n\n async function findFirst(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n // TODO: do we really want to add filters on the findOne now that we have findFirst ?\n async function findOne(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n DP.defaultToDraft,\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n transformParamsDocumentId(uid),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n return strapi.db.query(uid).findOne(query);\n }\n\n async function deleteDocument(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n omit('status'),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId }, query)\n )(params);\n\n if (params.status === 'draft') {\n throw new Error('Cannot delete a draft document');\n }\n\n const entriesToDelete = await strapi.db.query(uid).findMany(query);\n\n // Delete all matched entries and its components\n const deletedEntries = await async.map(entriesToDelete, (entryToDelete: any) =>\n entries.delete(entryToDelete.id)\n );\n\n entriesToDelete.forEach(emitEvent('entry.delete'));\n\n return { documentId, entries: deletedEntries };\n }\n\n async function create(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToData(contentType),\n i18n.defaultLocale(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const doc = await entries.create(queryParams);\n\n emitEvent('entry.create', doc);\n\n if (hasDraftAndPublish && params.status === 'published') {\n return publish({\n ...params,\n documentId: doc.documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return doc;\n }\n\n async function clone(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n // Get deep populate\n const entriesToClone = await strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n // DP Enabled: Clone drafts\n // DP Disabled: Clone only the existing version (published)\n publishedAt: { $null: hasDraftAndPublish },\n },\n populate: getDeepPopulate(uid, { relationalFields: ['id'] }),\n });\n\n const clonedEntries = await async.map(\n entriesToClone,\n async.pipe(\n validateParams,\n omit(['id', 'createdAt', 'updatedAt']),\n // assign new documentId\n assoc('documentId', createDocumentId()),\n // Merge new data into it\n (data) => merge(data, queryParams.data),\n (data) => entries.create({ ...queryParams, data, status: 'draft' })\n )\n );\n\n clonedEntries.forEach(emitEvent('entry.create'));\n\n return { documentId: clonedEntries.at(0)?.documentId, entries: clonedEntries };\n }\n\n async function update(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n DP.filterDataPublishedAt,\n filterDataFirstPublishedAt,\n DP.setStatusToDraft(contentType),\n DP.statusToLookup(contentType),\n DP.statusToData(contentType),\n // Default locale will be set if not provided\n i18n.defaultLocale(contentType),\n i18n.localeToLookup(contentType),\n i18n.localeToData(contentType)\n )(params);\n\n const { data, ...restParams } = await transformParamsDocumentId(uid, queryParams || {});\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams || {}) as any);\n\n // Validation\n // Find if document exists\n const entryToUpdate = await strapi.db\n .query(uid)\n .findOne({ ...query, where: { ...queryParams?.lookup, ...query?.where, documentId } });\n\n let updatedDraft = null;\n if (entryToUpdate) {\n updatedDraft = await entries.update(entryToUpdate, queryParams);\n emitEvent('entry.update', updatedDraft);\n }\n\n if (!updatedDraft) {\n const documentExists = await strapi.db\n .query(contentType.uid)\n .findOne({ where: { documentId } });\n\n if (documentExists) {\n const mergedData = await copyNonLocalizedFields(contentType, documentId, {\n ...queryParams.data,\n documentId,\n });\n\n updatedDraft = await entries.create({\n ...queryParams,\n data: mergedData,\n });\n emitEvent('entry.create', updatedDraft);\n }\n }\n\n if (hasDraftAndPublish && updatedDraft && params.status === 'published') {\n return publish({\n ...params,\n documentId,\n }).then((doc) => doc.entries[0]);\n }\n\n return updatedDraft;\n }\n\n async function count(params = {} as any) {\n const query = await async.pipe(\n validateParams,\n DP.defaultStatus(contentType),\n DP.statusToLookup(contentType),\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid)\n )(params);\n\n return strapi.db.query(uid).count(query);\n }\n\n async function publish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [draftsToPublish, oldPublishedVersions] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null, // Ignore lookup\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targetting the old published entries\n const relationsToSync = await unidirectionalRelations.load(\n uid,\n {\n newVersions: draftsToPublish,\n oldVersions: oldPublishedVersions,\n },\n {\n shouldPropagateRelation: components.createComponentRelationFilter(),\n }\n );\n\n const bidirectionalRelationsToSync = await bidirectionalRelations.load(uid, {\n newVersions: draftsToPublish,\n oldVersions: oldPublishedVersions,\n });\n\n // Delete old published versions\n await async.map(oldPublishedVersions, (entry: any) => entries.delete(entry.id));\n\n // Add firstPublishedAt to draft if it doesn't exist\n const updatedDraft = await async.map(draftsToPublish, (draft: any) =>\n addFirstPublishedAtToDraft(draft, entries.update, contentType)\n );\n\n // Transform draft entry data and create published versions\n const publishedEntries = await async.map(updatedDraft, (draft: any) =>\n entries.publish(draft, queryParams)\n );\n\n // Sync unidirectional relations with the new published entries\n await unidirectionalRelations.sync(\n [...oldPublishedVersions, ...updatedDraft],\n publishedEntries,\n relationsToSync\n );\n\n await bidirectionalRelations.sync(\n [...oldPublishedVersions, ...updatedDraft],\n publishedEntries,\n bidirectionalRelationsToSync\n );\n\n publishedEntries.forEach(emitEvent('entry.publish'));\n\n return { documentId, entries: publishedEntries };\n }\n\n async function unpublish(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const query = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType),\n transformParamsToQuery(uid),\n (query) => assoc('where', { ...query.where, documentId, publishedAt: { $ne: null } }, query)\n )(params);\n\n // Delete all published versions\n const versionsToDelete = await strapi.db.query(uid).findMany(query);\n await async.map(versionsToDelete, (entry: any) => entries.delete(entry.id));\n\n versionsToDelete.forEach(emitEvent('entry.unpublish'));\n return { documentId, entries: versionsToDelete };\n }\n\n async function discardDraft(opts = {} as any) {\n const { documentId, ...params } = opts;\n\n const queryParams = await async.pipe(\n validateParams,\n i18n.defaultLocale(contentType),\n i18n.multiLocaleToLookup(contentType)\n )(params);\n\n const [versionsToDraft, oldDrafts] = await Promise.all([\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: { $ne: null },\n },\n // Populate relations, media, compos and dz\n populate: getDeepPopulate(uid, { relationalFields: ['documentId', 'locale'] }),\n }),\n strapi.db.query(uid).findMany({\n where: {\n ...queryParams?.lookup,\n documentId,\n publishedAt: null,\n },\n select: ['id', 'locale'],\n }),\n ]);\n\n // Load any unidirectional relation targeting the old drafts\n const relationsToSync = await unidirectionalRelations.load(\n uid,\n {\n newVersions: versionsToDraft,\n oldVersions: oldDrafts,\n },\n {\n shouldPropagateRelation: components.createComponentRelationFilter(),\n }\n );\n\n const bidirectionalRelationsToSync = await bidirectionalRelations.load(uid, {\n newVersions: versionsToDraft,\n oldVersions: oldDrafts,\n });\n\n // Delete old drafts\n await async.map(oldDrafts, (entry: any) => entries.delete(entry.id));\n\n // Transform published entry data and create draft versions\n const draftEntries = await async.map(versionsToDraft, (entry: any) =>\n entries.discardDraft(entry, queryParams)\n );\n\n // Sync unidirectional relations with the new draft entries\n await unidirectionalRelations.sync(\n [...oldDrafts, ...versionsToDraft],\n draftEntries,\n relationsToSync\n );\n\n await bidirectionalRelations.sync(\n [...oldDrafts, ...versionsToDraft],\n draftEntries,\n bidirectionalRelationsToSync\n );\n\n draftEntries.forEach(emitEvent('entry.draft-discard'));\n return { documentId, entries: draftEntries };\n }\n\n async function updateComponents(entry: any, data: any) {\n return components.updateComponents(uid, entry, data);\n }\n\n function omitComponentData(data: any) {\n return components.omitComponentData(contentType, data);\n }\n\n return {\n findMany: wrapInTransaction(findMany),\n findFirst: wrapInTransaction(findFirst),\n findOne: wrapInTransaction(findOne),\n delete: wrapInTransaction(deleteDocument),\n create: wrapInTransaction(create),\n clone: wrapInTransaction(clone),\n update: wrapInTransaction(update),\n count: wrapInTransaction(count),\n publish: hasDraftAndPublish ? wrapInTransaction(publish) : (undefined as any),\n unpublish: hasDraftAndPublish ? wrapInTransaction(unpublish) : (undefined as any),\n discardDraft: hasDraftAndPublish ? wrapInTransaction(discardDraft) : (undefined as any),\n\n updateComponents,\n omitComponentData,\n };\n};\n"],"names":["validators","validate","getModel","schema","strapi","createContentTypeRepository","uid","validator","entityValidator","contentType","hasDraftAndPublish","contentTypesUtils","sortValidations","fieldValidations","filtersValidations","populateValidations","sort","field","filters","populate","validateParams","params","modelCache","createModelCache","ctx","validations","isEmpty","push","validateFilters","validateSort","fields","validateFields","validatePopulate","runParallelWithOrderedErrors","clear","lookup","errors","ValidationError","entries","createEntriesService","eventManager","createEventManager","emitEvent","curry","findMany","query","async","pipe","DP","i18n","transformParamsDocumentId","transformParamsToQuery","db","findFirst","findOne","opts","documentId","assoc","where","deleteDocument","omit","status","Error","entriesToDelete","deletedEntries","map","entryToDelete","delete","id","forEach","create","queryParams","doc","publish","then","clone","entriesToClone","publishedAt","$null","getDeepPopulate","relationalFields","clonedEntries","createDocumentId","data","merge","at","update","filterDataFirstPublishedAt","restParams","pickSelectionParams","entryToUpdate","updatedDraft","documentExists","mergedData","copyNonLocalizedFields","count","draftsToPublish","oldPublishedVersions","Promise","all","$ne","select","relationsToSync","unidirectionalRelations","newVersions","oldVersions","shouldPropagateRelation","components","bidirectionalRelationsToSync","bidirectionalRelations","entry","draft","addFirstPublishedAtToDraft","publishedEntries","unpublish","versionsToDelete","discardDraft","versionsToDraft","oldDrafts","draftEntries","updateComponents","omitComponentData","wrapInTransaction","undefined"],"mappings":";;;;;;;;;;;;;;;;;;;AA8BA,MAAM,EAAEA,UAAU,EAAE,GAAGC,QAAAA;AAEvB;AACA,MAAMC,QAAY,GAAA,CAACC,MAAuBC,GAAAA,MAAAA,CAAOF,QAAQ,CAACC,MAAAA,CAAAA;AAE7CE,MAAAA,2BAAAA,GAAuD,CAClEC,GAAAA,EACAC,YAAYC,eAAe,GAAA;IAE3B,MAAMC,WAAAA,GAAcL,MAAOK,CAAAA,WAAW,CAACH,GAAAA,CAAAA;IACvC,MAAMI,kBAAAA,GAAqBC,YAAkBD,CAAAA,kBAAkB,CAACD,WAAAA,CAAAA;;AAGhE,IAAA,MAAMG,eAAkB,GAAA;AAAC,QAAA,wBAAA;AAA0B,QAAA,cAAA;AAAgB,QAAA;AAAiB,KAAA;AACpF,IAAA,MAAMC,gBAAmB,GAAA;AAAC,QAAA;AAAmB,KAAA;AAC7C,IAAA,MAAMC,kBAAqB,GAAA;AAAC,QAAA,wBAAA;AAA0B,QAAA,cAAA;AAAgB,QAAA;AAAiB,KAAA;AACvF,IAAA,MAAMC,mBAAsB,GAAA;QAC1BC,IAAMJ,EAAAA,eAAAA;QACNK,KAAOJ,EAAAA,gBAAAA;QACPK,OAASJ,EAAAA,kBAAAA;QACTK,QAAU,EAAA;AAAC,YAAA;AAAyB;AACtC,KAAA;AAEA,IAAA,MAAMC,iBAAiB,OAAOC,MAAAA,GAAAA;;AAE5B,QAAA,MAAMC,aAAaC,gBAAiBrB,CAAAA,QAAAA,CAAAA;AAEpC,QAAA,MAAMsB,GAAM,GAAA;YAAErB,MAAQM,EAAAA,WAAAA;AAAaP,YAAAA,QAAAA,EAAUoB,WAAWpB;AAAS,SAAA;;AAGjE,QAAA,MAAMuB,cAAkC,EAAE;AAE1C,QAAA,IAAIJ,OAAOH,OAAO,IAAI,CAACQ,OAAQL,CAAAA,MAAAA,CAAOH,OAAO,CAAG,EAAA;YAC9CO,WAAYE,CAAAA,IAAI,CAAC3B,UAAW4B,CAAAA,eAAe,CAACJ,GAAKH,EAAAA,MAAAA,CAAOH,OAAO,EAAEJ,kBAAAA,CAAAA,CAAAA;AACnE;AAEA,QAAA,IAAIO,OAAOL,IAAI,IAAI,CAACU,OAAQL,CAAAA,MAAAA,CAAOL,IAAI,CAAG,EAAA;YACxCS,WAAYE,CAAAA,IAAI,CAAC3B,UAAW6B,CAAAA,YAAY,CAACL,GAAKH,EAAAA,MAAAA,CAAOL,IAAI,EAAEJ,eAAAA,CAAAA,CAAAA;AAC7D;AAEA,QAAA,IAAIS,OAAOS,MAAM,IAAI,CAACJ,OAAQL,CAAAA,MAAAA,CAAOS,MAAM,CAAG,EAAA;YAC5CL,WAAYE,CAAAA,IAAI,CAAC3B,UAAW+B,CAAAA,cAAc,CAACP,GAAKH,EAAAA,MAAAA,CAAOS,MAAM,EAAEjB,gBAAAA,CAAAA,CAAAA;AACjE;AAEA,QAAA,IAAIQ,OAAOF,QAAQ,IAAI,CAACO,OAAQL,CAAAA,MAAAA,CAAOF,QAAQ,CAAG,EAAA;YAChDM,WAAYE,CAAAA,IAAI,CAAC3B,UAAWgC,CAAAA,gBAAgB,CAACR,GAAKH,EAAAA,MAAAA,CAAOF,QAAQ,EAAEJ,mBAAAA,CAAAA,CAAAA;AACrE;;AAGA,QAAA,MAAMkB,4BAA6BR,CAAAA,WAAAA,CAAAA;;AAGnCH,QAAAA,UAAAA,CAAWY,KAAK,EAAA;;QAGhB,IAAIb,MAAAA,CAAOc,MAAM,EAAE;YACjB,MAAM,IAAIC,MAAOC,CAAAA,eAAe,CAAC,0BAAA,CAAA;AACnC;;QAIA,OAAOhB,MAAAA;AACT,KAAA;IAEA,MAAMiB,OAAAA,GAAUC,qBAAqBjC,GAAKC,EAAAA,SAAAA,CAAAA;IAE1C,MAAMiC,YAAAA,GAAeC,mBAAmBrC,MAAQE,EAAAA,GAAAA,CAAAA;IAChD,MAAMoC,SAAAA,GAAYC,KAAMH,CAAAA,YAAAA,CAAaE,SAAS,CAAA;IAE9C,eAAeE,QAAAA,CAASvB,MAAS,GAAA,EAAS,EAAA;QACxC,MAAMwB,KAAAA,GAAQ,MAAMC,KAAAA,CAAMC,IAAI,CAC5B3B,cACA4B,EAAAA,mBAAiB,EACjBA,mBAAiB,CAACvC,WAAAA,CAAAA,EAClBwC,kBAAkB,CAACxC,WACnBwC,CAAAA,EAAAA,wBAAwB,CAACxC,WACzByC,CAAAA,EAAAA,gCAAAA,CAA0B5C,GAC1B6C,CAAAA,EAAAA,sBAAAA,CAAuB7C,GACvBe,CAAAA,CAAAA,CAAAA,MAAAA,IAAU,EAAC,CAAA;AAEb,QAAA,OAAOjB,OAAOgD,EAAE,CAACP,KAAK,CAACvC,GAAAA,CAAAA,CAAKsC,QAAQ,CAACC,KAAAA,CAAAA;AACvC;IAEA,eAAeQ,SAAAA,CAAUhC,MAAS,GAAA,EAAS,EAAA;QACzC,MAAMwB,KAAAA,GAAQ,MAAMC,KAAAA,CAAMC,IAAI,CAC5B3B,gBACA4B,mBAAiB,EACjBA,mBAAiB,CAACvC,cAClBwC,kBAAkB,CAACxC,WAAAA,CAAAA,EACnBwC,mBAAmB,CAACxC,WACpByC,CAAAA,EAAAA,gCAAAA,CAA0B5C,GAC1B6C,CAAAA,EAAAA,sBAAAA,CAAuB7C,GACvBe,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;AAEF,QAAA,OAAOjB,OAAOgD,EAAE,CAACP,KAAK,CAACvC,GAAAA,CAAAA,CAAKgD,OAAO,CAACT,KAAAA,CAAAA;AACtC;;IAGA,eAAeS,OAAAA,CAAQC,IAAO,GAAA,EAAS,EAAA;AACrC,QAAA,MAAM,EAAEC,UAAU,EAAE,GAAGnC,QAAQ,GAAGkC,IAAAA;AAElC,QAAA,MAAMV,KAAQ,GAAA,MAAMC,KAAMC,CAAAA,IAAI,CAC5B3B,cAAAA,EACA4B,mBAAiB,EACjBA,mBAAiB,CAACvC,WAClBwC,CAAAA,EAAAA,kBAAkB,CAACxC,WACnBwC,CAAAA,EAAAA,mBAAmB,CAACxC,WACpByC,CAAAA,EAAAA,gCAAAA,CAA0B5C,GAC1B6C,CAAAA,EAAAA,sBAAAA,CAAuB7C,GACvB,CAAA,EAAA,CAACuC,KAAUY,GAAAA,KAAAA,CAAM,OAAS,EAAA;AAAE,gBAAA,GAAGZ,MAAMa,KAAK;AAAEF,gBAAAA;AAAW,aAAA,EAAGX,KAC1DxB,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;AAEF,QAAA,OAAOjB,OAAOgD,EAAE,CAACP,KAAK,CAACvC,GAAAA,CAAAA,CAAKgD,OAAO,CAACT,KAAAA,CAAAA;AACtC;IAEA,eAAec,cAAAA,CAAeJ,IAAO,GAAA,EAAS,EAAA;AAC5C,QAAA,MAAM,EAAEC,UAAU,EAAE,GAAGnC,QAAQ,GAAGkC,IAAAA;QAElC,MAAMV,KAAAA,GAAQ,MAAMC,KAAMC,CAAAA,IAAI,CAC5B3B,cACAwC,EAAAA,IAAAA,CAAK,WACLX,kBAAkB,CAACxC,WACnBwC,CAAAA,EAAAA,wBAAwB,CAACxC,WAAAA,CAAAA,EACzB0C,uBAAuB7C,GACvB,CAAA,EAAA,CAACuC,KAAUY,GAAAA,KAAAA,CAAM,OAAS,EAAA;AAAE,gBAAA,GAAGZ,MAAMa,KAAK;AAAEF,gBAAAA;AAAW,aAAA,EAAGX,KAC1DxB,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;QAEF,IAAIA,MAAAA,CAAOwC,MAAM,KAAK,OAAS,EAAA;AAC7B,YAAA,MAAM,IAAIC,KAAM,CAAA,gCAAA,CAAA;AAClB;QAEA,MAAMC,eAAAA,GAAkB,MAAM3D,MAAOgD,CAAAA,EAAE,CAACP,KAAK,CAACvC,GAAKsC,CAAAA,CAAAA,QAAQ,CAACC,KAAAA,CAAAA;;AAG5D,QAAA,MAAMmB,cAAiB,GAAA,MAAMlB,KAAMmB,CAAAA,GAAG,CAACF,eAAAA,EAAiB,CAACG,aAAAA,GACvD5B,OAAQ6B,CAAAA,MAAM,CAACD,aAAAA,CAAcE,EAAE,CAAA,CAAA;QAGjCL,eAAgBM,CAAAA,OAAO,CAAC3B,SAAU,CAAA,cAAA,CAAA,CAAA;QAElC,OAAO;AAAEc,YAAAA,UAAAA;YAAYlB,OAAS0B,EAAAA;AAAe,SAAA;AAC/C;IAEA,eAAeM,MAAAA,CAAOf,IAAO,GAAA,EAAS,EAAA;AACpC,QAAA,MAAM,EAAEC,UAAU,EAAE,GAAGnC,QAAQ,GAAGkC,IAAAA;QAElC,MAAMgB,WAAAA,GAAc,MAAMzB,KAAAA,CAAMC,IAAI,CAClC3B,gBACA4B,0BAAwB,EACxBA,qBAAmB,CAACvC,cACpBuC,iBAAe,CAACvC,WAAAA,CAAAA,EAChBwC,kBAAkB,CAACxC,WACnBwC,CAAAA,EAAAA,iBAAiB,CAACxC,WAClBY,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;AAEF,QAAA,MAAMmD,GAAM,GAAA,MAAMlC,OAAQgC,CAAAA,MAAM,CAACC,WAAAA,CAAAA;AAEjC7B,QAAAA,SAAAA,CAAU,cAAgB8B,EAAAA,GAAAA,CAAAA;AAE1B,QAAA,IAAI9D,kBAAsBW,IAAAA,MAAAA,CAAOwC,MAAM,KAAK,WAAa,EAAA;AACvD,YAAA,OAAOY,OAAQ,CAAA;AACb,gBAAA,GAAGpD,MAAM;AACTmC,gBAAAA,UAAAA,EAAYgB,IAAIhB;AAClB,aAAA,CAAA,CAAGkB,IAAI,CAAC,CAACF,MAAQA,GAAIlC,CAAAA,OAAO,CAAC,CAAE,CAAA,CAAA;AACjC;QAEA,OAAOkC,GAAAA;AACT;IAEA,eAAeG,KAAAA,CAAMpB,IAAO,GAAA,EAAS,EAAA;AACnC,QAAA,MAAM,EAAEC,UAAU,EAAE,GAAGnC,QAAQ,GAAGkC,IAAAA;AAElC,QAAA,MAAMgB,cAAc,MAAMzB,KAAAA,CAAMC,IAAI,CAClC3B,gBACA4B,0BAAwB,EACxBC,kBAAkB,CAACxC,WAAAA,CAAAA,EACnBwC,wBAAwB,CAACxC,WACzBY,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;;QAGF,MAAMuD,cAAAA,GAAiB,MAAMxE,MAAOgD,CAAAA,EAAE,CAACP,KAAK,CAACvC,GAAKsC,CAAAA,CAAAA,QAAQ,CAAC;YACzDc,KAAO,EAAA;AACL,gBAAA,GAAGa,aAAapC,MAAM;AACtBqB,gBAAAA,UAAAA;;;gBAGAqB,WAAa,EAAA;oBAAEC,KAAOpE,EAAAA;AAAmB;AAC3C,aAAA;AACAS,YAAAA,QAAAA,EAAU4D,gBAAgBzE,GAAK,EAAA;gBAAE0E,gBAAkB,EAAA;AAAC,oBAAA;AAAK;AAAC,aAAA;AAC5D,SAAA,CAAA;QAEA,MAAMC,aAAAA,GAAgB,MAAMnC,KAAAA,CAAMmB,GAAG,CACnCW,gBACA9B,KAAMC,CAAAA,IAAI,CACR3B,cAAAA,EACAwC,IAAK,CAAA;AAAC,YAAA,IAAA;AAAM,YAAA,WAAA;AAAa,YAAA;AAAY,SAAA,CAAA;QAErCH,KAAM,CAAA,YAAA,EAAcyB;QAEpB,CAACC,IAAAA,GAASC,KAAMD,CAAAA,IAAAA,EAAMZ,WAAYY,CAAAA,IAAI,GACtC,CAACA,IAAAA,GAAS7C,OAAQgC,CAAAA,MAAM,CAAC;AAAE,gBAAA,GAAGC,WAAW;AAAEY,gBAAAA,IAAAA;gBAAMtB,MAAQ,EAAA;AAAQ,aAAA,CAAA,CAAA,CAAA;QAIrEoB,aAAcZ,CAAAA,OAAO,CAAC3B,SAAU,CAAA,cAAA,CAAA,CAAA;QAEhC,OAAO;YAAEc,UAAYyB,EAAAA,aAAAA,CAAcI,EAAE,CAAC,CAAI7B,CAAAA,EAAAA,UAAAA;YAAYlB,OAAS2C,EAAAA;AAAc,SAAA;AAC/E;IAEA,eAAeK,MAAAA,CAAO/B,IAAO,GAAA,EAAS,EAAA;AACpC,QAAA,MAAM,EAAEC,UAAU,EAAE,GAAGnC,QAAQ,GAAGkC,IAAAA;QAElC,MAAMgB,WAAAA,GAAc,MAAMzB,KAAMC,CAAAA,IAAI,CAClC3B,cACA4B,EAAAA,0BAAwB,EACxBuC,0BACAvC,EAAAA,qBAAmB,CAACvC,WAAAA,CAAAA,EACpBuC,mBAAiB,CAACvC,cAClBuC,iBAAe,CAACvC,WAAAA,CAAAA;QAEhBwC,kBAAkB,CAACxC,WAAAA,CAAAA,EACnBwC,mBAAmB,CAACxC,WACpBwC,CAAAA,EAAAA,iBAAiB,CAACxC,WAClBY,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;QAEF,MAAM,EAAE8D,IAAI,EAAE,GAAGK,UAAAA,EAAY,GAAG,MAAMtC,gCAAAA,CAA0B5C,GAAKiE,EAAAA,WAAAA,IAAe,EAAC,CAAA;AACrF,QAAA,MAAM1B,KAAQM,GAAAA,sBAAAA,CAAuB7C,GAAKmF,EAAAA,mBAAAA,CAAoBD,cAAc,EAAC,CAAA,CAAA;;;QAI7E,MAAME,aAAAA,GAAgB,MAAMtF,MAAOgD,CAAAA,EAAE,CAClCP,KAAK,CAACvC,GACNgD,CAAAA,CAAAA,OAAO,CAAC;AAAE,YAAA,GAAGT,KAAK;YAAEa,KAAO,EAAA;AAAE,gBAAA,GAAGa,aAAapC,MAAM;AAAE,gBAAA,GAAGU,OAAOa,KAAK;AAAEF,gBAAAA;AAAW;AAAE,SAAA,CAAA;AAEtF,QAAA,IAAImC,YAAe,GAAA,IAAA;AACnB,QAAA,IAAID,aAAe,EAAA;AACjBC,YAAAA,YAAAA,GAAe,MAAMrD,OAAAA,CAAQgD,MAAM,CAACI,aAAenB,EAAAA,WAAAA,CAAAA;AACnD7B,YAAAA,SAAAA,CAAU,cAAgBiD,EAAAA,YAAAA,CAAAA;AAC5B;AAEA,QAAA,IAAI,CAACA,YAAc,EAAA;YACjB,MAAMC,cAAAA,GAAiB,MAAMxF,MAAAA,CAAOgD,EAAE,CACnCP,KAAK,CAACpC,WAAYH,CAAAA,GAAG,CACrBgD,CAAAA,OAAO,CAAC;gBAAEI,KAAO,EAAA;AAAEF,oBAAAA;AAAW;AAAE,aAAA,CAAA;AAEnC,YAAA,IAAIoC,cAAgB,EAAA;AAClB,gBAAA,MAAMC,UAAa,GAAA,MAAMC,sBAAuBrF,CAAAA,WAAAA,EAAa+C,UAAY,EAAA;AACvE,oBAAA,GAAGe,YAAYY,IAAI;AACnB3B,oBAAAA;AACF,iBAAA,CAAA;gBAEAmC,YAAe,GAAA,MAAMrD,OAAQgC,CAAAA,MAAM,CAAC;AAClC,oBAAA,GAAGC,WAAW;oBACdY,IAAMU,EAAAA;AACR,iBAAA,CAAA;AACAnD,gBAAAA,SAAAA,CAAU,cAAgBiD,EAAAA,YAAAA,CAAAA;AAC5B;AACF;AAEA,QAAA,IAAIjF,kBAAsBiF,IAAAA,YAAAA,IAAgBtE,MAAOwC,CAAAA,MAAM,KAAK,WAAa,EAAA;AACvE,YAAA,OAAOY,OAAQ,CAAA;AACb,gBAAA,GAAGpD,MAAM;AACTmC,gBAAAA;AACF,aAAA,CAAA,CAAGkB,IAAI,CAAC,CAACF,MAAQA,GAAIlC,CAAAA,OAAO,CAAC,CAAE,CAAA,CAAA;AACjC;QAEA,OAAOqD,YAAAA;AACT;IAEA,eAAeI,KAAAA,CAAM1E,MAAS,GAAA,EAAS,EAAA;QACrC,MAAMwB,KAAAA,GAAQ,MAAMC,KAAMC,CAAAA,IAAI,CAC5B3B,cACA4B,EAAAA,kBAAgB,CAACvC,WACjBuC,CAAAA,EAAAA,mBAAiB,CAACvC,WAAAA,CAAAA,EAClBwC,kBAAkB,CAACxC,WAAAA,CAAAA,EACnBwC,wBAAwB,CAACxC,WACzB0C,CAAAA,EAAAA,sBAAAA,CAAuB7C,GACvBe,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;AAEF,QAAA,OAAOjB,OAAOgD,EAAE,CAACP,KAAK,CAACvC,GAAAA,CAAAA,CAAKyF,KAAK,CAAClD,KAAAA,CAAAA;AACpC;IAEA,eAAe4B,OAAAA,CAAQlB,IAAO,GAAA,EAAS,EAAA;AACrC,QAAA,MAAM,EAAEC,UAAU,EAAE,GAAGnC,QAAQ,GAAGkC,IAAAA;AAElC,QAAA,MAAMgB,WAAc,GAAA,MAAMzB,KAAMC,CAAAA,IAAI,CAClC3B,cAAAA,EACA6B,kBAAkB,CAACxC,WAAAA,CAAAA,EACnBwC,wBAAwB,CAACxC,WACzBY,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;AAEF,QAAA,MAAM,CAAC2E,eAAiBC,EAAAA,oBAAAA,CAAqB,GAAG,MAAMC,OAAAA,CAAQC,GAAG,CAAC;AAChE/F,YAAAA,MAAAA,CAAOgD,EAAE,CAACP,KAAK,CAACvC,GAAAA,CAAAA,CAAKsC,QAAQ,CAAC;gBAC5Bc,KAAO,EAAA;AACL,oBAAA,GAAGa,aAAapC,MAAM;AACtBqB,oBAAAA,UAAAA;oBACAqB,WAAa,EAAA;AACf,iBAAA;;AAEA1D,gBAAAA,QAAAA,EAAU4D,gBAAgBzE,GAAK,EAAA;oBAAE0E,gBAAkB,EAAA;AAAC,wBAAA,YAAA;AAAc,wBAAA;AAAS;AAAC,iBAAA;AAC9E,aAAA,CAAA;AACA5E,YAAAA,MAAAA,CAAOgD,EAAE,CAACP,KAAK,CAACvC,GAAAA,CAAAA,CAAKsC,QAAQ,CAAC;gBAC5Bc,KAAO,EAAA;AACL,oBAAA,GAAGa,aAAapC,MAAM;AACtBqB,oBAAAA,UAAAA;oBACAqB,WAAa,EAAA;wBAAEuB,GAAK,EAAA;AAAK;AAC3B,iBAAA;gBACAC,MAAQ,EAAA;AAAC,oBAAA,IAAA;AAAM,oBAAA;AAAS;AAC1B,aAAA;AACD,SAAA,CAAA;;AAGD,QAAA,MAAMC,eAAkB,GAAA,MAAMC,IAA4B,CACxDjG,GACA,EAAA;YACEkG,WAAaR,EAAAA,eAAAA;YACbS,WAAaR,EAAAA;SAEf,EAAA;AACES,YAAAA,uBAAAA,EAAyBC,6BAAwC;AACnE,SAAA,CAAA;AAGF,QAAA,MAAMC,4BAA+B,GAAA,MAAMC,MAA2B,CAACvG,GAAK,EAAA;YAC1EkG,WAAaR,EAAAA,eAAAA;YACbS,WAAaR,EAAAA;AACf,SAAA,CAAA;;QAGA,MAAMnD,KAAAA,CAAMmB,GAAG,CAACgC,oBAAsB,EAAA,CAACa,QAAexE,OAAQ6B,CAAAA,MAAM,CAAC2C,KAAAA,CAAM1C,EAAE,CAAA,CAAA;;AAG7E,QAAA,MAAMuB,YAAe,GAAA,MAAM7C,KAAMmB,CAAAA,GAAG,CAAC+B,eAAAA,EAAiB,CAACe,KAAAA,GACrDC,0BAA2BD,CAAAA,KAAAA,EAAOzE,OAAQgD,CAAAA,MAAM,EAAE7E,WAAAA,CAAAA,CAAAA;;QAIpD,MAAMwG,gBAAAA,GAAmB,MAAMnE,KAAAA,CAAMmB,GAAG,CAAC0B,YAAc,EAAA,CAACoB,KACtDzE,GAAAA,OAAAA,CAAQmC,OAAO,CAACsC,KAAOxC,EAAAA,WAAAA,CAAAA,CAAAA;;QAIzB,MAAMgC,IAA4B,CAChC;AAAIN,YAAAA,GAAAA,oBAAAA;AAAyBN,YAAAA,GAAAA;AAAa,SAAA,EAC1CsB,gBACAX,EAAAA,eAAAA,CAAAA;QAGF,MAAMO,MAA2B,CAC/B;AAAIZ,YAAAA,GAAAA,oBAAAA;AAAyBN,YAAAA,GAAAA;AAAa,SAAA,EAC1CsB,gBACAL,EAAAA,4BAAAA,CAAAA;QAGFK,gBAAiB5C,CAAAA,OAAO,CAAC3B,SAAU,CAAA,eAAA,CAAA,CAAA;QAEnC,OAAO;AAAEc,YAAAA,UAAAA;YAAYlB,OAAS2E,EAAAA;AAAiB,SAAA;AACjD;IAEA,eAAeC,SAAAA,CAAU3D,IAAO,GAAA,EAAS,EAAA;AACvC,QAAA,MAAM,EAAEC,UAAU,EAAE,GAAGnC,QAAQ,GAAGkC,IAAAA;AAElC,QAAA,MAAMV,QAAQ,MAAMC,KAAAA,CAAMC,IAAI,CAC5B3B,cAAAA,EACA6B,kBAAkB,CAACxC,cACnBwC,wBAAwB,CAACxC,WACzB0C,CAAAA,EAAAA,sBAAAA,CAAuB7C,MACvB,CAACuC,KAAAA,GAAUY,MAAM,OAAS,EAAA;AAAE,gBAAA,GAAGZ,MAAMa,KAAK;AAAEF,gBAAAA,UAAAA;gBAAYqB,WAAa,EAAA;oBAAEuB,GAAK,EAAA;AAAK;AAAE,aAAA,EAAGvD,KACtFxB,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;;QAGF,MAAM8F,gBAAAA,GAAmB,MAAM/G,MAAOgD,CAAAA,EAAE,CAACP,KAAK,CAACvC,GAAKsC,CAAAA,CAAAA,QAAQ,CAACC,KAAAA,CAAAA;QAC7D,MAAMC,KAAAA,CAAMmB,GAAG,CAACkD,gBAAkB,EAAA,CAACL,QAAexE,OAAQ6B,CAAAA,MAAM,CAAC2C,KAAAA,CAAM1C,EAAE,CAAA,CAAA;QAEzE+C,gBAAiB9C,CAAAA,OAAO,CAAC3B,SAAU,CAAA,iBAAA,CAAA,CAAA;QACnC,OAAO;AAAEc,YAAAA,UAAAA;YAAYlB,OAAS6E,EAAAA;AAAiB,SAAA;AACjD;IAEA,eAAeC,YAAAA,CAAa7D,IAAO,GAAA,EAAS,EAAA;AAC1C,QAAA,MAAM,EAAEC,UAAU,EAAE,GAAGnC,QAAQ,GAAGkC,IAAAA;AAElC,QAAA,MAAMgB,WAAc,GAAA,MAAMzB,KAAMC,CAAAA,IAAI,CAClC3B,cAAAA,EACA6B,kBAAkB,CAACxC,WAAAA,CAAAA,EACnBwC,wBAAwB,CAACxC,WACzBY,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA;AAEF,QAAA,MAAM,CAACgG,eAAiBC,EAAAA,SAAAA,CAAU,GAAG,MAAMpB,OAAAA,CAAQC,GAAG,CAAC;AACrD/F,YAAAA,MAAAA,CAAOgD,EAAE,CAACP,KAAK,CAACvC,GAAAA,CAAAA,CAAKsC,QAAQ,CAAC;gBAC5Bc,KAAO,EAAA;AACL,oBAAA,GAAGa,aAAapC,MAAM;AACtBqB,oBAAAA,UAAAA;oBACAqB,WAAa,EAAA;wBAAEuB,GAAK,EAAA;AAAK;AAC3B,iBAAA;;AAEAjF,gBAAAA,QAAAA,EAAU4D,gBAAgBzE,GAAK,EAAA;oBAAE0E,gBAAkB,EAAA;AAAC,wBAAA,YAAA;AAAc,wBAAA;AAAS;AAAC,iBAAA;AAC9E,aAAA,CAAA;AACA5E,YAAAA,MAAAA,CAAOgD,EAAE,CAACP,KAAK,CAACvC,GAAAA,CAAAA,CAAKsC,QAAQ,CAAC;gBAC5Bc,KAAO,EAAA;AACL,oBAAA,GAAGa,aAAapC,MAAM;AACtBqB,oBAAAA,UAAAA;oBACAqB,WAAa,EAAA;AACf,iBAAA;gBACAwB,MAAQ,EAAA;AAAC,oBAAA,IAAA;AAAM,oBAAA;AAAS;AAC1B,aAAA;AACD,SAAA,CAAA;;AAGD,QAAA,MAAMC,eAAkB,GAAA,MAAMC,IAA4B,CACxDjG,GACA,EAAA;YACEkG,WAAaa,EAAAA,eAAAA;YACbZ,WAAaa,EAAAA;SAEf,EAAA;AACEZ,YAAAA,uBAAAA,EAAyBC,6BAAwC;AACnE,SAAA,CAAA;AAGF,QAAA,MAAMC,4BAA+B,GAAA,MAAMC,MAA2B,CAACvG,GAAK,EAAA;YAC1EkG,WAAaa,EAAAA,eAAAA;YACbZ,WAAaa,EAAAA;AACf,SAAA,CAAA;;QAGA,MAAMxE,KAAAA,CAAMmB,GAAG,CAACqD,SAAW,EAAA,CAACR,QAAexE,OAAQ6B,CAAAA,MAAM,CAAC2C,KAAAA,CAAM1C,EAAE,CAAA,CAAA;;QAGlE,MAAMmD,YAAAA,GAAe,MAAMzE,KAAAA,CAAMmB,GAAG,CAACoD,eAAiB,EAAA,CAACP,KACrDxE,GAAAA,OAAAA,CAAQ8E,YAAY,CAACN,KAAOvC,EAAAA,WAAAA,CAAAA,CAAAA;;QAI9B,MAAMgC,IAA4B,CAChC;AAAIe,YAAAA,GAAAA,SAAAA;AAAcD,YAAAA,GAAAA;AAAgB,SAAA,EAClCE,YACAjB,EAAAA,eAAAA,CAAAA;QAGF,MAAMO,MAA2B,CAC/B;AAAIS,YAAAA,GAAAA,SAAAA;AAAcD,YAAAA,GAAAA;AAAgB,SAAA,EAClCE,YACAX,EAAAA,4BAAAA,CAAAA;QAGFW,YAAalD,CAAAA,OAAO,CAAC3B,SAAU,CAAA,qBAAA,CAAA,CAAA;QAC/B,OAAO;AAAEc,YAAAA,UAAAA;YAAYlB,OAASiF,EAAAA;AAAa,SAAA;AAC7C;IAEA,eAAeC,kBAAAA,CAAiBV,KAAU,EAAE3B,IAAS,EAAA;AACnD,QAAA,OAAOwB,gBAA2B,CAACrG,GAAAA,EAAKwG,KAAO3B,EAAAA,IAAAA,CAAAA;AACjD;AAEA,IAAA,SAASsC,oBAAkBtC,IAAS,EAAA;QAClC,OAAOwB,iBAA4B,CAAClG,WAAa0E,EAAAA,IAAAA,CAAAA;AACnD;IAEA,OAAO;AACLvC,QAAAA,QAAAA,EAAU8E,iBAAkB9E,CAAAA,QAAAA,CAAAA;AAC5BS,QAAAA,SAAAA,EAAWqE,iBAAkBrE,CAAAA,SAAAA,CAAAA;AAC7BC,QAAAA,OAAAA,EAASoE,iBAAkBpE,CAAAA,OAAAA,CAAAA;AAC3Ba,QAAAA,MAAAA,EAAQuD,iBAAkB/D,CAAAA,cAAAA,CAAAA;AAC1BW,QAAAA,MAAAA,EAAQoD,iBAAkBpD,CAAAA,MAAAA,CAAAA;AAC1BK,QAAAA,KAAAA,EAAO+C,iBAAkB/C,CAAAA,KAAAA,CAAAA;AACzBW,QAAAA,MAAAA,EAAQoC,iBAAkBpC,CAAAA,MAAAA,CAAAA;AAC1BS,QAAAA,KAAAA,EAAO2B,iBAAkB3B,CAAAA,KAAAA,CAAAA;QACzBtB,OAAS/D,EAAAA,kBAAAA,GAAqBgH,kBAAkBjD,OAAYkD,CAAAA,GAAAA,SAAAA;QAC5DT,SAAWxG,EAAAA,kBAAAA,GAAqBgH,kBAAkBR,SAAcS,CAAAA,GAAAA,SAAAA;QAChEP,YAAc1G,EAAAA,kBAAAA,GAAqBgH,kBAAkBN,YAAiBO,CAAAA,GAAAA,SAAAA;AAEtEH,0BAAAA,kBAAAA;AACAC,2BAAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/data.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,aAAa,SAAgB,GAAG,QAAQ,GAAG,qDAcvD,CAAC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/transform/data.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,aAAa,SAAgB,GAAG,QAAQ,GAAG,qDAuBvD,CAAC"}
@@ -8,7 +8,14 @@ var defaultLocale = require('./relations/transform/default-locale.js');
8
8
  /**
9
9
  * Transforms input data, containing relation document ids, to entity ids.
10
10
  */ const transformData = async (data, opts)=>{
11
- const idMap$1 = idMap.createIdMap({
11
+ // Store cache on request state so repeated calls in one request can reuse it
12
+ const requestState = strapi.requestContext?.get?.()?.state;
13
+ if (requestState && !requestState.__documentServiceIdMap) {
14
+ requestState.__documentServiceIdMap = idMap.createIdMap({
15
+ strapi
16
+ });
17
+ }
18
+ const idMap$1 = requestState?.__documentServiceIdMap ?? idMap.createIdMap({
12
19
  strapi
13
20
  });
14
21
  // Assign default locales
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sources":["../../../../src/services/document-service/transform/data.ts"],"sourcesContent":["import { createIdMap } from './id-map';\nimport { extractDataIds as extractDataRelationIds } from './relations/extract/data-ids';\nimport { transformDataIdsVisitor as transformRelationDataIds } from './relations/transform/data-ids';\nimport { setDefaultLocaleToRelations } from './relations/transform/default-locale';\n\n/**\n * Transforms input data, containing relation document ids, to entity ids.\n */\nexport const transformData = async (data: any, opts: any) => {\n const idMap = createIdMap({ strapi });\n\n // Assign default locales\n const transformedData = await setDefaultLocaleToRelations(data, opts.uid);\n\n // Extract any relation ids from the input\n await extractDataRelationIds(idMap, transformedData, opts);\n\n // Load any relation the extract methods found\n await idMap.load();\n\n // Transform any relation ids to entity ids\n return transformRelationDataIds(idMap, transformedData, opts);\n};\n"],"names":["transformData","data","opts","idMap","createIdMap","strapi","transformedData","setDefaultLocaleToRelations","uid","extractDataRelationIds","load","transformRelationDataIds"],"mappings":";;;;;;;AAKA;;AAEC,IACM,MAAMA,aAAgB,GAAA,OAAOC,IAAWC,EAAAA,IAAAA,GAAAA;AAC7C,IAAA,MAAMC,UAAQC,iBAAY,CAAA;AAAEC,QAAAA;AAAO,KAAA,CAAA;;AAGnC,IAAA,MAAMC,eAAkB,GAAA,MAAMC,yCAA4BN,CAAAA,IAAAA,EAAMC,KAAKM,GAAG,CAAA;;IAGxE,MAAMC,sBAAAA,CAAuBN,SAAOG,eAAiBJ,EAAAA,IAAAA,CAAAA;;AAGrD,IAAA,MAAMC,QAAMO,IAAI,EAAA;;IAGhB,OAAOC,iCAAAA,CAAyBR,SAAOG,eAAiBJ,EAAAA,IAAAA,CAAAA;AAC1D;;;;"}
1
+ {"version":3,"file":"data.js","sources":["../../../../src/services/document-service/transform/data.ts"],"sourcesContent":["import { createIdMap } from './id-map';\nimport { extractDataIds as extractDataRelationIds } from './relations/extract/data-ids';\nimport { transformDataIdsVisitor as transformRelationDataIds } from './relations/transform/data-ids';\nimport { setDefaultLocaleToRelations } from './relations/transform/default-locale';\n\n/**\n * Transforms input data, containing relation document ids, to entity ids.\n */\nexport const transformData = async (data: any, opts: any) => {\n // Store cache on request state so repeated calls in one request can reuse it\n const requestState = strapi.requestContext?.get?.()?.state as\n | { __documentServiceIdMap?: ReturnType<typeof createIdMap> }\n | undefined;\n\n if (requestState && !requestState.__documentServiceIdMap) {\n requestState.__documentServiceIdMap = createIdMap({ strapi });\n }\n\n const idMap = requestState?.__documentServiceIdMap ?? createIdMap({ strapi });\n\n // Assign default locales\n const transformedData = await setDefaultLocaleToRelations(data, opts.uid);\n\n // Extract any relation ids from the input\n await extractDataRelationIds(idMap, transformedData, opts);\n\n // Load any relation the extract methods found\n await idMap.load();\n\n // Transform any relation ids to entity ids\n return transformRelationDataIds(idMap, transformedData, opts);\n};\n"],"names":["transformData","data","opts","requestState","strapi","requestContext","get","state","__documentServiceIdMap","createIdMap","idMap","transformedData","setDefaultLocaleToRelations","uid","extractDataRelationIds","load","transformRelationDataIds"],"mappings":";;;;;;;AAKA;;AAEC,IACM,MAAMA,aAAgB,GAAA,OAAOC,IAAWC,EAAAA,IAAAA,GAAAA;;AAE7C,IAAA,MAAMC,YAAeC,GAAAA,MAAAA,CAAOC,cAAc,EAAEC,GAASC,IAAAA,EAAAA,KAAAA;AAIrD,IAAA,IAAIJ,YAAgB,IAAA,CAACA,YAAaK,CAAAA,sBAAsB,EAAE;QACxDL,YAAaK,CAAAA,sBAAsB,GAAGC,iBAAY,CAAA;AAAEL,YAAAA;AAAO,SAAA,CAAA;AAC7D;IAEA,MAAMM,OAAAA,GAAQP,YAAcK,EAAAA,sBAAAA,IAA0BC,iBAAY,CAAA;AAAEL,QAAAA;AAAO,KAAA,CAAA;;AAG3E,IAAA,MAAMO,eAAkB,GAAA,MAAMC,yCAA4BX,CAAAA,IAAAA,EAAMC,KAAKW,GAAG,CAAA;;IAGxE,MAAMC,sBAAAA,CAAuBJ,SAAOC,eAAiBT,EAAAA,IAAAA,CAAAA;;AAGrD,IAAA,MAAMQ,QAAMK,IAAI,EAAA;;IAGhB,OAAOC,iCAAAA,CAAyBN,SAAOC,eAAiBT,EAAAA,IAAAA,CAAAA;AAC1D;;;;"}
@@ -6,7 +6,14 @@ import { setDefaultLocaleToRelations } from './relations/transform/default-local
6
6
  /**
7
7
  * Transforms input data, containing relation document ids, to entity ids.
8
8
  */ const transformData = async (data, opts)=>{
9
- const idMap = createIdMap({
9
+ // Store cache on request state so repeated calls in one request can reuse it
10
+ const requestState = strapi.requestContext?.get?.()?.state;
11
+ if (requestState && !requestState.__documentServiceIdMap) {
12
+ requestState.__documentServiceIdMap = createIdMap({
13
+ strapi
14
+ });
15
+ }
16
+ const idMap = requestState?.__documentServiceIdMap ?? createIdMap({
10
17
  strapi
11
18
  });
12
19
  // Assign default locales
@@ -1 +1 @@
1
- {"version":3,"file":"data.mjs","sources":["../../../../src/services/document-service/transform/data.ts"],"sourcesContent":["import { createIdMap } from './id-map';\nimport { extractDataIds as extractDataRelationIds } from './relations/extract/data-ids';\nimport { transformDataIdsVisitor as transformRelationDataIds } from './relations/transform/data-ids';\nimport { setDefaultLocaleToRelations } from './relations/transform/default-locale';\n\n/**\n * Transforms input data, containing relation document ids, to entity ids.\n */\nexport const transformData = async (data: any, opts: any) => {\n const idMap = createIdMap({ strapi });\n\n // Assign default locales\n const transformedData = await setDefaultLocaleToRelations(data, opts.uid);\n\n // Extract any relation ids from the input\n await extractDataRelationIds(idMap, transformedData, opts);\n\n // Load any relation the extract methods found\n await idMap.load();\n\n // Transform any relation ids to entity ids\n return transformRelationDataIds(idMap, transformedData, opts);\n};\n"],"names":["transformData","data","opts","idMap","createIdMap","strapi","transformedData","setDefaultLocaleToRelations","uid","extractDataRelationIds","load","transformRelationDataIds"],"mappings":";;;;;AAKA;;AAEC,IACM,MAAMA,aAAgB,GAAA,OAAOC,IAAWC,EAAAA,IAAAA,GAAAA;AAC7C,IAAA,MAAMC,QAAQC,WAAY,CAAA;AAAEC,QAAAA;AAAO,KAAA,CAAA;;AAGnC,IAAA,MAAMC,eAAkB,GAAA,MAAMC,2BAA4BN,CAAAA,IAAAA,EAAMC,KAAKM,GAAG,CAAA;;IAGxE,MAAMC,cAAAA,CAAuBN,OAAOG,eAAiBJ,EAAAA,IAAAA,CAAAA;;AAGrD,IAAA,MAAMC,MAAMO,IAAI,EAAA;;IAGhB,OAAOC,uBAAAA,CAAyBR,OAAOG,eAAiBJ,EAAAA,IAAAA,CAAAA;AAC1D;;;;"}
1
+ {"version":3,"file":"data.mjs","sources":["../../../../src/services/document-service/transform/data.ts"],"sourcesContent":["import { createIdMap } from './id-map';\nimport { extractDataIds as extractDataRelationIds } from './relations/extract/data-ids';\nimport { transformDataIdsVisitor as transformRelationDataIds } from './relations/transform/data-ids';\nimport { setDefaultLocaleToRelations } from './relations/transform/default-locale';\n\n/**\n * Transforms input data, containing relation document ids, to entity ids.\n */\nexport const transformData = async (data: any, opts: any) => {\n // Store cache on request state so repeated calls in one request can reuse it\n const requestState = strapi.requestContext?.get?.()?.state as\n | { __documentServiceIdMap?: ReturnType<typeof createIdMap> }\n | undefined;\n\n if (requestState && !requestState.__documentServiceIdMap) {\n requestState.__documentServiceIdMap = createIdMap({ strapi });\n }\n\n const idMap = requestState?.__documentServiceIdMap ?? createIdMap({ strapi });\n\n // Assign default locales\n const transformedData = await setDefaultLocaleToRelations(data, opts.uid);\n\n // Extract any relation ids from the input\n await extractDataRelationIds(idMap, transformedData, opts);\n\n // Load any relation the extract methods found\n await idMap.load();\n\n // Transform any relation ids to entity ids\n return transformRelationDataIds(idMap, transformedData, opts);\n};\n"],"names":["transformData","data","opts","requestState","strapi","requestContext","get","state","__documentServiceIdMap","createIdMap","idMap","transformedData","setDefaultLocaleToRelations","uid","extractDataRelationIds","load","transformRelationDataIds"],"mappings":";;;;;AAKA;;AAEC,IACM,MAAMA,aAAgB,GAAA,OAAOC,IAAWC,EAAAA,IAAAA,GAAAA;;AAE7C,IAAA,MAAMC,YAAeC,GAAAA,MAAAA,CAAOC,cAAc,EAAEC,GAASC,IAAAA,EAAAA,KAAAA;AAIrD,IAAA,IAAIJ,YAAgB,IAAA,CAACA,YAAaK,CAAAA,sBAAsB,EAAE;QACxDL,YAAaK,CAAAA,sBAAsB,GAAGC,WAAY,CAAA;AAAEL,YAAAA;AAAO,SAAA,CAAA;AAC7D;IAEA,MAAMM,KAAAA,GAAQP,YAAcK,EAAAA,sBAAAA,IAA0BC,WAAY,CAAA;AAAEL,QAAAA;AAAO,KAAA,CAAA;;AAG3E,IAAA,MAAMO,eAAkB,GAAA,MAAMC,2BAA4BX,CAAAA,IAAAA,EAAMC,KAAKW,GAAG,CAAA;;IAGxE,MAAMC,cAAAA,CAAuBJ,OAAOC,eAAiBT,EAAAA,IAAAA,CAAAA;;AAGrD,IAAA,MAAMQ,MAAMK,IAAI,EAAA;;IAGhB,OAAOC,uBAAAA,CAAyBN,OAAOC,eAAiBT,EAAAA,IAAAA,CAAAA;AAC1D;;;;"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Run tasks together but keep the same error order.
3
+ */
4
+ export declare const runParallelWithOrderedErrors: <T>(promises: Promise<T>[]) => Promise<T[]>;
5
+ //# sourceMappingURL=ordered-parallel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordered-parallel.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/utils/ordered-parallel.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,4BAA4B,gBAAuB,QAAQ,CAAC,CAAC,EAAE,KAAG,QAAQ,CAAC,EAAE,CAYzF,CAAC"}
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Run tasks together but keep the same error order.
5
+ */ const runParallelWithOrderedErrors = async (promises)=>{
6
+ const results = await Promise.allSettled(promises);
7
+ // Throw first error in array index order (matches sequential behavior)
8
+ for(let i = 0; i < results.length; i += 1){
9
+ const result = results[i];
10
+ if (result.status === 'rejected') {
11
+ throw result.reason;
12
+ }
13
+ }
14
+ return results.map((r)=>r.value);
15
+ };
16
+
17
+ exports.runParallelWithOrderedErrors = runParallelWithOrderedErrors;
18
+ //# sourceMappingURL=ordered-parallel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordered-parallel.js","sources":["../../../../src/services/document-service/utils/ordered-parallel.ts"],"sourcesContent":["/**\n * Run tasks together but keep the same error order.\n */\nexport const runParallelWithOrderedErrors = async <T>(promises: Promise<T>[]): Promise<T[]> => {\n const results = await Promise.allSettled(promises);\n\n // Throw first error in array index order (matches sequential behavior)\n for (let i = 0; i < results.length; i += 1) {\n const result = results[i];\n if (result.status === 'rejected') {\n throw result.reason;\n }\n }\n\n return results.map((r) => (r as PromiseFulfilledResult<T>).value);\n};\n"],"names":["runParallelWithOrderedErrors","promises","results","Promise","allSettled","i","length","result","status","reason","map","r","value"],"mappings":";;AAAA;;IAGaA,MAAAA,4BAAAA,GAA+B,OAAUC,QAAAA,GAAAA;AACpD,IAAA,MAAMC,OAAU,GAAA,MAAMC,OAAQC,CAAAA,UAAU,CAACH,QAAAA,CAAAA;;IAGzC,IAAK,IAAII,IAAI,CAAGA,EAAAA,CAAAA,GAAIH,QAAQI,MAAM,EAAED,KAAK,CAAG,CAAA;QAC1C,MAAME,MAAAA,GAASL,OAAO,CAACG,CAAE,CAAA;QACzB,IAAIE,MAAAA,CAAOC,MAAM,KAAK,UAAY,EAAA;AAChC,YAAA,MAAMD,OAAOE,MAAM;AACrB;AACF;AAEA,IAAA,OAAOP,QAAQQ,GAAG,CAAC,CAACC,CAAM,GAACA,EAAgCC,KAAK,CAAA;AAClE;;;;"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Run tasks together but keep the same error order.
3
+ */ const runParallelWithOrderedErrors = async (promises)=>{
4
+ const results = await Promise.allSettled(promises);
5
+ // Throw first error in array index order (matches sequential behavior)
6
+ for(let i = 0; i < results.length; i += 1){
7
+ const result = results[i];
8
+ if (result.status === 'rejected') {
9
+ throw result.reason;
10
+ }
11
+ }
12
+ return results.map((r)=>r.value);
13
+ };
14
+
15
+ export { runParallelWithOrderedErrors };
16
+ //# sourceMappingURL=ordered-parallel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordered-parallel.mjs","sources":["../../../../src/services/document-service/utils/ordered-parallel.ts"],"sourcesContent":["/**\n * Run tasks together but keep the same error order.\n */\nexport const runParallelWithOrderedErrors = async <T>(promises: Promise<T>[]): Promise<T[]> => {\n const results = await Promise.allSettled(promises);\n\n // Throw first error in array index order (matches sequential behavior)\n for (let i = 0; i < results.length; i += 1) {\n const result = results[i];\n if (result.status === 'rejected') {\n throw result.reason;\n }\n }\n\n return results.map((r) => (r as PromiseFulfilledResult<T>).value);\n};\n"],"names":["runParallelWithOrderedErrors","promises","results","Promise","allSettled","i","length","result","status","reason","map","r","value"],"mappings":"AAAA;;IAGaA,MAAAA,4BAAAA,GAA+B,OAAUC,QAAAA,GAAAA;AACpD,IAAA,MAAMC,OAAU,GAAA,MAAMC,OAAQC,CAAAA,UAAU,CAACH,QAAAA,CAAAA;;IAGzC,IAAK,IAAII,IAAI,CAAGA,EAAAA,CAAAA,GAAIH,QAAQI,MAAM,EAAED,KAAK,CAAG,CAAA;QAC1C,MAAME,MAAAA,GAASL,OAAO,CAACG,CAAE,CAAA;QACzB,IAAIE,MAAAA,CAAOC,MAAM,KAAK,UAAY,EAAA;AAChC,YAAA,MAAMD,OAAOE,MAAM;AACrB;AACF;AAEA,IAAA,OAAOP,QAAQQ,GAAG,CAAC,CAACC,CAAM,GAACA,EAAgCC,KAAK,CAAA;AAClE;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/core",
3
- "version": "5.33.4",
3
+ "version": "5.35.0",
4
4
  "description": "Core of Strapi",
5
5
  "homepage": "https://strapi.io",
6
6
  "bugs": {
@@ -56,14 +56,14 @@
56
56
  "@koa/cors": "5.0.0",
57
57
  "@koa/router": "12.0.2",
58
58
  "@paralleldrive/cuid2": "2.2.2",
59
- "@strapi/admin": "5.33.4",
60
- "@strapi/database": "5.33.4",
61
- "@strapi/generators": "5.33.4",
62
- "@strapi/logger": "5.33.4",
63
- "@strapi/permissions": "5.33.4",
64
- "@strapi/types": "5.33.4",
65
- "@strapi/typescript-utils": "5.33.4",
66
- "@strapi/utils": "5.33.4",
59
+ "@strapi/admin": "5.35.0",
60
+ "@strapi/database": "5.35.0",
61
+ "@strapi/generators": "5.35.0",
62
+ "@strapi/logger": "5.35.0",
63
+ "@strapi/permissions": "5.35.0",
64
+ "@strapi/types": "5.35.0",
65
+ "@strapi/typescript-utils": "5.35.0",
66
+ "@strapi/utils": "5.35.0",
67
67
  "@vercel/stega": "0.1.2",
68
68
  "bcryptjs": "2.4.3",
69
69
  "boxen": "5.1.2",
@@ -131,9 +131,9 @@
131
131
  "@types/node": "24.10.0",
132
132
  "@types/node-schedule": "2.1.7",
133
133
  "@types/statuses": "2.0.1",
134
- "eslint-config-custom": "5.33.4",
134
+ "eslint-config-custom": "5.35.0",
135
135
  "supertest": "6.3.3",
136
- "tsconfig": "5.33.4"
136
+ "tsconfig": "5.35.0"
137
137
  },
138
138
  "engines": {
139
139
  "node": ">=20.0.0 <=24.x.x",