ember-cli 6.9.0-alpha.2 → 6.9.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.
package/CHANGELOG.md CHANGED
@@ -1,26 +1,57 @@
1
1
  # ember-cli Changelog
2
2
 
3
- ## Release (2025-10-14)
3
+ ## Release (2025-10-15)
4
4
 
5
- * ember-cli 6.9.0-alpha.2 (minor)
6
- * @ember-tooling/classic-build-addon-blueprint 6.9.0-alpha.2 (minor)
7
- * @ember-tooling/classic-build-app-blueprint 6.9.0-alpha.2 (minor)
8
- * @ember-tooling/blueprint-blueprint 0.2.1 (patch)
9
- * @ember-tooling/blueprint-model 0.4.1 (patch)
5
+ * ember-cli 6.9.0-beta.1 (minor)
6
+ * @ember-tooling/classic-build-addon-blueprint 6.9.0-beta.1 (minor)
7
+ * @ember-tooling/classic-build-app-blueprint 6.9.0-beta.1 (minor)
10
8
 
11
9
  #### :rocket: Enhancement
10
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
11
+ * [#10856](https://github.com/ember-cli/ember-cli/pull/10856) Prepare 6.9 Beta ([@mansona](https://github.com/mansona))
12
+ * [#10853](https://github.com/ember-cli/ember-cli/pull/10853) Promote Beta and update all dependencies for 6.8 release ([@mansona](https://github.com/mansona))
13
+
14
+ #### :house: Internal
12
15
  * `ember-cli`
13
- * [#10844](https://github.com/ember-cli/ember-cli/pull/10844) [beta] Error when `ember (generate|destroy) (http-proxy|http-mock|server)` is used in a Vite-based project ([@kategengler](https://github.com/kategengler))
16
+ * [#10809](https://github.com/ember-cli/ember-cli/pull/10809) Update RELEASE ([@mansona](https://github.com/mansona))
17
+ * [#10813](https://github.com/ember-cli/ember-cli/pull/10813) Document need for future vite experiment test cleanup ([@ef4](https://github.com/ef4))
18
+
19
+ #### Committers: 2
20
+ - Chris Manson ([@mansona](https://github.com/mansona))
21
+ - Edward Faulkner ([@ef4](https://github.com/ef4))
22
+
23
+ ## Release (2025-10-14)
24
+
25
+ * ember-cli 6.8.0 (minor)
26
+ * @ember-tooling/classic-build-addon-blueprint 6.8.0 (minor)
27
+ * @ember-tooling/classic-build-app-blueprint 6.8.0 (minor)
28
+
29
+ #### :rocket: Enhancement
14
30
  * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
31
+ * [#10853](https://github.com/ember-cli/ember-cli/pull/10853) Promote Beta and update all dependencies for 6.8 release ([@mansona](https://github.com/mansona))
15
32
  * [#10831](https://github.com/ember-cli/ember-cli/pull/10831) [bugfix beta] enable `--strict` by default to match new app blueprint ([@mansona](https://github.com/mansona))
33
+ * [#10808](https://github.com/ember-cli/ember-cli/pull/10808) Prepare 6.8 Beta ([@mansona](https://github.com/mansona))
34
+ * `ember-cli`
35
+ * [#10844](https://github.com/ember-cli/ember-cli/pull/10844) [beta] Error when `ember (generate|destroy) (http-proxy|http-mock|server)` is used in a Vite-based project ([@kategengler](https://github.com/kategengler))
36
+ * [#10802](https://github.com/ember-cli/ember-cli/pull/10802) enable Vite by default ([@mansona](https://github.com/mansona))
37
+ * [#10804](https://github.com/ember-cli/ember-cli/pull/10804) Support a `--ts` alias for the `addon`, `init` and `new` commands ([@bertdeblock](https://github.com/bertdeblock))
38
+ * [#10781](https://github.com/ember-cli/ember-cli/pull/10781) Add new `VITE` experiment to generate app with new Vite blueprint ([@pichfl](https://github.com/pichfl))
39
+ * [#10785](https://github.com/ember-cli/ember-cli/pull/10785) Depracate passing filenames and globs to `init` ([@pichfl](https://github.com/pichfl))
40
+ * [#10776](https://github.com/ember-cli/ember-cli/pull/10776) Add deprecation warning for the `--embroider` argument ([@pichfl](https://github.com/pichfl))
41
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `ember-cli`
42
+ * [#10791](https://github.com/ember-cli/ember-cli/pull/10791) update the format of the ember-cli-update.json ([@mansona](https://github.com/mansona))
16
43
 
17
44
  #### :bug: Bug Fix
18
45
  * `ember-cli`
19
46
  * [#10846](https://github.com/ember-cli/ember-cli/pull/10846) [beta bugfix] allow build --watch only in EMBROIDER_PREBUILD ([@mansona](https://github.com/mansona))
20
- * [#10834](https://github.com/ember-cli/ember-cli/pull/10834) [bugfix release] Fix tests using wrong versions ([@mansona](https://github.com/mansona))
21
47
  * [#10826](https://github.com/ember-cli/ember-cli/pull/10826) move resolution of @ember/app-blueprint to prevent loading latest ([@mansona](https://github.com/mansona))
22
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
23
- * [#10838](https://github.com/ember-cli/ember-cli/pull/10838) Add package license metadata to match repository ([@davidtaylorhq](https://github.com/davidtaylorhq))
48
+ * [#10782](https://github.com/ember-cli/ember-cli/pull/10782) update heimdall-fs-monitor ([@mansona](https://github.com/mansona))
49
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `ember-cli`
50
+ * [#10803](https://github.com/ember-cli/ember-cli/pull/10803) Add "ember-blueprint" to keywords in `package.json` for the classic blueprints ([@pichfl](https://github.com/pichfl))
51
+ * `@ember-tooling/classic-build-app-blueprint`
52
+ * [#10798](https://github.com/ember-cli/ember-cli/pull/10798) Add import from ember-data breakage/deprecation ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
53
+ * `@ember-tooling/classic-build-app-blueprint`, `ember-cli`
54
+ * [#10707](https://github.com/ember-cli/ember-cli/pull/10707) Enabled recommended configs from eslint-plugin-n and eslint-plugin-qunit ([@ijlee2](https://github.com/ijlee2))
24
55
 
25
56
  #### :memo: Documentation
26
57
  * `ember-cli`
@@ -29,233 +60,75 @@
29
60
  * [#10835](https://github.com/ember-cli/ember-cli/pull/10835) Update deprecation message for --embroider option ([@kategengler](https://github.com/kategengler))
30
61
 
31
62
  #### :house: Internal
32
- * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
33
- * [#10851](https://github.com/ember-cli/ember-cli/pull/10851) Merge beta into master ([@mansona](https://github.com/mansona))
34
- * [#10848](https://github.com/ember-cli/ember-cli/pull/10848) merge origin/release into beta ([@mansona](https://github.com/mansona))
35
63
  * `ember-cli`, `@ember-tooling/classic-build-app-blueprint`
36
64
  * [#10847](https://github.com/ember-cli/ember-cli/pull/10847) Prepare Beta Release ([@mansona](https://github.com/mansona))
37
65
  * [#10825](https://github.com/ember-cli/ember-cli/pull/10825) Prepare Beta Release ([@mansona](https://github.com/mansona))
38
66
  * [#10820](https://github.com/ember-cli/ember-cli/pull/10820) Prepare Beta Release ([@mansona](https://github.com/mansona))
39
- * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
40
- * [#10836](https://github.com/ember-cli/ember-cli/pull/10836) Prepare Beta Release ([@mansona](https://github.com/mansona))
41
67
  * `ember-cli`
42
68
  * [#10845](https://github.com/ember-cli/ember-cli/pull/10845) [beta] update @ember/app-blueprint to latest beta ([@mansona](https://github.com/mansona))
43
69
  * [#10833](https://github.com/ember-cli/ember-cli/pull/10833) [bugfix beta] bump the @ember/app-blueprint version ([@mansona](https://github.com/mansona))
44
70
  * [#10823](https://github.com/ember-cli/ember-cli/pull/10823) fix incorrect ember-cli-update version in tests ([@mansona](https://github.com/mansona))
45
71
  * [#10819](https://github.com/ember-cli/ember-cli/pull/10819) update @ember/app-blueprint beta version ([@mansona](https://github.com/mansona))
46
- * [#10809](https://github.com/ember-cli/ember-cli/pull/10809) Update RELEASE ([@mansona](https://github.com/mansona))
47
-
48
- #### Committers: 3
49
- - Chris Manson ([@mansona](https://github.com/mansona))
50
- - David Taylor ([@davidtaylorhq](https://github.com/davidtaylorhq))
51
- - Katie Gengler ([@kategengler](https://github.com/kategengler))
52
-
53
- ## Release (2025-09-17)
54
-
55
- * ember-cli 6.9.0-alpha.1 (minor)
56
- * @ember-tooling/classic-build-addon-blueprint 6.9.0-alpha.1 (minor)
57
- * @ember-tooling/classic-build-app-blueprint 6.9.0-alpha.1 (minor)
58
- * @ember-tooling/blueprint-blueprint 0.2.0 (minor)
59
- * @ember-tooling/blueprint-model 0.4.0 (minor)
60
-
61
- #### :rocket: Enhancement
62
- * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
63
- * [#10808](https://github.com/ember-cli/ember-cli/pull/10808) Prepare 6.8 Beta ([@mansona](https://github.com/mansona))
72
+ * [#10806](https://github.com/ember-cli/ember-cli/pull/10806) skip build watch tests when vite is enabled ([@mansona](https://github.com/mansona))
73
+ * [#10790](https://github.com/ember-cli/ember-cli/pull/10790) Reorganize tests for `new` and `addon` commands ([@pichfl](https://github.com/pichfl))
74
+ * [#10783](https://github.com/ember-cli/ember-cli/pull/10783) remove unused changelog script ([@mansona](https://github.com/mansona))
75
+ * [#10764](https://github.com/ember-cli/ember-cli/pull/10764) fix double CI run on release-plan PR ([@mansona](https://github.com/mansona))
76
+ * [#10750](https://github.com/ember-cli/ember-cli/pull/10750) Add more notes to the Release.md ([@mansona](https://github.com/mansona))
64
77
  * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
65
- * [#10796](https://github.com/ember-cli/ember-cli/pull/10796) Promote Beta and update all dependencies for 6.7 release ([@mansona](https://github.com/mansona))
66
-
67
- #### :bug: Bug Fix
68
- * `ember-cli`
69
- * [#10794](https://github.com/ember-cli/ember-cli/pull/10794) Fix potential NPE ([@boris-petrov](https://github.com/boris-petrov))
70
-
71
- #### :house: Internal
72
- * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
73
- * [#10815](https://github.com/ember-cli/ember-cli/pull/10815) Merge beta into master and start 6.9 alpha ([@mansona](https://github.com/mansona))
74
- * [#10810](https://github.com/ember-cli/ember-cli/pull/10810) Prepare Beta Release ([@mansona](https://github.com/mansona))
75
- * `@ember-tooling/blueprint-model`
76
- * [#10813](https://github.com/ember-cli/ember-cli/pull/10813) Document need for future vite experiment test cleanup ([@ef4](https://github.com/ef4))
77
- * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
78
- * [#10797](https://github.com/ember-cli/ember-cli/pull/10797) Prepare Stable Release ([@mansona](https://github.com/mansona))
79
- * [#10800](https://github.com/ember-cli/ember-cli/pull/10800) fix release-plan for stable release ([@mansona](https://github.com/mansona))
80
- * `ember-cli`
81
- * [#10801](https://github.com/ember-cli/ember-cli/pull/10801) update github-changelog ([@mansona](https://github.com/mansona))
82
-
83
- #### Committers: 3
84
- - Boris Petrov ([@boris-petrov](https://github.com/boris-petrov))
85
- - Chris Manson ([@mansona](https://github.com/mansona))
86
- - Edward Faulkner ([@ef4](https://github.com/ef4))
87
-
88
- ## Release (2025-09-10)
89
-
90
- * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.5 (patch)
91
- * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.5 (patch)
92
- * @ember-tooling/blueprint-model 0.2.0 (minor)
93
- * ember-cli 6.8.0-alpha.5 (patch)
94
-
95
- #### :rocket: Enhancement
96
- * `@ember-tooling/blueprint-model`
97
- * [#10802](https://github.com/ember-cli/ember-cli/pull/10802) enable Vite by default ([@mansona](https://github.com/mansona))
98
- * Other
99
- * [#10804](https://github.com/ember-cli/ember-cli/pull/10804) Support a `--ts` alias for the `addon`, `init` and `new` commands ([@bertdeblock](https://github.com/bertdeblock))
100
-
101
- #### :house: Internal
102
- * [#10806](https://github.com/ember-cli/ember-cli/pull/10806) skip build watch tests when vite is enabled ([@mansona](https://github.com/mansona))
78
+ * [#10799](https://github.com/ember-cli/ember-cli/pull/10799) Prepare Alpha Release ([@mansona](https://github.com/mansona))
79
+ * [#10778](https://github.com/ember-cli/ember-cli/pull/10778) Prepare Alpha Release ([@mansona](https://github.com/mansona))
80
+ * [#10756](https://github.com/ember-cli/ember-cli/pull/10756) Prepare Alpha Release ([@mansona](https://github.com/mansona))
81
+ * [#10763](https://github.com/ember-cli/ember-cli/pull/10763) Prepare 6.8-alpha ([@mansona](https://github.com/mansona))
103
82
 
104
- #### Committers: 2
83
+ #### Committers: 6
105
84
  - Bert De Block ([@bertdeblock](https://github.com/bertdeblock))
106
85
  - Chris Manson ([@mansona](https://github.com/mansona))
107
-
108
- ## Release (2025-09-09)
109
-
110
- * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.4 (patch)
111
- * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.4 (patch)
112
- * @ember-tooling/blueprint-blueprint 0.0.3 (patch)
113
- * ember-cli 6.8.0-alpha.4 (patch)
114
-
115
- #### :bug: Bug Fix
116
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`
117
- * [#10803](https://github.com/ember-cli/ember-cli/pull/10803) Add "ember-blueprint" to keywords in `package.json` for the classic blueprints ([@pichfl](https://github.com/pichfl))
118
- * `@ember-tooling/classic-build-app-blueprint`
119
- * [#10798](https://github.com/ember-cli/ember-cli/pull/10798) Add import from ember-data breakage/deprecation ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
120
-
121
- #### Committers: 2
122
86
  - Florian Pichler ([@pichfl](https://github.com/pichfl))
87
+ - Isaac Lee ([@ijlee2](https://github.com/ijlee2))
88
+ - Katie Gengler ([@kategengler](https://github.com/kategengler))
123
89
  - [@NullVoxPopuli](https://github.com/NullVoxPopuli)
124
90
 
125
- ## Release (2025-09-05)
91
+ ## Release (2025-10-08)
126
92
 
127
- * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.3 (patch)
128
- * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.3 (patch)
129
- * @ember-tooling/blueprint-model 0.1.0 (minor)
130
- * ember-cli 6.8.0-alpha.3 (patch)
93
+ * ember-cli 6.7.2 (patch)
94
+ * @ember-tooling/classic-build-addon-blueprint 6.7.1 (patch)
95
+ * @ember-tooling/classic-build-app-blueprint 6.7.2 (patch)
131
96
 
132
- #### :rocket: Enhancement
133
- * `@ember-tooling/blueprint-model`
134
- * [#10781](https://github.com/ember-cli/ember-cli/pull/10781) Add new `VITE` experiment to generate app with new Vite blueprint ([@pichfl](https://github.com/pichfl))
97
+ #### :bug: Bug Fix
98
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
99
+ * [#10838](https://github.com/ember-cli/ember-cli/pull/10838) Add package license metadata to match repository ([@davidtaylorhq](https://github.com/davidtaylorhq))
135
100
 
136
101
  #### Committers: 1
137
- - Florian Pichler ([@pichfl](https://github.com/pichfl))
138
-
139
- ## Release (2025-09-01)
102
+ - David Taylor ([@davidtaylorhq](https://github.com/davidtaylorhq))
140
103
 
141
- * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.2 (minor)
142
- * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.2 (minor)
143
- * ember-cli 6.8.0-alpha.2 (patch)
104
+ ## Release (2025-10-06)
144
105
 
145
- #### :rocket: Enhancement
146
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
147
- * [#10791](https://github.com/ember-cli/ember-cli/pull/10791) update the format of the ember-cli-update.json ([@mansona](https://github.com/mansona))
148
- * Other
149
- * [#10785](https://github.com/ember-cli/ember-cli/pull/10785) Depracate passing filenames and globs to `init` ([@pichfl](https://github.com/pichfl))
150
- * [#10776](https://github.com/ember-cli/ember-cli/pull/10776) Add deprecation warning for the `--embroider` argument ([@pichfl](https://github.com/pichfl))
106
+ * ember-cli 6.7.1 (patch)
107
+ * @ember-tooling/classic-build-app-blueprint 6.7.1 (patch)
151
108
 
152
109
  #### :bug: Bug Fix
153
- * Other
154
- * [#10782](https://github.com/ember-cli/ember-cli/pull/10782) update heimdall-fs-monitor ([@mansona](https://github.com/mansona))
110
+ * `ember-cli`
111
+ * [#10834](https://github.com/ember-cli/ember-cli/pull/10834) [bugfix release] Fix tests using wrong versions ([@mansona](https://github.com/mansona))
155
112
  * `@ember-tooling/classic-build-app-blueprint`
156
- * [#10707](https://github.com/ember-cli/ember-cli/pull/10707) Enabled recommended configs from eslint-plugin-n and eslint-plugin-qunit ([@ijlee2](https://github.com/ijlee2))
113
+ * [#10824](https://github.com/ember-cli/ember-cli/pull/10824) [bugfix release] fix app-blueprint being considered a blueprint ([@mansona](https://github.com/mansona))
157
114
 
158
- #### :house: Internal
159
- * [#10790](https://github.com/ember-cli/ember-cli/pull/10790) Reorganize tests for `new` and `addon` commands ([@pichfl](https://github.com/pichfl))
160
- * [#10783](https://github.com/ember-cli/ember-cli/pull/10783) remove unused changelog script ([@mansona](https://github.com/mansona))
161
- * [#10764](https://github.com/ember-cli/ember-cli/pull/10764) fix double CI run on release-plan PR ([@mansona](https://github.com/mansona))
162
- * [#10750](https://github.com/ember-cli/ember-cli/pull/10750) Add more notes to the Release.md ([@mansona](https://github.com/mansona))
163
-
164
- #### Committers: 3
165
- - Chris Manson ([@mansona](https://github.com/mansona))
166
- - Florian Pichler ([@pichfl](https://github.com/pichfl))
167
- - Isaac Lee ([@ijlee2](https://github.com/ijlee2))
168
-
169
- ## Release (2025-08-02)
170
-
171
- * @ember-tooling/classic-build-addon-blueprint 6.8.0-alpha.1 (minor)
172
- * @ember-tooling/classic-build-app-blueprint 6.8.0-alpha.1 (minor)
173
- * ember-cli 6.8.0-alpha.1 (patch)
174
-
175
- #### :rocket: Enhancement
176
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
177
- * [#10755](https://github.com/ember-cli/ember-cli/pull/10755) Prepare 6.7-beta ([@mansona](https://github.com/mansona))
178
- * Other
179
- * [#10751](https://github.com/ember-cli/ember-cli/pull/10751) [BETA BACKPORT] Backport drop node 18 ([@mansona](https://github.com/mansona))
180
-
181
- #### :house: Internal
182
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
183
- * [#10763](https://github.com/ember-cli/ember-cli/pull/10763) Prepare 6.8-alpha ([@mansona](https://github.com/mansona))
184
- * [#10754](https://github.com/ember-cli/ember-cli/pull/10754) Prepare Beta Release ([@github-actions[bot]](https://github.com/apps/github-actions))
185
- * Other
186
- * [#10761](https://github.com/ember-cli/ember-cli/pull/10761) update release-plan ([@mansona](https://github.com/mansona))
187
-
188
- #### Committers: 2
115
+ #### Committers: 1
189
116
  - Chris Manson ([@mansona](https://github.com/mansona))
190
- - [@github-actions[bot]](https://github.com/apps/github-actions)
191
117
 
192
- ## Release (2025-07-26)
118
+ ## Release (2025-09-06)
193
119
 
194
- * @ember-tooling/classic-build-addon-blueprint 6.7.0-alpha.4 (minor)
195
- * @ember-tooling/classic-build-app-blueprint 6.7.0-alpha.4 (minor)
196
- * ember-cli 6.7.0-alpha.4 (patch)
120
+ * ember-cli 6.7.0 (minor)
121
+ * @ember-tooling/classic-build-addon-blueprint 6.7.0 (minor)
122
+ * @ember-tooling/classic-build-app-blueprint 6.7.0 (minor)
197
123
 
198
124
  #### :rocket: Enhancement
199
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
125
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
126
+ * [#10796](https://github.com/ember-cli/ember-cli/pull/10796) Promote Beta and update all dependencies for 6.7 release ([@mansona](https://github.com/mansona))
200
127
  * [#10742](https://github.com/ember-cli/ember-cli/pull/10742) Drop node 18, add node 24 ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
201
128
 
202
129
  #### :bug: Bug Fix
203
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
204
- * [#10742](https://github.com/ember-cli/ember-cli/pull/10742) Drop node 18, add node 24 ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
205
-
206
- #### :memo: Documentation
207
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
208
- * [#10742](https://github.com/ember-cli/ember-cli/pull/10742) Drop node 18, add node 24 ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
209
-
210
- #### :house: Internal
211
- * [#10748](https://github.com/ember-cli/ember-cli/pull/10748) update blueprint version of ember-cli as part of release plan ([@mansona](https://github.com/mansona))
212
- * [#10747](https://github.com/ember-cli/ember-cli/pull/10747) only use the PAT for the PR creation in release-plan ([@mansona](https://github.com/mansona))
213
- * [#10744](https://github.com/ember-cli/ember-cli/pull/10744) run tests on the release-plan PR ([@mansona](https://github.com/mansona))
214
-
215
- #### Committers: 2
216
- - Chris Manson ([@mansona](https://github.com/mansona))
217
- - [@NullVoxPopuli](https://github.com/NullVoxPopuli)
218
-
219
- ## Release (2025-06-30)
220
-
221
- * @ember-tooling/classic-build-addon-blueprint 6.7.0-alpha.3 (patch)
222
- * @ember-tooling/classic-build-app-blueprint 6.7.0-alpha.3 (patch)
223
- * @ember-tooling/blueprint-blueprint 0.0.2 (patch)
224
- * @ember-tooling/blueprint-model 0.0.2 (patch)
225
- * ember-cli 6.7.0-alpha.3 (patch)
226
-
227
- #### :house: Internal
228
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
229
- * [#10738](https://github.com/ember-cli/ember-cli/pull/10738) add a repository for each of the packages ([@mansona](https://github.com/mansona))
230
-
231
- #### Committers: 1
232
- - Chris Manson ([@mansona](https://github.com/mansona))
233
-
234
- ## Release (2025-06-30)
235
-
236
- * @ember-tooling/classic-build-addon-blueprint 6.7.0-alpha.2 (patch)
237
- * @ember-tooling/classic-build-app-blueprint 6.7.0-alpha.2 (patch)
238
- * @ember-tooling/blueprint-blueprint 0.0.1 (patch)
239
- * @ember-tooling/blueprint-model 0.0.1 (patch)
240
- * ember-cli 6.7.0-alpha.2 (patch)
241
-
242
- #### :house: Internal
243
- * Other
244
- * [#10735](https://github.com/ember-cli/ember-cli/pull/10735) remove unnecessary project override ([@mansona](https://github.com/mansona))
245
- * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `@ember-tooling/blueprint-blueprint`, `@ember-tooling/blueprint-model`
246
- * [#10736](https://github.com/ember-cli/ember-cli/pull/10736) update all sub-packages to have the @ember-tooling prefix ([@mansona](https://github.com/mansona))
247
- * [#10671](https://github.com/ember-cli/ember-cli/pull/10671) Implement the built in app, addon, and blueprint blueprints by package lookup ([@mansona](https://github.com/mansona))
248
-
249
- #### Committers: 1
250
- - Chris Manson ([@mansona](https://github.com/mansona))
251
-
252
- ## Release (2025-06-16)
253
-
254
- * ember-cli 6.7.0-alpha.1 (minor)
255
-
256
- #### :rocket: Enhancement
257
130
  * `ember-cli`
258
- * [#10705](https://github.com/ember-cli/ember-cli/pull/10705) add `--strict` flag for new app and addon generation ([@mansona](https://github.com/mansona))
131
+ * [#10794](https://github.com/ember-cli/ember-cli/pull/10794) Fix potential NPE ([@boris-petrov](https://github.com/boris-petrov))
259
132
 
260
133
  #### :memo: Documentation
261
134
  * `ember-cli`
@@ -263,20 +136,32 @@
263
136
 
264
137
  #### :house: Internal
265
138
  * `ember-cli`
266
- * [#10731](https://github.com/ember-cli/ember-cli/pull/10731) Prepare Alpha 6.7.0 ([@mansona](https://github.com/mansona))
267
- * [#10728](https://github.com/ember-cli/ember-cli/pull/10728) Prepare Beta 6.6.0 ([@mansona](https://github.com/mansona))
268
- * [#10726](https://github.com/ember-cli/ember-cli/pull/10726) use patched github-changelog for properly rolling up beta changelog ([@mansona](https://github.com/mansona))
269
- * [#10717](https://github.com/ember-cli/ember-cli/pull/10717) pass --publish-branch to release-plan publish ([@mansona](https://github.com/mansona))
139
+ * [#10801](https://github.com/ember-cli/ember-cli/pull/10801) update github-changelog ([@mansona](https://github.com/mansona))
140
+ * [#10761](https://github.com/ember-cli/ember-cli/pull/10761) update release-plan ([@mansona](https://github.com/mansona))
141
+ * [#10748](https://github.com/ember-cli/ember-cli/pull/10748) update blueprint version of ember-cli as part of release plan ([@mansona](https://github.com/mansona))
142
+ * [#10747](https://github.com/ember-cli/ember-cli/pull/10747) only use the PAT for the PR creation in release-plan ([@mansona](https://github.com/mansona))
143
+ * [#10744](https://github.com/ember-cli/ember-cli/pull/10744) run tests on the release-plan PR ([@mansona](https://github.com/mansona))
144
+ * [#10735](https://github.com/ember-cli/ember-cli/pull/10735) remove unnecessary project override ([@mansona](https://github.com/mansona))
145
+ * `ember-cli`, `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`
146
+ * [#10800](https://github.com/ember-cli/ember-cli/pull/10800) fix release-plan for stable release ([@mansona](https://github.com/mansona))
147
+ * [#10736](https://github.com/ember-cli/ember-cli/pull/10736) update all sub-packages to have the @ember-tooling prefix ([@mansona](https://github.com/mansona))
148
+ * [#10671](https://github.com/ember-cli/ember-cli/pull/10671) Implement the built in app, addon, and blueprint blueprints by package lookup ([@mansona](https://github.com/mansona))
149
+ * `@ember-tooling/classic-build-addon-blueprint`, `@ember-tooling/classic-build-app-blueprint`, `ember-cli`
150
+ * [#10738](https://github.com/ember-cli/ember-cli/pull/10738) add a repository for each of the packages ([@mansona](https://github.com/mansona))
270
151
 
271
- #### Committers: 1
152
+ #### Committers: 3
153
+ - Boris Petrov ([@boris-petrov](https://github.com/boris-petrov))
272
154
  - Chris Manson ([@mansona](https://github.com/mansona))
155
+ - [@NullVoxPopuli](https://github.com/NullVoxPopuli)
273
156
 
274
- ## Release (2025-06-16)
157
+ ## Release (2025-07-29)
275
158
 
276
- * ember-cli 6.6.0-beta.1 (minor)
159
+ * ember-cli 6.6.0 (minor)
277
160
 
278
161
  #### :rocket: Enhancement
279
162
  * `ember-cli`
163
+ * [#10749](https://github.com/ember-cli/ember-cli/pull/10749) Update all dependencies for 6.6 release ([@mansona](https://github.com/mansona))
164
+ * [#10751](https://github.com/ember-cli/ember-cli/pull/10751) [BETA BACKPORT] Backport drop node 18 ([@mansona](https://github.com/mansona))
280
165
  * [#10701](https://github.com/ember-cli/ember-cli/pull/10701) [ENHANCEMENT] Support Bun ([@hexadecy](https://github.com/hexadecy))
281
166
  * [#10664](https://github.com/ember-cli/ember-cli/pull/10664) [ENHANCEMENT] Remove ember-fetch ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
282
167
 
@@ -287,8 +172,6 @@
287
172
 
288
173
  #### :house: Internal
289
174
  * `ember-cli`
290
- * [#10728](https://github.com/ember-cli/ember-cli/pull/10728) Prepare Beta 6.6.0 ([@mansona](https://github.com/mansona))
291
- * [#10726](https://github.com/ember-cli/ember-cli/pull/10726) use patched github-changelog for properly rolling up beta changelog ([@mansona](https://github.com/mansona))
292
175
  * [#10699](https://github.com/ember-cli/ember-cli/pull/10699) Start using release-plan for releasing ember-cli ([@mansona](https://github.com/mansona))
293
176
  * [#10670](https://github.com/ember-cli/ember-cli/pull/10670) testing: don't generate temp directories in the repo ([@mansona](https://github.com/mansona))
294
177
 
@@ -3,7 +3,7 @@
3
3
  "logo": "https://ember-cli.com/assets/images/ember-cli-logo-small-dark.png",
4
4
  "name": "ember-cli",
5
5
  "description": "Command line tool for developing ambitious ember.js apps",
6
- "version": "6.9.0-alpha.2-master-01a68b9b36"
6
+ "version": "6.9.0-beta.1-beta-3a801add6e"
7
7
  },
8
8
  "files": {
9
9
  "lib/broccoli/default-packager.js": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-cli",
3
- "version": "6.9.0-alpha.2",
3
+ "version": "6.9.0-beta.1",
4
4
  "description": "Command line tool for developing ambitious ember.js apps",
5
5
  "keywords": [
6
6
  "app",
@@ -31,11 +31,13 @@
31
31
  "minor": "prerelease",
32
32
  "patch": "prerelease"
33
33
  },
34
- "semverIncrementTag": "alpha",
35
- "publishTag": "alpha"
34
+ "semverIncrementTag": "beta",
35
+ "publishTag": "beta"
36
36
  },
37
37
  "dependencies": {
38
- "@ember/app-blueprint": "~6.9.0-alpha.1",
38
+ "@ember-tooling/blueprint-blueprint": "^0.2.1",
39
+ "@ember-tooling/blueprint-model": "^0.4.1",
40
+ "@ember/app-blueprint": "~6.9.0-beta.1",
39
41
  "@pnpm/find-workspace-dir": "^1000.1.0",
40
42
  "babel-remove-types": "^1.0.1",
41
43
  "broccoli": "^3.5.2",
@@ -118,10 +120,8 @@
118
120
  "watch-detector": "^1.0.2",
119
121
  "workerpool": "^9.2.0",
120
122
  "yam": "^1.0.0",
121
- "@ember-tooling/blueprint-blueprint": "0.2.1",
122
- "@ember-tooling/classic-build-addon-blueprint": "6.9.0-alpha.2",
123
- "@ember-tooling/blueprint-model": "0.4.1",
124
- "@ember-tooling/classic-build-app-blueprint": "6.9.0-alpha.2"
123
+ "@ember-tooling/classic-build-addon-blueprint": "6.9.0-beta.1",
124
+ "@ember-tooling/classic-build-app-blueprint": "6.9.0-beta.1"
125
125
  },
126
126
  "devDependencies": {
127
127
  "broccoli-plugin": "^4.0.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-tooling/classic-build-addon-blueprint",
3
- "version": "6.9.0-alpha.2",
3
+ "version": "6.9.0-beta.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ember-cli/ember-cli.git",
@@ -11,7 +11,7 @@
11
11
  "ember-blueprint"
12
12
  ],
13
13
  "dependencies": {
14
- "@ember-tooling/blueprint-model": "workspace:*",
14
+ "@ember-tooling/blueprint-model": "^0.4.1",
15
15
  "chalk": "^4.1.2",
16
16
  "ember-cli-normalize-entity-name": "^1.0.0",
17
17
  "ember-cli-string-utils": "^1.1.0",
@@ -26,7 +26,7 @@
26
26
  "minor": "prerelease",
27
27
  "patch": "prerelease"
28
28
  },
29
- "semverIncrementTag": "alpha",
30
- "publishTag": "alpha"
29
+ "semverIncrementTag": "beta",
30
+ "publishTag": "beta"
31
31
  }
32
32
  }
@@ -45,22 +45,22 @@
45
45
  "@ember/test-helpers": "^5.3.0<% if (embroider) { %>",
46
46
  "@embroider/compat": "^3.9.1",
47
47
  "@embroider/core": "^3.5.7<% } %>",
48
- "@embroider/macros": "^1.18.1<% if (embroider) { %>",
48
+ "@embroider/macros": "^1.19.1<% if (embroider) { %>",
49
49
  "@embroider/webpack": "^4.1.1<% } %>",
50
- "@eslint/js": "^9.35.0",
50
+ "@eslint/js": "^9.37.0",
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",
54
54
  "@glint/environment-ember-template-imports": "^1.5.2",
55
- "@glint/template": "^1.5.2",
55
+ "@glint/template": "^1.6.1",
56
56
  "@tsconfig/ember": "^3.0.11",
57
57
  "@types/qunit": "^2.19.13",
58
58
  "@types/rsvp": "^4.0.9<% if (emberData) {%>",
59
59
  "@warp-drive/core-types": "~5.7.0<% }} %>",
60
60
  "broccoli-asset-rev": "^3.0.0",
61
61
  "concurrently": "^9.2.1",
62
- "ember-auto-import": "^2.10.0",
63
- "ember-cli": "~6.9.0-alpha.2",
62
+ "ember-auto-import": "^2.11.1",
63
+ "ember-cli": "~6.9.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,27 +76,27 @@
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-alpha.1",
79
+ "ember-source": "~6.9.0-beta.1",
80
80
  "ember-template-imports": "^4.3.0",
81
81
  "ember-template-lint": "^6.1.0<% if (welcome) { %>",
82
82
  "ember-welcome-page": "^7.0.2<% } %>",
83
- "eslint": "^9.35.0",
83
+ "eslint": "^9.37.0",
84
84
  "eslint-config-prettier": "^9.1.2",
85
85
  "eslint-plugin-ember": "^12.7.4",
86
- "eslint-plugin-n": "^17.23.0",
86
+ "eslint-plugin-n": "^17.23.1",
87
87
  "eslint-plugin-qunit": "^8.2.5",
88
88
  "globals": "^15.15.0",
89
89
  "loader.js": "^4.7.0",
90
90
  "prettier": "^3.6.2",
91
91
  "prettier-plugin-ember-template-tag": "^2.1.0",
92
- "qunit": "^2.24.1",
92
+ "qunit": "^2.24.2",
93
93
  "qunit-dom": "^3.5.0",
94
- "stylelint": "^16.24.0",
94
+ "stylelint": "^16.25.0",
95
95
  "stylelint-config-standard": "^36.0.1",
96
96
  "tracked-built-ins": "^3.4.0<% if (typescript) { %>",
97
- "typescript": "^5.9.2",
98
- "typescript-eslint": "^8.44.0<% } %>",
99
- "webpack": "^5.101.3"
97
+ "typescript": "^5.9.3",
98
+ "typescript-eslint": "^8.46.1<% } %>",
99
+ "webpack": "^5.102.1"
100
100
  },
101
101
  "engines": {
102
102
  "node": ">= 20.11"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-tooling/classic-build-app-blueprint",
3
- "version": "6.9.0-alpha.2",
3
+ "version": "6.9.0-beta.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ember-cli/ember-cli.git",
@@ -11,7 +11,7 @@
11
11
  "ember-blueprint"
12
12
  ],
13
13
  "dependencies": {
14
- "@ember-tooling/blueprint-model": "workspace:*",
14
+ "@ember-tooling/blueprint-model": "^0.4.1",
15
15
  "chalk": "^4.1.2",
16
16
  "ember-cli-string-utils": "^1.1.0"
17
17
  },
@@ -20,7 +20,7 @@
20
20
  "minor": "prerelease",
21
21
  "patch": "prerelease"
22
22
  },
23
- "semverIncrementTag": "alpha",
24
- "publishTag": "alpha"
23
+ "semverIncrementTag": "beta",
24
+ "publishTag": "beta"
25
25
  }
26
26
  }
@@ -1,16 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = {
4
- description: ''
5
-
6
- // locals(options) {
7
- // // Return custom template variables here.
8
- // return {
9
- // foo: options.entity.options.foo
10
- // };
11
- // }
12
-
13
- // afterInstall(options) {
14
- // // Perform extra work here.
15
- // }
16
- };
@@ -1,5 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = {
4
- description: 'Generates a blueprint and definition.',
5
- };
@@ -1,13 +0,0 @@
1
- {
2
- "name": "@ember-tooling/blueprint-blueprint",
3
- "version": "0.2.1",
4
- "repository": {
5
- "type": "git",
6
- "url": "https://github.com/ember-cli/ember-cli.git",
7
- "directory": "packages/blueprint-blueprint"
8
- },
9
- "license": "MIT",
10
- "keywords": [
11
- "ember-blueprint"
12
- ]
13
- }
@@ -1,19 +0,0 @@
1
- {
2
- "name": "@ember-tooling/blueprint-model",
3
- "version": "0.4.1",
4
- "repository": {
5
- "type": "git",
6
- "url": "https://github.com/ember-cli/ember-cli.git",
7
- "directory": "packages/blueprint-model"
8
- },
9
- "license": "MIT",
10
- "dependencies": {
11
- "chalk": "^4.1.2",
12
- "diff": "^7.0.0",
13
- "isbinaryfile": "^5.0.4",
14
- "lodash": "^4.17.21",
15
- "promise.hash.helper": "^1.0.8",
16
- "quick-temp": "^0.1.8",
17
- "silent-error": "^1.1.1"
18
- }
19
- }
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- const path = require('path');
4
-
5
- /**
6
- * Derive a directory name from a package name.
7
- * Takes scoped packages into account.
8
- *
9
- * @method directoryForPackageName
10
- * @param {String} packageName
11
- * @return {String} Derived directory name.
12
- */
13
- module.exports = function directoryForPackageName(packageName) {
14
- let isScoped = packageName[0] === '@' && packageName.includes('/');
15
-
16
- if (isScoped) {
17
- let slashIndex = packageName.indexOf('/');
18
- let scopeName = packageName.substring(1, slashIndex);
19
- let packageNameWithoutScope = packageName.substring(slashIndex + 1);
20
- let pathParts = process.cwd().split(path.sep);
21
- let parentDirectoryContainsScopeName = pathParts.includes(scopeName);
22
-
23
- if (parentDirectoryContainsScopeName) {
24
- return packageNameWithoutScope;
25
- } else {
26
- return `${scopeName}-${packageNameWithoutScope}`;
27
- }
28
- } else {
29
- return packageName;
30
- }
31
- };
@@ -1,64 +0,0 @@
1
- 'use strict';
2
-
3
- const fs = require('fs');
4
- const util = require('util');
5
- const jsdiff = require('diff');
6
- const quickTemp = require('quick-temp');
7
- const path = require('path');
8
- const SilentError = require('silent-error');
9
- const openEditor = require('./open-editor');
10
- const hash = require('promise.hash.helper');
11
-
12
- const readFile = util.promisify(fs.readFile);
13
- const writeFile = util.promisify(fs.writeFile);
14
-
15
- class EditFileDiff {
16
- constructor(options) {
17
- this.info = options.info;
18
-
19
- quickTemp.makeOrRemake(this, 'tmpDifferenceDir');
20
- }
21
-
22
- edit() {
23
- return hash({
24
- input: this.info.render(),
25
- output: readFile(this.info.outputPath),
26
- })
27
- .then(this.invokeEditor.bind(this))
28
- .then(this.applyPatch.bind(this))
29
- .finally(this.cleanUp.bind(this));
30
- }
31
-
32
- cleanUp() {
33
- quickTemp.remove(this, 'tmpDifferenceDir');
34
- }
35
-
36
- applyPatch(resultHash) {
37
- return hash({
38
- diffString: readFile(resultHash.diffPath),
39
- currentString: readFile(resultHash.outputPath),
40
- }).then((result) => {
41
- let appliedDiff = jsdiff.applyPatch(result.currentString.toString(), result.diffString.toString());
42
-
43
- if (!appliedDiff) {
44
- let message = 'Patch was not cleanly applied.';
45
- this.info.ui.writeLine(`${message} Please choose another action.`);
46
- throw new SilentError(message);
47
- }
48
-
49
- return writeFile(resultHash.outputPath, appliedDiff);
50
- });
51
- }
52
-
53
- invokeEditor(result) {
54
- let info = this.info;
55
- let diff = jsdiff.createPatch(info.outputPath, result.output.toString(), result.input);
56
- let diffPath = path.join(this.tmpDifferenceDir, 'currentDiff.diff');
57
-
58
- return writeFile(diffPath, diff)
59
- .then(() => openEditor(diffPath))
60
- .then(() => ({ outputPath: info.outputPath, diffPath }));
61
- }
62
- }
63
-
64
- module.exports = EditFileDiff;
@@ -1,63 +0,0 @@
1
- 'use strict';
2
-
3
- const chalk = require('chalk');
4
-
5
- /*
6
- If you're here to remove the VITE experiment flag in favor of it being
7
- permanently on, you can't do that until addressing
8
- https://github.com/ember-cli/ember-cli/pull/10781#pullrequestreview-3230644293
9
-
10
- A lot of test coverage would otherwise be lost, because valid tests are being
11
- run only when the VITE experiment is off.
12
- */
13
- const availableExperiments = Object.freeze(['EMBROIDER', 'CLASSIC', 'VITE']);
14
-
15
- const deprecatedExperiments = Object.freeze([]);
16
- const enabledExperiments = Object.freeze(['VITE']);
17
- const deprecatedExperimentsDeprecationsIssued = [];
18
-
19
- function isExperimentEnabled(experimentName) {
20
- if (!availableExperiments.includes(experimentName)) {
21
- return false;
22
- }
23
-
24
- if (process.env.EMBER_CLI_ENABLE_ALL_EXPERIMENTS && deprecatedExperiments.includes(experimentName)) {
25
- return false;
26
- }
27
-
28
- if (process.env.EMBER_CLI_ENABLE_ALL_EXPERIMENTS) {
29
- return true;
30
- }
31
-
32
- if (process.env.EMBER_CLI_CLASSIC && experimentName === 'EMBROIDER') {
33
- return false;
34
- }
35
-
36
- let experimentEnvironmentVariable = `EMBER_CLI_${experimentName}`;
37
- let experimentValue = process.env[experimentEnvironmentVariable];
38
-
39
- if (deprecatedExperiments.includes(experimentName)) {
40
- let deprecationPreviouslyIssued = deprecatedExperimentsDeprecationsIssued.includes(experimentName);
41
- let isSpecifiedByUser = experimentValue !== undefined;
42
-
43
- if (!deprecationPreviouslyIssued && isSpecifiedByUser) {
44
- console.warn(
45
- chalk.yellow(`The ${experimentName} experiment in ember-cli has been deprecated and will be removed.`)
46
- );
47
- deprecatedExperimentsDeprecationsIssued.push(experimentName);
48
- }
49
- }
50
-
51
- if (enabledExperiments.includes(experimentName)) {
52
- return experimentValue !== 'false';
53
- } else {
54
- return experimentValue !== undefined && experimentValue !== 'false';
55
- }
56
- }
57
-
58
- module.exports = {
59
- isExperimentEnabled,
60
-
61
- // exported for testing purposes
62
- _deprecatedExperimentsDeprecationsIssued: deprecatedExperimentsDeprecationsIssued,
63
- };
@@ -1,170 +0,0 @@
1
- 'use strict';
2
-
3
- const fs = require('fs');
4
- const util = require('util');
5
- const chalk = require('chalk');
6
- const EditFileDiff = require('./edit-file-diff');
7
- const EOL = require('os').EOL;
8
- const rxEOL = new RegExp(EOL, 'g');
9
- const isBinaryFile = require('isbinaryfile').isBinaryFileSync;
10
- const hash = require('promise.hash.helper');
11
- const canEdit = require('./open-editor').canEdit;
12
- const processTemplate = require('./process-template');
13
-
14
- const readFile = util.promisify(fs.readFile);
15
- const lstat = util.promisify(fs.stat);
16
-
17
- function diffHighlight(line) {
18
- if (line[0] === '+') {
19
- return chalk.green(line);
20
- } else if (line[0] === '-') {
21
- return chalk.red(line);
22
- } else if (/^@@/.test(line)) {
23
- return chalk.cyan(line);
24
- } else {
25
- return line;
26
- }
27
- }
28
-
29
- const NOOP = (_) => _;
30
- class FileInfo {
31
- constructor(options) {
32
- this.action = options.action;
33
- this.outputBasePath = options.outputBasePath;
34
- this.outputPath = options.outputPath;
35
- this.displayPath = options.displayPath;
36
- this.inputPath = options.inputPath;
37
- this.templateVariables = options.templateVariables;
38
- this.replacer = options.replacer || NOOP;
39
- this.ui = options.ui;
40
- }
41
-
42
- confirmOverwrite(path) {
43
- let promptOptions = {
44
- type: 'expand',
45
- name: 'answer',
46
- default: false,
47
- message: `${chalk.red('Overwrite')} ${path}?`,
48
- choices: [
49
- { key: 'y', name: 'Yes, overwrite', value: 'overwrite' },
50
- { key: 'n', name: 'No, skip', value: 'skip' },
51
- ],
52
- };
53
-
54
- let outputPathIsFile = false;
55
- try {
56
- outputPathIsFile = fs.statSync(this.outputPath).isFile();
57
- } catch (err) {
58
- /* ignore */
59
- }
60
-
61
- let canDiff = !isBinaryFile(this.inputPath) && (!outputPathIsFile || !isBinaryFile(this.outputPath));
62
-
63
- if (canDiff) {
64
- promptOptions.choices.push({ key: 'd', name: 'Diff', value: 'diff' });
65
-
66
- if (canEdit()) {
67
- promptOptions.choices.push({ key: 'e', name: 'Edit', value: 'edit' });
68
- }
69
- }
70
-
71
- return this.ui.prompt(promptOptions).then((response) => response.answer);
72
- }
73
-
74
- displayDiff() {
75
- let info = this,
76
- jsdiff = require('diff');
77
- return hash({
78
- input: this.render(),
79
- output: readFile(info.outputPath),
80
- }).then((result) => {
81
- let diff = jsdiff.createPatch(
82
- info.outputPath,
83
- result.output.toString().replace(rxEOL, '\n'),
84
- result.input.replace(rxEOL, '\n')
85
- );
86
- let lines = diff.split('\n');
87
-
88
- for (let i = 0; i < lines.length; i++) {
89
- info.ui.write(diffHighlight(lines[i] + EOL));
90
- }
91
- });
92
- }
93
-
94
- async render() {
95
- if (!this.rendered) {
96
- let result = await this._render();
97
- this.rendered = this.replacer(result, this);
98
- }
99
-
100
- return this.rendered;
101
- }
102
-
103
- _render() {
104
- let path = this.inputPath;
105
- let context = this.templateVariables;
106
-
107
- return readFile(path).then((content) =>
108
- lstat(path).then((fileStat) => {
109
- if (isBinaryFile(content, fileStat.size)) {
110
- return content;
111
- } else {
112
- try {
113
- return processTemplate(content.toString(), context);
114
- } catch (err) {
115
- err.message += ` (Error in blueprint template: ${path})`;
116
- throw err;
117
- }
118
- }
119
- })
120
- );
121
- }
122
-
123
- checkForConflict() {
124
- return this.render().then((input) => {
125
- input = input.toString().replace(rxEOL, '\n');
126
-
127
- return readFile(this.outputPath)
128
- .then((output) => {
129
- output = output.toString().replace(rxEOL, '\n');
130
-
131
- return input === output ? 'identical' : 'confirm';
132
- })
133
- .catch((e) => {
134
- if (e.code === 'ENOENT') {
135
- return 'none';
136
- }
137
-
138
- throw e;
139
- });
140
- });
141
- }
142
-
143
- confirmOverwriteTask() {
144
- let info = this;
145
-
146
- return function () {
147
- function doConfirm() {
148
- return info.confirmOverwrite(info.displayPath).then((action) => {
149
- if (action === 'diff') {
150
- return info.displayDiff().then(doConfirm);
151
- } else if (action === 'edit') {
152
- let editFileDiff = new EditFileDiff({ info });
153
- return editFileDiff
154
- .edit()
155
- .then(() => (info.action = action))
156
- .catch(() => doConfirm())
157
- .then(() => info);
158
- } else {
159
- info.action = action;
160
- return info;
161
- }
162
- });
163
- }
164
-
165
- return doConfirm();
166
- };
167
- }
168
- }
169
-
170
- module.exports = FileInfo;
@@ -1,44 +0,0 @@
1
- 'use strict';
2
-
3
- const spawn = require('child_process').spawn;
4
-
5
- function openEditor(file) {
6
- if (!openEditor.canEdit()) {
7
- throw new Error('EDITOR environment variable is not set');
8
- }
9
-
10
- if (!file) {
11
- throw new Error('No `file` option provided');
12
- }
13
-
14
- let editorArgs = openEditor._env().EDITOR.split(' ');
15
- let editor = editorArgs.shift();
16
- const args = [file].concat(editorArgs);
17
- let editProcess = openEditor._spawn(editor, args, { stdio: 'inherit' });
18
-
19
- return new Promise((resolve, reject) => {
20
- editProcess.on('close', (code) => {
21
- if (code === 0) {
22
- resolve();
23
- } else {
24
- reject(
25
- new Error(`Spawn('${editor}', [${args.join(',')}]) exited with a non zero error status code: '${code}'`)
26
- );
27
- }
28
- });
29
- });
30
- }
31
-
32
- openEditor.canEdit = function () {
33
- return openEditor._env().EDITOR !== undefined;
34
- };
35
-
36
- openEditor._env = function () {
37
- return process.env;
38
- };
39
-
40
- openEditor._spawn = function () {
41
- return spawn.apply(this, arguments);
42
- };
43
-
44
- module.exports = openEditor;
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- function supportEmoji() {
4
- const hasEmojiTurnedOff = process.argv.indexOf('--no-emoji') > -1;
5
- return process.stdout.isTTY && process.platform !== 'win32' && !hasEmojiTurnedOff;
6
- }
7
-
8
- const areEmojiSupported = supportEmoji();
9
-
10
- module.exports = function prependEmoji(emoji, msg) {
11
- return areEmojiSupported ? `${emoji} ${msg}` : msg;
12
- };
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = function processTemplate(content, context) {
4
- let options = {
5
- evaluate: /<%([\s\S]+?)%>/g,
6
- interpolate: /<%=([\s\S]+?)%>/g,
7
- escape: /<%-([\s\S]+?)%>/g,
8
- };
9
- return require('lodash/template')(content, options)(context);
10
- };