@strapi/core 5.51.1 → 5.51.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +12 -6
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +12 -6
  5. package/dist/Strapi.mjs.map +1 -1
  6. package/dist/compile.js +1 -1
  7. package/dist/compile.js.map +1 -1
  8. package/dist/compile.mjs +1 -1
  9. package/dist/compile.mjs.map +1 -1
  10. package/dist/configuration/urls.js +2 -2
  11. package/dist/configuration/urls.js.map +1 -1
  12. package/dist/configuration/urls.mjs +2 -2
  13. package/dist/configuration/urls.mjs.map +1 -1
  14. package/dist/ee/index.js +2 -2
  15. package/dist/ee/index.js.map +1 -1
  16. package/dist/ee/index.mjs +2 -2
  17. package/dist/ee/index.mjs.map +1 -1
  18. package/dist/index.d.ts +0 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/loaders/apis.d.ts.map +1 -1
  23. package/dist/loaders/apis.js +3 -1
  24. package/dist/loaders/apis.js.map +1 -1
  25. package/dist/loaders/apis.mjs +3 -1
  26. package/dist/loaders/apis.mjs.map +1 -1
  27. package/dist/loaders/plugins/get-enabled-plugins.js +1 -1
  28. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  29. package/dist/loaders/plugins/get-enabled-plugins.mjs +1 -1
  30. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  31. package/dist/loaders/plugins/index.js +2 -2
  32. package/dist/loaders/plugins/index.js.map +1 -1
  33. package/dist/loaders/plugins/index.mjs +2 -2
  34. package/dist/loaders/plugins/index.mjs.map +1 -1
  35. package/dist/migrations/database/5.0.0-discard-drafts.js +9 -9
  36. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  37. package/dist/migrations/database/5.0.0-discard-drafts.mjs +9 -9
  38. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  39. package/dist/package.json.js +14 -14
  40. package/dist/package.json.mjs +14 -14
  41. package/dist/services/content-api/index.js +1 -1
  42. package/dist/services/content-api/index.js.map +1 -1
  43. package/dist/services/content-api/index.mjs +1 -1
  44. package/dist/services/content-api/index.mjs.map +1 -1
  45. package/dist/services/content-api/permissions/engine.d.ts +3 -3
  46. package/dist/services/content-api/permissions/engine.d.ts.map +1 -1
  47. package/dist/services/content-api/permissions/engine.js +1 -5
  48. package/dist/services/content-api/permissions/engine.js.map +1 -1
  49. package/dist/services/content-api/permissions/engine.mjs +2 -2
  50. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  51. package/dist/services/core-store.js +1 -1
  52. package/dist/services/core-store.js.map +1 -1
  53. package/dist/services/core-store.mjs +1 -1
  54. package/dist/services/core-store.mjs.map +1 -1
  55. package/dist/services/document-service/repository.js +2 -2
  56. package/dist/services/document-service/repository.js.map +1 -1
  57. package/dist/services/document-service/repository.mjs +2 -2
  58. package/dist/services/document-service/repository.mjs.map +1 -1
  59. package/dist/services/document-service/utils/clean-component-join-table.js +2 -2
  60. package/dist/services/document-service/utils/clean-component-join-table.js.map +1 -1
  61. package/dist/services/document-service/utils/clean-component-join-table.mjs +2 -2
  62. package/dist/services/document-service/utils/clean-component-join-table.mjs.map +1 -1
  63. package/dist/services/document-service/utils/clone-relations.js +1 -1
  64. package/dist/services/document-service/utils/clone-relations.js.map +1 -1
  65. package/dist/services/document-service/utils/clone-relations.mjs +1 -1
  66. package/dist/services/document-service/utils/clone-relations.mjs.map +1 -1
  67. package/dist/services/entity-validator/blocks-validator.js +1 -1
  68. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  69. package/dist/services/entity-validator/blocks-validator.mjs +1 -1
  70. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  71. package/dist/services/entity-validator/index.js +23 -5
  72. package/dist/services/entity-validator/index.js.map +1 -1
  73. package/dist/services/entity-validator/index.mjs +1 -1
  74. package/dist/services/entity-validator/index.mjs.map +1 -1
  75. package/dist/services/metrics/sender.js +1 -1
  76. package/dist/services/metrics/sender.js.map +1 -1
  77. package/dist/services/metrics/sender.mjs +1 -1
  78. package/dist/services/metrics/sender.mjs.map +1 -1
  79. package/dist/services/server/koa-methods.d.ts +6 -0
  80. package/dist/services/server/koa-methods.d.ts.map +1 -1
  81. package/dist/services/server/koa-methods.js.map +1 -1
  82. package/dist/services/server/koa-methods.mjs.map +1 -1
  83. package/dist/services/server/middleware.js +1 -1
  84. package/dist/services/server/middleware.js.map +1 -1
  85. package/dist/services/server/middleware.mjs +1 -1
  86. package/dist/services/server/middleware.mjs.map +1 -1
  87. package/dist/services/server/register-middlewares.js +1 -1
  88. package/dist/services/server/register-middlewares.js.map +1 -1
  89. package/dist/services/server/register-middlewares.mjs +1 -1
  90. package/dist/services/server/register-middlewares.mjs.map +1 -1
  91. package/dist/services/server/routing.js +1 -1
  92. package/dist/services/server/routing.js.map +1 -1
  93. package/dist/services/server/routing.mjs +1 -1
  94. package/dist/services/server/routing.mjs.map +1 -1
  95. package/dist/services/session-manager.d.ts.map +1 -1
  96. package/dist/services/session-manager.js +5 -5
  97. package/dist/services/session-manager.js.map +1 -1
  98. package/dist/services/session-manager.mjs +5 -5
  99. package/dist/services/session-manager.mjs.map +1 -1
  100. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"get-enabled-plugins.mjs","sources":["../../../src/loaders/plugins/get-enabled-plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport { dirname, join, resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport _ from 'lodash';\nimport { get, pickBy, defaultsDeep, map, prop, pipe } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\n\ninterface PluginMeta {\n enabled: boolean;\n pathToPlugin?: string;\n info: Record<string, unknown>;\n packageInfo?: Record<string, unknown>;\n}\n\ntype PluginMetas = Record<string, PluginMeta>;\n\ninterface PluginInfo {\n name: string;\n kind: string;\n}\n\ninterface PluginDeclaration {\n enabled: boolean;\n resolve: string;\n isModule: boolean;\n}\n\n/**\n * otherwise known as \"core features\"\n *\n * NOTE: These are excluded from the content manager plugin list, as they are always enabled.\n * See admin.ts server controller on the content-manager plugin for more details.\n */\nconst INTERNAL_PLUGINS = [\n '@strapi/content-manager',\n '@strapi/content-type-builder',\n '@strapi/email',\n '@strapi/upload',\n '@strapi/i18n',\n '@strapi/content-releases',\n '@strapi/review-workflows',\n];\n\nconst isStrapiPlugin = (info: PluginInfo) => get('strapi.kind', info) === 'plugin';\n\nconst validatePluginName = (pluginName: string) => {\n if (!strings.isKebabCase(pluginName)) {\n throw new Error(`Plugin name \"${pluginName}\" is not in kebab (an-example-of-kebab-case)`);\n }\n};\n\nconst toDetailedDeclaration = (declaration: boolean | PluginDeclaration) => {\n if (typeof declaration === 'boolean') {\n return { enabled: declaration };\n }\n\n const detailedDeclaration: { enabled: boolean; pathToPlugin?: string } = {\n enabled: declaration.enabled,\n };\n\n if (declaration?.resolve) {\n let pathToPlugin = '';\n\n if (declaration.isModule) {\n /**\n * we only want the node_module here, not the package.json\n */\n pathToPlugin = join(declaration.resolve, '..');\n } else {\n try {\n pathToPlugin = dirname(require.resolve(declaration.resolve));\n } catch (e) {\n pathToPlugin = resolve(strapi.dirs.app.root, declaration.resolve);\n\n if (!existsSync(pathToPlugin) || !statSync(pathToPlugin).isDirectory()) {\n throw new Error(`${declaration.resolve} couldn't be resolved`);\n }\n }\n }\n\n detailedDeclaration.pathToPlugin = pathToPlugin;\n }\n\n return detailedDeclaration;\n};\n\nexport const getEnabledPlugins = async (strapi: Core.Strapi, { client } = { client: false }) => {\n const internalPlugins: PluginMetas = {};\n\n for (const dep of INTERNAL_PLUGINS) {\n const packagePath = join(dep, 'package.json');\n\n // NOTE: internal plugins should be resolved from the strapi package\n const packageModulePath = require.resolve(packagePath, {\n paths: [require.resolve('@strapi/strapi/package.json'), process.cwd()],\n });\n\n const packageInfo = require(packageModulePath);\n\n validatePluginName(packageInfo.strapi.name);\n internalPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packageModulePath, isModule: client }),\n info: packageInfo.strapi,\n packageInfo,\n };\n }\n\n const installedPlugins: PluginMetas = {};\n const dependencies = strapi.config.get('info.dependencies', {});\n\n for (const dep of Object.keys(dependencies)) {\n const packagePath = join(dep, 'package.json');\n let packageInfo;\n try {\n packageInfo = require(packagePath);\n } catch {\n continue;\n }\n\n if (isStrapiPlugin(packageInfo)) {\n validatePluginName(packageInfo.strapi.name);\n installedPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: {\n ...packageInfo.strapi,\n packageName: packageInfo.name,\n },\n packageInfo,\n };\n }\n }\n\n const declaredPlugins: PluginMetas = {};\n const userPluginsConfig = await getUserPluginsConfig();\n\n _.forEach(userPluginsConfig, (declaration, pluginName) => {\n validatePluginName(pluginName);\n\n declaredPlugins[pluginName] = {\n ...toDetailedDeclaration(declaration),\n info: {},\n };\n\n const { pathToPlugin } = declaredPlugins[pluginName];\n\n // for manually resolved plugins\n if (pathToPlugin) {\n const packagePath = join(pathToPlugin, 'package.json');\n const packageInfo = require(packagePath);\n\n if (isStrapiPlugin(packageInfo)) {\n declaredPlugins[pluginName].info = packageInfo.strapi || {};\n declaredPlugins[pluginName].packageInfo = packageInfo;\n }\n }\n });\n\n const declaredPluginsResolves = map(prop('pathToPlugin'), declaredPlugins);\n const installedPluginsNotAlreadyUsed = pickBy(\n (p) => !declaredPluginsResolves.includes(p.pathToPlugin),\n installedPlugins\n );\n\n const enabledPlugins = pipe(\n defaultsDeep(declaredPlugins),\n defaultsDeep(installedPluginsNotAlreadyUsed),\n pickBy((p: PluginMeta) => p.enabled)\n )(internalPlugins);\n\n return enabledPlugins;\n};\n"],"names":["INTERNAL_PLUGINS","isStrapiPlugin","info","get","validatePluginName","pluginName","strings","isKebabCase","Error","toDetailedDeclaration","declaration","enabled","detailedDeclaration","resolve","pathToPlugin","isModule","join","dirname","require","e","strapi","dirs","app","root","existsSync","statSync","isDirectory","getEnabledPlugins","client","internalPlugins","dep","packagePath","packageModulePath","paths","process","cwd","packageInfo","name","installedPlugins","dependencies","config","Object","keys","packageName","declaredPlugins","userPluginsConfig","getUserPluginsConfig","_","forEach","declaredPluginsResolves","map","prop","installedPluginsNotAlreadyUsed","pickBy","p","includes","enabledPlugins","pipe","defaultsDeep"],"mappings":"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"}
1
+ {"version":3,"file":"get-enabled-plugins.mjs","sources":["../../../src/loaders/plugins/get-enabled-plugins.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport { dirname, join, resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport _ from 'lodash';\nimport { get, pickBy, defaultsDeep, map, prop, pipe } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\n\ninterface PluginMeta {\n enabled: boolean;\n pathToPlugin?: string;\n info: Record<string, unknown>;\n packageInfo?: Record<string, unknown>;\n}\n\ntype PluginMetas = Record<string, PluginMeta>;\n\ninterface PluginInfo {\n name: string;\n kind: string;\n}\n\ninterface PluginDeclaration {\n enabled: boolean;\n resolve: string;\n isModule: boolean;\n}\n\n/**\n * otherwise known as \"core features\"\n *\n * NOTE: These are excluded from the content manager plugin list, as they are always enabled.\n * See admin.ts server controller on the content-manager plugin for more details.\n */\nconst INTERNAL_PLUGINS = [\n '@strapi/content-manager',\n '@strapi/content-type-builder',\n '@strapi/email',\n '@strapi/upload',\n '@strapi/i18n',\n '@strapi/content-releases',\n '@strapi/review-workflows',\n];\n\nconst isStrapiPlugin = (info: PluginInfo) => get('strapi.kind', info) === 'plugin';\n\nconst validatePluginName = (pluginName: string) => {\n if (!strings.isKebabCase(pluginName)) {\n throw new Error(`Plugin name \"${pluginName}\" is not in kebab (an-example-of-kebab-case)`);\n }\n};\n\nconst toDetailedDeclaration = (declaration: boolean | PluginDeclaration) => {\n if (typeof declaration === 'boolean') {\n return { enabled: declaration };\n }\n\n const detailedDeclaration: { enabled: boolean; pathToPlugin?: string } = {\n enabled: declaration.enabled,\n };\n\n if (declaration?.resolve) {\n let pathToPlugin = '';\n\n if (declaration.isModule) {\n /**\n * we only want the node_module here, not the package.json\n */\n pathToPlugin = join(declaration.resolve, '..');\n } else {\n try {\n pathToPlugin = dirname(require.resolve(declaration.resolve));\n } catch {\n pathToPlugin = resolve(strapi.dirs.app.root, declaration.resolve);\n\n if (!existsSync(pathToPlugin) || !statSync(pathToPlugin).isDirectory()) {\n throw new Error(`${declaration.resolve} couldn't be resolved`);\n }\n }\n }\n\n detailedDeclaration.pathToPlugin = pathToPlugin;\n }\n\n return detailedDeclaration;\n};\n\nexport const getEnabledPlugins = async (strapi: Core.Strapi, { client } = { client: false }) => {\n const internalPlugins: PluginMetas = {};\n\n for (const dep of INTERNAL_PLUGINS) {\n const packagePath = join(dep, 'package.json');\n\n // NOTE: internal plugins should be resolved from the strapi package\n const packageModulePath = require.resolve(packagePath, {\n paths: [require.resolve('@strapi/strapi/package.json'), process.cwd()],\n });\n\n const packageInfo = require(packageModulePath);\n\n validatePluginName(packageInfo.strapi.name);\n internalPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packageModulePath, isModule: client }),\n info: packageInfo.strapi,\n packageInfo,\n };\n }\n\n const installedPlugins: PluginMetas = {};\n const dependencies = strapi.config.get('info.dependencies', {});\n\n for (const dep of Object.keys(dependencies)) {\n const packagePath = join(dep, 'package.json');\n let packageInfo;\n try {\n packageInfo = require(packagePath);\n } catch {\n continue;\n }\n\n if (isStrapiPlugin(packageInfo)) {\n validatePluginName(packageInfo.strapi.name);\n installedPlugins[packageInfo.strapi.name] = {\n ...toDetailedDeclaration({ enabled: true, resolve: packagePath, isModule: client }),\n info: {\n ...packageInfo.strapi,\n packageName: packageInfo.name,\n },\n packageInfo,\n };\n }\n }\n\n const declaredPlugins: PluginMetas = {};\n const userPluginsConfig = await getUserPluginsConfig();\n\n _.forEach(userPluginsConfig, (declaration, pluginName) => {\n validatePluginName(pluginName);\n\n declaredPlugins[pluginName] = {\n ...toDetailedDeclaration(declaration),\n info: {},\n };\n\n const { pathToPlugin } = declaredPlugins[pluginName];\n\n // for manually resolved plugins\n if (pathToPlugin) {\n const packagePath = join(pathToPlugin, 'package.json');\n const packageInfo = require(packagePath);\n\n if (isStrapiPlugin(packageInfo)) {\n declaredPlugins[pluginName].info = packageInfo.strapi || {};\n declaredPlugins[pluginName].packageInfo = packageInfo;\n }\n }\n });\n\n const declaredPluginsResolves = map(prop('pathToPlugin'), declaredPlugins);\n const installedPluginsNotAlreadyUsed = pickBy(\n (p) => !declaredPluginsResolves.includes(p.pathToPlugin),\n installedPlugins\n );\n\n const enabledPlugins = pipe(\n defaultsDeep(declaredPlugins),\n defaultsDeep(installedPluginsNotAlreadyUsed),\n pickBy((p: PluginMeta) => p.enabled)\n )(internalPlugins);\n\n return enabledPlugins;\n};\n"],"names":["INTERNAL_PLUGINS","isStrapiPlugin","info","get","validatePluginName","pluginName","strings","isKebabCase","Error","toDetailedDeclaration","declaration","enabled","detailedDeclaration","resolve","pathToPlugin","isModule","join","dirname","require","strapi","dirs","app","root","existsSync","statSync","isDirectory","getEnabledPlugins","client","internalPlugins","dep","packagePath","packageModulePath","paths","process","cwd","packageInfo","name","installedPlugins","dependencies","config","Object","keys","packageName","declaredPlugins","userPluginsConfig","getUserPluginsConfig","_","forEach","declaredPluginsResolves","map","prop","installedPluginsNotAlreadyUsed","pickBy","p","includes","enabledPlugins","pipe","defaultsDeep"],"mappings":"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"}
@@ -125,12 +125,12 @@ async function loadPlugins(strapi1) {
125
125
  resolvedExport = (resolve__namespace.exports(enabledPlugin.packageInfo, 'strapi-server', {
126
126
  require: true
127
127
  }) ?? './strapi-server.js').toString();
128
- } catch (e) {
128
+ } catch {
129
129
  // no export map or missing strapi-server export => fallback to default
130
130
  }
131
131
  try {
132
132
  serverEntrypointPath = path.join(enabledPlugin.pathToPlugin, resolvedExport);
133
- } catch (e) {
133
+ } catch {
134
134
  throw new Error(`Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove its configuration.`);
135
135
  }
136
136
  // only load plugins with a server entrypoint
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport * as resolve from 'resolve.exports';\n\nimport { env } from '@strapi/utils';\nimport type { Core, Plugin, Struct } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n const extendedContentTypes = get([pluginName, 'content-types'], extendedSchemas) ?? {};\n for (const ctName of Object.keys(extendedContentTypes)) {\n const extendedSchema = get([ctName, 'schema'], extendedContentTypes);\n if (!extendedSchema) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!plugin.contentTypes[ctName]) {\n plugin.contentTypes[ctName] = { schema: extendedSchema };\n } else {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n\n formatContentTypes(pluginName, plugin.contentTypes);\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Core.Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n let resolvedExport = './strapi-server.js';\n\n try {\n resolvedExport = (\n resolve.exports(enabledPlugin.packageInfo, 'strapi-server', {\n require: true,\n }) ?? './strapi-server.js'\n ).toString();\n } catch (e) {\n // no export map or missing strapi-server export => fallback to default\n }\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, resolvedExport);\n } catch (e) {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove its configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["defaultPlugin","bootstrap","destroy","register","config","default","validator","routes","controllers","services","policies","middlewares","contentTypes","applyUserExtension","plugins","extensionsDir","strapi","dirs","dist","extensions","fse","pathExists","extendedSchemas","loadFiles","strapiServers","pluginName","Object","keys","plugin","extendedContentTypes","get","ctName","extendedSchema","schema","formatContentTypes","strapiServer","applyUserConfig","userPluginsConfig","getUserPluginsConfig","userPluginConfig","getOr","defaultConfig","env","defaultsDeep","e","Error","message","loadPlugins","enabledPlugins","getEnabledPlugins","set","enabledPlugin","serverEntrypointPath","resolvedExport","resolve","exports","packageInfo","require","toString","join","pathToPlugin","pluginServer","loadConfigFile","defaults","add","values","forEach","definition","assign","collectionName","info","singularName","toLowerCase","globalId","getGlobalId"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport * as resolve from 'resolve.exports';\n\nimport { env } from '@strapi/utils';\nimport type { Core, Plugin, Struct } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n const extendedContentTypes = get([pluginName, 'content-types'], extendedSchemas) ?? {};\n for (const ctName of Object.keys(extendedContentTypes)) {\n const extendedSchema = get([ctName, 'schema'], extendedContentTypes);\n if (!extendedSchema) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!plugin.contentTypes[ctName]) {\n plugin.contentTypes[ctName] = { schema: extendedSchema };\n } else {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n\n formatContentTypes(pluginName, plugin.contentTypes);\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Core.Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n let resolvedExport = './strapi-server.js';\n\n try {\n resolvedExport = (\n resolve.exports(enabledPlugin.packageInfo, 'strapi-server', {\n require: true,\n }) ?? './strapi-server.js'\n ).toString();\n } catch {\n // no export map or missing strapi-server export => fallback to default\n }\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, resolvedExport);\n } catch {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove its configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["defaultPlugin","bootstrap","destroy","register","config","default","validator","routes","controllers","services","policies","middlewares","contentTypes","applyUserExtension","plugins","extensionsDir","strapi","dirs","dist","extensions","fse","pathExists","extendedSchemas","loadFiles","strapiServers","pluginName","Object","keys","plugin","extendedContentTypes","get","ctName","extendedSchema","schema","formatContentTypes","strapiServer","applyUserConfig","userPluginsConfig","getUserPluginsConfig","userPluginConfig","getOr","defaultConfig","env","defaultsDeep","e","Error","message","loadPlugins","enabledPlugins","getEnabledPlugins","set","enabledPlugin","serverEntrypointPath","resolvedExport","resolve","exports","packageInfo","require","toString","join","pathToPlugin","pluginServer","loadConfigFile","defaults","add","values","forEach","definition","assign","collectionName","info","singularName","toLowerCase","globalId","getGlobalId"],"mappings":"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"}
@@ -100,12 +100,12 @@ async function loadPlugins(strapi1) {
100
100
  resolvedExport = (resolve.exports(enabledPlugin.packageInfo, 'strapi-server', {
101
101
  require: true
102
102
  }) ?? './strapi-server.js').toString();
103
- } catch (e) {
103
+ } catch {
104
104
  // no export map or missing strapi-server export => fallback to default
105
105
  }
106
106
  try {
107
107
  serverEntrypointPath = join(enabledPlugin.pathToPlugin, resolvedExport);
108
- } catch (e) {
108
+ } catch {
109
109
  throw new Error(`Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove its configuration.`);
110
110
  }
111
111
  // only load plugins with a server entrypoint
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport * as resolve from 'resolve.exports';\n\nimport { env } from '@strapi/utils';\nimport type { Core, Plugin, Struct } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n const extendedContentTypes = get([pluginName, 'content-types'], extendedSchemas) ?? {};\n for (const ctName of Object.keys(extendedContentTypes)) {\n const extendedSchema = get([ctName, 'schema'], extendedContentTypes);\n if (!extendedSchema) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!plugin.contentTypes[ctName]) {\n plugin.contentTypes[ctName] = { schema: extendedSchema };\n } else {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n\n formatContentTypes(pluginName, plugin.contentTypes);\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Core.Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n let resolvedExport = './strapi-server.js';\n\n try {\n resolvedExport = (\n resolve.exports(enabledPlugin.packageInfo, 'strapi-server', {\n require: true,\n }) ?? './strapi-server.js'\n ).toString();\n } catch (e) {\n // no export map or missing strapi-server export => fallback to default\n }\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, resolvedExport);\n } catch (e) {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove its configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["defaultPlugin","bootstrap","destroy","register","config","default","validator","routes","controllers","services","policies","middlewares","contentTypes","applyUserExtension","plugins","extensionsDir","strapi","dirs","dist","extensions","fse","pathExists","extendedSchemas","loadFiles","strapiServers","pluginName","Object","keys","plugin","extendedContentTypes","get","ctName","extendedSchema","schema","formatContentTypes","strapiServer","applyUserConfig","userPluginsConfig","getUserPluginsConfig","userPluginConfig","getOr","defaultConfig","env","defaultsDeep","e","Error","message","loadPlugins","enabledPlugins","getEnabledPlugins","set","enabledPlugin","serverEntrypointPath","resolvedExport","resolve","exports","packageInfo","require","toString","join","pathToPlugin","pluginServer","loadConfigFile","defaults","add","values","forEach","definition","assign","collectionName","info","singularName","toLowerCase","globalId","getGlobalId"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/loaders/plugins/index.ts"],"sourcesContent":["import { join } from 'path';\nimport fse from 'fs-extra';\nimport { defaultsDeep, defaults, getOr, get } from 'lodash/fp';\nimport * as resolve from 'resolve.exports';\n\nimport { env } from '@strapi/utils';\nimport type { Core, Plugin, Struct } from '@strapi/types';\nimport { loadConfigFile } from '../../utils/load-config-file';\nimport { loadFiles } from '../../utils/load-files';\nimport { getEnabledPlugins } from './get-enabled-plugins';\nimport { getUserPluginsConfig } from './get-user-plugins-config';\nimport { getGlobalId } from '../../domain/content-type';\n\ninterface Plugins {\n [key: string]: Plugin.LoadedPlugin;\n}\n\nconst defaultPlugin = {\n bootstrap() {},\n destroy() {},\n register() {},\n config: {\n default: {},\n validator() {},\n },\n routes: [],\n controllers: {},\n services: {},\n policies: {},\n middlewares: {},\n contentTypes: {},\n};\n\nconst applyUserExtension = async (plugins: Plugins) => {\n const extensionsDir = strapi.dirs.dist.extensions;\n if (!(await fse.pathExists(extensionsDir))) {\n return;\n }\n\n const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json');\n const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js');\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n // first: load json schema\n const extendedContentTypes = get([pluginName, 'content-types'], extendedSchemas) ?? {};\n for (const ctName of Object.keys(extendedContentTypes)) {\n const extendedSchema = get([ctName, 'schema'], extendedContentTypes);\n if (!extendedSchema) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!plugin.contentTypes[ctName]) {\n plugin.contentTypes[ctName] = { schema: extendedSchema };\n } else {\n plugin.contentTypes[ctName].schema = {\n ...plugin.contentTypes[ctName].schema,\n ...extendedSchema,\n };\n }\n }\n\n formatContentTypes(pluginName, plugin.contentTypes);\n // second: execute strapi-server extension\n const strapiServer = get([pluginName, 'strapi-server'], strapiServers);\n if (strapiServer) {\n plugins[pluginName] = await strapiServer(plugin);\n }\n }\n};\n\nconst applyUserConfig = async (plugins: Plugins) => {\n const userPluginsConfig = await getUserPluginsConfig();\n\n for (const pluginName of Object.keys(plugins)) {\n const plugin = plugins[pluginName];\n const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig);\n const defaultConfig =\n typeof plugin.config.default === 'function'\n ? plugin.config.default({ env })\n : plugin.config.default;\n\n const config = defaultsDeep(defaultConfig, userPluginConfig);\n try {\n plugin.config.validator(config);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Error regarding ${pluginName} config: ${e.message}`);\n }\n\n throw e;\n }\n plugin.config = config;\n }\n};\n\nexport default async function loadPlugins(strapi: Core.Strapi) {\n const plugins: Plugins = {};\n\n const enabledPlugins = await getEnabledPlugins(strapi);\n\n strapi.config.set('enabledPlugins', enabledPlugins);\n\n for (const pluginName of Object.keys(enabledPlugins)) {\n const enabledPlugin = enabledPlugins[pluginName];\n\n let serverEntrypointPath;\n let resolvedExport = './strapi-server.js';\n\n try {\n resolvedExport = (\n resolve.exports(enabledPlugin.packageInfo, 'strapi-server', {\n require: true,\n }) ?? './strapi-server.js'\n ).toString();\n } catch {\n // no export map or missing strapi-server export => fallback to default\n }\n\n try {\n serverEntrypointPath = join(enabledPlugin.pathToPlugin, resolvedExport);\n } catch {\n throw new Error(\n `Error loading the plugin ${pluginName} because ${pluginName} is not installed. Please either install the plugin or remove its configuration.`\n );\n }\n\n // only load plugins with a server entrypoint\n if (!(await fse.pathExists(serverEntrypointPath))) {\n continue;\n }\n\n const pluginServer = loadConfigFile(serverEntrypointPath);\n plugins[pluginName] = {\n ...defaultPlugin,\n ...pluginServer,\n contentTypes: formatContentTypes(pluginName, pluginServer.contentTypes ?? {}),\n config: defaults(defaultPlugin.config, pluginServer.config),\n routes: pluginServer.routes ?? defaultPlugin.routes,\n };\n }\n\n // TODO: validate plugin format\n await applyUserConfig(plugins);\n await applyUserExtension(plugins);\n\n for (const pluginName of Object.keys(plugins)) {\n strapi.get('plugins').add(pluginName, plugins[pluginName]);\n }\n}\n\nconst formatContentTypes = (\n pluginName: string,\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>\n) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: pluginName,\n collectionName:\n schema.collectionName || `${pluginName}_${schema.info.singularName}`.toLowerCase(),\n globalId: getGlobalId(schema, pluginName),\n });\n });\n\n return contentTypes;\n};\n"],"names":["defaultPlugin","bootstrap","destroy","register","config","default","validator","routes","controllers","services","policies","middlewares","contentTypes","applyUserExtension","plugins","extensionsDir","strapi","dirs","dist","extensions","fse","pathExists","extendedSchemas","loadFiles","strapiServers","pluginName","Object","keys","plugin","extendedContentTypes","get","ctName","extendedSchema","schema","formatContentTypes","strapiServer","applyUserConfig","userPluginsConfig","getUserPluginsConfig","userPluginConfig","getOr","defaultConfig","env","defaultsDeep","e","Error","message","loadPlugins","enabledPlugins","getEnabledPlugins","set","enabledPlugin","serverEntrypointPath","resolvedExport","resolve","exports","packageInfo","require","toString","join","pathToPlugin","pluginServer","loadConfigFile","defaults","add","values","forEach","definition","assign","collectionName","info","singularName","toLowerCase","globalId","getGlobalId"],"mappings":"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"}
@@ -245,7 +245,7 @@ const DEFAULT_PRIMARY_KEY_COLUMN = 'id';
245
245
  if (originalId == null) continue;
246
246
  const newId = idMap.get(originalId);
247
247
  if (newId == null) continue;
248
- const { id, ...rest } = row;
248
+ const { id: _id, ...rest } = row;
249
249
  toInsert.push({
250
250
  ...rest,
251
251
  [columnToRewrite]: newId
@@ -287,7 +287,7 @@ const DEFAULT_PRIMARY_KEY_COLUMN = 'id';
287
287
  if (originalId == null) continue;
288
288
  const draftIds = pairs.filter((p)=>p.originalId === originalId).map((p)=>p.draftId);
289
289
  for (const draftId of draftIds){
290
- const { id, ...rest } = row;
290
+ const { id: _id, ...rest } = row;
291
291
  toInsert.push({
292
292
  ...rest,
293
293
  [columnToRewrite]: draftId
@@ -1278,7 +1278,7 @@ const debug = createDebug__default.default('strapi::migration::discard-drafts');
1278
1278
  insertResult = await trx(componentTableName).insert(newComponentRow, [
1279
1279
  'id'
1280
1280
  ]);
1281
- } catch (error) {
1281
+ } catch {
1282
1282
  insertResult = await trx(componentTableName).insert(newComponentRow);
1283
1283
  }
1284
1284
  } else {
@@ -1334,7 +1334,7 @@ const debug = createDebug__default.default('strapi::migration::discard-drafts');
1334
1334
  isForDraftEntity,
1335
1335
  reverseMapCache
1336
1336
  });
1337
- const { id, ...rest } = row;
1337
+ const { id: _id, ...rest } = row;
1338
1338
  await insertRowWithDuplicateHandling(trx, nestedJoinTableName, {
1339
1339
  ...rest,
1340
1340
  [entityIdCol]: newComponentId,
@@ -1360,7 +1360,7 @@ const debug = createDebug__default.default('strapi::migration::discard-drafts');
1360
1360
  isForDraftEntity,
1361
1361
  reverseMapCache
1362
1362
  });
1363
- const { id, ...rest } = row;
1363
+ const { id: _id, ...rest } = row;
1364
1364
  await insertRowWithDuplicateHandling(trx, dzJoinTableName, {
1365
1365
  ...rest,
1366
1366
  [entityIdCol]: newComponentId,
@@ -1488,7 +1488,7 @@ const debug = createDebug__default.default('strapi::migration::discard-drafts');
1488
1488
  return null;
1489
1489
  }
1490
1490
  // Create new relation object without the 'id' field
1491
- const { id, ...relationWithoutId } = relation;
1491
+ const { id: _id, ...relationWithoutId } = relation;
1492
1492
  return {
1493
1493
  ...relationWithoutId,
1494
1494
  [sourceColumnName]: newSourceId,
@@ -1597,7 +1597,7 @@ const debug = createDebug__default.default('strapi::migration::discard-drafts');
1597
1597
  continue;
1598
1598
  }
1599
1599
  existingKeys.add(key);
1600
- const { id, ...relationWithoutId } = relation;
1600
+ const { id: _id, ...relationWithoutId } = relation;
1601
1601
  newRelations.push({
1602
1602
  ...relationWithoutId,
1603
1603
  [targetColumnName]: newTargetId
@@ -1696,7 +1696,7 @@ const debug = createDebug__default.default('strapi::migration::discard-drafts');
1696
1696
  // This will be fixed by fixExistingDraftRelations if needed
1697
1697
  }
1698
1698
  // Create new relation object without the 'id' field
1699
- const { id, ...relationWithoutId } = relation;
1699
+ const { id: _id, ...relationWithoutId } = relation;
1700
1700
  return {
1701
1701
  ...relationWithoutId,
1702
1702
  [sourceColumnName]: newSourceId,
@@ -2393,7 +2393,7 @@ const debug = createDebug__default.default('strapi::migration::discard-drafts');
2393
2393
  });
2394
2394
  cloneMap.set(componentKey, newComponentId);
2395
2395
  }
2396
- const { id, ...relationWithoutId } = relation;
2396
+ const { id: _id, ...relationWithoutId } = relation;
2397
2397
  return {
2398
2398
  ...relationWithoutId,
2399
2399
  [entityIdColumn]: newEntityId,