create-strapi-app 5.30.1 → 5.31.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.
@@ -102,7 +102,7 @@ const sqlClientModule = {
102
102
  pg: '8.8.0'
103
103
  },
104
104
  sqlite: {
105
- 'better-sqlite3': '11.3.0'
105
+ 'better-sqlite3': '12.4.1'
106
106
  }
107
107
  };
108
108
  function addDatabaseDependencies(scope) {
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sources":["../../src/utils/database.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport type { Question } from 'inquirer';\n\nimport type { Scope, Options, DBClient, DBConfig } from '../types';\nimport { logger } from './logger';\n\nconst DBOptions = ['dbclient', 'dbhost', 'dbport', 'dbname', 'dbusername', 'dbpassword'];\n\nconst VALID_CLIENTS = ['sqlite', 'mysql', 'postgres'] as const;\n\nconst DEFAULT_CONFIG: DBConfig = {\n client: 'sqlite',\n connection: {\n filename: '.tmp/data.db',\n },\n};\n\nasync function dbPrompt() {\n const { useDefault } = await inquirer.prompt<{ useDefault: boolean }>([\n {\n type: 'confirm',\n name: 'useDefault',\n message: 'Do you want to use the default database (sqlite) ?',\n default: true,\n },\n ]);\n\n if (useDefault) {\n return DEFAULT_CONFIG;\n }\n\n const { client } = await inquirer.prompt<{ client: DBClient }>([\n {\n type: 'list',\n name: 'client',\n message: 'Choose your default database client',\n choices: ['sqlite', 'postgres', 'mysql'],\n default: 'sqlite',\n },\n ]);\n\n const questions = dbQuestions[client].map((q) => q({ client }));\n\n const responses = await inquirer.prompt(questions);\n\n return {\n client,\n connection: responses,\n };\n}\n\nexport async function getDatabaseInfos(options: Options): Promise<DBConfig> {\n if (options.skipDb) {\n return DEFAULT_CONFIG;\n }\n\n if (options.dbclient && !VALID_CLIENTS.includes(options.dbclient)) {\n logger.fatal(\n `Invalid --dbclient: ${options.dbclient}, expected one of ${VALID_CLIENTS.join(', ')}`\n );\n }\n\n const matchingArgs = DBOptions.filter((key) => key in options);\n const missingArgs = DBOptions.filter((key) => !(key in options));\n\n if (\n matchingArgs.length > 0 &&\n matchingArgs.length !== DBOptions.length &&\n options.dbclient !== 'sqlite'\n ) {\n logger.fatal(`Required database arguments are missing: ${missingArgs.join(', ')}.`);\n }\n\n const hasDBOptions = DBOptions.some((key) => key in options);\n\n if (!hasDBOptions) {\n if (options.quickstart) {\n return DEFAULT_CONFIG;\n }\n\n return dbPrompt();\n }\n\n if (!options.dbclient) {\n return logger.fatal('Please specify the database client');\n }\n\n const database: DBConfig = {\n client: options.dbclient,\n connection: {\n host: options.dbhost,\n port: options.dbport,\n database: options.dbname,\n username: options.dbusername,\n password: options.dbpassword,\n filename: options.dbfile,\n },\n };\n\n if (options.dbssl !== undefined) {\n database.connection.ssl = options.dbssl === 'true';\n }\n\n return database;\n}\n\nconst sqlClientModule = {\n mysql: { mysql2: '3.9.8' },\n postgres: { pg: '8.8.0' },\n sqlite: { 'better-sqlite3': '11.3.0' },\n};\n\nexport function addDatabaseDependencies(scope: Scope) {\n scope.dependencies = {\n ...scope.dependencies,\n ...sqlClientModule[scope.database.client],\n };\n}\n\ninterface QuestionFactory {\n (options: { client: DBClient }): Question;\n}\n\nconst DEFAULT_PORTS = {\n postgres: 5432,\n mysql: 3306,\n sqlite: undefined,\n};\n\nconst database: QuestionFactory = () => ({\n type: 'input',\n name: 'database',\n message: 'Database name:',\n default: 'strapi',\n validate(value: string) {\n if (value.includes('.')) {\n return `The database name can't contain a \".\"`;\n }\n\n return true;\n },\n});\n\nconst host: QuestionFactory = () => ({\n type: 'input',\n name: 'host',\n message: 'Host:',\n default: '127.0.0.1',\n});\n\nconst port: QuestionFactory = ({ client }) => ({\n type: 'input',\n name: 'port',\n message: 'Port:',\n default: DEFAULT_PORTS[client],\n});\n\nconst username: QuestionFactory = () => ({\n type: 'input',\n name: 'username',\n message: 'Username:',\n});\n\nconst password: QuestionFactory = () => ({\n type: 'password',\n name: 'password',\n message: 'Password:',\n mask: '*',\n});\n\nconst ssl: QuestionFactory = () => ({\n type: 'confirm',\n name: 'ssl',\n message: 'Enable SSL connection:',\n default: false,\n});\n\nconst filename: QuestionFactory = () => ({\n type: 'input',\n name: 'filename',\n message: 'Filename:',\n default: '.tmp/data.db',\n});\n\nconst dbQuestions = {\n sqlite: [filename],\n postgres: [database, host, port, username, password, ssl],\n mysql: [database, host, port, username, password, ssl],\n};\n"],"names":["DBOptions","VALID_CLIENTS","DEFAULT_CONFIG","client","connection","filename","dbPrompt","useDefault","inquirer","prompt","type","name","message","default","choices","questions","dbQuestions","map","q","responses","getDatabaseInfos","options","skipDb","dbclient","includes","logger","fatal","join","matchingArgs","filter","key","missingArgs","length","hasDBOptions","some","quickstart","database","host","dbhost","port","dbport","dbname","username","dbusername","password","dbpassword","dbfile","dbssl","undefined","ssl","sqlClientModule","mysql","mysql2","postgres","pg","sqlite","addDatabaseDependencies","scope","dependencies","DEFAULT_PORTS","validate","value","mask"],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sources":["../../src/utils/database.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport type { Question } from 'inquirer';\n\nimport type { Scope, Options, DBClient, DBConfig } from '../types';\nimport { logger } from './logger';\n\nconst DBOptions = ['dbclient', 'dbhost', 'dbport', 'dbname', 'dbusername', 'dbpassword'];\n\nconst VALID_CLIENTS = ['sqlite', 'mysql', 'postgres'] as const;\n\nconst DEFAULT_CONFIG: DBConfig = {\n client: 'sqlite',\n connection: {\n filename: '.tmp/data.db',\n },\n};\n\nasync function dbPrompt() {\n const { useDefault } = await inquirer.prompt<{ useDefault: boolean }>([\n {\n type: 'confirm',\n name: 'useDefault',\n message: 'Do you want to use the default database (sqlite) ?',\n default: true,\n },\n ]);\n\n if (useDefault) {\n return DEFAULT_CONFIG;\n }\n\n const { client } = await inquirer.prompt<{ client: DBClient }>([\n {\n type: 'list',\n name: 'client',\n message: 'Choose your default database client',\n choices: ['sqlite', 'postgres', 'mysql'],\n default: 'sqlite',\n },\n ]);\n\n const questions = dbQuestions[client].map((q) => q({ client }));\n\n const responses = await inquirer.prompt(questions);\n\n return {\n client,\n connection: responses,\n };\n}\n\nexport async function getDatabaseInfos(options: Options): Promise<DBConfig> {\n if (options.skipDb) {\n return DEFAULT_CONFIG;\n }\n\n if (options.dbclient && !VALID_CLIENTS.includes(options.dbclient)) {\n logger.fatal(\n `Invalid --dbclient: ${options.dbclient}, expected one of ${VALID_CLIENTS.join(', ')}`\n );\n }\n\n const matchingArgs = DBOptions.filter((key) => key in options);\n const missingArgs = DBOptions.filter((key) => !(key in options));\n\n if (\n matchingArgs.length > 0 &&\n matchingArgs.length !== DBOptions.length &&\n options.dbclient !== 'sqlite'\n ) {\n logger.fatal(`Required database arguments are missing: ${missingArgs.join(', ')}.`);\n }\n\n const hasDBOptions = DBOptions.some((key) => key in options);\n\n if (!hasDBOptions) {\n if (options.quickstart) {\n return DEFAULT_CONFIG;\n }\n\n return dbPrompt();\n }\n\n if (!options.dbclient) {\n return logger.fatal('Please specify the database client');\n }\n\n const database: DBConfig = {\n client: options.dbclient,\n connection: {\n host: options.dbhost,\n port: options.dbport,\n database: options.dbname,\n username: options.dbusername,\n password: options.dbpassword,\n filename: options.dbfile,\n },\n };\n\n if (options.dbssl !== undefined) {\n database.connection.ssl = options.dbssl === 'true';\n }\n\n return database;\n}\n\nconst sqlClientModule = {\n mysql: { mysql2: '3.9.8' },\n postgres: { pg: '8.8.0' },\n sqlite: { 'better-sqlite3': '12.4.1' },\n};\n\nexport function addDatabaseDependencies(scope: Scope) {\n scope.dependencies = {\n ...scope.dependencies,\n ...sqlClientModule[scope.database.client],\n };\n}\n\ninterface QuestionFactory {\n (options: { client: DBClient }): Question;\n}\n\nconst DEFAULT_PORTS = {\n postgres: 5432,\n mysql: 3306,\n sqlite: undefined,\n};\n\nconst database: QuestionFactory = () => ({\n type: 'input',\n name: 'database',\n message: 'Database name:',\n default: 'strapi',\n validate(value: string) {\n if (value.includes('.')) {\n return `The database name can't contain a \".\"`;\n }\n\n return true;\n },\n});\n\nconst host: QuestionFactory = () => ({\n type: 'input',\n name: 'host',\n message: 'Host:',\n default: '127.0.0.1',\n});\n\nconst port: QuestionFactory = ({ client }) => ({\n type: 'input',\n name: 'port',\n message: 'Port:',\n default: DEFAULT_PORTS[client],\n});\n\nconst username: QuestionFactory = () => ({\n type: 'input',\n name: 'username',\n message: 'Username:',\n});\n\nconst password: QuestionFactory = () => ({\n type: 'password',\n name: 'password',\n message: 'Password:',\n mask: '*',\n});\n\nconst ssl: QuestionFactory = () => ({\n type: 'confirm',\n name: 'ssl',\n message: 'Enable SSL connection:',\n default: false,\n});\n\nconst filename: QuestionFactory = () => ({\n type: 'input',\n name: 'filename',\n message: 'Filename:',\n default: '.tmp/data.db',\n});\n\nconst dbQuestions = {\n sqlite: [filename],\n postgres: [database, host, port, username, password, ssl],\n mysql: [database, host, port, username, password, ssl],\n};\n"],"names":["DBOptions","VALID_CLIENTS","DEFAULT_CONFIG","client","connection","filename","dbPrompt","useDefault","inquirer","prompt","type","name","message","default","choices","questions","dbQuestions","map","q","responses","getDatabaseInfos","options","skipDb","dbclient","includes","logger","fatal","join","matchingArgs","filter","key","missingArgs","length","hasDBOptions","some","quickstart","database","host","dbhost","port","dbport","dbname","username","dbusername","password","dbpassword","dbfile","dbssl","undefined","ssl","sqlClientModule","mysql","mysql2","postgres","pg","sqlite","addDatabaseDependencies","scope","dependencies","DEFAULT_PORTS","validate","value","mask"],"mappings":"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"}
@@ -100,7 +100,7 @@ const sqlClientModule = {
100
100
  pg: '8.8.0'
101
101
  },
102
102
  sqlite: {
103
- 'better-sqlite3': '11.3.0'
103
+ 'better-sqlite3': '12.4.1'
104
104
  }
105
105
  };
106
106
  function addDatabaseDependencies(scope) {
@@ -1 +1 @@
1
- {"version":3,"file":"database.mjs","sources":["../../src/utils/database.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport type { Question } from 'inquirer';\n\nimport type { Scope, Options, DBClient, DBConfig } from '../types';\nimport { logger } from './logger';\n\nconst DBOptions = ['dbclient', 'dbhost', 'dbport', 'dbname', 'dbusername', 'dbpassword'];\n\nconst VALID_CLIENTS = ['sqlite', 'mysql', 'postgres'] as const;\n\nconst DEFAULT_CONFIG: DBConfig = {\n client: 'sqlite',\n connection: {\n filename: '.tmp/data.db',\n },\n};\n\nasync function dbPrompt() {\n const { useDefault } = await inquirer.prompt<{ useDefault: boolean }>([\n {\n type: 'confirm',\n name: 'useDefault',\n message: 'Do you want to use the default database (sqlite) ?',\n default: true,\n },\n ]);\n\n if (useDefault) {\n return DEFAULT_CONFIG;\n }\n\n const { client } = await inquirer.prompt<{ client: DBClient }>([\n {\n type: 'list',\n name: 'client',\n message: 'Choose your default database client',\n choices: ['sqlite', 'postgres', 'mysql'],\n default: 'sqlite',\n },\n ]);\n\n const questions = dbQuestions[client].map((q) => q({ client }));\n\n const responses = await inquirer.prompt(questions);\n\n return {\n client,\n connection: responses,\n };\n}\n\nexport async function getDatabaseInfos(options: Options): Promise<DBConfig> {\n if (options.skipDb) {\n return DEFAULT_CONFIG;\n }\n\n if (options.dbclient && !VALID_CLIENTS.includes(options.dbclient)) {\n logger.fatal(\n `Invalid --dbclient: ${options.dbclient}, expected one of ${VALID_CLIENTS.join(', ')}`\n );\n }\n\n const matchingArgs = DBOptions.filter((key) => key in options);\n const missingArgs = DBOptions.filter((key) => !(key in options));\n\n if (\n matchingArgs.length > 0 &&\n matchingArgs.length !== DBOptions.length &&\n options.dbclient !== 'sqlite'\n ) {\n logger.fatal(`Required database arguments are missing: ${missingArgs.join(', ')}.`);\n }\n\n const hasDBOptions = DBOptions.some((key) => key in options);\n\n if (!hasDBOptions) {\n if (options.quickstart) {\n return DEFAULT_CONFIG;\n }\n\n return dbPrompt();\n }\n\n if (!options.dbclient) {\n return logger.fatal('Please specify the database client');\n }\n\n const database: DBConfig = {\n client: options.dbclient,\n connection: {\n host: options.dbhost,\n port: options.dbport,\n database: options.dbname,\n username: options.dbusername,\n password: options.dbpassword,\n filename: options.dbfile,\n },\n };\n\n if (options.dbssl !== undefined) {\n database.connection.ssl = options.dbssl === 'true';\n }\n\n return database;\n}\n\nconst sqlClientModule = {\n mysql: { mysql2: '3.9.8' },\n postgres: { pg: '8.8.0' },\n sqlite: { 'better-sqlite3': '11.3.0' },\n};\n\nexport function addDatabaseDependencies(scope: Scope) {\n scope.dependencies = {\n ...scope.dependencies,\n ...sqlClientModule[scope.database.client],\n };\n}\n\ninterface QuestionFactory {\n (options: { client: DBClient }): Question;\n}\n\nconst DEFAULT_PORTS = {\n postgres: 5432,\n mysql: 3306,\n sqlite: undefined,\n};\n\nconst database: QuestionFactory = () => ({\n type: 'input',\n name: 'database',\n message: 'Database name:',\n default: 'strapi',\n validate(value: string) {\n if (value.includes('.')) {\n return `The database name can't contain a \".\"`;\n }\n\n return true;\n },\n});\n\nconst host: QuestionFactory = () => ({\n type: 'input',\n name: 'host',\n message: 'Host:',\n default: '127.0.0.1',\n});\n\nconst port: QuestionFactory = ({ client }) => ({\n type: 'input',\n name: 'port',\n message: 'Port:',\n default: DEFAULT_PORTS[client],\n});\n\nconst username: QuestionFactory = () => ({\n type: 'input',\n name: 'username',\n message: 'Username:',\n});\n\nconst password: QuestionFactory = () => ({\n type: 'password',\n name: 'password',\n message: 'Password:',\n mask: '*',\n});\n\nconst ssl: QuestionFactory = () => ({\n type: 'confirm',\n name: 'ssl',\n message: 'Enable SSL connection:',\n default: false,\n});\n\nconst filename: QuestionFactory = () => ({\n type: 'input',\n name: 'filename',\n message: 'Filename:',\n default: '.tmp/data.db',\n});\n\nconst dbQuestions = {\n sqlite: [filename],\n postgres: [database, host, port, username, password, ssl],\n mysql: [database, host, port, username, password, ssl],\n};\n"],"names":["DBOptions","VALID_CLIENTS","DEFAULT_CONFIG","client","connection","filename","dbPrompt","useDefault","inquirer","prompt","type","name","message","default","choices","questions","dbQuestions","map","q","responses","getDatabaseInfos","options","skipDb","dbclient","includes","logger","fatal","join","matchingArgs","filter","key","missingArgs","length","hasDBOptions","some","quickstart","database","host","dbhost","port","dbport","dbname","username","dbusername","password","dbpassword","dbfile","dbssl","undefined","ssl","sqlClientModule","mysql","mysql2","postgres","pg","sqlite","addDatabaseDependencies","scope","dependencies","DEFAULT_PORTS","validate","value","mask"],"mappings":"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"}
1
+ {"version":3,"file":"database.mjs","sources":["../../src/utils/database.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport type { Question } from 'inquirer';\n\nimport type { Scope, Options, DBClient, DBConfig } from '../types';\nimport { logger } from './logger';\n\nconst DBOptions = ['dbclient', 'dbhost', 'dbport', 'dbname', 'dbusername', 'dbpassword'];\n\nconst VALID_CLIENTS = ['sqlite', 'mysql', 'postgres'] as const;\n\nconst DEFAULT_CONFIG: DBConfig = {\n client: 'sqlite',\n connection: {\n filename: '.tmp/data.db',\n },\n};\n\nasync function dbPrompt() {\n const { useDefault } = await inquirer.prompt<{ useDefault: boolean }>([\n {\n type: 'confirm',\n name: 'useDefault',\n message: 'Do you want to use the default database (sqlite) ?',\n default: true,\n },\n ]);\n\n if (useDefault) {\n return DEFAULT_CONFIG;\n }\n\n const { client } = await inquirer.prompt<{ client: DBClient }>([\n {\n type: 'list',\n name: 'client',\n message: 'Choose your default database client',\n choices: ['sqlite', 'postgres', 'mysql'],\n default: 'sqlite',\n },\n ]);\n\n const questions = dbQuestions[client].map((q) => q({ client }));\n\n const responses = await inquirer.prompt(questions);\n\n return {\n client,\n connection: responses,\n };\n}\n\nexport async function getDatabaseInfos(options: Options): Promise<DBConfig> {\n if (options.skipDb) {\n return DEFAULT_CONFIG;\n }\n\n if (options.dbclient && !VALID_CLIENTS.includes(options.dbclient)) {\n logger.fatal(\n `Invalid --dbclient: ${options.dbclient}, expected one of ${VALID_CLIENTS.join(', ')}`\n );\n }\n\n const matchingArgs = DBOptions.filter((key) => key in options);\n const missingArgs = DBOptions.filter((key) => !(key in options));\n\n if (\n matchingArgs.length > 0 &&\n matchingArgs.length !== DBOptions.length &&\n options.dbclient !== 'sqlite'\n ) {\n logger.fatal(`Required database arguments are missing: ${missingArgs.join(', ')}.`);\n }\n\n const hasDBOptions = DBOptions.some((key) => key in options);\n\n if (!hasDBOptions) {\n if (options.quickstart) {\n return DEFAULT_CONFIG;\n }\n\n return dbPrompt();\n }\n\n if (!options.dbclient) {\n return logger.fatal('Please specify the database client');\n }\n\n const database: DBConfig = {\n client: options.dbclient,\n connection: {\n host: options.dbhost,\n port: options.dbport,\n database: options.dbname,\n username: options.dbusername,\n password: options.dbpassword,\n filename: options.dbfile,\n },\n };\n\n if (options.dbssl !== undefined) {\n database.connection.ssl = options.dbssl === 'true';\n }\n\n return database;\n}\n\nconst sqlClientModule = {\n mysql: { mysql2: '3.9.8' },\n postgres: { pg: '8.8.0' },\n sqlite: { 'better-sqlite3': '12.4.1' },\n};\n\nexport function addDatabaseDependencies(scope: Scope) {\n scope.dependencies = {\n ...scope.dependencies,\n ...sqlClientModule[scope.database.client],\n };\n}\n\ninterface QuestionFactory {\n (options: { client: DBClient }): Question;\n}\n\nconst DEFAULT_PORTS = {\n postgres: 5432,\n mysql: 3306,\n sqlite: undefined,\n};\n\nconst database: QuestionFactory = () => ({\n type: 'input',\n name: 'database',\n message: 'Database name:',\n default: 'strapi',\n validate(value: string) {\n if (value.includes('.')) {\n return `The database name can't contain a \".\"`;\n }\n\n return true;\n },\n});\n\nconst host: QuestionFactory = () => ({\n type: 'input',\n name: 'host',\n message: 'Host:',\n default: '127.0.0.1',\n});\n\nconst port: QuestionFactory = ({ client }) => ({\n type: 'input',\n name: 'port',\n message: 'Port:',\n default: DEFAULT_PORTS[client],\n});\n\nconst username: QuestionFactory = () => ({\n type: 'input',\n name: 'username',\n message: 'Username:',\n});\n\nconst password: QuestionFactory = () => ({\n type: 'password',\n name: 'password',\n message: 'Password:',\n mask: '*',\n});\n\nconst ssl: QuestionFactory = () => ({\n type: 'confirm',\n name: 'ssl',\n message: 'Enable SSL connection:',\n default: false,\n});\n\nconst filename: QuestionFactory = () => ({\n type: 'input',\n name: 'filename',\n message: 'Filename:',\n default: '.tmp/data.db',\n});\n\nconst dbQuestions = {\n sqlite: [filename],\n postgres: [database, host, port, username, password, ssl],\n mysql: [database, host, port, username, password, ssl],\n};\n"],"names":["DBOptions","VALID_CLIENTS","DEFAULT_CONFIG","client","connection","filename","dbPrompt","useDefault","inquirer","prompt","type","name","message","default","choices","questions","dbQuestions","map","q","responses","getDatabaseInfos","options","skipDb","dbclient","includes","logger","fatal","join","matchingArgs","filter","key","missingArgs","length","hasDBOptions","some","quickstart","database","host","dbhost","port","dbport","dbname","username","dbusername","password","dbpassword","dbfile","dbssl","undefined","ssl","sqlClientModule","mysql","mysql2","postgres","pg","sqlite","addDatabaseDependencies","scope","dependencies","DEFAULT_PORTS","validate","value","mask"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const engines = {
4
- node: '>=18.0.0 <=22.x.x',
4
+ node: '>=20.0.0 <=24.x.x',
5
5
  npm: '>=6.0.0'
6
6
  };
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"engines.js","sources":["../../src/utils/engines.ts"],"sourcesContent":["export const engines = {\n node: '>=18.0.0 <=22.x.x',\n npm: '>=6.0.0',\n};\n"],"names":["engines","node","npm"],"mappings":";;MAAaA,OAAU,GAAA;IACrBC,IAAM,EAAA,mBAAA;IACNC,GAAK,EAAA;AACP;;;;"}
1
+ {"version":3,"file":"engines.js","sources":["../../src/utils/engines.ts"],"sourcesContent":["export const engines = {\n node: '>=20.0.0 <=24.x.x',\n npm: '>=6.0.0',\n};\n"],"names":["engines","node","npm"],"mappings":";;MAAaA,OAAU,GAAA;IACrBC,IAAM,EAAA,mBAAA;IACNC,GAAK,EAAA;AACP;;;;"}
@@ -1,5 +1,5 @@
1
1
  const engines = {
2
- node: '>=18.0.0 <=22.x.x',
2
+ node: '>=20.0.0 <=24.x.x',
3
3
  npm: '>=6.0.0'
4
4
  };
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"engines.mjs","sources":["../../src/utils/engines.ts"],"sourcesContent":["export const engines = {\n node: '>=18.0.0 <=22.x.x',\n npm: '>=6.0.0',\n};\n"],"names":["engines","node","npm"],"mappings":"MAAaA,OAAU,GAAA;IACrBC,IAAM,EAAA,mBAAA;IACNC,GAAK,EAAA;AACP;;;;"}
1
+ {"version":3,"file":"engines.mjs","sources":["../../src/utils/engines.ts"],"sourcesContent":["export const engines = {\n node: '>=20.0.0 <=24.x.x',\n npm: '>=6.0.0',\n};\n"],"names":["engines","node","npm"],"mappings":"MAAaA,OAAU,GAAA;IACrBC,IAAM,EAAA,mBAAA;IACNC,GAAK,EAAA;AACP;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-strapi-app",
3
- "version": "5.30.1",
3
+ "version": "5.31.0",
4
4
  "description": "Generate a new Strapi application.",
5
5
  "keywords": [
6
6
  "create-strapi-app",
@@ -50,7 +50,7 @@
50
50
  "watch": "run -T rollup -c -w"
51
51
  },
52
52
  "dependencies": {
53
- "@strapi/cloud-cli": "5.30.1",
53
+ "@strapi/cloud-cli": "5.31.0",
54
54
  "async-retry": "1.3.3",
55
55
  "chalk": "4.1.2",
56
56
  "commander": "8.3.0",
@@ -69,11 +69,11 @@
69
69
  "@types/async-retry": "^1",
70
70
  "@types/fs-extra": "11.0.4",
71
71
  "@types/inquirer": "8.2.5",
72
- "eslint-config-custom": "5.30.1",
73
- "tsconfig": "5.30.1"
72
+ "eslint-config-custom": "5.31.0",
73
+ "tsconfig": "5.31.0"
74
74
  },
75
75
  "engines": {
76
- "node": ">=18.0.0 <=22.x.x",
76
+ "node": ">=20.0.0 <=24.x.x",
77
77
  "npm": ">=6.0.0"
78
78
  }
79
79
  }