@strapi/core 5.13.0-beta.0 → 5.13.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.
@@ -5,6 +5,7 @@ export declare const loadConfiguration: (opts: StrapiOptions) => {
5
5
  autoReload: boolean;
6
6
  environment: string | undefined;
7
7
  uuid: any;
8
+ installId: any;
8
9
  packageJsonStrapi: Pick<any, string | number | symbol>;
9
10
  info: any;
10
11
  admin: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configuration/index.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAUvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAqC/C,eAAO,MAAM,iBAAiB,SAAU,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAiDpD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configuration/index.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAUvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAqC/C,eAAO,MAAM,iBAAiB,SAAU,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAkDpD,CAAC"}
@@ -59,6 +59,7 @@ const loadConfiguration = (opts)=>{
59
59
  autoReload,
60
60
  environment: process.env.NODE_ENV,
61
61
  uuid: _.get(pkgJSON, 'strapi.uuid'),
62
+ installId: _.get(pkgJSON, 'strapi.installId'),
62
63
  packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),
63
64
  info: {
64
65
  ...pkgJSON,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport { omit } from 'lodash/fp';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultConfig = {\n server: {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n admin: { autoOpen: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n } satisfies Partial<Core.Config.Server>,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultConfig","server","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","admin","autoOpen","dirs","public","transfer","remote","logger","updates","startup","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":";;;;;;;;;;;;;AAgBAA,MAAAA,CAAOC,MAAM,CAAC;IAAEC,IAAMC,EAAAA,OAAAA,CAAQC,GAAG,CAACC;AAAS,CAAA,CAAA;AAE3CF,OAAQC,CAAAA,GAAG,CAACE,QAAQ,GAAGH,QAAQC,GAAG,CAACE,QAAQ,IAAI,aAAA;AAE/C,MAAMC,aAAgB,GAAA;IACpBC,MAAQ,EAAA;AACNC,QAAAA,IAAAA,EAAMN,QAAQC,GAAG,CAACM,IAAI,IAAIC,EAAAA,CAAGC,QAAQ,EAAM,IAAA,WAAA;AAC3CC,QAAAA,IAAAA,EAAMC,MAAOX,CAAAA,OAAAA,CAAQC,GAAG,CAACW,IAAI,CAAK,IAAA,IAAA;QAClCC,KAAO,EAAA,KAAA;QACPC,IAAM,EAAA;YAAEC,OAAS,EAAA;AAAM,SAAA;QACvBC,KAAO,EAAA;YAAEC,QAAU,EAAA;AAAM,SAAA;QACzBC,IAAM,EAAA;YAAEC,MAAQ,EAAA;AAAW,SAAA;QAC3BC,QAAU,EAAA;YACRC,MAAQ,EAAA;gBACNN,OAAS,EAAA;AACX;AACF,SAAA;QACAO,MAAQ,EAAA;YACNC,OAAS,EAAA;gBACPR,OAAS,EAAA;AACX,aAAA;YACAS,OAAS,EAAA;gBACPT,OAAS,EAAA;AACX;AACF;AACF,KAAA;AACAC,IAAAA,KAAAA,EAAO,EAAC;IACRS,GAAK,EAAA;QACHC,IAAM,EAAA;YACJC,MAAQ,EAAA;AACV;AACF;AACF,CAAA;AAEO,MAAMC,oBAAoB,CAACC,IAAAA,GAAAA;IAChC,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAEC,UAAa,GAAA,KAAK,EAAEC,eAAAA,GAAkB,IAAI,EAAE,GAAGJ,IAAAA;AAExE,IAAA,MAAMK,OAAUC,GAAAA,OAAAA,CAAQpC,IAAKqC,CAAAA,OAAO,CAACN,MAAQ,EAAA,cAAA,CAAA,CAAA;AAE7C,IAAA,MAAMO,YAAYtC,IAAKqC,CAAAA,OAAO,CAACL,OAAW/B,IAAAA,OAAAA,CAAQsC,GAAG,EAAI,EAAA,QAAA,CAAA;AAEzD,IAAA,MAAMC,UAAa,GAAA;AACjBC,QAAAA,UAAAA,EAAYC,KAAKC,GAAG,EAAA;AACpBV,QAAAA,UAAAA;QACAW,WAAa3C,EAAAA,OAAAA,CAAQC,GAAG,CAACE,QAAQ;QACjCyC,IAAMC,EAAAA,CAAAA,CAAEC,GAAG,CAACZ,OAAS,EAAA,aAAA,CAAA;QACrBa,iBAAmBF,EAAAA,CAAAA,CAAEG,IAAI,CAACH,CAAAA,CAAEC,GAAG,CAACZ,OAAAA,EAAS,QAAU,EAAA,EAAK,CAAA,EAAA,MAAA,CAAA;QACxDe,IAAM,EAAA;AACJ,YAAA,GAAGf,OAAO;YACVgB,MAAQC,EAAAA;AACV,SAAA;QACAnC,KAAO,EAAA;AACLiB,YAAAA;AACF;AACF,KAAA;;AAGA,IAAA,MAAMmB,UAAaJ,GAAAA,OAAAA,CAAK,SAAWK,EAAAA,YAAAA,CAAchB;IAEjD,MAAMiB,MAAAA,GAASvD,KAAKqC,OAAO,CAACC,WAAW,KAAOrC,EAAAA,OAAAA,CAAQC,GAAG,CAACE,QAAQ,CAAA;AAClE,IAAA,MAAMoD,YAAYF,YAAcC,CAAAA,MAAAA,CAAAA;AAEhC,IAAA,MAAMxD,SAAS+C,CAAEW,CAAAA,KAAK,CAACjB,UAAAA,EAAYnC,eAAegD,UAAYG,EAAAA,SAAAA,CAAAA;AAE9D,IAAA,MAAM,EAAEE,SAAS,EAAEC,QAAQ,EAAE,GAAGC,kBAAc7D,CAAAA,MAAAA,CAAAA;AAE9C,IAAA,MAAM8D,oBAAoBC,yBAAqB/D,CAAAA,MAAAA,CAAAA;AAC/C,IAAA,MAAMgE,mBAAmBC,wBAAoBjE,CAAAA,MAAAA,CAAAA;IAE7C,MAAMkE,UAAAA,GAAa,IAAIC,GAAIH,CAAAA,gBAAAA,CAAAA,CAAkBI,MAAM,KAAK,IAAID,GAAIL,CAAAA,iBAAAA,CAAAA,CAAmBM,MAAM;AAEzF,IAAA,MAAMC,SAAYH,GAAAA,UAAAA,GACdN,QAASU,CAAAA,OAAO,CAACC,mBAAQC,CAAAA,aAAa,CAACb,SAAAA,EAAWC,QAAW,CAAA,EAAA,EAAA,CAAA,GAC7D,IAAIO,GAAAA,CAAIP,UAAUa,QAAQ;IAE9B1B,CAAE2B,CAAAA,GAAG,CAAC1E,MAAAA,EAAQ,YAAc2D,EAAAA,SAAAA,CAAAA;IAC5BZ,CAAE2B,CAAAA,GAAG,CAAC1E,MAAAA,EAAQ,oBAAsB8D,EAAAA,iBAAAA,CAAAA;IACpCf,CAAE2B,CAAAA,GAAG,CAAC1E,MAAAA,EAAQ,WAAa4D,EAAAA,QAAAA,CAAAA;IAC3Bb,CAAE2B,CAAAA,GAAG,CAAC1E,MAAAA,EAAQ,YAAcqE,EAAAA,SAAAA,CAAAA;IAC5BtB,CAAE2B,CAAAA,GAAG,CAAC1E,MAAAA,EAAQ,mBAAqBgE,EAAAA,gBAAAA,CAAAA;AACnCjB,IAAAA,CAAAA,CAAE2B,GAAG,CAAC1E,MAAQ,EAAA,MAAA,EAAQ2E,gBAAQ5C,IAAM/B,EAAAA,MAAAA,CAAAA,CAAAA;IAEpC,OAAOA,MAAAA;AACT;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport { omit } from 'lodash/fp';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultConfig = {\n server: {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n admin: { autoOpen: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n } satisfies Partial<Core.Config.Server>,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n installId: _.get(pkgJSON, 'strapi.installId'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultConfig","server","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","admin","autoOpen","dirs","public","transfer","remote","logger","updates","startup","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","installId","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}
@@ -57,6 +57,7 @@ const loadConfiguration = (opts)=>{
57
57
  autoReload,
58
58
  environment: process.env.NODE_ENV,
59
59
  uuid: _.get(pkgJSON, 'strapi.uuid'),
60
+ installId: _.get(pkgJSON, 'strapi.installId'),
60
61
  packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),
61
62
  info: {
62
63
  ...pkgJSON,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport { omit } from 'lodash/fp';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultConfig = {\n server: {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n admin: { autoOpen: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n } satisfies Partial<Core.Config.Server>,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultConfig","server","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","admin","autoOpen","dirs","public","transfer","remote","logger","updates","startup","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport { omit } from 'lodash/fp';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultConfig = {\n server: {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n admin: { autoOpen: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n } satisfies Partial<Core.Config.Server>,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n installId: _.get(pkgJSON, 'strapi.installId'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultConfig","server","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","admin","autoOpen","dirs","public","transfer","remote","logger","updates","startup","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","installId","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/ee/license.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,UAAU,WAAW;IACnB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CACvE;AAmBD,cAAM,iBAAkB,SAAQ,KAAK;IACnC,cAAc,UAAS;gBAEX,OAAO,EAAE,MAAM,EAAE,cAAc,UAAQ;CAKpD;AAED,QAAA,MAAM,WAAW,cAAe,MAAM,uBASrC,CAAC;AAEF,QAAA,MAAM,aAAa,YAAa,MAAM,gBA2BrC,CAAC;AAMF,QAAA,MAAM,YAAY,eACJ;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,OAC9B,MAAM,aACA,MAAM,iBA4BlB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/ee/license.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,UAAU,WAAW;IACnB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CACvE;AAmBD,cAAM,iBAAkB,SAAQ,KAAK;IACnC,cAAc,UAAS;gBAEX,OAAO,EAAE,MAAM,EAAE,cAAc,UAAQ;CAKpD;AAED,QAAA,MAAM,WAAW,cAAe,MAAM,uBASrC,CAAC;AAEF,QAAA,MAAM,aAAa,YAAa,MAAM,gBA2BrC,CAAC;AAMF,QAAA,MAAM,YAAY,eACJ;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,OAC9B,MAAM,aACA,MAAM,iBAkClB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -79,6 +79,7 @@ const throwError = ()=>{
79
79
  throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);
80
80
  };
81
81
  const fetchLicense = async ({ strapi }, key, projectId)=>{
82
+ const { installId: installIdFromPackageJson } = strapi.config;
82
83
  const response = await strapi.fetch(`https://license.strapi.io/api/licenses/validate`, {
83
84
  method: 'POST',
84
85
  headers: {
@@ -87,7 +88,7 @@ const fetchLicense = async ({ strapi }, key, projectId)=>{
87
88
  body: JSON.stringify({
88
89
  key,
89
90
  projectId,
90
- deviceId: strapiUtils.machineID()
91
+ deviceId: strapiUtils.generateInstallId(projectId, installIdFromPackageJson)
91
92
  })
92
93
  }).catch(throwError);
93
94
  const contentType = response.headers.get('Content-Type');
@@ -1 +1 @@
1
- {"version":3,"file":"license.js","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\nimport { machineID } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n { name: 'cms-advanced-preview' },\n ],\n};\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst throwError = () => {\n throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst fetchLicense = async (\n { strapi }: { strapi: Core.Strapi },\n key: string,\n projectId: string\n) => {\n const response = await strapi\n .fetch(`https://license.strapi.io/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ key, projectId, deviceId: machineID() }),\n })\n .catch(throwError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const { data, error } = await response.json();\n\n switch (response.status) {\n case 200:\n return data.license;\n case 400:\n throw new LicenseCheckError(error.message);\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throwError();\n }\n } else {\n throwError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError };\n"],"names":["DEFAULT_FEATURES","bronze","silver","gold","name","options","retentionDays","publicKey","fs","readFileSync","resolve","__dirname","LicenseCheckError","Error","constructor","message","shouldFallback","readLicense","directory","path","join","toString","error","code","verifyLicense","license","signature","base64Content","Buffer","from","split","stringifiedContent","verify","crypto","createVerify","update","end","verified","licenseInfo","JSON","parse","features","type","Object","freeze","throwError","fetchLicense","strapi","key","projectId","response","fetch","method","headers","body","stringify","deviceId","machineID","catch","contentType","get","includes","data","json","status"],"mappings":"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"}
1
+ {"version":3,"file":"license.js","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\nimport { generateInstallId } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n { name: 'cms-advanced-preview' },\n ],\n};\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst throwError = () => {\n throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst fetchLicense = async (\n { strapi }: { strapi: Core.Strapi },\n key: string,\n projectId: string\n) => {\n const { installId: installIdFromPackageJson } = strapi.config;\n\n const response = await strapi\n .fetch(`https://license.strapi.io/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n key,\n projectId,\n deviceId: generateInstallId(projectId, installIdFromPackageJson),\n }), // NOTE: Doing nothing on the LR with the installId\n })\n .catch(throwError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const { data, error } = await response.json();\n\n switch (response.status) {\n case 200:\n return data.license;\n case 400:\n throw new LicenseCheckError(error.message);\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throwError();\n }\n } else {\n throwError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError };\n"],"names":["DEFAULT_FEATURES","bronze","silver","gold","name","options","retentionDays","publicKey","fs","readFileSync","resolve","__dirname","LicenseCheckError","Error","constructor","message","shouldFallback","readLicense","directory","path","join","toString","error","code","verifyLicense","license","signature","base64Content","Buffer","from","split","stringifiedContent","verify","crypto","createVerify","update","end","verified","licenseInfo","JSON","parse","features","type","Object","freeze","throwError","fetchLicense","strapi","key","projectId","installId","installIdFromPackageJson","config","response","fetch","method","headers","body","stringify","deviceId","generateInstallId","catch","contentType","get","includes","data","json","status"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import { resolve, join } from 'path';
3
3
  import crypto from 'crypto';
4
- import { machineID } from '@strapi/utils';
4
+ import { generateInstallId } from '@strapi/utils';
5
5
 
6
6
  const DEFAULT_FEATURES = {
7
7
  bronze: [],
@@ -77,6 +77,7 @@ const throwError = ()=>{
77
77
  throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);
78
78
  };
79
79
  const fetchLicense = async ({ strapi }, key, projectId)=>{
80
+ const { installId: installIdFromPackageJson } = strapi.config;
80
81
  const response = await strapi.fetch(`https://license.strapi.io/api/licenses/validate`, {
81
82
  method: 'POST',
82
83
  headers: {
@@ -85,7 +86,7 @@ const fetchLicense = async ({ strapi }, key, projectId)=>{
85
86
  body: JSON.stringify({
86
87
  key,
87
88
  projectId,
88
- deviceId: machineID()
89
+ deviceId: generateInstallId(projectId, installIdFromPackageJson)
89
90
  })
90
91
  }).catch(throwError);
91
92
  const contentType = response.headers.get('Content-Type');
@@ -1 +1 @@
1
- {"version":3,"file":"license.mjs","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\nimport { machineID } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n { name: 'cms-advanced-preview' },\n ],\n};\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst throwError = () => {\n throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst fetchLicense = async (\n { strapi }: { strapi: Core.Strapi },\n key: string,\n projectId: string\n) => {\n const response = await strapi\n .fetch(`https://license.strapi.io/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ key, projectId, deviceId: machineID() }),\n })\n .catch(throwError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const { data, error } = await response.json();\n\n switch (response.status) {\n case 200:\n return data.license;\n case 400:\n throw new LicenseCheckError(error.message);\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throwError();\n }\n } else {\n throwError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError };\n"],"names":["DEFAULT_FEATURES","bronze","silver","gold","name","options","retentionDays","publicKey","fs","readFileSync","resolve","__dirname","LicenseCheckError","Error","constructor","message","shouldFallback","readLicense","directory","path","join","toString","error","code","verifyLicense","license","signature","base64Content","Buffer","from","split","stringifiedContent","verify","crypto","createVerify","update","end","verified","licenseInfo","JSON","parse","features","type","Object","freeze","throwError","fetchLicense","strapi","key","projectId","response","fetch","method","headers","body","stringify","deviceId","machineID","catch","contentType","get","includes","data","json","status"],"mappings":"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"}
1
+ {"version":3,"file":"license.mjs","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\nimport { generateInstallId } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n { name: 'cms-advanced-preview' },\n ],\n};\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst throwError = () => {\n throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst fetchLicense = async (\n { strapi }: { strapi: Core.Strapi },\n key: string,\n projectId: string\n) => {\n const { installId: installIdFromPackageJson } = strapi.config;\n\n const response = await strapi\n .fetch(`https://license.strapi.io/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n key,\n projectId,\n deviceId: generateInstallId(projectId, installIdFromPackageJson),\n }), // NOTE: Doing nothing on the LR with the installId\n })\n .catch(throwError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const { data, error } = await response.json();\n\n switch (response.status) {\n case 200:\n return data.license;\n case 400:\n throw new LicenseCheckError(error.message);\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throwError();\n }\n } else {\n throwError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError };\n"],"names":["DEFAULT_FEATURES","bronze","silver","gold","name","options","retentionDays","publicKey","fs","readFileSync","resolve","__dirname","LicenseCheckError","Error","constructor","message","shouldFallback","readLicense","directory","path","join","toString","error","code","verifyLicense","license","signature","base64Content","Buffer","from","split","stringifiedContent","verify","crypto","createVerify","update","end","verified","licenseInfo","JSON","parse","features","type","Object","freeze","throwError","fetchLicense","strapi","key","projectId","installId","installIdFromPackageJson","config","response","fetch","method","headers","body","stringify","deviceId","generateInstallId","catch","contentType","get","includes","data","json","status"],"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.13.0-beta.0";
6
+ var version = "5.13.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.13.0-beta.0",
63
- "@strapi/database": "5.13.0-beta.0",
64
- "@strapi/generators": "5.13.0-beta.0",
65
- "@strapi/logger": "5.13.0-beta.0",
66
- "@strapi/permissions": "5.13.0-beta.0",
67
- "@strapi/types": "5.13.0-beta.0",
68
- "@strapi/typescript-utils": "5.13.0-beta.0",
69
- "@strapi/utils": "5.13.0-beta.0",
62
+ "@strapi/admin": "5.13.0",
63
+ "@strapi/database": "5.13.0",
64
+ "@strapi/generators": "5.13.0",
65
+ "@strapi/logger": "5.13.0",
66
+ "@strapi/permissions": "5.13.0",
67
+ "@strapi/types": "5.13.0",
68
+ "@strapi/typescript-utils": "5.13.0",
69
+ "@strapi/utils": "5.13.0",
70
70
  bcryptjs: "2.4.3",
71
71
  boxen: "5.1.2",
72
72
  chalk: "4.1.2",
@@ -129,9 +129,9 @@ var devDependencies = {
129
129
  "@types/node": "18.19.24",
130
130
  "@types/node-schedule": "2.1.7",
131
131
  "@types/statuses": "2.0.1",
132
- "eslint-config-custom": "5.13.0-beta.0",
132
+ "eslint-config-custom": "5.13.0",
133
133
  supertest: "6.3.3",
134
- tsconfig: "5.13.0-beta.0"
134
+ tsconfig: "5.13.0"
135
135
  };
136
136
  var engines = {
137
137
  node: ">=18.0.0 <=22.x.x",
@@ -1,5 +1,5 @@
1
1
  var name = "@strapi/core";
2
- var version = "5.13.0-beta.0";
2
+ var version = "5.13.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.13.0-beta.0",
59
- "@strapi/database": "5.13.0-beta.0",
60
- "@strapi/generators": "5.13.0-beta.0",
61
- "@strapi/logger": "5.13.0-beta.0",
62
- "@strapi/permissions": "5.13.0-beta.0",
63
- "@strapi/types": "5.13.0-beta.0",
64
- "@strapi/typescript-utils": "5.13.0-beta.0",
65
- "@strapi/utils": "5.13.0-beta.0",
58
+ "@strapi/admin": "5.13.0",
59
+ "@strapi/database": "5.13.0",
60
+ "@strapi/generators": "5.13.0",
61
+ "@strapi/logger": "5.13.0",
62
+ "@strapi/permissions": "5.13.0",
63
+ "@strapi/types": "5.13.0",
64
+ "@strapi/typescript-utils": "5.13.0",
65
+ "@strapi/utils": "5.13.0",
66
66
  bcryptjs: "2.4.3",
67
67
  boxen: "5.1.2",
68
68
  chalk: "4.1.2",
@@ -125,9 +125,9 @@ var devDependencies = {
125
125
  "@types/node": "18.19.24",
126
126
  "@types/node-schedule": "2.1.7",
127
127
  "@types/statuses": "2.0.1",
128
- "eslint-config-custom": "5.13.0-beta.0",
128
+ "eslint-config-custom": "5.13.0",
129
129
  supertest: "6.3.3",
130
- tsconfig: "5.13.0-beta.0"
130
+ tsconfig: "5.13.0"
131
131
  };
132
132
  var engines = {
133
133
  node: ">=18.0.0 <=22.x.x",
@@ -1 +1 @@
1
- {"version":3,"file":"admin-user-hash.d.ts","sourceRoot":"","sources":["../../../src/services/metrics/admin-user-hash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,QAAA,MAAM,qBAAqB,WAAY,KAAK,MAAM,WAMjD,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"admin-user-hash.d.ts","sourceRoot":"","sources":["../../../src/services/metrics/admin-user-hash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,QAAA,MAAM,qBAAqB,WAAY,KAAK,MAAM,WAOjD,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-user-hash.js","sources":["../../../src/services/metrics/admin-user-hash.ts"],"sourcesContent":["import crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\n/**\n * Generate an admin user hash\n */\nconst generateAdminUserHash = (strapi: Core.Strapi) => {\n const ctx = strapi?.requestContext?.get();\n if (!ctx?.state?.user?.email) {\n return '';\n }\n return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');\n};\n\nexport { generateAdminUserHash };\n"],"names":["generateAdminUserHash","strapi","ctx","requestContext","get","state","user","email","crypto","createHash","update","digest"],"mappings":";;;;AAGA;;IAGA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAMC,GAAAA,GAAMD,QAAQE,cAAgBC,EAAAA,GAAAA,EAAAA;AACpC,IAAA,IAAI,CAACF,GAAAA,EAAKG,KAAOC,EAAAA,IAAAA,EAAMC,KAAO,EAAA;QAC5B,OAAO,EAAA;AACT;AACA,IAAA,OAAOC,MAAOC,CAAAA,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAACR,GAAAA,CAAIG,KAAK,CAACC,IAAI,CAACC,KAAK,CAAA,CAAEI,MAAM,CAAC,KAAA,CAAA;AACzE;;;;"}
1
+ {"version":3,"file":"admin-user-hash.js","sources":["../../../src/services/metrics/admin-user-hash.ts"],"sourcesContent":["import crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\n/**\n * Generate an admin user hash\n */\nconst generateAdminUserHash = (strapi: Core.Strapi) => {\n const ctx = strapi?.requestContext?.get();\n\n if (!ctx?.state?.user?.email) {\n return '';\n }\n return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');\n};\n\nexport { generateAdminUserHash };\n"],"names":["generateAdminUserHash","strapi","ctx","requestContext","get","state","user","email","crypto","createHash","update","digest"],"mappings":";;;;AAGA;;IAGA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAMC,GAAAA,GAAMD,QAAQE,cAAgBC,EAAAA,GAAAA,EAAAA;AAEpC,IAAA,IAAI,CAACF,GAAAA,EAAKG,KAAOC,EAAAA,IAAAA,EAAMC,KAAO,EAAA;QAC5B,OAAO,EAAA;AACT;AACA,IAAA,OAAOC,MAAOC,CAAAA,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAACR,GAAAA,CAAIG,KAAK,CAACC,IAAI,CAACC,KAAK,CAAA,CAAEI,MAAM,CAAC,KAAA,CAAA;AACzE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-user-hash.mjs","sources":["../../../src/services/metrics/admin-user-hash.ts"],"sourcesContent":["import crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\n/**\n * Generate an admin user hash\n */\nconst generateAdminUserHash = (strapi: Core.Strapi) => {\n const ctx = strapi?.requestContext?.get();\n if (!ctx?.state?.user?.email) {\n return '';\n }\n return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');\n};\n\nexport { generateAdminUserHash };\n"],"names":["generateAdminUserHash","strapi","ctx","requestContext","get","state","user","email","crypto","createHash","update","digest"],"mappings":";;AAGA;;IAGA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAMC,GAAAA,GAAMD,QAAQE,cAAgBC,EAAAA,GAAAA,EAAAA;AACpC,IAAA,IAAI,CAACF,GAAAA,EAAKG,KAAOC,EAAAA,IAAAA,EAAMC,KAAO,EAAA;QAC5B,OAAO,EAAA;AACT;AACA,IAAA,OAAOC,MAAOC,CAAAA,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAACR,GAAAA,CAAIG,KAAK,CAACC,IAAI,CAACC,KAAK,CAAA,CAAEI,MAAM,CAAC,KAAA,CAAA;AACzE;;;;"}
1
+ {"version":3,"file":"admin-user-hash.mjs","sources":["../../../src/services/metrics/admin-user-hash.ts"],"sourcesContent":["import crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\n/**\n * Generate an admin user hash\n */\nconst generateAdminUserHash = (strapi: Core.Strapi) => {\n const ctx = strapi?.requestContext?.get();\n\n if (!ctx?.state?.user?.email) {\n return '';\n }\n return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');\n};\n\nexport { generateAdminUserHash };\n"],"names":["generateAdminUserHash","strapi","ctx","requestContext","get","state","user","email","crypto","createHash","update","digest"],"mappings":";;AAGA;;IAGA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAMC,GAAAA,GAAMD,QAAQE,cAAgBC,EAAAA,GAAAA,EAAAA;AAEpC,IAAA,IAAI,CAACF,GAAAA,EAAKG,KAAOC,EAAAA,IAAAA,EAAMC,KAAO,EAAA;QAC5B,OAAO,EAAA;AACT;AACA,IAAA,OAAOC,MAAOC,CAAAA,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAACR,GAAAA,CAAIG,KAAK,CAACC,IAAI,CAACC,KAAK,CAAA,CAAEI,MAAM,CAAC,KAAA,CAAA;AACzE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../../src/services/metrics/sender.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,WAAW,OAAO;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,MAAM,GAAG,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;AAkBtB;;GAEG;iCACqB,KAAK,MAAM,KAAG,MAAM;AAA5C,wBAuDE"}
1
+ {"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../../src/services/metrics/sender.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,WAAW,OAAO;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,MAAM,GAAG,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;AAkBtB;;GAEG;iCACqB,KAAK,MAAM,KAAG,MAAM;AAA5C,wBAwDE"}
@@ -25,8 +25,8 @@ const ANALYTICS_URI = 'https://analytics.strapi.io';
25
25
  /**
26
26
  * Create a send function for event with all the necessary metadata
27
27
  */ var createSender = ((strapi)=>{
28
- const { uuid } = strapi.config;
29
- const deviceId = strapiUtils.machineID();
28
+ const { uuid, installId: installIdFromPackageJson } = strapi.config;
29
+ const installId = strapiUtils.generateInstallId(uuid, installIdFromPackageJson);
30
30
  const serverRootPath = strapi.dirs.app.root;
31
31
  const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');
32
32
  const anonymousUserProperties = {
@@ -54,7 +54,7 @@ const ANALYTICS_URI = 'https://analytics.strapi.io';
54
54
  body: JSON.stringify({
55
55
  event,
56
56
  userId,
57
- deviceId,
57
+ installId,
58
58
  eventProperties: payload.eventProperties,
59
59
  userProperties: userId ? {
60
60
  ...anonymousUserProperties,
@@ -1 +1 @@
1
- {"version":3,"file":"sender.js","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, machineID } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\nconst ANALYTICS_URI = 'https://analytics.strapi.io';\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid } = strapi.config;\n const deviceId = machineID();\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n deviceId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const res = await strapi.fetch(`${ANALYTICS_URI}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","ANALYTICS_URI","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","deviceId","machineID","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","res","fetch","ok","err"],"mappings":"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"}
1
+ {"version":3,"file":"sender.js","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\nconst ANALYTICS_URI = 'https://analytics.strapi.io';\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const res = await strapi.fetch(`${ANALYTICS_URI}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","ANALYTICS_URI","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","res","fetch","ok","err"],"mappings":"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"}
@@ -4,7 +4,7 @@ import _ from 'lodash';
4
4
  import isDocker from 'is-docker';
5
5
  import ciEnv from 'ci-info';
6
6
  import tsUtils from '@strapi/typescript-utils';
7
- import { machineID, env } from '@strapi/utils';
7
+ import { generateInstallId, env } from '@strapi/utils';
8
8
  import { generateAdminUserHash } from './admin-user-hash.mjs';
9
9
 
10
10
  const defaultQueryOpts = {
@@ -23,8 +23,8 @@ const ANALYTICS_URI = 'https://analytics.strapi.io';
23
23
  /**
24
24
  * Create a send function for event with all the necessary metadata
25
25
  */ var createSender = ((strapi)=>{
26
- const { uuid } = strapi.config;
27
- const deviceId = machineID();
26
+ const { uuid, installId: installIdFromPackageJson } = strapi.config;
27
+ const installId = generateInstallId(uuid, installIdFromPackageJson);
28
28
  const serverRootPath = strapi.dirs.app.root;
29
29
  const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');
30
30
  const anonymousUserProperties = {
@@ -52,7 +52,7 @@ const ANALYTICS_URI = 'https://analytics.strapi.io';
52
52
  body: JSON.stringify({
53
53
  event,
54
54
  userId,
55
- deviceId,
55
+ installId,
56
56
  eventProperties: payload.eventProperties,
57
57
  userProperties: userId ? {
58
58
  ...anonymousUserProperties,
@@ -1 +1 @@
1
- {"version":3,"file":"sender.mjs","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, machineID } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\nconst ANALYTICS_URI = 'https://analytics.strapi.io';\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid } = strapi.config;\n const deviceId = machineID();\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n deviceId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const res = await strapi.fetch(`${ANALYTICS_URI}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","ANALYTICS_URI","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","deviceId","machineID","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","res","fetch","ok","err"],"mappings":"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"}
1
+ {"version":3,"file":"sender.mjs","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\nconst ANALYTICS_URI = 'https://analytics.strapi.io';\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const res = await strapi.fetch(`${ANALYTICS_URI}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","ANALYTICS_URI","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","res","fetch","ok","err"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/core",
3
- "version": "5.13.0-beta.0",
3
+ "version": "5.13.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.13.0-beta.0",
60
- "@strapi/database": "5.13.0-beta.0",
61
- "@strapi/generators": "5.13.0-beta.0",
62
- "@strapi/logger": "5.13.0-beta.0",
63
- "@strapi/permissions": "5.13.0-beta.0",
64
- "@strapi/types": "5.13.0-beta.0",
65
- "@strapi/typescript-utils": "5.13.0-beta.0",
66
- "@strapi/utils": "5.13.0-beta.0",
59
+ "@strapi/admin": "5.13.0",
60
+ "@strapi/database": "5.13.0",
61
+ "@strapi/generators": "5.13.0",
62
+ "@strapi/logger": "5.13.0",
63
+ "@strapi/permissions": "5.13.0",
64
+ "@strapi/types": "5.13.0",
65
+ "@strapi/typescript-utils": "5.13.0",
66
+ "@strapi/utils": "5.13.0",
67
67
  "bcryptjs": "2.4.3",
68
68
  "boxen": "5.1.2",
69
69
  "chalk": "4.1.2",
@@ -126,9 +126,9 @@
126
126
  "@types/node": "18.19.24",
127
127
  "@types/node-schedule": "2.1.7",
128
128
  "@types/statuses": "2.0.1",
129
- "eslint-config-custom": "5.13.0-beta.0",
129
+ "eslint-config-custom": "5.13.0",
130
130
  "supertest": "6.3.3",
131
- "tsconfig": "5.13.0-beta.0"
131
+ "tsconfig": "5.13.0"
132
132
  },
133
133
  "engines": {
134
134
  "node": ">=18.0.0 <=22.x.x",