@scandipwa/magento-scripts 2.3.4-alpha.0 → 2.3.4

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.
@@ -10,8 +10,9 @@ const scandipwaMagentoVersionMapping = {
10
10
  '2.4.1': '3.2.0 - 4.2.1',
11
11
  '2.4.2': '4.3.0 - 5.0.3',
12
12
  '2.4.3': '5.0.4 - 5.2.7',
13
- '2.4.4': '5.3.0+',
14
- '2.4.6': '6.2.0+'
13
+ '2.4.4': '5.3.0 - 5.3.6',
14
+ '2.4.6': '6.2.0 - 6.3.0',
15
+ '2.4.7': '6.4.0+'
15
16
  }
16
17
 
17
18
  module.exports = scandipwaMagentoVersionMapping
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @returns {import('../../../../../typings/index').ComposerConfiguration}
3
3
  */
4
- const composer22 = () => ({
4
+ const composer26 = () => ({
5
5
  version: '2.6.6'
6
6
  })
7
7
 
8
- module.exports = composer22
8
+ module.exports = composer26
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @returns {import('../../../../../typings/index').ComposerConfiguration}
3
+ */
4
+ const composer27 = () => ({
5
+ version: '2.7.7'
6
+ })
7
+
8
+ module.exports = composer27
@@ -2,5 +2,6 @@ module.exports = {
2
2
  composer1: require('./composer-1'),
3
3
  composer2: require('./composer-2'),
4
4
  composer22: require('./composer-2.2'),
5
- composer26: require('./composer-2.6')
5
+ composer26: require('./composer-2.6'),
6
+ composer27: require('./composer-2.7')
6
7
  }
@@ -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.9',
7
+ image: 'elasticsearch:7.17.23',
8
8
  env: defaultEnv
9
9
  })
10
10
 
@@ -33,6 +33,9 @@ const magentoVersions = fs
33
33
  .filter((f) => f.name.includes('magento'))
34
34
  .map((f) => require(path.join(__dirname, f.name)))
35
35
 
36
+ /**
37
+ * @returns {Record<string, ReturnType<import('../../../typings/common').MagentoVersionConfigurationFunction>>}
38
+ */
36
39
  const getConfigurations = (config = {}) =>
37
40
  magentoVersions.reduce(
38
41
  (acc, val) => ({
@@ -46,7 +49,46 @@ const getConfigurations = (config = {}) =>
46
49
 
47
50
  const allVersions = Object.entries(getConfigurations())
48
51
  .map(([name, magentoConfig]) => ({ ...magentoConfig, name }))
49
- .sort((a, b) => a.magentoVersion.localeCompare(b.magentoVersion))
52
+ .sort((a, b) => {
53
+ // Splitting the version strings into major, minor, and patch numbers
54
+ const [versionA, patchA] = a.magentoVersion.split('-')
55
+ const [versionB, patchB] = b.magentoVersion.split('-')
56
+
57
+ const [majorA, minorA, patchNumberA] = versionA.split('.').map(Number)
58
+ const [majorB, minorB, patchNumberB] = versionB.split('.').map(Number)
59
+
60
+ // Comparing major versions
61
+ if (majorA !== majorB) {
62
+ return majorA - majorB
63
+ }
64
+ // Comparing minor versions
65
+ if (minorA !== minorB) {
66
+ return minorA - minorB
67
+ }
68
+ // Comparing patch numbers
69
+ if (patchNumberA !== patchNumberB) {
70
+ return patchNumberA - patchNumberB
71
+ }
72
+
73
+ // Comparing patch versions (if present)
74
+ if (patchA && patchB) {
75
+ const patchNumberA = Number(patchA.replace('p', ''))
76
+ const patchNumberB = Number(patchB.replace('p', ''))
77
+ return patchNumberA - patchNumberB
78
+ }
79
+
80
+ // Sorting versions with patch against versions without patch
81
+ if (patchA && !patchB) {
82
+ return -1
83
+ }
84
+
85
+ if (!patchA && patchB) {
86
+ return 1
87
+ }
88
+
89
+ // Versions are equal
90
+ return 0
91
+ })
50
92
  .reverse()
51
93
 
52
94
  module.exports = {
@@ -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 { varnish73 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx124 } = require('../services/nginx/versions')
10
+ const { composer22 } = require('../services/composer/versions')
11
+ const { maildev } = require('../services/maildev')
12
+ const { redis70 } = require('../services/redis')
13
+ const { mariadb104 } = require('../services/mariadb/versions')
14
+ const { elasticsearch717 } = require('../services/elasticsearch/versions')
15
+ const { mysql80 } = require('../services/mysql/versions')
16
+ const { opensearch13 } = require('../services/opensearch/versions')
17
+
18
+ /**
19
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
20
+ */
21
+ module.exports = ({ templateDir }) => ({
22
+ magentoVersion: '2.4.4-p10',
23
+ configuration: {
24
+ php: php81({
25
+ templateDir,
26
+ extensions: { ...magento24PHPExtensionList, sodium },
27
+ baseImage: `${repo}:php-8.1-magento-2.4`
28
+ }),
29
+ nginx: nginx124({ templateDir }),
30
+ redis: redis70(),
31
+ mysql: mysql80(),
32
+ mariadb: mariadb104(),
33
+ elasticsearch: elasticsearch717(),
34
+ composer: composer22(),
35
+ varnish: varnish73({ templateDir }),
36
+ sslTerminator: sslTerminator({ templateDir }),
37
+ maildev: maildev(),
38
+ opensearch: opensearch13()
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 { varnish73 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx124 } = require('../services/nginx/versions')
10
+ const { composer22 } = require('../services/composer/versions')
11
+ const { maildev } = require('../services/maildev')
12
+ const { redis70 } = require('../services/redis')
13
+ const { mariadb104 } = require('../services/mariadb/versions')
14
+ const { elasticsearch717 } = require('../services/elasticsearch/versions')
15
+ const { mysql80 } = require('../services/mysql/versions')
16
+ const { opensearch13 } = require('../services/opensearch/versions')
17
+
18
+ /**
19
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
20
+ */
21
+ module.exports = ({ templateDir }) => ({
22
+ magentoVersion: '2.4.5-p9',
23
+ configuration: {
24
+ php: php81({
25
+ templateDir,
26
+ extensions: { ...magento24PHPExtensionList, sodium },
27
+ baseImage: `${repo}:php-8.1-magento-2.4`
28
+ }),
29
+ nginx: nginx124({ templateDir }),
30
+ redis: redis70(),
31
+ mysql: mysql80(),
32
+ mariadb: mariadb104(),
33
+ elasticsearch: elasticsearch717(),
34
+ composer: composer22(),
35
+ varnish: varnish73({ templateDir }),
36
+ sslTerminator: sslTerminator({ templateDir }),
37
+ maildev: maildev(),
38
+ opensearch: opensearch13()
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 { varnish73 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx124 } = require('../services/nginx/versions')
10
+ const { composer22 } = require('../services/composer/versions')
11
+ const { maildev } = require('../services/maildev')
12
+ const { redis70 } = require('../services/redis')
13
+ const { mariadb106 } = require('../services/mariadb/versions')
14
+ const { elasticsearch85 } = require('../services/elasticsearch/versions')
15
+ const { mysql80 } = require('../services/mysql/versions')
16
+ const { opensearch212 } = require('../services/opensearch/versions')
17
+
18
+ /**
19
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
20
+ */
21
+ module.exports = ({ templateDir }) => ({
22
+ magentoVersion: '2.4.6-p7',
23
+ configuration: {
24
+ php: php81({
25
+ templateDir,
26
+ extensions: { ...magento24PHPExtensionList, sodium },
27
+ baseImage: `${repo}:php-8.1-magento-2.4`
28
+ }),
29
+ nginx: nginx124({ templateDir }),
30
+ redis: redis70(),
31
+ mysql: mysql80(),
32
+ mariadb: mariadb106(),
33
+ elasticsearch: elasticsearch85(),
34
+ composer: composer22(),
35
+ varnish: varnish73({ templateDir }),
36
+ sslTerminator: sslTerminator({ templateDir }),
37
+ maildev: maildev(),
38
+ opensearch: opensearch212()
39
+ }
40
+ })
@@ -20,7 +20,6 @@ const { opensearch212 } = require('../services/opensearch/versions')
20
20
  */
21
21
  module.exports = ({ templateDir }) => ({
22
22
  magentoVersion: '2.4.7-p1',
23
- isDefault: true,
24
23
  configuration: {
25
24
  php: php82({
26
25
  templateDir,
@@ -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 { varnish74 } = require('../services/varnish')
8
+ const { repo } = require('../services/php/base-repo')
9
+ const { nginx124 } = require('../services/nginx/versions')
10
+ const { composer27 } = 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 { elasticsearch811 } = require('../services/elasticsearch/versions')
15
+ const { mysql80 } = require('../services/mysql/versions')
16
+ const { opensearch212 } = require('../services/opensearch/versions')
17
+
18
+ /**
19
+ * @type {import('../../../typings/common').MagentoVersionConfigurationFunction}
20
+ */
21
+ module.exports = ({ templateDir }) => ({
22
+ magentoVersion: '2.4.7-p2',
23
+ isDefault: true,
24
+ configuration: {
25
+ php: php82({
26
+ templateDir,
27
+ extensions: { ...magento24PHPExtensionList, sodium },
28
+ baseImage: `${repo}:php-8.2-magento-2.4`
29
+ }),
30
+ nginx: nginx124({ templateDir }),
31
+ redis: redis72(),
32
+ mysql: mysql80(),
33
+ mariadb: mariadb106(),
34
+ elasticsearch: elasticsearch811(),
35
+ composer: composer27(),
36
+ varnish: varnish74({ templateDir }),
37
+ sslTerminator: sslTerminator({ templateDir }),
38
+ maildev: maildev(),
39
+ opensearch: opensearch212()
40
+ }
41
+ })
@@ -20,7 +20,9 @@ const waitForDatabaseInitialization = () => ({
20
20
  const databaseOutput = await execAsyncSpawn(
21
21
  `docker logs ${mariadb.name}`
22
22
  )
23
- if (databaseOutput.includes('ready for connections')) {
23
+ // we can't rely on ready for connections message because it's written 1 or 2 times depending if data is already there or not
24
+ // changed to rely on server socket created message
25
+ if (databaseOutput.includes('Server socket created on IP')) {
24
26
  databaseReadyForConnections = true
25
27
  break
26
28
  } else if (databaseOutput.includes('Initializing database files')) {
@@ -1,5 +1,5 @@
1
1
  const os = require('os')
2
- const { NodeSSH } = require('node-ssh-no-cpu-features')
2
+ const { NodeSSH } = require('node-ssh')
3
3
  const pathExists = require('../../../../util/path-exists')
4
4
  const regularSSHServer = require('./regular-server')
5
5
  const readymageSSH = require('./readymage')
@@ -4,7 +4,7 @@ const { execAsyncSpawn } = require('../../../../util/exec-async-command')
4
4
  const databaseDumpCommandWithOptions = require('./database-dump-command')
5
5
 
6
6
  /**
7
- * @returns {import('listr2').ListrTask<import('../../../../../typings/context').ListrContext & { ssh: import('node-ssh-no-cpu-features').NodeSSH }>}
7
+ * @returns {import('listr2').ListrTask<import('../../../../../typings/context').ListrContext & { ssh: import('node-ssh').NodeSSH }>}
8
8
  */
9
9
  const readymageSSH = () => ({
10
10
  task: async (ctx, task) => {
@@ -4,7 +4,7 @@ const { execAsyncSpawn } = require('../../../../util/exec-async-command')
4
4
  const databaseDumpCommandWithOptions = require('./database-dump-command')
5
5
  const KnownError = require('../../../../errors/known-error')
6
6
  /**
7
- * @returns {import('listr2').ListrTask<import('../../../../../typings/context').ListrContext & { ssh: import('node-ssh-no-cpu-features').NodeSSH }>}
7
+ * @returns {import('listr2').ListrTask<import('../../../../../typings/context').ListrContext & { ssh: import('node-ssh').NodeSSH }>}
8
8
  */
9
9
  const regularSSHServer = () => ({
10
10
  task: async (ctx, task) => {
@@ -1,10 +1,8 @@
1
- const { Eta } = require('eta')
1
+ const eta = require('eta')
2
2
  const fs = require('fs')
3
3
  const path = require('path')
4
4
  const pathExists = require('./path-exists')
5
5
 
6
- const eta = new Eta()
7
-
8
6
  /**
9
7
  * @param {{ configPathname: string, template: string, overwrite?: boolean, templateArgs?: Record<string, unknown> }} param0
10
8
  */
@@ -21,7 +19,7 @@ const setConfigFile = async ({
21
19
  }
22
20
 
23
21
  const configTemplate = await fs.promises.readFile(template, 'utf-8')
24
- const compliedConfig = await eta.renderStringAsync(configTemplate, {
22
+ const compliedConfig = await eta.render(configTemplate, {
25
23
  date: new Date().toUTCString(),
26
24
  ...templateArgs
27
25
  })
@@ -2,13 +2,16 @@ const net = require('net')
2
2
  const UnknownError = require('../errors/unknown-error')
3
3
  const sleep = require('./sleep')
4
4
 
5
+ // 15 seconds
6
+ const timeout = 15 * 1000
7
+
5
8
  /**
6
9
  * @param {{ host: string, port: number}} param0
7
10
  * @returns {Promise<void>}
8
11
  */
9
12
  const connectToHostPort = ({ host, port }) =>
10
13
  new Promise((resolve, reject) => {
11
- const socket = net.createConnection({ host, port, timeout: 15 * 1000 })
14
+ const socket = net.createConnection({ host, port, timeout })
12
15
 
13
16
  socket.on('connect', () => {
14
17
  socket.end()
@@ -34,7 +37,7 @@ const waitForIt = async ({ name, host, port, output }) => {
34
37
  while (!connected) {
35
38
  try {
36
39
  await Promise.race([
37
- sleep(300).then(() => {
40
+ sleep(timeout).then(() => {
38
41
  throw new UnknownError('Connection timeout')
39
42
  }),
40
43
  connectToHostPort({ host, port })
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.3.4-alpha.0",
6
+ "version": "2.3.4",
7
7
  "main": "./index.js",
8
8
  "types": "./typings/index.d.ts",
9
9
  "license": "OSL-3.0",
@@ -23,24 +23,24 @@
23
23
  "arm64"
24
24
  ],
25
25
  "dependencies": {
26
- "@scandipwa/scandipwa-dev-utils": "0.1.17",
27
- "@tilework/mosaic-dev-utils": "^0.2.4",
28
- "conf": "10.2.0",
29
- "enquirer": "2.4.1",
30
- "eta": "3.4.0",
31
- "fast-xml-parser": "^4.4.0",
26
+ "@scandipwa/scandipwa-dev-utils": "0.1.16",
27
+ "@tilework/mosaic-dev-utils": "^0.2.3",
28
+ "conf": "10.1.2",
29
+ "enquirer": "2.3.6",
30
+ "eta": "1.12.3",
31
+ "fast-xml-parser": "^4.0.9",
32
32
  "hjson": "^3.2.2",
33
33
  "is-installed-globally": "0.4.0",
34
- "joi": "17.13.3",
34
+ "joi": "17.6.0",
35
35
  "listr2": "4.0.5",
36
36
  "macos-version": "5.2.1",
37
37
  "merge-files": "0.1.2",
38
- "mysql2": "3.10.3",
39
- "node-ssh-no-cpu-features": "^2.0.0",
40
- "semver": "7.6.3",
38
+ "mysql2": "2.3.3",
39
+ "node-ssh": "12.0.5",
40
+ "semver": "7.3.7",
41
41
  "smol-request": "^2.1.2",
42
- "systeminformation": "5.22.11",
43
- "yargs": "17.7.2"
42
+ "systeminformation": "5.12.1",
43
+ "yargs": "17.5.1"
44
44
  },
45
45
  "publishConfig": {
46
46
  "access": "public"
@@ -56,8 +56,8 @@
56
56
  "scandipwa"
57
57
  ],
58
58
  "devDependencies": {
59
- "@types/node": "^20.14.11",
60
- "@types/yargs": "^17.0.32"
59
+ "@types/node": "^20.10.4",
60
+ "@types/yargs": "^17.0.13"
61
61
  },
62
- "gitHead": "dc6b868bdfd7c4d063a8e755f050c77b5265cab9"
62
+ "gitHead": "51fbafff876fc5bef480f0c3e18f6c6755cfc616"
63
63
  }