@scandipwa/magento-scripts 2.4.9-alpha.2 → 2.4.10-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 (30) hide show
  1. package/lib/config/port-config.js +1 -3
  2. package/lib/config/services/composer/versions/composer-2.8.js +1 -1
  3. package/lib/config/services/elasticsearch/versions/elasticsearch-7.17.js +1 -1
  4. package/lib/config/services/elasticsearch/versions/elasticsearch-8.16.js +1 -1
  5. package/lib/config/services/elasticsearch/versions/elasticsearch-8.17.js +1 -1
  6. package/lib/config/services/nginx/versions/index.js +2 -1
  7. package/lib/config/services/nginx/versions/nginx-1.22.js +1 -1
  8. package/lib/config/services/nginx/versions/nginx-1.26.js +1 -1
  9. package/lib/config/services/nginx/versions/nginx-1.28.js +12 -0
  10. package/lib/config/services/php/versions/index.js +2 -1
  11. package/lib/config/services/php/versions/php-8.1.js +1 -1
  12. package/lib/config/services/php/versions/php-8.2.js +1 -1
  13. package/lib/config/services/php/versions/php-8.3.js +1 -1
  14. package/lib/config/services/php/versions/php-8.4.js +32 -0
  15. package/lib/config/templates/magentorc.template +2 -2
  16. package/lib/config/versions/magento-2.4.4-p14.js +40 -0
  17. package/lib/config/versions/magento-2.4.4-p15.js +40 -0
  18. package/lib/config/versions/magento-2.4.4-p16.js +40 -0
  19. package/lib/config/versions/magento-2.4.5-p15.js +40 -0
  20. package/lib/config/versions/magento-2.4.6-p13.js +40 -0
  21. package/lib/config/versions/magento-2.4.7-p8.js +41 -0
  22. package/lib/config/versions/magento-2.4.8-p2.js +0 -1
  23. package/lib/config/versions/magento-2.4.8-p3.js +43 -0
  24. package/lib/config/versions/magento-2.4.9-alpha2.js +2 -1
  25. package/lib/config/versions/magento-2.4.9-alpha3.js +42 -0
  26. package/lib/tasks/cli/create-bashrc-config.js +6 -1
  27. package/lib/tasks/requirements/node-version.js +1 -1
  28. package/lib/tasks/requirements/searchengine-version.js +32 -5
  29. package/lib/util/wait-for-logs.js +23 -5
  30. package/package.json +3 -3
@@ -161,9 +161,7 @@ const getPortsConfig = async (ports, options = {}) => {
161
161
 
162
162
  for (const [port, name] of Object.entries(portsToCheck)) {
163
163
  const portInt = Number.parseInt(port)
164
- const portIgnoreList = p.concat(
165
- Object.keys(availablePorts).map((item) => Number.parseInt(item))
166
- )
164
+ const portIgnoreList = p.concat(Object.values(availablePorts))
167
165
 
168
166
  const getPortResult = await getPort(portInt, {
169
167
  portIgnoreList
@@ -2,7 +2,7 @@
2
2
  * @returns {import('../../../../../typings/index').ComposerConfiguration}
3
3
  */
4
4
  const composer28 = () => ({
5
- version: '2.8.10'
5
+ version: '2.8.12'
6
6
  })
7
7
 
8
8
  module.exports = composer28
@@ -4,7 +4,7 @@ const defaultEnv = require('../default-es-env')
4
4
  * @returns {import('../../../../../typings/index').ElasticSearchConfiguration}
5
5
  */
6
6
  const elasticsearch717 = () => ({
7
- image: 'elasticsearch:7.17.23',
7
+ image: 'elasticsearch:7.17.28',
8
8
  env: defaultEnv
9
9
  })
10
10
 
@@ -4,7 +4,7 @@ const defaultEnv = require('../default-es-env')
4
4
  * @returns {import('../../../../../typings/index').ElasticSearchConfiguration}
5
5
  */
6
6
  const elasticsearch816 = () => ({
7
- image: 'elasticsearch:8.16.4',
7
+ image: 'elasticsearch:8.16.6',
8
8
  env: {
9
9
  ...defaultEnv,
10
10
  'indices.id_field_data.enabled': true
@@ -4,7 +4,7 @@ const defaultEnv = require('../default-es-env')
4
4
  * @returns {import('../../../../../typings/index').ElasticSearchConfiguration}
5
5
  */
6
6
  const elasticsearch817 = () => ({
7
- image: 'elasticsearch:8.17.4',
7
+ image: 'elasticsearch:8.17.10',
8
8
  env: {
9
9
  ...defaultEnv,
10
10
  'indices.id_field_data.enabled': true
@@ -2,5 +2,6 @@ module.exports = {
2
2
  nginx118: require('./nginx-1.18'),
3
3
  nginx122: require('./nginx-1.22'),
4
4
  nginx124: require('./nginx-1.24'),
5
- nginx126: require('./nginx-1.26')
5
+ nginx126: require('./nginx-1.26'),
6
+ nginx128: require('./nginx-1.28')
6
7
  }
@@ -5,7 +5,7 @@ const path = require('path')
5
5
  * @returns {import('../../../../../typings/index').NginxConfiguration}
6
6
  */
7
7
  const nginx122 = ({ templateDir }) => ({
8
- image: 'nginx:1.22.0',
8
+ image: 'nginx:1.22.1',
9
9
  configTemplate: path.join(templateDir || '', 'nginx.template.conf')
10
10
  })
11
11
 
@@ -5,7 +5,7 @@ const path = require('path')
5
5
  * @returns {import('../../../../../typings/index').NginxConfiguration}
6
6
  */
7
7
  const nginx126 = ({ templateDir }) => ({
8
- image: 'nginx:1.26.0',
8
+ image: 'nginx:1.26.3',
9
9
  configTemplate: path.join(templateDir || '', 'nginx.template.conf')
10
10
  })
11
11
 
@@ -0,0 +1,12 @@
1
+ const path = require('path')
2
+
3
+ /**
4
+ * @param {{ templateDir: string }} param0
5
+ * @returns {import('../../../../../typings/index').NginxConfiguration}
6
+ */
7
+ const nginx128 = ({ templateDir }) => ({
8
+ image: 'nginx:1.28.0',
9
+ configTemplate: path.join(templateDir || '', 'nginx.template.conf')
10
+ })
11
+
12
+ module.exports = nginx128
@@ -4,5 +4,6 @@ module.exports = {
4
4
  php74: require('./php-7.4'),
5
5
  php81: require('./php-8.1'),
6
6
  php82: require('./php-8.2'),
7
- php83: require('./php-8.3')
7
+ php83: require('./php-8.3'),
8
+ php84: require('./php-8.4')
8
9
  }
@@ -22,7 +22,7 @@ const php81 = ({
22
22
  extensions: {
23
23
  xdebug: {
24
24
  ...xdebug,
25
- version: '3.4.2'
25
+ version: '3.4.6'
26
26
  },
27
27
  ...extensions
28
28
  },
@@ -22,7 +22,7 @@ const php82 = ({
22
22
  extensions: {
23
23
  xdebug: {
24
24
  ...xdebug,
25
- version: '3.4.2'
25
+ version: '3.4.6'
26
26
  },
27
27
  ...extensions
28
28
  },
@@ -22,7 +22,7 @@ const php83 = ({
22
22
  extensions: {
23
23
  xdebug: {
24
24
  ...xdebug,
25
- version: '3.4.2'
25
+ version: '3.4.6'
26
26
  },
27
27
  ...extensions
28
28
  },
@@ -0,0 +1,32 @@
1
+ const path = require('path')
2
+ const { repo } = require('../base-repo')
3
+ const xdebug = require('../extensions/xdebug')
4
+ const defaultPhpEnv = require('../default-php-env')
5
+
6
+ /**
7
+ * @param {Object} param0
8
+ * @param {string} param0.templateDir
9
+ * @param {import('../../../../../typings/index').PHPExtensions} [param0.extensions]
10
+ * @param {string} [param0.baseImage]
11
+ * @returns {import('../../../../../typings/index').PHPConfiguration}
12
+ */
13
+ const php84 = ({
14
+ templateDir,
15
+ extensions = {},
16
+ baseImage = `${repo}:php-8.4`
17
+ }) => ({
18
+ baseImage,
19
+ configTemplate: path.join(templateDir || '', 'php.template.ini'),
20
+ fpmConfigTemplate: path.join(templateDir || '', 'php-fpm.template.conf'),
21
+ debugTemplate: path.join(templateDir || '', 'php-debug.template.ini'),
22
+ extensions: {
23
+ xdebug: {
24
+ ...xdebug,
25
+ version: '3.4.6'
26
+ },
27
+ ...extensions
28
+ },
29
+ env: defaultPhpEnv
30
+ })
31
+
32
+ module.exports = php84
@@ -15,8 +15,8 @@ alias c="composer"
15
15
  <% if (it.varnishEnabled) { %>
16
16
  alias cvc="exec varnish varnishadm ban req.url '~ /' && echo 'Varnish cache cleared!'"
17
17
  <% } %>
18
- alias mariadb="exec mariadb 'mysql -umagento -pmagento'"
19
- alias mariadbroot="exec mariadb 'mysql -uroot -pscandipwa'"
18
+ alias mariadb="exec mariadb <%~ it.databaseBinFile %> -umagento -pmagento"
19
+ alias mariadbroot="exec mariadb <%~ it.databaseBinFile %> -uroot -pscandipwa"
20
20
 
21
21
  # silence warning on macos
22
22
  export BASH_SILENCE_DEPRECATION_WARNING=1
@@ -0,0 +1,40 @@
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 { varnish76 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx126 } = 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-p14',
23
+ configuration: {
24
+ php: php81({
25
+ templateDir,
26
+ extensions: { ...magento24PHPExtensionList, sodium },
27
+ baseImage: `${repo}:php-8.1-magento-2.4`
28
+ }),
29
+ nginx: nginx126({ templateDir }),
30
+ redis: redis72(),
31
+ mysql: mysql80(),
32
+ mariadb: mariadb106(),
33
+ elasticsearch: elasticsearch717(),
34
+ composer: composer22(),
35
+ varnish: varnish76({ templateDir }),
36
+ sslTerminator: sslTerminator({ templateDir }),
37
+ maildev: maildev(),
38
+ opensearch: opensearch219()
39
+ }
40
+ })
@@ -0,0 +1,40 @@
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 { varnish76 } = 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-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: redis72(),
31
+ mysql: mysql80(),
32
+ mariadb: mariadb106(),
33
+ elasticsearch: elasticsearch717(),
34
+ composer: composer22(),
35
+ varnish: varnish76({ templateDir }),
36
+ sslTerminator: sslTerminator({ templateDir }),
37
+ maildev: maildev(),
38
+ opensearch: opensearch219()
39
+ }
40
+ })
@@ -0,0 +1,40 @@
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 { varnish76 } = 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-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: redis72(),
31
+ mysql: mysql80(),
32
+ mariadb: mariadb106(),
33
+ elasticsearch: elasticsearch717(),
34
+ composer: composer22(),
35
+ varnish: varnish76({ templateDir }),
36
+ sslTerminator: sslTerminator({ templateDir }),
37
+ maildev: maildev(),
38
+ opensearch: opensearch219()
39
+ }
40
+ })
@@ -0,0 +1,40 @@
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.5-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: redis72(),
31
+ mysql: mysql80(),
32
+ mariadb: mariadb106(),
33
+ elasticsearch: elasticsearch717(),
34
+ composer: composer22(),
35
+ varnish: varnish77({ templateDir }),
36
+ sslTerminator: sslTerminator({ templateDir }),
37
+ maildev: maildev(),
38
+ opensearch: opensearch219()
39
+ }
40
+ })
@@ -0,0 +1,40 @@
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 { 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-p13',
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
+ mysql: mysql80(),
32
+ mariadb: mariadb1011(),
33
+ elasticsearch: elasticsearch717(),
34
+ composer: composer22(),
35
+ varnish: varnish77({ templateDir }),
36
+ sslTerminator: sslTerminator({ templateDir }),
37
+ maildev: maildev(),
38
+ opensearch: opensearch219()
39
+ }
40
+ })
@@ -0,0 +1,41 @@
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 { varnish76 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx128 } = require('../services/nginx/versions')
10
+ const { composer28 } = require('../services/composer/versions')
11
+ const { maildev } = require('../services/maildev')
12
+ const { redis72 } = 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-p8',
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: redis72(),
31
+ mysql: mysql80(),
32
+ mariadb: mariadb1011(),
33
+ elasticsearch: elasticsearch817(),
34
+ composer: composer28(),
35
+ varnish: varnish76({ templateDir }),
36
+ sslTerminator: sslTerminator({ templateDir }),
37
+ maildev: maildev(),
38
+ opensearch: opensearch219(),
39
+ searchengine: 'opensearch'
40
+ }
41
+ })
@@ -21,7 +21,6 @@ const { opensearch300 } = require('../services/opensearch/versions')
21
21
  */
22
22
  module.exports = ({ templateDir }) => ({
23
23
  magentoVersion: '2.4.8-p2',
24
- isDefault: true,
25
24
  configuration: {
26
25
  php: php83({
27
26
  templateDir,
@@ -0,0 +1,43 @@
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 { varnish76 } = require('../services/varnish')
9
+ const { repo } = require('../services/php/base-repo')
10
+ const { nginx128 } = require('../services/nginx/versions')
11
+ const { composer28 } = 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-p3',
24
+ isDefault: true,
25
+ configuration: {
26
+ php: php83({
27
+ templateDir,
28
+ extensions: { ...magento24PHPExtensionList, sodium, ftp },
29
+ baseImage: `${repo}:php-8.3-magento-2.4`
30
+ }),
31
+ nginx: nginx128({ templateDir }),
32
+ redis: valkey80(),
33
+ mysql: mysql80(),
34
+ mariadb: mariadb114(),
35
+ elasticsearch: elasticsearch817(),
36
+ composer: composer28(),
37
+ varnish: varnish76({ templateDir }),
38
+ sslTerminator: sslTerminator({ templateDir }),
39
+ maildev: maildev(),
40
+ opensearch: opensearch300(),
41
+ searchengine: 'opensearch'
42
+ }
43
+ })
@@ -1,4 +1,5 @@
1
1
  const sodium = require('../services/php/extensions/sodium')
2
+ const ftp = require('../services/php/extensions/ftp')
2
3
  const {
3
4
  magento24PHPExtensionList
4
5
  } = require('../magento/required-php-extensions')
@@ -23,7 +24,7 @@ module.exports = ({ templateDir }) => ({
23
24
  configuration: {
24
25
  php: php83({
25
26
  templateDir,
26
- extensions: { ...magento24PHPExtensionList, sodium },
27
+ extensions: { ...magento24PHPExtensionList, sodium, ftp },
27
28
  baseImage: `${repo}:php-8.3-magento-2.4`
28
29
  }),
29
30
  nginx: nginx126({ 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 { varnish77 } = require('../services/varnish')
9
+ const { repo } = require('../services/php/base-repo')
10
+ const { nginx128 } = require('../services/nginx/versions')
11
+ const { composer28 } = 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 { elasticsearch87 } = 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-alpha3',
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: mysql84(),
33
+ mariadb: mariadb114(),
34
+ elasticsearch: elasticsearch87(),
35
+ composer: composer28(),
36
+ varnish: varnish77({ templateDir }),
37
+ sslTerminator: sslTerminator({ templateDir }),
38
+ maildev: maildev(),
39
+ opensearch: opensearch300(),
40
+ searchengine: 'opensearch'
41
+ }
42
+ })
@@ -13,6 +13,10 @@ const createBashrcConfigFile = () => ({
13
13
  } = ctx
14
14
  const varnishEnabled =
15
15
  overridenConfiguration.configuration.varnish.enabled
16
+
17
+ const databaseBinFile = `${
18
+ overridenConfiguration.configuration.mariadb.binFileName ?? 'mysql'
19
+ }`
16
20
  try {
17
21
  await setConfigFile({
18
22
  configPathname: path.join(baseConfig.cacheDir, '.magentorc'),
@@ -25,7 +29,8 @@ const createBashrcConfigFile = () => ({
25
29
  php,
26
30
  varnishEnabled,
27
31
  config: ctx.config,
28
- magentoVersion: ctx.magentoVersion
32
+ magentoVersion: ctx.magentoVersion,
33
+ databaseBinFile
29
34
  }
30
35
  })
31
36
  } catch (e) {
@@ -12,7 +12,7 @@ const checkNodeVersion = () => ({
12
12
  if (!semver.gte(node, '16.0.0')) {
13
13
  throw new KnownError(
14
14
  `Your Node.js version is out of date!
15
- You need to upgrade Node.js to at lease version 12 to work with this software!`
15
+ You need to upgrade Node.js to at lease version 16 to work with this software!`
16
16
  )
17
17
  }
18
18
 
@@ -92,11 +92,38 @@ const checkSearchEngineVersion = () => ({
92
92
  }
93
93
  )
94
94
  } else {
95
- await waitForLogs({
96
- containerName: elasticsearch.name,
97
- matchText:
98
- searchengine === 'elasticsearch' ? '"started"' : '] started'
99
- })
95
+ await waitForLogs(
96
+ searchengine === 'elasticsearch'
97
+ ? {
98
+ containerName: elasticsearch.name,
99
+ customLineParser: (line) => {
100
+ try {
101
+ const logObject = JSON.parse(line)
102
+
103
+ return logObject.message.startsWith('started')
104
+ } catch {
105
+ return false
106
+ }
107
+ }
108
+ }
109
+ : {
110
+ containerName: elasticsearch.name,
111
+ customLineParser: (line) => {
112
+ if (!line.startsWith('[')) {
113
+ return false
114
+ }
115
+ try {
116
+ const message = line
117
+ .replaceAll(/\[[\s\S]+\]/g, '')
118
+ .trim()
119
+
120
+ return message.startsWith('started')
121
+ } catch {
122
+ return false
123
+ }
124
+ }
125
+ }
126
+ )
100
127
 
101
128
  try {
102
129
  const response = await request(
@@ -2,10 +2,15 @@ const { execAsyncSpawn } = require('./exec-async-command')
2
2
  const sleep = require('./sleep')
3
3
 
4
4
  /**
5
- * @param {{ containerName: string, timeout?: number, matchText: string }} param0
5
+ * @param {{ containerName: string, timeout?: number, matchText?: string | string[], customLineParser?: (line: string) => boolean }} param0
6
6
  * @returns {Promise<void>}
7
7
  */
8
- const waitForLogs = ({ containerName, timeout = 30 * 1000, matchText }) =>
8
+ const waitForLogs = ({
9
+ containerName,
10
+ timeout = 30 * 1000,
11
+ matchText,
12
+ customLineParser
13
+ }) =>
9
14
  // eslint-disable-next-line no-async-promise-executor
10
15
  new Promise(async (resolve, reject) => {
11
16
  let matched = false
@@ -26,9 +31,22 @@ const waitForLogs = ({ containerName, timeout = 30 * 1000, matchText }) =>
26
31
  }
27
32
 
28
33
  result.split('\n').forEach((line) => {
29
- if (line.includes(matchText)) {
30
- matched = true
31
- resolve()
34
+ if (customLineParser) {
35
+ if (customLineParser(line)) {
36
+ matched = true
37
+ resolve()
38
+ }
39
+ } else if (matchText) {
40
+ if (
41
+ Array.isArray(matchText)
42
+ ? matchText.some((text) =>
43
+ line.includes(text)
44
+ )
45
+ : line.includes(matchText)
46
+ ) {
47
+ matched = true
48
+ resolve()
49
+ }
32
50
  }
33
51
  })
34
52
 
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Scripts and configuration used by CMA.",
4
4
  "homepage": "https://docs.create-magento-app.com/",
5
5
  "repository": "github:scandipwa/create-magento-app",
6
- "version": "2.4.9-alpha.2",
6
+ "version": "2.4.10-alpha.0",
7
7
  "main": "./index.js",
8
8
  "types": "./typings/index.d.ts",
9
9
  "license": "OSL-3.0",
@@ -12,7 +12,7 @@
12
12
  "magento-scripts-exec": "./exec.js"
13
13
  },
14
14
  "engines": {
15
- "node": ">=12"
15
+ "node": ">=16"
16
16
  },
17
17
  "os": [
18
18
  "darwin",
@@ -59,5 +59,5 @@
59
59
  "@types/node": "^20.14.11",
60
60
  "@types/yargs": "^17.0.32"
61
61
  },
62
- "gitHead": "d65444c5a20dab91d6b66534e8e997133aafd0f1"
62
+ "gitHead": "2bed7f4719e34e41ed38776eadc6961a88189eab"
63
63
  }