@strapi/core 5.47.0 → 5.48.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.
Files changed (79) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +12 -3
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +12 -3
  5. package/dist/Strapi.mjs.map +1 -1
  6. package/dist/compile.d.ts.map +1 -1
  7. package/dist/compile.js +12 -5
  8. package/dist/compile.js.map +1 -1
  9. package/dist/compile.mjs +12 -5
  10. package/dist/compile.mjs.map +1 -1
  11. package/dist/configuration/index.d.ts +24 -0
  12. package/dist/configuration/index.d.ts.map +1 -1
  13. package/dist/configuration/index.js +47 -22
  14. package/dist/configuration/index.js.map +1 -1
  15. package/dist/configuration/index.mjs +47 -22
  16. package/dist/configuration/index.mjs.map +1 -1
  17. package/dist/middlewares/session.d.ts +2 -2
  18. package/dist/middlewares/session.d.ts.map +1 -1
  19. package/dist/middlewares/session.js +1 -1
  20. package/dist/middlewares/session.js.map +1 -1
  21. package/dist/middlewares/session.mjs +2 -2
  22. package/dist/middlewares/session.mjs.map +1 -1
  23. package/dist/package.json.js +16 -16
  24. package/dist/package.json.mjs +16 -16
  25. package/dist/providers/session-manager.d.ts.map +1 -1
  26. package/dist/providers/session-manager.js +3 -0
  27. package/dist/providers/session-manager.js.map +1 -1
  28. package/dist/providers/session-manager.mjs +3 -0
  29. package/dist/providers/session-manager.mjs.map +1 -1
  30. package/dist/services/cron.d.ts +1 -1
  31. package/dist/services/cron.d.ts.map +1 -1
  32. package/dist/services/cron.js +10 -2
  33. package/dist/services/cron.js.map +1 -1
  34. package/dist/services/cron.mjs +10 -2
  35. package/dist/services/cron.mjs.map +1 -1
  36. package/dist/services/document-service/draft-and-publish.d.ts +4 -4
  37. package/dist/services/document-service/internationalization.d.ts +4 -4
  38. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  39. package/dist/services/document-service/utils/unidirectional-relations.js +17 -4
  40. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
  41. package/dist/services/document-service/utils/unidirectional-relations.mjs +17 -4
  42. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
  43. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  44. package/dist/services/entity-validator/validators.js +51 -2
  45. package/dist/services/entity-validator/validators.js.map +1 -1
  46. package/dist/services/entity-validator/validators.mjs +51 -2
  47. package/dist/services/entity-validator/validators.mjs.map +1 -1
  48. package/dist/services/mcp/index.d.ts.map +1 -1
  49. package/dist/services/mcp/index.js +3 -3
  50. package/dist/services/mcp/index.js.map +1 -1
  51. package/dist/services/mcp/index.mjs +3 -3
  52. package/dist/services/mcp/index.mjs.map +1 -1
  53. package/dist/services/metrics/index.d.ts.map +1 -1
  54. package/dist/services/metrics/index.js +6 -5
  55. package/dist/services/metrics/index.js.map +1 -1
  56. package/dist/services/metrics/index.mjs +6 -5
  57. package/dist/services/metrics/index.mjs.map +1 -1
  58. package/dist/services/metrics/sender.d.ts.map +1 -1
  59. package/dist/services/metrics/sender.js +11 -3
  60. package/dist/services/metrics/sender.js.map +1 -1
  61. package/dist/services/metrics/sender.mjs +11 -3
  62. package/dist/services/metrics/sender.mjs.map +1 -1
  63. package/dist/services/server/openapi.d.ts +3 -0
  64. package/dist/services/server/openapi.d.ts.map +1 -0
  65. package/dist/services/server/openapi.js +209 -0
  66. package/dist/services/server/openapi.js.map +1 -0
  67. package/dist/services/server/openapi.mjs +188 -0
  68. package/dist/services/server/openapi.mjs.map +1 -0
  69. package/dist/services/server/register-routes.d.ts.map +1 -1
  70. package/dist/services/server/register-routes.js +2 -0
  71. package/dist/services/server/register-routes.js.map +1 -1
  72. package/dist/services/server/register-routes.mjs +2 -0
  73. package/dist/services/server/register-routes.mjs.map +1 -1
  74. package/dist/utils/startup-logger.d.ts.map +1 -1
  75. package/dist/utils/startup-logger.js +18 -6
  76. package/dist/utils/startup-logger.js.map +1 -1
  77. package/dist/utils/startup-logger.mjs +18 -6
  78. package/dist/utils/startup-logger.mjs.map +1 -1
  79. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"register-routes.mjs","sources":["../../../src/services/server/register-routes.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\n\nconst createRouteScopeGenerator = (namespace: string) => (route: Core.RouteInput) => {\n const prefix = namespace.endsWith('::') ? namespace : `${namespace}.`;\n\n if (typeof route.handler === 'string') {\n _.defaultsDeep(route, {\n config: {\n auth: {\n scope: [`${route.handler.startsWith(prefix) ? '' : prefix}${route.handler}`],\n },\n },\n });\n }\n};\n\n/**\n * Register all routes\n */\nexport default (strapi: Core.Strapi) => {\n registerAdminRoutes(strapi);\n registerAPIRoutes(strapi);\n registerPluginRoutes(strapi);\n};\n\n/**\n * Register admin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerAdminRoutes = (strapi: Core.Strapi) => {\n const generateRouteScope = createRouteScopeGenerator(`admin::`);\n\n // Instantiate function-like routers\n // Mutate admin.routes in-place and make sure router factories are instantiated correctly\n strapi.admin.routes = instantiateRouterInputs(strapi.admin.routes, strapi);\n\n _.forEach(strapi.admin.routes, (router) => {\n router.type = router.type || 'admin';\n router.prefix = router.prefix || `/admin`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName: 'admin' };\n });\n strapi.server.routes(router);\n });\n};\n\n/**\n * Register plugin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerPluginRoutes = (strapi: Core.Strapi) => {\n for (const pluginName of Object.keys(strapi.plugins)) {\n const plugin = strapi.plugins[pluginName];\n\n const generateRouteScope = createRouteScopeGenerator(`plugin::${pluginName}`);\n\n if (Array.isArray(plugin.routes)) {\n plugin.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n strapi.contentAPI.applyExtraParamsToRoutes(plugin.routes);\n\n strapi.server.routes({\n type: 'admin',\n prefix: `/${pluginName}`,\n routes: plugin.routes,\n });\n } else {\n // Instantiate function-like routers\n // Mutate plugin.routes in-place and make sure router factories are instantiated correctly\n plugin.routes = instantiateRouterInputs(plugin.routes, strapi);\n\n _.forEach(plugin.routes, (router) => {\n router.type = router.type ?? 'admin';\n router.prefix = router.prefix ?? `/${pluginName}`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n strapi.contentAPI.applyExtraParamsToRoutes(router.routes ?? []);\n\n strapi.server.routes(router);\n });\n }\n }\n};\n\n/**\n * Register api routes\n */\nconst registerAPIRoutes = (strapi: Core.Strapi) => {\n for (const apiName of Object.keys(strapi.apis)) {\n const api = strapi.api(apiName);\n\n const generateRouteScope = createRouteScopeGenerator(`api::${apiName}`);\n\n // Mutate api.routes in-place and make sure router factories are instantiated correctly\n api.routes = instantiateRouterInputs(api.routes, strapi);\n\n _.forEach(api.routes, (router) => {\n // TODO: remove once auth setup\n // pass meta down to compose endpoint\n router.type = 'content-api';\n router.routes?.forEach((route) => {\n generateRouteScope(route);\n route.info = { apiName };\n });\n strapi.contentAPI.applyExtraParamsToRoutes(router.routes ?? []);\n\n return strapi.server.routes(router);\n });\n }\n};\n\nconst instantiateRouterInputs = (\n routers: Record<string, Core.RouterConfig>,\n strapi: Core.Strapi\n): Record<string, Core.Router> => {\n const entries = Object.entries(routers);\n\n return entries.reduce((record, [key, inputOrCallback]) => {\n const isCallback = typeof inputOrCallback === 'function';\n\n return { ...record, [key]: isCallback ? inputOrCallback({ strapi }) : inputOrCallback };\n }, {});\n};\n"],"names":["createRouteScopeGenerator","namespace","route","prefix","endsWith","handler","_","defaultsDeep","config","auth","scope","startsWith","strapi","registerAdminRoutes","registerAPIRoutes","registerPluginRoutes","generateRouteScope","admin","routes","instantiateRouterInputs","forEach","router","type","info","pluginName","server","Object","keys","plugins","plugin","Array","isArray","contentAPI","applyExtraParamsToRoutes","apiName","apis","api","routers","entries","reduce","record","key","inputOrCallback","isCallback"],"mappings":"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"}
1
+ {"version":3,"file":"register-routes.mjs","sources":["../../../src/services/server/register-routes.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\nimport { registerOpenAPIRoute } from './openapi';\n\nconst createRouteScopeGenerator = (namespace: string) => (route: Core.RouteInput) => {\n const prefix = namespace.endsWith('::') ? namespace : `${namespace}.`;\n\n if (typeof route.handler === 'string') {\n _.defaultsDeep(route, {\n config: {\n auth: {\n scope: [`${route.handler.startsWith(prefix) ? '' : prefix}${route.handler}`],\n },\n },\n });\n }\n};\n\n/**\n * Register all routes\n */\nexport default (strapi: Core.Strapi) => {\n registerAdminRoutes(strapi);\n registerAPIRoutes(strapi);\n registerPluginRoutes(strapi);\n registerOpenAPIRoute(strapi);\n};\n\n/**\n * Register admin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerAdminRoutes = (strapi: Core.Strapi) => {\n const generateRouteScope = createRouteScopeGenerator(`admin::`);\n\n // Instantiate function-like routers\n // Mutate admin.routes in-place and make sure router factories are instantiated correctly\n strapi.admin.routes = instantiateRouterInputs(strapi.admin.routes, strapi);\n\n _.forEach(strapi.admin.routes, (router) => {\n router.type = router.type || 'admin';\n router.prefix = router.prefix || `/admin`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName: 'admin' };\n });\n strapi.server.routes(router);\n });\n};\n\n/**\n * Register plugin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerPluginRoutes = (strapi: Core.Strapi) => {\n for (const pluginName of Object.keys(strapi.plugins)) {\n const plugin = strapi.plugins[pluginName];\n\n const generateRouteScope = createRouteScopeGenerator(`plugin::${pluginName}`);\n\n if (Array.isArray(plugin.routes)) {\n plugin.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n strapi.contentAPI.applyExtraParamsToRoutes(plugin.routes);\n\n strapi.server.routes({\n type: 'admin',\n prefix: `/${pluginName}`,\n routes: plugin.routes,\n });\n } else {\n // Instantiate function-like routers\n // Mutate plugin.routes in-place and make sure router factories are instantiated correctly\n plugin.routes = instantiateRouterInputs(plugin.routes, strapi);\n\n _.forEach(plugin.routes, (router) => {\n router.type = router.type ?? 'admin';\n router.prefix = router.prefix ?? `/${pluginName}`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n strapi.contentAPI.applyExtraParamsToRoutes(router.routes ?? []);\n\n strapi.server.routes(router);\n });\n }\n }\n};\n\n/**\n * Register api routes\n */\nconst registerAPIRoutes = (strapi: Core.Strapi) => {\n for (const apiName of Object.keys(strapi.apis)) {\n const api = strapi.api(apiName);\n\n const generateRouteScope = createRouteScopeGenerator(`api::${apiName}`);\n\n // Mutate api.routes in-place and make sure router factories are instantiated correctly\n api.routes = instantiateRouterInputs(api.routes, strapi);\n\n _.forEach(api.routes, (router) => {\n // TODO: remove once auth setup\n // pass meta down to compose endpoint\n router.type = 'content-api';\n router.routes?.forEach((route) => {\n generateRouteScope(route);\n route.info = { apiName };\n });\n strapi.contentAPI.applyExtraParamsToRoutes(router.routes ?? []);\n\n return strapi.server.routes(router);\n });\n }\n};\n\nconst instantiateRouterInputs = (\n routers: Record<string, Core.RouterConfig>,\n strapi: Core.Strapi\n): Record<string, Core.Router> => {\n const entries = Object.entries(routers);\n\n return entries.reduce((record, [key, inputOrCallback]) => {\n const isCallback = typeof inputOrCallback === 'function';\n\n return { ...record, [key]: isCallback ? inputOrCallback({ strapi }) : inputOrCallback };\n }, {});\n};\n"],"names":["createRouteScopeGenerator","namespace","route","prefix","endsWith","handler","_","defaultsDeep","config","auth","scope","startsWith","strapi","registerAdminRoutes","registerAPIRoutes","registerPluginRoutes","registerOpenAPIRoute","generateRouteScope","admin","routes","instantiateRouterInputs","forEach","router","type","info","pluginName","server","Object","keys","plugins","plugin","Array","isArray","contentAPI","applyExtraParamsToRoutes","apiName","apis","api","routers","entries","reduce","record","key","inputOrCallback","isCallback"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"startup-logger.d.ts","sourceRoot":"","sources":["../../src/utils/startup-logger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,eAAO,MAAM,mBAAmB,QAAS,KAAK,MAAM;;;;yCA+EX;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE;CAWlE,CAAC"}
1
+ {"version":3,"file":"startup-logger.d.ts","sourceRoot":"","sources":["../../src/utils/startup-logger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAoB1C,eAAO,MAAM,mBAAmB,QAAS,KAAK,MAAM;;;;yCA+EX;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE;CAWlE,CAAC"}
@@ -4,6 +4,23 @@ var chalk = require('chalk');
4
4
  var CLITable = require('cli-table3');
5
5
  var fp = require('lodash/fp');
6
6
 
7
+ const ROUNDED_CHARS = {
8
+ top: '─',
9
+ 'top-mid': '┬',
10
+ 'top-left': '╭',
11
+ 'top-right': '╮',
12
+ bottom: '─',
13
+ 'bottom-mid': '┴',
14
+ 'bottom-left': '╰',
15
+ 'bottom-right': '╯',
16
+ left: '│',
17
+ right: '│',
18
+ middle: '│',
19
+ mid: '',
20
+ 'left-mid': '',
21
+ 'mid-mid': '',
22
+ 'right-mid': ''
23
+ };
7
24
  const createStartupLogger = (app)=>{
8
25
  return {
9
26
  logStats () {
@@ -16,12 +33,7 @@ const createStartupLogger = (app)=>{
16
33
  20,
17
34
  50
18
35
  ],
19
- chars: {
20
- mid: '',
21
- 'left-mid': '',
22
- 'mid-mid': '',
23
- 'right-mid': ''
24
- }
36
+ chars: ROUNDED_CHARS
25
37
  });
26
38
  const dbInfo = app.db?.getInfo();
27
39
  infoTable.push([
@@ -1 +1 @@
1
- {"version":3,"file":"startup-logger.js","sources":["../../src/utils/startup-logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport CLITable from 'cli-table3';\nimport _ from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\n\nexport const createStartupLogger = (app: Core.Strapi) => {\n return {\n logStats() {\n const columns = Math.min(process.stderr.columns, 80) - 2;\n console.log();\n console.log(chalk.black.bgWhite(_.padEnd(columns, ' Project information')));\n console.log();\n\n const infoTable = new CLITable({\n colWidths: [20, 50],\n chars: { mid: '', 'left-mid': '', 'mid-mid': '', 'right-mid': '' },\n });\n\n const dbInfo = app.db?.getInfo();\n\n infoTable.push(\n [chalk.blue('Time'), `${new Date()}`],\n [chalk.blue('Launched in'), `${Date.now() - app.config.launchedAt} ms`],\n [chalk.blue('Environment'), app.config.environment],\n [chalk.blue('Process PID'), process.pid],\n [chalk.blue('Version'), `${app.config.info.strapi} (node ${process.version})`],\n [chalk.blue('Edition'), app.EE ? 'Enterprise' : 'Community'],\n [chalk.blue('Database'), dbInfo?.client],\n [chalk.blue('Database name'), dbInfo?.displayName]\n );\n\n if (dbInfo?.schema) {\n infoTable.push([chalk.blue('Database schema'), dbInfo.schema]);\n }\n\n console.log(infoTable.toString());\n console.log();\n console.log(chalk.black.bgWhite(_.padEnd(columns, ' Actions available')));\n console.log();\n },\n\n logFirstStartupMessage() {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n\n this.logStats();\n\n console.log(chalk.bold('One more thing...'));\n console.log(\n chalk.grey('Create your first administrator 💻 by going to the administration panel at:')\n );\n console.log();\n\n const addressTable = new CLITable();\n\n const adminUrl = strapi.config.get('admin.absoluteUrl');\n addressTable.push([chalk.bold(adminUrl)]);\n\n console.log(`${addressTable.toString()}`);\n console.log();\n },\n\n logDefaultStartupMessage() {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n this.logStats();\n\n console.log(chalk.bold('Welcome back!'));\n\n if (app.config.get('admin.serveAdminPanel') === true) {\n console.log(chalk.grey('To manage your project 🚀, go to the administration panel at:'));\n const adminUrl = strapi.config.get('admin.absoluteUrl');\n console.log(chalk.bold(adminUrl));\n console.log();\n }\n\n console.log(chalk.grey('To access the server ⚡️, go to:'));\n const serverUrl = strapi.config.get('server.absoluteUrl');\n console.log(chalk.bold(serverUrl));\n console.log();\n },\n\n logStartupMessage({ isInitialized }: { isInitialized: boolean }) {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n if (!isInitialized) {\n this.logFirstStartupMessage();\n } else {\n this.logDefaultStartupMessage();\n }\n },\n };\n};\n"],"names":["createStartupLogger","app","logStats","columns","Math","min","process","stderr","console","log","chalk","black","bgWhite","_","padEnd","infoTable","CLITable","colWidths","chars","mid","dbInfo","db","getInfo","push","blue","Date","now","config","launchedAt","environment","pid","info","strapi","version","EE","client","displayName","schema","toString","logFirstStartupMessage","get","bold","grey","addressTable","adminUrl","logDefaultStartupMessage","serverUrl","logStartupMessage","isInitialized"],"mappings":"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"}
1
+ {"version":3,"file":"startup-logger.js","sources":["../../src/utils/startup-logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport CLITable from 'cli-table3';\nimport _ from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\n\nconst ROUNDED_CHARS = {\n top: '─',\n 'top-mid': '┬',\n 'top-left': '╭',\n 'top-right': '╮',\n bottom: '─',\n 'bottom-mid': '┴',\n 'bottom-left': '╰',\n 'bottom-right': '╯',\n left: '│',\n right: '│',\n middle: '│',\n mid: '',\n 'left-mid': '',\n 'mid-mid': '',\n 'right-mid': '',\n};\n\nexport const createStartupLogger = (app: Core.Strapi) => {\n return {\n logStats() {\n const columns = Math.min(process.stderr.columns, 80) - 2;\n console.log();\n console.log(chalk.black.bgWhite(_.padEnd(columns, ' Project information')));\n console.log();\n\n const infoTable = new CLITable({\n colWidths: [20, 50],\n chars: ROUNDED_CHARS,\n });\n\n const dbInfo = app.db?.getInfo();\n\n infoTable.push(\n [chalk.blue('Time'), `${new Date()}`],\n [chalk.blue('Launched in'), `${Date.now() - app.config.launchedAt} ms`],\n [chalk.blue('Environment'), app.config.environment],\n [chalk.blue('Process PID'), process.pid],\n [chalk.blue('Version'), `${app.config.info.strapi} (node ${process.version})`],\n [chalk.blue('Edition'), app.EE ? 'Enterprise' : 'Community'],\n [chalk.blue('Database'), dbInfo?.client],\n [chalk.blue('Database name'), dbInfo?.displayName]\n );\n\n if (dbInfo?.schema) {\n infoTable.push([chalk.blue('Database schema'), dbInfo.schema]);\n }\n\n console.log(infoTable.toString());\n console.log();\n console.log(chalk.black.bgWhite(_.padEnd(columns, ' Actions available')));\n console.log();\n },\n\n logFirstStartupMessage() {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n\n this.logStats();\n\n console.log(chalk.bold('One more thing...'));\n console.log(\n chalk.grey('Create your first administrator 💻 by going to the administration panel at:')\n );\n console.log();\n\n const addressTable = new CLITable();\n\n const adminUrl = strapi.config.get('admin.absoluteUrl');\n addressTable.push([chalk.bold(adminUrl)]);\n\n console.log(`${addressTable.toString()}`);\n console.log();\n },\n\n logDefaultStartupMessage() {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n this.logStats();\n\n console.log(chalk.bold('Welcome back!'));\n\n if (app.config.get('admin.serveAdminPanel') === true) {\n console.log(chalk.grey('To manage your project 🚀, go to the administration panel at:'));\n const adminUrl = strapi.config.get('admin.absoluteUrl');\n console.log(chalk.bold(adminUrl));\n console.log();\n }\n\n console.log(chalk.grey('To access the server ⚡️, go to:'));\n const serverUrl = strapi.config.get('server.absoluteUrl');\n console.log(chalk.bold(serverUrl));\n console.log();\n },\n\n logStartupMessage({ isInitialized }: { isInitialized: boolean }) {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n if (!isInitialized) {\n this.logFirstStartupMessage();\n } else {\n this.logDefaultStartupMessage();\n }\n },\n };\n};\n"],"names":["ROUNDED_CHARS","top","bottom","left","right","middle","mid","createStartupLogger","app","logStats","columns","Math","min","process","stderr","console","log","chalk","black","bgWhite","_","padEnd","infoTable","CLITable","colWidths","chars","dbInfo","db","getInfo","push","blue","Date","now","config","launchedAt","environment","pid","info","strapi","version","EE","client","displayName","schema","toString","logFirstStartupMessage","get","bold","grey","addressTable","adminUrl","logDefaultStartupMessage","serverUrl","logStartupMessage","isInitialized"],"mappings":"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"}
@@ -2,6 +2,23 @@ import chalk from 'chalk';
2
2
  import CLITable from 'cli-table3';
3
3
  import fp from 'lodash/fp';
4
4
 
5
+ const ROUNDED_CHARS = {
6
+ top: '─',
7
+ 'top-mid': '┬',
8
+ 'top-left': '╭',
9
+ 'top-right': '╮',
10
+ bottom: '─',
11
+ 'bottom-mid': '┴',
12
+ 'bottom-left': '╰',
13
+ 'bottom-right': '╯',
14
+ left: '│',
15
+ right: '│',
16
+ middle: '│',
17
+ mid: '',
18
+ 'left-mid': '',
19
+ 'mid-mid': '',
20
+ 'right-mid': ''
21
+ };
5
22
  const createStartupLogger = (app)=>{
6
23
  return {
7
24
  logStats () {
@@ -14,12 +31,7 @@ const createStartupLogger = (app)=>{
14
31
  20,
15
32
  50
16
33
  ],
17
- chars: {
18
- mid: '',
19
- 'left-mid': '',
20
- 'mid-mid': '',
21
- 'right-mid': ''
22
- }
34
+ chars: ROUNDED_CHARS
23
35
  });
24
36
  const dbInfo = app.db?.getInfo();
25
37
  infoTable.push([
@@ -1 +1 @@
1
- {"version":3,"file":"startup-logger.mjs","sources":["../../src/utils/startup-logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport CLITable from 'cli-table3';\nimport _ from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\n\nexport const createStartupLogger = (app: Core.Strapi) => {\n return {\n logStats() {\n const columns = Math.min(process.stderr.columns, 80) - 2;\n console.log();\n console.log(chalk.black.bgWhite(_.padEnd(columns, ' Project information')));\n console.log();\n\n const infoTable = new CLITable({\n colWidths: [20, 50],\n chars: { mid: '', 'left-mid': '', 'mid-mid': '', 'right-mid': '' },\n });\n\n const dbInfo = app.db?.getInfo();\n\n infoTable.push(\n [chalk.blue('Time'), `${new Date()}`],\n [chalk.blue('Launched in'), `${Date.now() - app.config.launchedAt} ms`],\n [chalk.blue('Environment'), app.config.environment],\n [chalk.blue('Process PID'), process.pid],\n [chalk.blue('Version'), `${app.config.info.strapi} (node ${process.version})`],\n [chalk.blue('Edition'), app.EE ? 'Enterprise' : 'Community'],\n [chalk.blue('Database'), dbInfo?.client],\n [chalk.blue('Database name'), dbInfo?.displayName]\n );\n\n if (dbInfo?.schema) {\n infoTable.push([chalk.blue('Database schema'), dbInfo.schema]);\n }\n\n console.log(infoTable.toString());\n console.log();\n console.log(chalk.black.bgWhite(_.padEnd(columns, ' Actions available')));\n console.log();\n },\n\n logFirstStartupMessage() {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n\n this.logStats();\n\n console.log(chalk.bold('One more thing...'));\n console.log(\n chalk.grey('Create your first administrator 💻 by going to the administration panel at:')\n );\n console.log();\n\n const addressTable = new CLITable();\n\n const adminUrl = strapi.config.get('admin.absoluteUrl');\n addressTable.push([chalk.bold(adminUrl)]);\n\n console.log(`${addressTable.toString()}`);\n console.log();\n },\n\n logDefaultStartupMessage() {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n this.logStats();\n\n console.log(chalk.bold('Welcome back!'));\n\n if (app.config.get('admin.serveAdminPanel') === true) {\n console.log(chalk.grey('To manage your project 🚀, go to the administration panel at:'));\n const adminUrl = strapi.config.get('admin.absoluteUrl');\n console.log(chalk.bold(adminUrl));\n console.log();\n }\n\n console.log(chalk.grey('To access the server ⚡️, go to:'));\n const serverUrl = strapi.config.get('server.absoluteUrl');\n console.log(chalk.bold(serverUrl));\n console.log();\n },\n\n logStartupMessage({ isInitialized }: { isInitialized: boolean }) {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n if (!isInitialized) {\n this.logFirstStartupMessage();\n } else {\n this.logDefaultStartupMessage();\n }\n },\n };\n};\n"],"names":["createStartupLogger","app","logStats","columns","Math","min","process","stderr","console","log","chalk","black","bgWhite","_","padEnd","infoTable","CLITable","colWidths","chars","mid","dbInfo","db","getInfo","push","blue","Date","now","config","launchedAt","environment","pid","info","strapi","version","EE","client","displayName","schema","toString","logFirstStartupMessage","get","bold","grey","addressTable","adminUrl","logDefaultStartupMessage","serverUrl","logStartupMessage","isInitialized"],"mappings":"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"}
1
+ {"version":3,"file":"startup-logger.mjs","sources":["../../src/utils/startup-logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport CLITable from 'cli-table3';\nimport _ from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\n\nconst ROUNDED_CHARS = {\n top: '─',\n 'top-mid': '┬',\n 'top-left': '╭',\n 'top-right': '╮',\n bottom: '─',\n 'bottom-mid': '┴',\n 'bottom-left': '╰',\n 'bottom-right': '╯',\n left: '│',\n right: '│',\n middle: '│',\n mid: '',\n 'left-mid': '',\n 'mid-mid': '',\n 'right-mid': '',\n};\n\nexport const createStartupLogger = (app: Core.Strapi) => {\n return {\n logStats() {\n const columns = Math.min(process.stderr.columns, 80) - 2;\n console.log();\n console.log(chalk.black.bgWhite(_.padEnd(columns, ' Project information')));\n console.log();\n\n const infoTable = new CLITable({\n colWidths: [20, 50],\n chars: ROUNDED_CHARS,\n });\n\n const dbInfo = app.db?.getInfo();\n\n infoTable.push(\n [chalk.blue('Time'), `${new Date()}`],\n [chalk.blue('Launched in'), `${Date.now() - app.config.launchedAt} ms`],\n [chalk.blue('Environment'), app.config.environment],\n [chalk.blue('Process PID'), process.pid],\n [chalk.blue('Version'), `${app.config.info.strapi} (node ${process.version})`],\n [chalk.blue('Edition'), app.EE ? 'Enterprise' : 'Community'],\n [chalk.blue('Database'), dbInfo?.client],\n [chalk.blue('Database name'), dbInfo?.displayName]\n );\n\n if (dbInfo?.schema) {\n infoTable.push([chalk.blue('Database schema'), dbInfo.schema]);\n }\n\n console.log(infoTable.toString());\n console.log();\n console.log(chalk.black.bgWhite(_.padEnd(columns, ' Actions available')));\n console.log();\n },\n\n logFirstStartupMessage() {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n\n this.logStats();\n\n console.log(chalk.bold('One more thing...'));\n console.log(\n chalk.grey('Create your first administrator 💻 by going to the administration panel at:')\n );\n console.log();\n\n const addressTable = new CLITable();\n\n const adminUrl = strapi.config.get('admin.absoluteUrl');\n addressTable.push([chalk.bold(adminUrl)]);\n\n console.log(`${addressTable.toString()}`);\n console.log();\n },\n\n logDefaultStartupMessage() {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n this.logStats();\n\n console.log(chalk.bold('Welcome back!'));\n\n if (app.config.get('admin.serveAdminPanel') === true) {\n console.log(chalk.grey('To manage your project 🚀, go to the administration panel at:'));\n const adminUrl = strapi.config.get('admin.absoluteUrl');\n console.log(chalk.bold(adminUrl));\n console.log();\n }\n\n console.log(chalk.grey('To access the server ⚡️, go to:'));\n const serverUrl = strapi.config.get('server.absoluteUrl');\n console.log(chalk.bold(serverUrl));\n console.log();\n },\n\n logStartupMessage({ isInitialized }: { isInitialized: boolean }) {\n if (!strapi.config.get('server.logger.startup.enabled')) {\n return;\n }\n if (!isInitialized) {\n this.logFirstStartupMessage();\n } else {\n this.logDefaultStartupMessage();\n }\n },\n };\n};\n"],"names":["ROUNDED_CHARS","top","bottom","left","right","middle","mid","createStartupLogger","app","logStats","columns","Math","min","process","stderr","console","log","chalk","black","bgWhite","_","padEnd","infoTable","CLITable","colWidths","chars","dbInfo","db","getInfo","push","blue","Date","now","config","launchedAt","environment","pid","info","strapi","version","EE","client","displayName","schema","toString","logFirstStartupMessage","get","bold","grey","addressTable","adminUrl","logDefaultStartupMessage","serverUrl","logStartupMessage","isInitialized"],"mappings":";;;;AAMA,MAAMA,aAAAA,GAAgB;IACpBC,GAAAA,EAAK,GAAA;IACL,SAAA,EAAW,GAAA;IACX,UAAA,EAAY,GAAA;IACZ,WAAA,EAAa,GAAA;IACbC,MAAAA,EAAQ,GAAA;IACR,YAAA,EAAc,GAAA;IACd,aAAA,EAAe,GAAA;IACf,cAAA,EAAgB,GAAA;IAChBC,IAAAA,EAAM,GAAA;IACNC,KAAAA,EAAO,GAAA;IACPC,MAAAA,EAAQ,GAAA;IACRC,GAAAA,EAAK,EAAA;IACL,UAAA,EAAY,EAAA;IACZ,SAAA,EAAW,EAAA;IACX,WAAA,EAAa;AACf,CAAA;AAEO,MAAMC,sBAAsB,CAACC,GAAAA,GAAAA;IAClC,OAAO;AACLC,QAAAA,QAAAA,CAAAA,GAAAA;YACE,MAAMC,OAAAA,GAAUC,KAAKC,GAAG,CAACC,QAAQC,MAAM,CAACJ,OAAO,EAAE,EAAA,CAAA,GAAM,CAAA;AACvDK,YAAAA,OAAAA,CAAQC,GAAG,EAAA;YACXD,OAAAA,CAAQC,GAAG,CAACC,KAAAA,CAAMC,KAAK,CAACC,OAAO,CAACC,EAAAA,CAAEC,MAAM,CAACX,OAAAA,EAAS,sBAAA,CAAA,CAAA,CAAA;AAClDK,YAAAA,OAAAA,CAAQC,GAAG,EAAA;YAEX,MAAMM,SAAAA,GAAY,IAAIC,QAAAA,CAAS;gBAC7BC,SAAAA,EAAW;AAAC,oBAAA,EAAA;AAAI,oBAAA;AAAG,iBAAA;gBACnBC,KAAAA,EAAOzB;AACT,aAAA,CAAA;YAEA,MAAM0B,MAAAA,GAASlB,GAAAA,CAAImB,EAAE,EAAEC,OAAAA,EAAAA;AAEvBN,YAAAA,SAAAA,CAAUO,IAAI,CACZ;AAACZ,gBAAAA,KAAAA,CAAMa,IAAI,CAAC,MAAA,CAAA;AAAS,gBAAA,CAAA,EAAG,IAAIC,IAAAA,EAAAA,CAAAA;aAAS,EACrC;AAACd,gBAAAA,KAAAA,CAAMa,IAAI,CAAC,aAAA,CAAA;gBAAgB,CAAA,EAAGC,IAAAA,CAAKC,GAAG,EAAA,GAAKxB,GAAAA,CAAIyB,MAAM,CAACC,UAAU,CAAC,GAAG;aAAE,EACvE;AAACjB,gBAAAA,KAAAA,CAAMa,IAAI,CAAC,aAAA,CAAA;gBAAgBtB,GAAAA,CAAIyB,MAAM,CAACE;aAAY,EACnD;AAAClB,gBAAAA,KAAAA,CAAMa,IAAI,CAAC,aAAA,CAAA;AAAgBjB,gBAAAA,OAAAA,CAAQuB;aAAI,EACxC;AAACnB,gBAAAA,KAAAA,CAAMa,IAAI,CAAC,SAAA,CAAA;AAAY,gBAAA,CAAA,EAAGtB,GAAAA,CAAIyB,MAAM,CAACI,IAAI,CAACC,MAAM,CAAC,OAAO,EAAEzB,OAAAA,CAAQ0B,OAAO,CAAC,CAAC;aAAE,EAC9E;AAACtB,gBAAAA,KAAAA,CAAMa,IAAI,CAAC,SAAA,CAAA;gBAAYtB,GAAAA,CAAIgC,EAAE,GAAG,YAAA,GAAe;aAAY,EAC5D;AAACvB,gBAAAA,KAAAA,CAAMa,IAAI,CAAC,UAAA,CAAA;gBAAaJ,MAAAA,EAAQe;aAAO,EACxC;AAACxB,gBAAAA,KAAAA,CAAMa,IAAI,CAAC,eAAA,CAAA;gBAAkBJ,MAAAA,EAAQgB;AAAY,aAAA,CAAA;AAGpD,YAAA,IAAIhB,QAAQiB,MAAAA,EAAQ;AAClBrB,gBAAAA,SAAAA,CAAUO,IAAI,CAAC;AAACZ,oBAAAA,KAAAA,CAAMa,IAAI,CAAC,iBAAA,CAAA;AAAoBJ,oBAAAA,MAAAA,CAAOiB;AAAO,iBAAA,CAAA;AAC/D,YAAA;YAEA5B,OAAAA,CAAQC,GAAG,CAACM,SAAAA,CAAUsB,QAAQ,EAAA,CAAA;AAC9B7B,YAAAA,OAAAA,CAAQC,GAAG,EAAA;YACXD,OAAAA,CAAQC,GAAG,CAACC,KAAAA,CAAMC,KAAK,CAACC,OAAO,CAACC,EAAAA,CAAEC,MAAM,CAACX,OAAAA,EAAS,oBAAA,CAAA,CAAA,CAAA;AAClDK,YAAAA,OAAAA,CAAQC,GAAG,EAAA;AACb,QAAA,CAAA;AAEA6B,QAAAA,sBAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAACP,MAAAA,CAAOL,MAAM,CAACa,GAAG,CAAC,+BAAA,CAAA,EAAkC;AACvD,gBAAA;AACF,YAAA;AAEA,YAAA,IAAI,CAACrC,QAAQ,EAAA;AAEbM,YAAAA,OAAAA,CAAQC,GAAG,CAACC,KAAAA,CAAM8B,IAAI,CAAC,mBAAA,CAAA,CAAA;AACvBhC,YAAAA,OAAAA,CAAQC,GAAG,CACTC,KAAAA,CAAM+B,IAAI,CAAC,6EAAA,CAAA,CAAA;AAEbjC,YAAAA,OAAAA,CAAQC,GAAG,EAAA;AAEX,YAAA,MAAMiC,eAAe,IAAI1B,QAAAA,EAAAA;AAEzB,YAAA,MAAM2B,QAAAA,GAAWZ,MAAAA,CAAOL,MAAM,CAACa,GAAG,CAAC,mBAAA,CAAA;AACnCG,YAAAA,YAAAA,CAAapB,IAAI,CAAC;AAACZ,gBAAAA,KAAAA,CAAM8B,IAAI,CAACG,QAAAA;AAAU,aAAA,CAAA;AAExCnC,YAAAA,OAAAA,CAAQC,GAAG,CAAC,CAAA,EAAGiC,YAAAA,CAAaL,QAAQ,EAAA,CAAA,CAAI,CAAA;AACxC7B,YAAAA,OAAAA,CAAQC,GAAG,EAAA;AACb,QAAA,CAAA;AAEAmC,QAAAA,wBAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAACb,MAAAA,CAAOL,MAAM,CAACa,GAAG,CAAC,+BAAA,CAAA,EAAkC;AACvD,gBAAA;AACF,YAAA;AACA,YAAA,IAAI,CAACrC,QAAQ,EAAA;AAEbM,YAAAA,OAAAA,CAAQC,GAAG,CAACC,KAAAA,CAAM8B,IAAI,CAAC,eAAA,CAAA,CAAA;AAEvB,YAAA,IAAIvC,IAAIyB,MAAM,CAACa,GAAG,CAAC,6BAA6B,IAAA,EAAM;AACpD/B,gBAAAA,OAAAA,CAAQC,GAAG,CAACC,KAAAA,CAAM+B,IAAI,CAAC,+DAAA,CAAA,CAAA;AACvB,gBAAA,MAAME,QAAAA,GAAWZ,MAAAA,CAAOL,MAAM,CAACa,GAAG,CAAC,mBAAA,CAAA;AACnC/B,gBAAAA,OAAAA,CAAQC,GAAG,CAACC,KAAAA,CAAM8B,IAAI,CAACG,QAAAA,CAAAA,CAAAA;AACvBnC,gBAAAA,OAAAA,CAAQC,GAAG,EAAA;AACb,YAAA;AAEAD,YAAAA,OAAAA,CAAQC,GAAG,CAACC,KAAAA,CAAM+B,IAAI,CAAC,iCAAA,CAAA,CAAA;AACvB,YAAA,MAAMI,SAAAA,GAAYd,MAAAA,CAAOL,MAAM,CAACa,GAAG,CAAC,oBAAA,CAAA;AACpC/B,YAAAA,OAAAA,CAAQC,GAAG,CAACC,KAAAA,CAAM8B,IAAI,CAACK,SAAAA,CAAAA,CAAAA;AACvBrC,YAAAA,OAAAA,CAAQC,GAAG,EAAA;AACb,QAAA,CAAA;QAEAqC,iBAAAA,CAAAA,CAAkB,EAAEC,aAAa,EAA8B,EAAA;AAC7D,YAAA,IAAI,CAAChB,MAAAA,CAAOL,MAAM,CAACa,GAAG,CAAC,+BAAA,CAAA,EAAkC;AACvD,gBAAA;AACF,YAAA;AACA,YAAA,IAAI,CAACQ,aAAAA,EAAe;AAClB,gBAAA,IAAI,CAACT,sBAAsB,EAAA;YAC7B,CAAA,MAAO;AACL,gBAAA,IAAI,CAACM,wBAAwB,EAAA;AAC/B,YAAA;AACF,QAAA;AACF,KAAA;AACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/core",
3
- "version": "5.47.0",
3
+ "version": "5.48.0",
4
4
  "description": "Core of Strapi",
5
5
  "homepage": "https://strapi.io",
6
6
  "bugs": {
@@ -61,14 +61,15 @@
61
61
  "@koa/router": "12.0.2",
62
62
  "@modelcontextprotocol/sdk": "1.29.0",
63
63
  "@paralleldrive/cuid2": "2.2.2",
64
- "@strapi/admin": "5.47.0",
65
- "@strapi/database": "5.47.0",
66
- "@strapi/generators": "5.47.0",
67
- "@strapi/logger": "5.47.0",
68
- "@strapi/permissions": "5.47.0",
69
- "@strapi/types": "5.47.0",
70
- "@strapi/typescript-utils": "5.47.0",
71
- "@strapi/utils": "5.47.0",
64
+ "@strapi/admin": "5.48.0",
65
+ "@strapi/database": "5.48.0",
66
+ "@strapi/generators": "5.48.0",
67
+ "@strapi/logger": "5.48.0",
68
+ "@strapi/openapi": "5.48.0",
69
+ "@strapi/permissions": "5.48.0",
70
+ "@strapi/types": "5.48.0",
71
+ "@strapi/typescript-utils": "5.48.0",
72
+ "@strapi/utils": "5.48.0",
72
73
  "@vercel/stega": "0.1.2",
73
74
  "bcryptjs": "2.4.3",
74
75
  "boxen": "5.1.2",
@@ -96,7 +97,7 @@
96
97
  "koa-favicon": "2.1.0",
97
98
  "koa-helmet": "7.0.2",
98
99
  "koa-ip": "^2.1.3",
99
- "koa-session": "6.4.0",
100
+ "koa-session": "7.0.2",
100
101
  "koa-static": "5.0.0",
101
102
  "lodash": "4.18.1",
102
103
  "mime-types": "2.1.35",
@@ -105,7 +106,7 @@
105
106
  "ora": "5.4.1",
106
107
  "package-json": "7.0.0",
107
108
  "pkg-up": "3.1.0",
108
- "qs": "6.15.0",
109
+ "qs": "6.15.2",
109
110
  "resolve.exports": "2.0.2",
110
111
  "semver": "7.7.4",
111
112
  "statuses": "2.0.1",
@@ -119,7 +120,7 @@
119
120
  "@swc/core": "1.13.5",
120
121
  "@types/bcryptjs": "2.4.3",
121
122
  "@types/configstore": "5.0.1",
122
- "@types/delegates": "1.0.0",
123
+ "@types/delegates": "1.0.3",
123
124
  "@types/fs-extra": "11.0.4",
124
125
  "@types/global-agent": "3.0.0",
125
126
  "@types/http-errors": "2.0.4",
@@ -127,7 +128,6 @@
127
128
  "@types/json-logic-js": "2.0.8",
128
129
  "@types/koa": "2.13.4",
129
130
  "@types/koa-compress": "4.0.3",
130
- "@types/koa-session": "6.4.1",
131
131
  "@types/koa-static": "4.0.2",
132
132
  "@types/koa__router": "12.0.0",
133
133
  "@types/lodash": "^4.14.191",
@@ -135,11 +135,11 @@
135
135
  "@types/node": "24.10.0",
136
136
  "@types/node-schedule": "2.1.7",
137
137
  "@types/statuses": "2.0.1",
138
- "eslint-config-custom": "5.47.0",
138
+ "eslint-config-custom": "5.48.0",
139
139
  "supertest": "7.2.2",
140
- "tsconfig": "5.47.0",
140
+ "tsconfig": "5.48.0",
141
141
  "vitest": "catalog:",
142
- "vitest-config": "5.47.0"
142
+ "vitest-config": "5.48.0"
143
143
  },
144
144
  "engines": {
145
145
  "node": ">=20.0.0 <=24.x.x",