ember-cli 6.9.1 → 6.10.0-beta.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 (54) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/CONTRIBUTING.md +30 -34
  3. package/README.md +9 -21
  4. package/RELEASE.md +12 -10
  5. package/bin/ember +16 -13
  6. package/blueprints/addon-import/index.js +4 -4
  7. package/docs/build/data.json +9 -9
  8. package/lib/broccoli/ember-app.js +1 -1
  9. package/lib/commands/generate.js +1 -1
  10. package/lib/commands/init.js +1 -1
  11. package/lib/commands/new.js +1 -1
  12. package/lib/commands/test.js +0 -3
  13. package/lib/commands/unknown.js +1 -1
  14. package/lib/debug/deprecate.js +1 -1
  15. package/lib/models/asset-size-printer.js +3 -3
  16. package/lib/models/blueprint.js +6 -6
  17. package/lib/models/builder.js +1 -1
  18. package/lib/models/command.js +1 -1
  19. package/lib/models/hardware-info.js +5 -2
  20. package/lib/models/instrumentation.js +2 -2
  21. package/lib/models/project.js +3 -3
  22. package/lib/models/watcher.js +1 -1
  23. package/lib/models/worker.js +2 -2
  24. package/lib/tasks/addon-install.js +1 -1
  25. package/lib/tasks/build-watch.js +2 -2
  26. package/lib/tasks/build.js +1 -1
  27. package/lib/tasks/git-init.js +2 -2
  28. package/lib/tasks/install-blueprint.js +1 -1
  29. package/lib/tasks/interactive-new.js +5 -5
  30. package/lib/tasks/npm-task.js +2 -2
  31. package/lib/tasks/serve.js +1 -1
  32. package/lib/tasks/server/express-server.js +1 -1
  33. package/lib/tasks/test-server.js +1 -1
  34. package/lib/utilities/find-build-file.js +2 -2
  35. package/lib/utilities/get-lang-arg.js +4 -4
  36. package/lib/utilities/heimdall-progress.js +5 -2
  37. package/lib/utilities/lint-fix.js +1 -1
  38. package/lib/utilities/markdown-color.js +1 -1
  39. package/lib/utilities/print-command.js +1 -1
  40. package/lib/utilities/require-as-hash.js +10 -8
  41. package/lib/utilities/windows-admin.js +1 -1
  42. package/package.json +63 -50
  43. package/packages/addon-blueprint/additional-package.json +1 -3
  44. package/packages/addon-blueprint/index.js +1 -1
  45. package/packages/addon-blueprint/package.json +11 -3
  46. package/packages/app-blueprint/files/package.json +10 -10
  47. package/packages/app-blueprint/index.js +1 -1
  48. package/packages/app-blueprint/package.json +11 -3
  49. package/tests/helpers/acceptance.js +50 -0
  50. package/tests/helpers/command-generator.js +2 -2
  51. package/tests/helpers/package-cache.js +1 -1
  52. package/tests/helpers/process-help-string.js +3 -3
  53. package/tests/helpers/run-command.js +1 -1
  54. package/lib/utilities/execa.js +0 -20
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-tooling/classic-build-addon-blueprint",
3
- "version": "6.9.0",
3
+ "version": "6.10.0-beta.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ember-cli/ember-cli.git",
@@ -11,8 +11,8 @@
11
11
  "ember-blueprint"
12
12
  ],
13
13
  "dependencies": {
14
- "@ember-tooling/blueprint-model": "^0.4.1",
15
- "chalk": "^4.1.2",
14
+ "@ember-tooling/blueprint-model": "^0.5.0",
15
+ "chalk": "^5.6.2",
16
16
  "ember-cli-normalize-entity-name": "^1.0.0",
17
17
  "ember-cli-string-utils": "^1.1.0",
18
18
  "fs-extra": "^11.3.0",
@@ -20,5 +20,13 @@
20
20
  "silent-error": "^1.1.1",
21
21
  "sort-package-json": "^2.12.0",
22
22
  "walk-sync": "^3.0.0"
23
+ },
24
+ "release-plan": {
25
+ "semverIncrementAs": {
26
+ "minor": "prerelease",
27
+ "patch": "prerelease"
28
+ },
29
+ "semverIncrementTag": "beta",
30
+ "publishTag": "beta"
23
31
  }
24
32
  }
@@ -45,9 +45,9 @@
45
45
  "@ember/test-helpers": "^5.4.1<% if (embroider) { %>",
46
46
  "@embroider/compat": "^3.9.3",
47
47
  "@embroider/core": "^3.5.9<% } %>",
48
- "@embroider/macros": "^1.19.5<% if (embroider) { %>",
48
+ "@embroider/macros": "^1.19.6<% if (embroider) { %>",
49
49
  "@embroider/webpack": "^4.1.2<% } %>",
50
- "@eslint/js": "^9.39.1",
50
+ "@eslint/js": "^9.39.2",
51
51
  "@glimmer/component": "^2.0.0",
52
52
  "@glimmer/tracking": "^1.1.2<% if (typescript) { %>",
53
53
  "@glint/environment-ember-loose": "^1.5.2",
@@ -60,7 +60,7 @@
60
60
  "broccoli-asset-rev": "^3.0.0",
61
61
  "concurrently": "^9.2.1",
62
62
  "ember-auto-import": "^2.12.0",
63
- "ember-cli": "~6.9.1",
63
+ "ember-cli": "~6.10.0-beta.1",
64
64
  "ember-cli-app-version": "^7.0.0",
65
65
  "ember-cli-babel": "^8.2.0",
66
66
  "ember-cli-clean-css": "^3.0.0",
@@ -76,11 +76,11 @@
76
76
  "ember-page-title": "^9.0.3",
77
77
  "ember-qunit": "^9.0.4",
78
78
  "ember-resolver": "^13.1.1",
79
- "ember-source": "~6.9.0",
80
- "ember-template-imports": "^4.3.0",
79
+ "ember-source": "~6.10.0-beta.1",
80
+ "ember-template-imports": "^4.4.0",
81
81
  "ember-template-lint": "^6.1.0<% if (welcome) { %>",
82
82
  "ember-welcome-page": "^7.0.2<% } %>",
83
- "eslint": "^9.39.1",
83
+ "eslint": "^9.39.2",
84
84
  "eslint-config-prettier": "^9.1.2",
85
85
  "eslint-plugin-ember": "^12.7.5",
86
86
  "eslint-plugin-n": "^17.23.1",
@@ -89,17 +89,17 @@
89
89
  "loader.js": "^4.7.0",
90
90
  "prettier": "^3.7.4",
91
91
  "prettier-plugin-ember-template-tag": "^2.1.2",
92
- "qunit": "^2.24.3",
92
+ "qunit": "^2.25.0",
93
93
  "qunit-dom": "^3.5.0",
94
94
  "stylelint": "^16.26.1",
95
95
  "stylelint-config-standard": "^36.0.1",
96
96
  "tracked-built-ins": "^3.4.0<% if (typescript) { %>",
97
97
  "typescript": "^5.9.3",
98
- "typescript-eslint": "^8.49.0<% } %>",
99
- "webpack": "^5.103.0"
98
+ "typescript-eslint": "^8.52.0<% } %>",
99
+ "webpack": "^5.104.1"
100
100
  },
101
101
  "engines": {
102
- "node": ">= 20.11"
102
+ "node": ">= 20.19"
103
103
  },
104
104
  "ember": {
105
105
  "edition": "octane"
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const stringUtil = require('ember-cli-string-utils');
4
- const chalk = require('chalk');
4
+ const { default: chalk } = require('chalk');
5
5
  const { isExperimentEnabled } = require('@ember-tooling/blueprint-model/utilities/experiments');
6
6
  const directoryForPackageName = require('@ember-tooling/blueprint-model/utilities/directory-for-package-name');
7
7
  const blueprintVersion = require('./package.json').version;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-tooling/classic-build-app-blueprint",
3
- "version": "6.9.0",
3
+ "version": "6.10.0-beta.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ember-cli/ember-cli.git",
@@ -11,8 +11,16 @@
11
11
  "ember-blueprint"
12
12
  ],
13
13
  "dependencies": {
14
- "@ember-tooling/blueprint-model": "^0.4.1",
15
- "chalk": "^4.1.2",
14
+ "@ember-tooling/blueprint-model": "^0.5.0",
15
+ "chalk": "^5.6.2",
16
16
  "ember-cli-string-utils": "^1.1.0"
17
+ },
18
+ "release-plan": {
19
+ "semverIncrementAs": {
20
+ "minor": "prerelease",
21
+ "patch": "prerelease"
22
+ },
23
+ "semverIncrementTag": "beta",
24
+ "publishTag": "beta"
17
25
  }
18
26
  }
@@ -3,6 +3,10 @@
3
3
  const symlinkOrCopySync = require('symlink-or-copy').sync;
4
4
  const path = require('path');
5
5
  const fs = require('fs-extra');
6
+ // eslint-disable-next-line n/no-unpublished-require
7
+ const tmp = require('tmp-promise');
8
+ const { execa } = require('execa');
9
+
6
10
  const runCommand = require('./run-command');
7
11
  const hasGlobalYarn = require('../helpers/has-global-yarn');
8
12
 
@@ -59,6 +63,13 @@ function applyCommand(command, name /*, ...flags*/) {
59
63
  * @return {Promise} The result of the running the command
60
64
  */
61
65
  function createTestTargets(projectName, options) {
66
+ console.warn(`**********************************************
67
+ ** DO NOT USE createTestTargets ANY MORE! **
68
+ **********************************************
69
+
70
+ Use createAndInstallTestTargets() which doesn't use a complicated packageCache system
71
+ and relies on the pnpm store for caching instead.`);
72
+
62
73
  let outputDir = quickTemp.makeOrReuse(dirs, projectName);
63
74
 
64
75
  options = options || {};
@@ -115,7 +126,46 @@ function cleanupRun(projectName) {
115
126
  quickTemp.remove(dirs, `${projectName}-clone`);
116
127
  }
117
128
 
129
+ /**
130
+ *
131
+ * @param {string} projectName
132
+ * @param {string} options.command defaults to new
133
+ * @returns {Promise<{ result: string, path: string, cleanup: () => void }>} an object containing command result, path, and a cleanup function;
134
+ */
135
+ async function createAndInstallTestTargets(projectName, options) {
136
+ let outputDir = await tmp.dir({ unsafeCleanup: true });
137
+
138
+ let command = options?.command ?? 'new';
139
+
140
+ let result = await applyCommand(command, projectName, '--skip-npm', `--directory=${outputDir.path}`);
141
+
142
+ await execa('pnpm', ['install', '--prefer-offline'], {
143
+ preferLocal: true,
144
+ cwd: outputDir.path,
145
+ });
146
+
147
+ for (let pkg of [
148
+ '.',
149
+ 'packages/blueprint-model',
150
+ 'packages/blueprint-blueprint',
151
+ 'packages/app-blueprint',
152
+ 'packages/addon-blueprint',
153
+ ]) {
154
+ await execa('pnpm', ['link', path.join(__dirname, `../../${pkg}`)], {
155
+ preferLocal: true,
156
+ cwd: outputDir.path,
157
+ });
158
+ }
159
+
160
+ return {
161
+ result,
162
+ cleanup: outputDir.cleanup,
163
+ path: outputDir.path,
164
+ };
165
+ }
166
+
118
167
  module.exports = {
168
+ createAndInstallTestTargets,
119
169
  createTestTargets,
120
170
  linkDependencies,
121
171
  teardownTestTargets,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const execa = require('../../lib/utilities/execa');
3
+ const { execaSync } = require('execa');
4
4
 
5
5
  /**
6
6
  * A simple tool to make behavior and API consistent between commands
@@ -45,6 +45,6 @@ module.exports = class CommandGenerator {
45
45
  }
46
46
 
47
47
  _invoke(args, options) {
48
- return execa.sync(this.program, args, options);
48
+ return execaSync(this.program, args, options);
49
49
  }
50
50
  };
@@ -3,7 +3,7 @@
3
3
  const fs = require('fs-extra');
4
4
  const path = require('path');
5
5
  const quickTemp = require('quick-temp');
6
- const Configstore = require('configstore');
6
+ const { default: Configstore } = require('configstore');
7
7
  const CommandGenerator = require('./command-generator');
8
8
  const stableStringify = require('safe-stable-stringify');
9
9
  const symlinkOrCopySync = require('symlink-or-copy').sync;
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- const chalk = require('chalk');
3
+ const { supportsColor } = require('chalk');
4
4
  // eslint-disable-next-line n/no-unpublished-require
5
- const stripAnsi = require('strip-ansi');
5
+ const { default: stripAnsi } = require('strip-ansi');
6
6
 
7
7
  module.exports = function (helpString) {
8
8
  // currently windows
9
- if (chalk.supportsColor) {
9
+ if (supportsColor) {
10
10
  return helpString;
11
11
  }
12
12
  return stripAnsi(helpString);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const chalk = require('chalk');
3
+ const { default: chalk } = require('chalk');
4
4
  const spawn = require('child_process').spawn;
5
5
  const defaults = require('lodash/defaults');
6
6
  const killCliProcess = require('./kill-cli-process');
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- const execa = require('execa');
4
- const logger = require('heimdalljs-logger')('ember-cli:execa');
5
-
6
- async function _execa(cmd, args, opts) {
7
- logger.info('execa(%j, %j)', cmd, args);
8
- let result = await execa(cmd, args, opts);
9
- logger.info('execa(%j, %j) -> code: %d', cmd, args, result.code);
10
- return result;
11
- }
12
-
13
- _execa.sync = function (cmd, args, opts) {
14
- logger.info('execa.sync(%j, %j)', cmd, args);
15
- let result = execa.sync(cmd, args, opts);
16
- logger.info('execa.sync(%j, %j) -> code: %d', cmd, args, result.code);
17
- return result;
18
- };
19
-
20
- module.exports = _execa;