@scandipwa/magento-scripts 2.4.10 → 2.4.12-alpha.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 (49) hide show
  1. package/index.js +11 -0
  2. package/lib/commands/cleanup.js +5 -1
  3. package/lib/commands/cli.js +6 -2
  4. package/lib/commands/execute.js +18 -4
  5. package/lib/commands/import-db.js +13 -0
  6. package/lib/commands/link.js +12 -6
  7. package/lib/commands/logs.js +7 -1
  8. package/lib/commands/start.js +7 -2
  9. package/lib/commands/status.js +4 -1
  10. package/lib/commands/stop.js +9 -5
  11. package/lib/config/check-configuration-file.js +7 -5
  12. package/lib/config/docker.js +2 -1
  13. package/lib/config/get-magento-version-config.js +2 -0
  14. package/lib/config/services/composer/versions/composer-2.9.js +1 -1
  15. package/lib/config/services/mariadb/versions/index.js +2 -1
  16. package/lib/config/services/mariadb/versions/mariadb-11.8.js +11 -0
  17. package/lib/config/services/redis/index.js +3 -1
  18. package/lib/config/services/redis/valkey-9.0.js +8 -0
  19. package/lib/config/services/varnish/index.js +2 -1
  20. package/lib/config/services/varnish/varnish-8-0.js +15 -0
  21. package/lib/config/versions/magento-2.4.4-p18.js +43 -0
  22. package/lib/config/versions/magento-2.4.5-p17.js +43 -0
  23. package/lib/config/versions/magento-2.4.6-p15.js +43 -0
  24. package/lib/config/versions/magento-2.4.7-p10.js +42 -0
  25. package/lib/config/versions/magento-2.4.8-p4.js +0 -1
  26. package/lib/config/versions/magento-2.4.8-p5.js +42 -0
  27. package/lib/config/versions/magento-2.4.9.js +44 -0
  28. package/lib/tasks/database/create-magento-user.js +26 -6
  29. package/lib/tasks/database/fix-db.js +6 -4
  30. package/lib/tasks/database/import-dump-to-database.js +55 -48
  31. package/lib/tasks/database/import-remote-db/ssh/index.js +22 -16
  32. package/lib/tasks/database/import-remote-db/ssh/regular-server.js +7 -5
  33. package/lib/tasks/docker/containers/container-api.d.ts +4 -4
  34. package/lib/tasks/docker/project-image-builder.js +4 -2
  35. package/lib/tasks/execute.js +46 -6
  36. package/lib/tasks/import-dump.js +18 -16
  37. package/lib/tasks/magento/enable-magento-composer-plugins.js +7 -5
  38. package/lib/tasks/magento/setup-magento/index-products.js +17 -15
  39. package/lib/tasks/magento/setup-magento/index.js +29 -1
  40. package/lib/tasks/magento/setup-magento/install-magento.js +35 -31
  41. package/lib/tasks/requirements/composer-credentials.js +41 -24
  42. package/lib/tasks/requirements/docker/context.js +24 -22
  43. package/lib/tasks/requirements/docker/permissions.js +12 -10
  44. package/lib/tasks/requirements/docker/running-status.js +31 -21
  45. package/lib/tasks/start.js +1 -1
  46. package/lib/util/ensure-agents-md.js +79 -0
  47. package/lib/util/execute-in-container.js +90 -15
  48. package/package.json +2 -2
  49. package/typings/context.d.ts +11 -0
package/index.js CHANGED
@@ -6,6 +6,7 @@ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
6
6
  const semver = require('semver')
7
7
  const isInstalledGlobally = require('is-installed-globally')
8
8
  const isRunningRoot = require('./lib/util/is-running-root')
9
+ const ensureAgentsMd = require('./lib/util/ensure-agents-md')
9
10
 
10
11
  if (isRunningRoot()) {
11
12
  logger.error('Root privileges detected!')
@@ -27,6 +28,8 @@ If you are experiencing problems with ${logger.style.misc(
27
28
  process.exit(1)
28
29
  }
29
30
 
31
+ ensureAgentsMd()
32
+
30
33
  const commands = [
31
34
  require('./lib/commands/link'),
32
35
  require('./lib/commands/logs'),
@@ -123,6 +126,14 @@ const newVersionIsAPatch = (latestVersion, currentVersion) => {
123
126
  yargs.scriptName('magento-scripts')
124
127
  yargs.version(false)
125
128
 
129
+ yargs.option('silent', {
130
+ alias: 'q',
131
+ describe:
132
+ 'Suppress all task progress output (Listr silent renderer). Enabled automatically when stdout is not a TTY.',
133
+ type: 'boolean',
134
+ default: false
135
+ })
136
+
126
137
  // Initialize program commands
127
138
  commands.forEach((command) => command(yargs))
128
139
 
@@ -18,12 +18,16 @@ module.exports = (yargs) => {
18
18
  }),
19
19
  async (args) => {
20
20
  logger.warn('you should not use this command.')
21
+ const silent = /** @type {boolean} */ (args.silent)
21
22
  const tasks = new Listr(cleanup(), {
22
23
  concurrent: false,
23
24
  exitOnError: true,
24
25
  ctx: {
25
- force: args.force
26
+ force: args.force,
27
+ silent
26
28
  },
29
+ renderer:
30
+ silent || !process.stdout.isTTY ? 'silent' : 'default',
27
31
  rendererOptions: { collapse: false }
28
32
  })
29
33
 
@@ -20,7 +20,8 @@ module.exports = (yargs) => {
20
20
  'Enter CLI (magento, php, composer).',
21
21
  // eslint-disable-next-line @typescript-eslint/no-empty-function
22
22
  () => {},
23
- async () => {
23
+ async (args) => {
24
+ const silent = /** @type {boolean} */ (args.silent)
24
25
  const tasks = new Listr(
25
26
  [
26
27
  getMagentoVersionConfig(),
@@ -33,8 +34,11 @@ module.exports = (yargs) => {
33
34
  concurrent: false,
34
35
  exitOnError: true,
35
36
  ctx: {
36
- throwMagentoVersionMissing: true
37
+ throwMagentoVersionMissing: true,
38
+ silent
37
39
  },
40
+ renderer:
41
+ silent || !process.stdout.isTTY ? 'silent' : 'default',
38
42
  rendererOptions: { collapse: false, clearOutput: true }
39
43
  }
40
44
  )
@@ -8,6 +8,13 @@ module.exports = (yargs) => {
8
8
  'exec <container name> [command...]',
9
9
  'Execute command in docker container',
10
10
  (yargs) => {
11
+ yargs.option('non-interactive', {
12
+ alias: 'n',
13
+ type: 'boolean',
14
+ default: false,
15
+ description:
16
+ 'Run in non-interactive mode (for AI terminals and scripts)'
17
+ })
11
18
  yargs.usage(`Usage: npm run exec <container name> [command...]
12
19
 
13
20
  Available containers:
@@ -19,13 +26,20 @@ Available containers:
19
26
  - mariadb
20
27
  - elasticsearch
21
28
  - maildev
22
- - varnish (if enabled)`)
29
+ - varnish (if enabled)
30
+
31
+ Options:
32
+ --non-interactive, -n Run in non-interactive mode (no TTY required)`)
23
33
  },
24
- async () => {
25
- const [containerName, ...commands] = process.argv.slice(3)
34
+ async (argv) => {
35
+ const [containerName, ...commands] = process.argv
36
+ .slice(3)
37
+ .filter((arg) => arg !== '--non-interactive' && arg !== '-n')
38
+
26
39
  await executeTask({
27
40
  containerName,
28
- commands
41
+ commands,
42
+ nonInteractive: !!(argv.nonInteractive || argv.n)
29
43
  })
30
44
  }
31
45
  )
@@ -27,12 +27,25 @@ module.exports = (yargs) => {
27
27
  type: 'boolean',
28
28
  default: false
29
29
  })
30
+ yargs.option('non-interactive', {
31
+ alias: 'y',
32
+ describe:
33
+ 'Skip all interactive prompts using sensible defaults',
34
+ type: 'boolean',
35
+ default: false
36
+ })
30
37
  },
31
38
  async (args) => {
32
39
  const tasks = new Listr(importDump(), {
33
40
  exitOnError: true,
34
41
  ctx: args,
35
42
  concurrent: false,
43
+ renderer:
44
+ /** @type {boolean} */ (args.silent) ||
45
+ /** @type {boolean} */ (args.nonInteractive) ||
46
+ !process.stdout.isTTY
47
+ ? 'silent'
48
+ : 'default',
36
49
  rendererOptions: {
37
50
  showErrorMessage: false,
38
51
  showTimer: true
@@ -17,12 +17,18 @@ module.exports = (yargs) => {
17
17
  default: false
18
18
  }),
19
19
  async (args) => {
20
- const tasks = new Listr(linkTask(args.themepath), {
21
- concurrent: false,
22
- exitOnError: true,
23
- ctx: { throwMagentoVersionMissing: true },
24
- rendererOptions: { collapse: false }
25
- })
20
+ const silent = /** @type {boolean} */ (args.silent)
21
+ const tasks = new Listr(
22
+ linkTask(/** @type {string} */ (args.themepath)),
23
+ {
24
+ concurrent: false,
25
+ exitOnError: true,
26
+ ctx: { throwMagentoVersionMissing: true, silent },
27
+ renderer:
28
+ silent || !process.stdout.isTTY ? 'silent' : 'default',
29
+ rendererOptions: { collapse: false }
30
+ }
31
+ )
26
32
 
27
33
  try {
28
34
  await tasks.run()
@@ -70,6 +70,7 @@ npm run logs re (will match redis)`)
70
70
  })
71
71
  },
72
72
  async (argv) => {
73
+ const silent = /** @type {boolean} */ (argv.silent)
73
74
  const tasks = new Listr(
74
75
  [
75
76
  checkRequirements(),
@@ -82,7 +83,12 @@ npm run logs re (will match redis)`)
82
83
  {
83
84
  concurrent: false,
84
85
  exitOnError: true,
85
- ctx: { throwMagentoVersionMissing: true },
86
+ ctx: {
87
+ throwMagentoVersionMissing: true,
88
+ silent
89
+ },
90
+ renderer:
91
+ silent || !process.stdout.isTTY ? 'silent' : 'default',
86
92
  rendererOptions: { collapse: false, clearOutput: true }
87
93
  }
88
94
  )
@@ -64,9 +64,9 @@ module.exports = (yargs) => {
64
64
  type: 'number',
65
65
  nargs: 1
66
66
  })
67
- .option('no-open', {
67
+ .option('open', {
68
68
  alias: 'n',
69
- describe: 'Do not open browser after command finished',
69
+ describe: 'Open browser after command finished',
70
70
  type: 'boolean',
71
71
  default: false
72
72
  })
@@ -109,6 +109,11 @@ module.exports = (yargs) => {
109
109
  exitOnError: true,
110
110
  ctx: args,
111
111
  concurrent: false,
112
+ renderer:
113
+ /** @type {boolean} */ (args.silent) ||
114
+ !process.stdout.isTTY
115
+ ? 'silent'
116
+ : 'default',
112
117
  rendererOptions: {
113
118
  showErrorMessage: false,
114
119
  showTimer: true
@@ -23,6 +23,7 @@ module.exports = (yargs) => {
23
23
  // eslint-disable-next-line @typescript-eslint/no-empty-function
24
24
  () => {},
25
25
  async (args) => {
26
+ const silent = /** @type {boolean} */ (args.silent)
26
27
  const tasks = new Listr(
27
28
  [
28
29
  checkRequirements(),
@@ -58,7 +59,9 @@ module.exports = (yargs) => {
58
59
  {
59
60
  concurrent: false,
60
61
  exitOnError: false,
61
- ctx: { throwMagentoVersionMissing: true, ...args },
62
+ ctx: { throwMagentoVersionMissing: true, ...args, silent },
63
+ renderer:
64
+ silent || !process.stdout.isTTY ? 'silent' : 'default',
62
65
  rendererOptions: { collapse: false, clearOutput: false }
63
66
  }
64
67
  )
@@ -10,16 +10,20 @@ module.exports = (yargs) => {
10
10
  'Stop the application.',
11
11
  // eslint-disable-next-line @typescript-eslint/no-empty-function
12
12
  () => {},
13
- async () => {
13
+ async (args) => {
14
+ const silent = /** @type {boolean} */ (args.silent)
14
15
  const tasks = new Listr(stop(), {
15
16
  concurrent: false,
16
17
  exitOnError: true,
17
- rendererOptions: {
18
- collapse: false
19
- },
20
18
  ctx: {
21
19
  throwMagentoVersionMissing: true,
22
- projectPath: process.cwd()
20
+ projectPath: process.cwd(),
21
+ silent
22
+ },
23
+ renderer:
24
+ silent || !process.stdout.isTTY ? 'silent' : 'default',
25
+ rendererOptions: {
26
+ collapse: false
23
27
  }
24
28
  })
25
29
 
@@ -49,13 +49,15 @@ const checkConfigurationFile = () => ({
49
49
  }
50
50
 
51
51
  if (!magentoConfiguration) {
52
- const magentoEdition = await task.prompt({
53
- type: 'Select',
54
- message: `Please select Magento edition you want to install.
52
+ const magentoEdition = ctx.nonInteractive
53
+ ? 'Community'
54
+ : await task.prompt({
55
+ type: 'Select',
56
+ message: `Please select Magento edition you want to install.
55
57
 
56
58
  Note that Enterprise edition requires Magento Enterprise License keys.`,
57
- choices: ['Community', 'Enterprise']
58
- })
59
+ choices: ['Community', 'Enterprise']
60
+ })
59
61
 
60
62
  magentoConfiguration = deepmerge(defaultMagentoConfig, {
61
63
  edition: magentoEdition.toLowerCase()
@@ -232,7 +232,8 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
232
232
  name: `${prefix}_php_with_xdebug`,
233
233
  connectCommand: ['/bin/sh'],
234
234
  execCommandEnv: {
235
- XDEBUG_TRIGGER: 'PHPSTORM'
235
+ XDEBUG_TRIGGER: 'PHPSTORM',
236
+ XDEBUG_SESSION: 'PHPSTORM'
236
237
  },
237
238
  dependsOn: ['mariadb', 'redis', 'elasticsearch'],
238
239
  user:
@@ -48,6 +48,8 @@ const getMagentoVersion = () => ({
48
48
  const { magentoVersion: defaultMagentoVersion } =
49
49
  defaultConfiguration
50
50
  magentoVersion = defaultMagentoVersion
51
+ } else if (ctx.nonInteractive) {
52
+ magentoVersion = defaultConfiguration.magento
51
53
  } else {
52
54
  let promptSkipper = false
53
55
  const timer = async () => {
@@ -2,7 +2,7 @@
2
2
  * @returns {import('../../../../../typings/index').ComposerConfiguration}
3
3
  */
4
4
  const composer29 = () => ({
5
- version: '2.9.5'
5
+ version: '2.9.8'
6
6
  })
7
7
 
8
8
  module.exports = composer29
@@ -5,5 +5,6 @@ module.exports = {
5
5
  mariadb106: require('./mariadb-10.6'),
6
6
  mariadb1011: require('./mariadb-10.11'),
7
7
  mariadb114: require('./mariadb-11.4'),
8
- mariadb116: require('./mariadb-11.6')
8
+ mariadb116: require('./mariadb-11.6'),
9
+ mariadb118: require('./mariadb-11.8')
9
10
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @returns {import('../../../../../typings/index').MariaDBConfiguration}
3
+ */
4
+ const mariadb118 = () => ({
5
+ image: 'mariadb:11.8',
6
+ useOptimizerSwitch: true,
7
+ binFileName: 'mariadb',
8
+ binAdminFileName: 'mariadb-admin'
9
+ })
10
+
11
+ module.exports = mariadb118
@@ -1,5 +1,6 @@
1
1
  const valkey80 = require('./valkey-8.0')
2
2
  const valkey81 = require('./valkey-8.1')
3
+ const valkey90 = require('./valkey-9.0')
3
4
 
4
5
  module.exports = {
5
6
  redis50: require('./redis-5.0'),
@@ -8,5 +9,6 @@ module.exports = {
8
9
  redis70: require('./redis-7.0'),
9
10
  redis72: require('./redis-7.2'),
10
11
  valkey80,
11
- valkey81
12
+ valkey81,
13
+ valkey90
12
14
  }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @returns {import('../../../../typings/index').ServiceWithImage}
3
+ */
4
+ const valkey90 = () => ({
5
+ image: 'valkey/valkey:9.0-alpine'
6
+ })
7
+
8
+ module.exports = valkey90
@@ -7,5 +7,6 @@ module.exports = {
7
7
  varnish74: require('./varnish-7-4'),
8
8
  varnish75: require('./varnish-7-5'),
9
9
  varnish76: require('./varnish-7-6'),
10
- varnish77: require('./varnish-7-7')
10
+ varnish77: require('./varnish-7-7'),
11
+ varnish80: require('./varnish-8-0')
11
12
  }
@@ -0,0 +1,15 @@
1
+ const path = require('path')
2
+
3
+ /**
4
+ * @param {Object} param0
5
+ * @param {string} param0.templateDir
6
+ * @returns {import('../../../../typings/index').VarnishConfiguration}
7
+ */
8
+ const varnish80 = ({ templateDir }) => ({
9
+ enabled: false,
10
+ healthCheck: false,
11
+ image: 'varnish:8.0',
12
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
13
+ })
14
+
15
+ module.exports = varnish80
@@ -0,0 +1,43 @@
1
+ const sodium = require('../services/php/extensions/sodium')
2
+ const {
3
+ magento24PHPExtensionList
4
+ } = require('../magento/required-php-extensions')
5
+ const { php81 } = require('../services/php/versions')
6
+ const { sslTerminator } = require('../services/ssl-terminator')
7
+ const { varnish77 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx128 } = require('../services/nginx/versions')
10
+ const { composer22 } = require('../services/composer/versions')
11
+ const { maildev } = require('../services/maildev')
12
+ const { redis72 } = require('../services/redis')
13
+ const { mariadb106 } = require('../services/mariadb/versions')
14
+ const { elasticsearch717 } = require('../services/elasticsearch/versions')
15
+ const { mysql80 } = require('../services/mysql/versions')
16
+ const { opensearch219 } = require('../services/opensearch/versions')
17
+
18
+ /**
19
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
20
+ */
21
+ module.exports = ({ templateDir }) => ({
22
+ magentoVersion: '2.4.4-p18',
23
+ configuration: {
24
+ php: php81({
25
+ templateDir,
26
+ extensions: { ...magento24PHPExtensionList, sodium },
27
+ baseImage: `${repo}:php-8.1-magento-2.4`
28
+ }),
29
+ nginx: nginx128({ templateDir }),
30
+ redis: redis72(),
31
+ // not supported anymore
32
+ mysql: mysql80(),
33
+ mariadb: mariadb106(),
34
+ // not supported anymore
35
+ elasticsearch: elasticsearch717(),
36
+ composer: composer22(),
37
+ varnish: varnish77({ templateDir }),
38
+ sslTerminator: sslTerminator({ templateDir }),
39
+ maildev: maildev(),
40
+ opensearch: opensearch219(),
41
+ searchengine: 'opensearch'
42
+ }
43
+ })
@@ -0,0 +1,43 @@
1
+ const sodium = require('../services/php/extensions/sodium')
2
+ const {
3
+ magento24PHPExtensionList
4
+ } = require('../magento/required-php-extensions')
5
+ const { php81 } = require('../services/php/versions')
6
+ const { sslTerminator } = require('../services/ssl-terminator')
7
+ const { varnish80 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx128 } = require('../services/nginx/versions')
10
+ const { composer22 } = require('../services/composer/versions')
11
+ const { maildev } = require('../services/maildev')
12
+ const { valkey81 } = require('../services/redis')
13
+ const { mariadb106 } = require('../services/mariadb/versions')
14
+ const { elasticsearch717 } = require('../services/elasticsearch/versions')
15
+ const { mysql80 } = require('../services/mysql/versions')
16
+ const { opensearch219 } = require('../services/opensearch/versions')
17
+
18
+ /**
19
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
20
+ */
21
+ module.exports = ({ templateDir }) => ({
22
+ magentoVersion: '2.4.5-p17',
23
+ configuration: {
24
+ php: php81({
25
+ templateDir,
26
+ extensions: { ...magento24PHPExtensionList, sodium },
27
+ baseImage: `${repo}:php-8.1-magento-2.4`
28
+ }),
29
+ nginx: nginx128({ templateDir }),
30
+ redis: valkey81(),
31
+ // not supported anymore
32
+ mysql: mysql80(),
33
+ mariadb: mariadb106(),
34
+ // not supported anymore
35
+ elasticsearch: elasticsearch717(),
36
+ composer: composer22(),
37
+ varnish: varnish80({ templateDir }),
38
+ sslTerminator: sslTerminator({ templateDir }),
39
+ maildev: maildev(),
40
+ opensearch: opensearch219(),
41
+ searchengine: 'opensearch'
42
+ }
43
+ })
@@ -0,0 +1,43 @@
1
+ const sodium = require('../services/php/extensions/sodium')
2
+ const {
3
+ magento24PHPExtensionList
4
+ } = require('../magento/required-php-extensions')
5
+ const { php81 } = require('../services/php/versions')
6
+ const { sslTerminator } = require('../services/ssl-terminator')
7
+ const { varnish80 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx128 } = require('../services/nginx/versions')
10
+ const { composer22 } = require('../services/composer/versions')
11
+ const { maildev } = require('../services/maildev')
12
+ const { valkey81 } = require('../services/redis')
13
+ const { mariadb1011 } = require('../services/mariadb/versions')
14
+ const { elasticsearch717 } = require('../services/elasticsearch/versions')
15
+ const { mysql80 } = require('../services/mysql/versions')
16
+ const { opensearch219 } = require('../services/opensearch/versions')
17
+
18
+ /**
19
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
20
+ */
21
+ module.exports = ({ templateDir }) => ({
22
+ magentoVersion: '2.4.6-p15',
23
+ configuration: {
24
+ php: php81({
25
+ templateDir,
26
+ extensions: { ...magento24PHPExtensionList, sodium },
27
+ baseImage: `${repo}:php-8.1-magento-2.4`
28
+ }),
29
+ nginx: nginx128({ templateDir }),
30
+ redis: valkey81(),
31
+ // not supported anymore
32
+ mysql: mysql80(),
33
+ mariadb: mariadb1011(),
34
+ // not supported anymore
35
+ elasticsearch: elasticsearch717(),
36
+ composer: composer22(),
37
+ varnish: varnish80({ templateDir }),
38
+ sslTerminator: sslTerminator({ templateDir }),
39
+ maildev: maildev(),
40
+ opensearch: opensearch219(),
41
+ searchengine: 'opensearch'
42
+ }
43
+ })
@@ -0,0 +1,42 @@
1
+ const sodium = require('../services/php/extensions/sodium')
2
+ const {
3
+ magento24PHPExtensionList
4
+ } = require('../magento/required-php-extensions')
5
+ const { php82 } = require('../services/php/versions')
6
+ const { sslTerminator } = require('../services/ssl-terminator')
7
+ const { varnish80 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx128 } = require('../services/nginx/versions')
10
+ const { composer29 } = require('../services/composer/versions')
11
+ const { maildev } = require('../services/maildev')
12
+ const { valkey81 } = require('../services/redis')
13
+ const { mariadb1011 } = require('../services/mariadb/versions')
14
+ const { elasticsearch817 } = require('../services/elasticsearch/versions')
15
+ const { mysql80 } = require('../services/mysql/versions')
16
+ const { opensearch219 } = require('../services/opensearch/versions')
17
+
18
+ /**
19
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
20
+ */
21
+ module.exports = ({ templateDir }) => ({
22
+ magentoVersion: '2.4.7-p10',
23
+ configuration: {
24
+ php: php82({
25
+ templateDir,
26
+ extensions: { ...magento24PHPExtensionList, sodium },
27
+ baseImage: `${repo}:php-8.2-magento-2.4`
28
+ }),
29
+ nginx: nginx128({ templateDir }),
30
+ redis: valkey81(),
31
+ // not supported anymore
32
+ mysql: mysql80(),
33
+ mariadb: mariadb1011(),
34
+ elasticsearch: elasticsearch817(),
35
+ composer: composer29(),
36
+ varnish: varnish80({ templateDir }),
37
+ sslTerminator: sslTerminator({ templateDir }),
38
+ maildev: maildev(),
39
+ opensearch: opensearch219(),
40
+ searchengine: 'opensearch'
41
+ }
42
+ })
@@ -21,7 +21,6 @@ const { opensearch300 } = require('../services/opensearch/versions')
21
21
  */
22
22
  module.exports = ({ templateDir }) => ({
23
23
  magentoVersion: '2.4.8-p4',
24
- isDefault: true,
25
24
  configuration: {
26
25
  php: php83({
27
26
  templateDir,
@@ -0,0 +1,42 @@
1
+ const sodium = require('../services/php/extensions/sodium')
2
+ const ftp = require('../services/php/extensions/ftp')
3
+ const {
4
+ magento24PHPExtensionList
5
+ } = require('../magento/required-php-extensions')
6
+ const { php83 } = require('../services/php/versions')
7
+ const { sslTerminator } = require('../services/ssl-terminator')
8
+ const { varnish80 } = require('../services/varnish')
9
+ const { repo } = require('../services/php/base-repo')
10
+ const { nginx128 } = require('../services/nginx/versions')
11
+ const { composer29 } = require('../services/composer/versions')
12
+ const { maildev } = require('../services/maildev')
13
+ const { valkey80 } = require('../services/redis')
14
+ const { mariadb114 } = require('../services/mariadb/versions')
15
+ const { elasticsearch817 } = require('../services/elasticsearch/versions')
16
+ const { mysql80 } = require('../services/mysql/versions')
17
+ const { opensearch300 } = require('../services/opensearch/versions')
18
+
19
+ /**
20
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
21
+ */
22
+ module.exports = ({ templateDir }) => ({
23
+ magentoVersion: '2.4.8-p5',
24
+ configuration: {
25
+ php: php83({
26
+ templateDir,
27
+ extensions: { ...magento24PHPExtensionList, sodium, ftp },
28
+ baseImage: `${repo}:php-8.3-magento-2.4`
29
+ }),
30
+ nginx: nginx128({ templateDir }),
31
+ redis: valkey80(),
32
+ mysql: mysql80(),
33
+ mariadb: mariadb114(),
34
+ elasticsearch: elasticsearch817(),
35
+ composer: composer29(),
36
+ varnish: varnish80({ templateDir }),
37
+ sslTerminator: sslTerminator({ templateDir }),
38
+ maildev: maildev(),
39
+ opensearch: opensearch300(),
40
+ searchengine: 'opensearch'
41
+ }
42
+ })
@@ -0,0 +1,44 @@
1
+ const sodium = require('../services/php/extensions/sodium')
2
+ const ftp = require('../services/php/extensions/ftp')
3
+ const {
4
+ magento24PHPExtensionList
5
+ } = require('../magento/required-php-extensions')
6
+ const { php83 } = require('../services/php/versions')
7
+ const { sslTerminator } = require('../services/ssl-terminator')
8
+ const { varnish80 } = require('../services/varnish')
9
+ const { repo } = require('../services/php/base-repo')
10
+ const { nginx128 } = require('../services/nginx/versions')
11
+ const { composer29 } = require('../services/composer/versions')
12
+ const { maildev } = require('../services/maildev')
13
+ const { valkey90 } = require('../services/redis')
14
+ const { mariadb118 } = require('../services/mariadb/versions')
15
+ const { elasticsearch817 } = require('../services/elasticsearch/versions')
16
+ const { mysql84 } = require('../services/mysql/versions')
17
+ const { opensearch300 } = require('../services/opensearch/versions')
18
+
19
+ /**
20
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
21
+ */
22
+ module.exports = ({ templateDir }) => ({
23
+ magentoVersion: '2.4.9',
24
+ isDefault: true,
25
+ configuration: {
26
+ php: php83({
27
+ templateDir,
28
+ extensions: { ...magento24PHPExtensionList, sodium, ftp },
29
+ baseImage: `${repo}:php-8.5-magento-2.4`
30
+ }),
31
+ nginx: nginx128({ templateDir }),
32
+ redis: valkey90(),
33
+ mysql: mysql84(),
34
+ mariadb: mariadb118(),
35
+ // not supported
36
+ elasticsearch: elasticsearch817(),
37
+ composer: composer29(),
38
+ varnish: varnish80({ templateDir }),
39
+ sslTerminator: sslTerminator({ templateDir }),
40
+ maildev: maildev(),
41
+ opensearch: opensearch300(),
42
+ searchengine: 'opensearch'
43
+ }
44
+ })