@scandipwa/magento-scripts 2.0.0-alpha.9 → 2.0.1

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 (183) hide show
  1. package/lib/commands/cli.js +18 -1
  2. package/lib/commands/logs.js +28 -2
  3. package/lib/commands/start.js +24 -3
  4. package/lib/commands/status.js +19 -1
  5. package/lib/config/config.js +20 -2
  6. package/lib/config/dependencies-for-platforms.js +1 -113
  7. package/lib/config/docker.js +94 -54
  8. package/lib/config/get-project-configuration.js +5 -0
  9. package/lib/config/index.js +10 -3
  10. package/lib/config/magento/required-php-extensions/index.js +1 -1
  11. package/lib/config/php-config.js +4 -3
  12. package/lib/config/port-config.js +3 -1
  13. package/lib/config/services/composer/versions/composer-1.js +13 -0
  14. package/lib/config/services/composer/versions/composer-2.js +8 -0
  15. package/lib/config/services/composer/versions/index.js +4 -0
  16. package/lib/config/services/elasticsearch/versions/elasticsearch-7.10.js +11 -0
  17. package/lib/config/services/elasticsearch/versions/elasticsearch-7.12.js +11 -0
  18. package/lib/config/services/elasticsearch/versions/elasticsearch-7.16.js +11 -0
  19. package/lib/config/services/elasticsearch/versions/elasticsearch-7.17.js +11 -0
  20. package/lib/config/services/elasticsearch/versions/elasticsearch-7.6.js +11 -0
  21. package/lib/config/services/elasticsearch/versions/elasticsearch-7.7.js +11 -0
  22. package/lib/config/services/elasticsearch/versions/elasticsearch-7.9.js +11 -0
  23. package/lib/config/services/elasticsearch/versions/index.js +15 -1
  24. package/lib/config/services/maildev/index.js +7 -0
  25. package/lib/config/services/mariadb/versions/index.js +5 -0
  26. package/lib/config/services/mariadb/versions/mariadb-10.2.js +8 -0
  27. package/lib/config/services/mariadb/versions/mariadb-10.3.js +8 -0
  28. package/lib/config/services/mariadb/versions/mariadb-10.4.js +8 -0
  29. package/lib/config/services/nginx/versions/index.js +3 -0
  30. package/lib/config/services/nginx/versions/nginx-1.18.js +11 -0
  31. package/lib/config/{php → services/php}/base-repo.js +0 -0
  32. package/lib/config/{php → services/php}/extensions/apcu.js +0 -0
  33. package/lib/config/{php → services/php}/extensions/bcmath.js +0 -0
  34. package/lib/config/{php → services/php}/extensions/curl.js +0 -0
  35. package/lib/config/{php → services/php}/extensions/gd.js +0 -0
  36. package/lib/config/{php → services/php}/extensions/index.js +0 -0
  37. package/lib/config/{php → services/php}/extensions/intl.js +0 -0
  38. package/lib/config/{php → services/php}/extensions/opcache.js +0 -0
  39. package/lib/config/{php → services/php}/extensions/pdo_mysql.js +0 -0
  40. package/lib/config/{php → services/php}/extensions/soap.js +0 -0
  41. package/lib/config/{php → services/php}/extensions/sodium.js +0 -0
  42. package/lib/config/{php → services/php}/extensions/xdebug.js +0 -0
  43. package/lib/config/{php → services/php}/extensions/xsl.js +0 -0
  44. package/lib/config/{php → services/php}/extensions/zip.js +0 -0
  45. package/lib/config/{php → services/php}/versions/index.js +0 -0
  46. package/lib/config/{php → services/php}/versions/php-7.2.js +1 -0
  47. package/lib/config/{php → services/php}/versions/php-7.3.js +1 -0
  48. package/lib/config/{php → services/php}/versions/php-7.4.js +1 -0
  49. package/lib/config/{php → services/php}/versions/php-8.1.js +1 -0
  50. package/lib/config/services/redis/index.js +5 -0
  51. package/lib/config/services/redis/redis-5.0.js +8 -0
  52. package/lib/config/services/redis/redis-6.0.js +8 -0
  53. package/lib/config/services/redis/redis-6.2.js +8 -0
  54. package/lib/config/{ssl-terminator → services/ssl-terminator}/index.js +3 -0
  55. package/lib/config/services/varnish/index.js +5 -0
  56. package/lib/config/{varnish → services/varnish}/varnish-6-0.js +5 -3
  57. package/lib/config/{varnish → services/varnish}/varnish-6-6.js +5 -3
  58. package/lib/config/{varnish → services/varnish}/varnish-7-0.js +5 -3
  59. package/lib/config/templates/magentorc.template +12 -5
  60. package/lib/config/templates/nginx.fastcgi_params.template +29 -0
  61. package/lib/config/templates/nginx.template.conf +1 -1
  62. package/lib/config/templates/php-debug.template.ini +31 -0
  63. package/lib/config/templates/php-fpm.template.conf +1 -2
  64. package/lib/config/templates/php.template.ini +5 -201
  65. package/lib/config/templates/ssl-terminator.template.conf +2 -0
  66. package/lib/config/templates/varnish.template.vcl +20 -13
  67. package/lib/config/versions/magento-2.2.10.js +39 -0
  68. package/lib/config/versions/magento-2.3.0.js +15 -19
  69. package/lib/config/versions/magento-2.3.1.js +15 -19
  70. package/lib/config/versions/magento-2.3.2-p1.js +15 -19
  71. package/lib/config/versions/magento-2.3.2-p2.js +15 -19
  72. package/lib/config/versions/magento-2.3.2.js +15 -19
  73. package/lib/config/versions/magento-2.3.3-p1.js +15 -19
  74. package/lib/config/versions/magento-2.3.3.js +15 -19
  75. package/lib/config/versions/magento-2.3.4-p1.js +15 -19
  76. package/lib/config/versions/magento-2.3.4-p2.js +15 -19
  77. package/lib/config/versions/magento-2.3.4.js +15 -19
  78. package/lib/config/versions/magento-2.3.5-p1.js +17 -22
  79. package/lib/config/versions/magento-2.3.5-p2.js +17 -22
  80. package/lib/config/versions/magento-2.3.5.js +17 -22
  81. package/lib/config/versions/magento-2.3.6-p1.js +17 -22
  82. package/lib/config/versions/magento-2.3.6.js +17 -22
  83. package/lib/config/versions/magento-2.3.7-p1.js +17 -22
  84. package/lib/config/versions/magento-2.3.7-p2.js +17 -22
  85. package/lib/config/versions/magento-2.3.7-p3.js +17 -22
  86. package/lib/config/versions/magento-2.3.7-p4.js +17 -22
  87. package/lib/config/versions/magento-2.3.7.js +17 -22
  88. package/lib/config/versions/magento-2.4.0-p1.js +17 -22
  89. package/lib/config/versions/magento-2.4.0.js +17 -22
  90. package/lib/config/versions/magento-2.4.1-p1.js +18 -23
  91. package/lib/config/versions/magento-2.4.1.js +18 -23
  92. package/lib/config/versions/magento-2.4.2-p1.js +18 -23
  93. package/lib/config/versions/magento-2.4.2-p2.js +18 -23
  94. package/lib/config/versions/magento-2.4.2.js +18 -23
  95. package/lib/config/versions/magento-2.4.3-p1.js +18 -23
  96. package/lib/config/versions/magento-2.4.3-p2.js +18 -23
  97. package/lib/config/versions/magento-2.4.3-p3.js +18 -23
  98. package/lib/config/versions/magento-2.4.3.js +18 -23
  99. package/lib/config/versions/magento-2.4.4-p1.js +18 -23
  100. package/lib/config/versions/magento-2.4.4-p2.js +41 -0
  101. package/lib/config/versions/magento-2.4.4.js +18 -23
  102. package/lib/config/versions/magento-2.4.5-p1.js +41 -0
  103. package/lib/config/versions/magento-2.4.5.js +18 -23
  104. package/lib/tasks/cli/create-bashrc-config.js +4 -2
  105. package/lib/tasks/composer/local-auth-json.js +1 -1
  106. package/lib/tasks/database/connect-to-database.js +6 -3
  107. package/lib/tasks/database/create-magento-database.js +5 -2
  108. package/lib/tasks/database/create-magento-user.js +50 -0
  109. package/lib/tasks/database/default-magento-database.js +3 -0
  110. package/lib/tasks/database/default-magento-user.js +7 -0
  111. package/lib/tasks/database/import-dump-to-database.js +3 -2
  112. package/lib/tasks/docker/api.d.ts +25 -1
  113. package/lib/tasks/docker/api.js +31 -1
  114. package/lib/tasks/docker/containers/container-api.d.ts +17 -0
  115. package/lib/tasks/docker/containers/container-api.js +64 -9
  116. package/lib/tasks/docker/containers/tasks.js +44 -13
  117. package/lib/tasks/docker/convert-composer-home-to-composer-cache-volume.js +52 -0
  118. package/lib/tasks/docker/convert-mysql-to-mariadb.js +2 -2
  119. package/lib/tasks/docker/image/image-api.d.ts +44 -0
  120. package/lib/tasks/docker/image/image-api.js +30 -2
  121. package/lib/tasks/docker/index.js +6 -1
  122. package/lib/tasks/docker/network/tasks.js +19 -14
  123. package/lib/tasks/docker/project-image-builder.js +39 -14
  124. package/lib/tasks/docker/system/index.js +5 -0
  125. package/lib/tasks/docker/system/system-api.d.ts +71 -0
  126. package/lib/tasks/docker/system/system-api.js +35 -0
  127. package/lib/tasks/docker/volume/index.js +2 -1
  128. package/lib/tasks/docker/volume/tasks.js +67 -9
  129. package/lib/tasks/docker/volume/volume-api.d.ts +40 -0
  130. package/lib/tasks/docker/volume/volume-api.js +55 -2
  131. package/lib/tasks/execute.js +5 -2
  132. package/lib/tasks/file-system/create-nginx-config.js +3 -5
  133. package/lib/tasks/file-system/create-php-config.js +2 -23
  134. package/lib/tasks/file-system/create-php-debug-config.js +45 -0
  135. package/lib/tasks/file-system/create-php-fpm-config.js +2 -4
  136. package/lib/tasks/file-system/create-phpstorm-config/database-config.js +24 -5
  137. package/lib/tasks/file-system/create-phpstorm-config/eslint-config.js +25 -13
  138. package/lib/tasks/file-system/create-phpstorm-config/exclude-folder-config.js +13 -3
  139. package/lib/tasks/file-system/create-phpstorm-config/index.js +2 -1
  140. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/custom-ruleset-path-config.js +18 -7
  141. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/paths.js +4 -0
  142. package/lib/tasks/file-system/create-ssl-terminator-config.js +23 -8
  143. package/lib/tasks/file-system/create-varnish-config.js +4 -7
  144. package/lib/tasks/file-system/create-vscode-config.js +2 -1
  145. package/lib/tasks/file-system/index.js +3 -2
  146. package/lib/tasks/magento/setup-magento/configure-elasticsearch.js +2 -4
  147. package/lib/tasks/magento/setup-magento/flush-redis-config.js +3 -6
  148. package/lib/tasks/magento/setup-magento/index.js +2 -0
  149. package/lib/tasks/magento/setup-magento/install-magento.js +8 -13
  150. package/lib/tasks/magento/setup-magento/set-base-url.js +2 -1
  151. package/lib/tasks/magento/setup-magento/set-mail-config.js +22 -0
  152. package/lib/tasks/magento/setup-magento/varnish-config.js +4 -9
  153. package/lib/tasks/magento/setup-magento/waiting-for-varnish.js +15 -16
  154. package/lib/tasks/php/php-container.js +1 -1
  155. package/lib/tasks/php/update-env-php.js +4 -6
  156. package/lib/tasks/{prefix → project-config}/index.js +6 -6
  157. package/lib/tasks/requirements/composer-credentials.js +7 -3
  158. package/lib/tasks/requirements/docker/context.js +88 -0
  159. package/lib/tasks/requirements/docker/index.js +111 -19
  160. package/lib/tasks/requirements/docker/install.js +21 -7
  161. package/lib/tasks/requirements/docker/permissions.js +2 -11
  162. package/lib/tasks/requirements/docker/running-status.js +94 -24
  163. package/lib/tasks/requirements/docker/version.js +1 -0
  164. package/lib/tasks/requirements/index.js +0 -2
  165. package/lib/tasks/requirements/php-version.js +4 -2
  166. package/lib/tasks/start.js +27 -8
  167. package/lib/tasks/status/index.js +86 -21
  168. package/lib/tasks/stop.js +2 -0
  169. package/lib/tasks/theme/retrieve-theme-data.js +12 -2
  170. package/lib/util/config-file-validator.js +17 -3
  171. package/lib/util/connection-string.js +62 -0
  172. package/lib/util/execute-in-container.js +7 -8
  173. package/lib/util/instance-metadata.js +14 -2
  174. package/lib/util/systemctl.js +62 -13
  175. package/package.json +2 -2
  176. package/typings/context.d.ts +11 -0
  177. package/typings/index.d.ts +46 -1
  178. package/lib/tasks/requirements/dependency/arch.js +0 -50
  179. package/lib/tasks/requirements/dependency/centos.js +0 -36
  180. package/lib/tasks/requirements/dependency/fedora.js +0 -36
  181. package/lib/tasks/requirements/dependency/index.js +0 -33
  182. package/lib/tasks/requirements/dependency/mac.js +0 -124
  183. package/lib/tasks/requirements/dependency/ubuntu.js +0 -83
@@ -5,9 +5,9 @@ const getMagentoVersionConfig = require('../config/get-magento-version-config');
5
5
  const logger = require('@scandipwa/scandipwa-dev-utils/logger');
6
6
  const getProjectConfiguration = require('../config/get-project-configuration');
7
7
  const checkConfigurationFile = require('../config/check-configuration-file');
8
- // const { installComposer, installPrestissimo } = require('../tasks/composer');
9
8
  const ConsoleBlock = require('../util/console-block');
10
9
  const { checkComposerCredentials } = require('../tasks/requirements/composer-credentials');
10
+ const pkg = require('../../package.json');
11
11
 
12
12
  /**
13
13
  * @param {import('yargs')} yargs
@@ -42,10 +42,18 @@ module.exports = (yargs) => {
42
42
  block
43
43
  .addHeader('Create Magento App CLI')
44
44
  .addEmptyLine()
45
+ .addLine(`Magento version: ${logger.style.link(ctx.magentoVersion)}`)
46
+ .addLine(`${logger.style.file('magento-scripts')} version: ${logger.style.link(pkg.version)}`)
47
+ .addEmptyLine()
45
48
  .addLine(`Available aliases: ${logger.style.command('php')}, ${logger.style.command('magento')}, ${logger.style.command('composer')}`)
46
49
  .addLine(`Available shortcuts: magento -> ${logger.style.command('m')}, composer -> ${logger.style.command('c')}`)
47
50
  .addEmptyLine();
48
51
 
52
+ block
53
+ .addLine(`Execute into any service: ${logger.style.command('exec <service name>')}`)
54
+ .addLine(`Execute into PHP container: ${logger.style.command('exec php')}`)
55
+ .addEmptyLine();
56
+
49
57
  if (ctx.config.overridenConfiguration.configuration.varnish.enabled) {
50
58
  block.addLine(`Clear Varnish cache: ${logger.style.command('cvc')}`);
51
59
  }
@@ -65,6 +73,15 @@ module.exports = (yargs) => {
65
73
  .addLine(`Connect to MariaDB server as root: ${logger.style.command('mariadbroot')}`)
66
74
  .addEmptyLine();
67
75
 
76
+ if (ctx.debug) {
77
+ block
78
+ .addLine('Debug PHP in CLI:')
79
+ .addLine('1. Start debugger in VSCode or PHPStorm')
80
+ .addLine(`2. Go to PHP container: ${ logger.style.command('exec php') }`)
81
+ .addLine(`3. Run CLI command with ${ logger.style.code('XDEBUG_SESSION=phpstorm') } environmental variable: ${ logger.style.command('XDEBUG_SESSION=phpstorm magento <command>') }`)
82
+ .addLine('4. Enjoy');
83
+ }
84
+
68
85
  block.log();
69
86
 
70
87
  return cli();
@@ -1,6 +1,12 @@
1
1
  const logger = require('@scandipwa/scandipwa-dev-utils/logger');
2
- const { docker } = require('../config');
2
+ const { Listr } = require('listr2');
3
+ const { checkRequirements } = require('../tasks/requirements');
4
+ const getMagentoVersionConfig = require('../config/get-magento-version-config');
3
5
  const { execAsyncSpawn } = require('../util/exec-async-command');
6
+ const checkConfigurationFile = require('../config/check-configuration-file');
7
+ const getProjectConfiguration = require('../config/get-project-configuration');
8
+ const { getCachedPorts } = require('../config/get-port-config');
9
+ const dockerNetwork = require('../tasks/docker/network');
4
10
 
5
11
  /**
6
12
  * @param {import('yargs')} yargs
@@ -77,7 +83,27 @@ npm run logs re (will match redis)`);
77
83
  );
78
84
  },
79
85
  async (argv) => {
80
- const containers = (await docker).getContainers();
86
+ const tasks = new Listr([
87
+ checkRequirements(),
88
+ getMagentoVersionConfig(),
89
+ checkConfigurationFile(),
90
+ getProjectConfiguration(),
91
+ getCachedPorts(),
92
+ dockerNetwork.tasks.createNetwork()
93
+ ], {
94
+ concurrent: false,
95
+ exitOnError: true,
96
+ ctx: { throwMagentoVersionMissing: true },
97
+ rendererOptions: { collapse: false, clearOutput: true }
98
+ });
99
+ let ctx;
100
+ try {
101
+ ctx = await tasks.run();
102
+ } catch (e) {
103
+ logger.error(e.message || e);
104
+ process.exit(1);
105
+ }
106
+ const containers = ctx.config.docker.getContainers();
81
107
  const services = Object.keys(containers);
82
108
 
83
109
  if (services.includes(argv.scope) || services.some((service) => service.includes(argv.scope))) {
@@ -22,6 +22,7 @@ const reportErrors = async (errors) => {
22
22
  const path = (error.path && ` Error path: ${error.path} `) || '';
23
23
  if (error instanceof UnknownError || error instanceof KnownError) {
24
24
  logger.error(error.message);
25
+ logger.error(error.stack);
25
26
  if (error instanceof UnknownError) {
26
27
  await googleAnalytics.trackError(`Unknown Error:${path}${error.stack}`);
27
28
  } else {
@@ -29,9 +30,11 @@ const reportErrors = async (errors) => {
29
30
  }
30
31
  } else if (error instanceof Error) {
31
32
  logger.error(error.message);
33
+ logger.error(error.stack);
32
34
  await googleAnalytics.trackError(`Regular Error:${path}${error.message}`);
33
35
  } else {
34
36
  logger.error(error);
37
+ logger.error(error.stack);
35
38
  await googleAnalytics.trackError(`Non Error:${path}${error}`); // track non-errors throws
36
39
  }
37
40
  }
@@ -83,6 +86,16 @@ module.exports = (yargs) => {
83
86
  describe: 'Enable verbose logging',
84
87
  type: 'boolean',
85
88
  default: false
89
+ })
90
+ .option('pull-images', {
91
+ describe: 'Pull Docker images',
92
+ type: 'boolean',
93
+ default: false
94
+ })
95
+ .option('reset-global-config', {
96
+ describe: 'Reset global magento-scripts configuration',
97
+ type: 'boolean',
98
+ default: false
86
99
  }),
87
100
  async (args = {}) => {
88
101
  /**
@@ -137,6 +150,13 @@ module.exports = (yargs) => {
137
150
  block.addLine(` ${title}: ${text}`);
138
151
  });
139
152
 
153
+ block.addEmptyLine();
154
+
155
+ block.addLine(logger.style.misc('MailDev'));
156
+ instanceMetadata.maildev.forEach(({ title, text }) => {
157
+ block.addLine(` ${title}: ${text}`);
158
+ });
159
+
140
160
  const themes = await getCSAThemes();
141
161
  if (themes.length > 0) {
142
162
  const theme = themes[0];
@@ -170,10 +190,11 @@ module.exports = (yargs) => {
170
190
  );
171
191
  logger.log('');
172
192
 
173
- if (!analytics && tasks.err && tasks.err.length > 0) {
174
- logger.warn('You have disabled analytics, but we\'ve encountered errors during startup!');
193
+ if (tasks.err && tasks.err.length > 0) {
194
+ logger.warn('During the start, we encountered some errors that have not impacted the start-up process!');
195
+ logger.log('');
175
196
  for (const err of tasks.err) {
176
- logger.error(`${err.path}\n${err.message}\n\n${err.stack}`);
197
+ logger.error(`Error path: ${err.path}\nError message: ${err.message}\n\nError stack: ${err.stack}`);
177
198
  }
178
199
  }
179
200
 
@@ -9,6 +9,8 @@ const { statusContainers } = require('../tasks/docker/containers');
9
9
  const getProjectConfiguration = require('../config/get-project-configuration');
10
10
  const checkConfigurationFile = require('../config/check-configuration-file');
11
11
  const checkPHPVersion = require('../tasks/requirements/php-version');
12
+ const { getComposerVersionTask } = require('../tasks/composer');
13
+ const { systemApi } = require('../tasks/docker/system');
12
14
 
13
15
  /**
14
16
  * @param {import('yargs')} yargs
@@ -21,7 +23,23 @@ module.exports = (yargs) => {
21
23
  checkConfigurationFile(),
22
24
  getProjectConfiguration(),
23
25
  getCachedPorts(),
24
- checkPHPVersion(),
26
+ {
27
+ task: (_ctx, task) => task.newListr([
28
+ checkPHPVersion(),
29
+ getComposerVersionTask(),
30
+ {
31
+ title: 'Retrieving Docker System data',
32
+ task: async (ctx) => {
33
+ ctx.systemDFData = await systemApi.df({
34
+ formatToJSON: true,
35
+ verbose: true
36
+ });
37
+ }
38
+ }
39
+ ], {
40
+ concurrent: true
41
+ })
42
+ },
25
43
  statusContainers()
26
44
  ], {
27
45
  concurrent: false,
@@ -2,6 +2,16 @@ const Conf = require('conf');
2
2
 
3
3
  const pkg = require('../../package.json');
4
4
 
5
+ /**
6
+ * @typedef ProjectConfig
7
+ * @prop {String} [createdAt]
8
+ * @prop {String} [prefix]
9
+ * @prop {Boolean} debug
10
+ */
11
+
12
+ /**
13
+ * @type {import('conf').default<Record<string, ProjectConfig>>}
14
+ */
5
15
  const projectsConfig = new Conf({
6
16
  configName: 'projects',
7
17
  projectName: 'create-magento-app',
@@ -10,6 +20,12 @@ const projectsConfig = new Conf({
10
20
  });
11
21
  const projectKey = process.cwd();
12
22
 
23
+ const setProjectConfig = (key, value) => {
24
+ projectsConfig.set(`${projectKey}.${key}`, value);
25
+ };
26
+
27
+ const getProjectConfig = () => projectsConfig.get(projectKey);
28
+
13
29
  const getProjectsFromProjectKeys = (path, project) => {
14
30
  if (project.createdAt) {
15
31
  return { [path]: project };
@@ -21,7 +37,7 @@ const getProjectsFromProjectKeys = (path, project) => {
21
37
  };
22
38
  /**
23
39
  *
24
- * @returns {Record<string, { createdAt?: string, prefix?: string}>}
40
+ * @returns {Record<string, ProjectConfig>}
25
41
  */
26
42
  const getProjects = () => {
27
43
  const projects = {};
@@ -45,5 +61,7 @@ const getProjects = () => {
45
61
  module.exports = {
46
62
  projectsConfig,
47
63
  projectKey,
48
- getProjects
64
+ getProjects,
65
+ setProjectConfig,
66
+ getProjectConfig
49
67
  };
@@ -1,132 +1,20 @@
1
- const { getBrewCommandSync } = require('../util/get-brew-bin-path');
2
-
3
1
  const dependenciesForPlatforms = {
4
2
  darwin: {
5
- dependencies: [
6
- 'zlib',
7
- 'bzip2',
8
- 'libiconv',
9
- 'libzip',
10
- 'libsodium',
11
- 'curl',
12
- 'libpng',
13
- 'gd',
14
- 'freetype',
15
- 'oniguruma',
16
- 'icu4c',
17
- 'libxml2',
18
- 'openssl@1.1'
19
- ],
20
- installCommand: (deps, { native } = { native: false }) => `${getBrewCommandSync({ native })} install ${deps}`,
21
3
  packageManager: 'brew'
22
4
  },
23
5
  'darwin-arm': {
24
- dependencies: [
25
- 'php',
26
- 'autoconf',
27
- 'pkg-config',
28
- 'gd'
29
- ],
30
- installCommand: (deps, { native } = { native: false }) => `${getBrewCommandSync({ native })} install ${deps}`,
31
6
  packageManager: 'brew'
32
7
  },
33
8
  'Arch Linux': {
34
- dependencies: [
35
- 'freetype2',
36
- 'openssl',
37
- 'oniguruma',
38
- 'libxslt',
39
- 'bzip2',
40
- ['libjpeg', 'libjpeg-turbo', 'libjpeg6-turbo'],
41
- 'libpng',
42
- 'icu',
43
- 'libxml2',
44
- 'autoconf',
45
- 'libzip',
46
- 'sqlite',
47
- 'readline',
48
- 'perl',
49
- 'libsodium',
50
- 'php',
51
- 'pkgconf'
52
- ],
53
- installCommand: (deps) => `sudo pacman -S ${deps} --noconfirm`,
54
9
  packageManager: 'pacman'
55
10
  },
56
11
  Fedora: {
57
- dependencies: [
58
- 'openssl-devel',
59
- 'libjpeg-turbo-devel',
60
- 'libpng-devel',
61
- 'gd-devel',
62
- 'libicu',
63
- 'libicu-devel',
64
- 'libzip-devel',
65
- 'libsodium',
66
- 'libsodium-devel',
67
- 'libtool-ltdl-devel',
68
- 'oniguruma-devel',
69
- 'libxml2-devel',
70
- 'bzip2-devel',
71
- 'curl-devel',
72
- 'libxslt-devel',
73
- 'autoconf',
74
- 'php'
75
- ],
76
- installCommand: (deps) => `sudo yum install ${deps} -y`,
77
- packageManager: 'yum'
12
+ packageManager: 'dnf'
78
13
  },
79
14
  CentOS: {
80
- dependencies: [
81
- 'openssl-devel',
82
- 'libjpeg-turbo-devel',
83
- 'libpng-devel',
84
- 'gd-devel',
85
- 'libicu',
86
- 'libicu-devel',
87
- 'libzip-devel',
88
- 'libsodium',
89
- 'libsodium-devel',
90
- 'libtool-ltdl-devel',
91
- 'oniguruma-devel',
92
- 'libxml2-devel',
93
- 'bzip2-devel',
94
- 'curl-devel',
95
- 'libxslt-devel',
96
- 'autoconf',
97
- 'php'
98
- ],
99
- installCommand: (deps) => `sudo yum install --enablerepo=PowerTools ${deps} -y`,
100
15
  packageManager: 'yum'
101
16
  },
102
17
  Ubuntu: {
103
- dependencies: [
104
- 'libcurl4-openssl-dev',
105
- 'libonig-dev',
106
- 'libjpeg-dev',
107
- 'libjpeg8-dev',
108
- 'libjpeg-turbo8-dev',
109
- 'libpng-dev',
110
- 'libicu-dev',
111
- 'libfreetype6-dev',
112
- 'libzip-dev',
113
- 'libssl-dev',
114
- 'build-essential',
115
- 'libbz2-dev',
116
- 'libreadline-dev',
117
- 'libsodium-dev',
118
- 'libsqlite3-dev',
119
- 'libxml2-dev',
120
- ['libxslt-dev', 'libxslt1-dev'],
121
- 'libonig-dev',
122
- 'php-cli',
123
- 'php-bz2',
124
- 'pkg-config',
125
- 'autoconf',
126
- 'cmake',
127
- 'php'
128
- ],
129
- installCommand: (deps) => `sudo apt install ${deps} -y`,
130
18
  packageManager: 'apt'
131
19
  }
132
20
  };