@netlify/build 27.20.4 → 27.20.6

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 (133) hide show
  1. package/lib/core/bin.js +42 -59
  2. package/lib/core/build.js +333 -536
  3. package/lib/core/config.js +94 -159
  4. package/lib/core/constants.js +95 -135
  5. package/lib/core/dev.js +26 -30
  6. package/lib/core/dry.js +18 -36
  7. package/lib/core/feature_flags.js +13 -16
  8. package/lib/core/flags.js +168 -169
  9. package/lib/core/lingering.js +44 -61
  10. package/lib/core/main.js +94 -136
  11. package/lib/core/missing_side_file.js +12 -24
  12. package/lib/core/normalize_flags.js +52 -63
  13. package/lib/core/severity.js +13 -15
  14. package/lib/core/user_node_version.js +26 -35
  15. package/lib/env/changes.js +29 -37
  16. package/lib/env/main.js +10 -15
  17. package/lib/env/metadata.js +63 -76
  18. package/lib/error/api.js +31 -40
  19. package/lib/error/build.js +27 -38
  20. package/lib/error/cancel.js +5 -6
  21. package/lib/error/colors.js +7 -9
  22. package/lib/error/handle.js +38 -49
  23. package/lib/error/info.js +26 -35
  24. package/lib/error/monitor/location.js +12 -17
  25. package/lib/error/monitor/normalize.js +75 -85
  26. package/lib/error/monitor/print.js +19 -41
  27. package/lib/error/monitor/report.js +102 -121
  28. package/lib/error/monitor/start.js +43 -56
  29. package/lib/error/parse/clean_stack.js +52 -69
  30. package/lib/error/parse/location.js +40 -52
  31. package/lib/error/parse/normalize.js +18 -23
  32. package/lib/error/parse/parse.js +59 -93
  33. package/lib/error/parse/plugin.js +42 -57
  34. package/lib/error/parse/properties.js +13 -20
  35. package/lib/error/parse/serialize_log.js +29 -37
  36. package/lib/error/parse/serialize_status.js +15 -23
  37. package/lib/error/parse/stack.js +29 -38
  38. package/lib/error/type.js +132 -150
  39. package/lib/install/functions.js +16 -24
  40. package/lib/install/local.js +31 -48
  41. package/lib/install/main.js +52 -66
  42. package/lib/install/missing.js +40 -53
  43. package/lib/log/colors.js +15 -22
  44. package/lib/log/description.js +16 -21
  45. package/lib/log/header.js +11 -13
  46. package/lib/log/header_func.js +11 -15
  47. package/lib/log/logger.js +88 -119
  48. package/lib/log/messages/compatibility.js +100 -158
  49. package/lib/log/messages/config.js +76 -92
  50. package/lib/log/messages/core.js +40 -60
  51. package/lib/log/messages/core_steps.js +63 -92
  52. package/lib/log/messages/dry.js +31 -53
  53. package/lib/log/messages/install.js +21 -28
  54. package/lib/log/messages/ipc.js +21 -30
  55. package/lib/log/messages/mutations.js +51 -71
  56. package/lib/log/messages/plugins.js +18 -31
  57. package/lib/log/messages/status.js +12 -14
  58. package/lib/log/messages/steps.js +14 -18
  59. package/lib/log/old_version.js +23 -32
  60. package/lib/log/serialize.js +7 -10
  61. package/lib/log/stream.js +48 -65
  62. package/lib/log/theme.js +22 -23
  63. package/lib/plugins/child/diff.js +31 -40
  64. package/lib/plugins/child/error.js +20 -26
  65. package/lib/plugins/child/lazy.js +11 -14
  66. package/lib/plugins/child/load.js +15 -22
  67. package/lib/plugins/child/logic.js +51 -58
  68. package/lib/plugins/child/main.js +32 -46
  69. package/lib/plugins/child/run.js +18 -27
  70. package/lib/plugins/child/status.js +52 -63
  71. package/lib/plugins/child/typescript.js +19 -36
  72. package/lib/plugins/child/utils.js +36 -49
  73. package/lib/plugins/child/validate.js +25 -28
  74. package/lib/plugins/compatibility.js +64 -92
  75. package/lib/plugins/error.js +29 -35
  76. package/lib/plugins/events.js +7 -12
  77. package/lib/plugins/expected_version.js +61 -99
  78. package/lib/plugins/ipc.js +79 -102
  79. package/lib/plugins/list.js +49 -62
  80. package/lib/plugins/load.js +44 -64
  81. package/lib/plugins/manifest/check.js +64 -85
  82. package/lib/plugins/manifest/load.js +34 -37
  83. package/lib/plugins/manifest/main.js +16 -21
  84. package/lib/plugins/manifest/path.js +18 -25
  85. package/lib/plugins/manifest/validate.js +77 -94
  86. package/lib/plugins/node_version.js +22 -42
  87. package/lib/plugins/options.js +45 -78
  88. package/lib/plugins/pinned_version.js +58 -106
  89. package/lib/plugins/resolve.js +91 -133
  90. package/lib/plugins/spawn.js +43 -61
  91. package/lib/plugins_core/add.js +26 -40
  92. package/lib/plugins_core/build_command.js +47 -72
  93. package/lib/plugins_core/deploy/buildbot_client.js +61 -87
  94. package/lib/plugins_core/deploy/index.js +47 -71
  95. package/lib/plugins_core/edge_functions/index.js +73 -116
  96. package/lib/plugins_core/edge_functions/lib/error.js +13 -17
  97. package/lib/plugins_core/edge_functions/lib/internal_manifest.js +45 -55
  98. package/lib/plugins_core/edge_functions/validate_manifest/validate_edge_functions_manifest.js +65 -80
  99. package/lib/plugins_core/functions/error.js +88 -128
  100. package/lib/plugins_core/functions/feature_flags.js +5 -5
  101. package/lib/plugins_core/functions/index.js +98 -145
  102. package/lib/plugins_core/functions/utils.js +36 -57
  103. package/lib/plugins_core/functions/zisi.js +35 -52
  104. package/lib/plugins_core/functions_install/index.js +8 -11
  105. package/lib/plugins_core/list.js +15 -22
  106. package/lib/status/add.js +26 -32
  107. package/lib/status/colors.js +14 -19
  108. package/lib/status/load_error.js +8 -9
  109. package/lib/status/report.js +72 -126
  110. package/lib/status/success.js +10 -14
  111. package/lib/steps/core_step.js +54 -89
  112. package/lib/steps/error.js +50 -87
  113. package/lib/steps/get.js +33 -41
  114. package/lib/steps/plugin.js +53 -83
  115. package/lib/steps/return.js +24 -51
  116. package/lib/steps/run_core_steps.js +119 -171
  117. package/lib/steps/run_step.js +154 -270
  118. package/lib/steps/run_steps.js +91 -174
  119. package/lib/steps/update_config.js +45 -72
  120. package/lib/telemetry/main.js +89 -128
  121. package/lib/time/aggregate.js +84 -110
  122. package/lib/time/main.js +23 -34
  123. package/lib/time/measure.js +11 -15
  124. package/lib/time/report.js +32 -44
  125. package/lib/utils/errors.js +10 -9
  126. package/lib/utils/json.js +11 -15
  127. package/lib/utils/omit.js +3 -4
  128. package/lib/utils/package.js +19 -22
  129. package/lib/utils/remove_falsy.js +5 -7
  130. package/lib/utils/resolve.js +30 -34
  131. package/lib/utils/runtime.js +4 -4
  132. package/lib/utils/semver.js +19 -25
  133. package/package.json +14 -7
package/lib/core/bin.js CHANGED
@@ -1,83 +1,66 @@
1
1
  #!/usr/bin/env node
2
-
3
- import process from 'process'
4
-
5
- import filterObj from 'filter-obj'
6
- import yargs from 'yargs'
7
- import { hideBin } from 'yargs/helpers'
8
-
9
- import { normalizeCliFeatureFlags } from './feature_flags.js'
10
- import { FLAGS } from './flags.js'
11
- import build from './main.js'
12
- import { FALLBACK_SEVERITY_ENTRY } from './severity.js'
13
-
2
+ import process from 'process';
3
+ import filterObj from 'filter-obj';
4
+ import yargs from 'yargs';
5
+ import { hideBin } from 'yargs/helpers';
6
+ import { normalizeCliFeatureFlags } from './feature_flags.js';
7
+ import { FLAGS } from './flags.js';
8
+ import build from './main.js';
9
+ import { FALLBACK_SEVERITY_ENTRY } from './severity.js';
14
10
  // CLI entry point.
15
11
  // Before adding logic to this file, please consider adding it to the main
16
12
  // programmatic command instead, so that the new logic is available when run
17
13
  // programmatically as well. This file should only contain logic that makes
18
14
  // sense only in CLI, such as CLI flags parsing and exit code.
19
15
  const runCli = async function () {
20
- const flags = parseFlags()
21
- const flagsA = filterObj(flags, isUserFlag)
22
-
23
- const state = { done: false }
24
- process.on('exit', onExit.bind(undefined, state))
25
-
26
- const { severityCode, logs } = await build(flagsA)
27
- printLogs(logs)
28
- process.exitCode = severityCode
29
-
30
- state.done = true
31
- }
32
-
16
+ const flags = parseFlags();
17
+ const flagsA = filterObj(flags, isUserFlag);
18
+ const state = { done: false };
19
+ process.on('exit', onExit.bind(undefined, state));
20
+ const { severityCode, logs } = await build(flagsA);
21
+ printLogs(logs);
22
+ process.exitCode = severityCode;
23
+ state.done = true;
24
+ };
33
25
  const parseFlags = function () {
34
- const { featureFlags: cliFeatureFlags = '', ...flags } = yargs(hideBin(process.argv))
35
- .options(FLAGS)
36
- .usage(USAGE)
37
- .parse()
38
- const featureFlags = normalizeCliFeatureFlags(cliFeatureFlags)
39
- return { ...flags, featureFlags }
40
- }
41
-
26
+ const { featureFlags: cliFeatureFlags = '', ...flags } = yargs(hideBin(process.argv))
27
+ .options(FLAGS)
28
+ .usage(USAGE)
29
+ .parse();
30
+ const featureFlags = normalizeCliFeatureFlags(cliFeatureFlags);
31
+ return { ...flags, featureFlags };
32
+ };
42
33
  const USAGE = `netlify-build [OPTIONS...]
43
34
 
44
35
  Run Netlify Build system locally.
45
36
 
46
37
  Options can also be specified as environment variables prefixed with
47
38
  NETLIFY_BUILD_. For example the environment variable NETLIFY_BUILD_DRY=true can
48
- be used instead of the CLI flag --dry.`
49
-
39
+ be used instead of the CLI flag --dry.`;
50
40
  // Remove `yargs`-specific options, shortcuts, dash-cased and aliases
51
41
  const isUserFlag = function (key, value) {
52
- return value !== undefined && !INTERNAL_KEYS.has(key) && key.length !== 1 && !key.includes('-')
53
- }
54
-
55
- const INTERNAL_KEYS = new Set(['help', 'version', '_', '$0', 'dryRun'])
56
-
42
+ return value !== undefined && !INTERNAL_KEYS.has(key) && key.length !== 1 && !key.includes('-');
43
+ };
44
+ const INTERNAL_KEYS = new Set(['help', 'version', '_', '$0', 'dryRun']);
57
45
  // Used mostly for testing
58
46
  const printLogs = function (logs) {
59
- if (logs === undefined) {
60
- return
61
- }
62
-
63
- const allLogs = [logs.stdout.join('\n'), logs.stderr.join('\n')].filter(Boolean).join('\n\n')
64
- console.log(allLogs)
65
- }
66
-
47
+ if (logs === undefined) {
48
+ return;
49
+ }
50
+ const allLogs = [logs.stdout.join('\n'), logs.stderr.join('\n')].filter(Boolean).join('\n\n');
51
+ console.log(allLogs);
52
+ };
67
53
  // In theory, the main process should not exit until the main `build()` function
68
54
  // has completed. In practice, this might happen due to bugs.
69
55
  // Making the exit code not 0 in that case ensures the caller knows that the
70
56
  // build has completed when the exit code is 0. This `exit` event handlers
71
57
  // guarantees this.
72
58
  const onExit = function ({ done }, exitCode) {
73
- if (done || exitCode !== 0) {
74
- return
75
- }
76
-
77
- const [, processName] = process.argv
78
- console.log(`${processName} exited with exit code ${exitCode} without finishing the build.`)
79
-
80
- process.exitCode = FALLBACK_SEVERITY_ENTRY.severityCode
81
- }
82
-
83
- runCli()
59
+ if (done || exitCode !== 0) {
60
+ return;
61
+ }
62
+ const [, processName] = process.argv;
63
+ console.log(`${processName} exited with exit code ${exitCode} without finishing the build.`);
64
+ process.exitCode = FALLBACK_SEVERITY_ENTRY.severityCode;
65
+ };
66
+ runCli();