ember-cli 3.5.0 → 3.5.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/.travis.yml +5 -2
- package/CHANGELOG.md +17 -0
- package/blueprints/addon/files/addon-config/ember-try.js +2 -2
- package/blueprints/app/files/.eslintignore +1 -0
- package/blueprints/app/files/.eslintrc.js +1 -0
- package/blueprints/app/files/package.json +1 -1
- package/blueprints/module-unification-app/files/.eslintignore +1 -0
- package/blueprints/module-unification-app/files/.eslintrc.js +1 -0
- package/blueprints/module-unification-app/files/config/environment.js +1 -1
- package/lib/broccoli/ember-app.js +10 -3
- package/lib/models/package-info-cache/index.js +11 -10
- package/lib/models/package-info-cache/package-info.js +7 -8
- package/lib/tasks/server/livereload-server.js +2 -1
- package/lib/tasks/server/middleware/proxy-server/index.js +6 -3
- package/lib/utilities/is-live-reload-request.js +17 -0
- package/package.json +1 -1
package/.travis.yml
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# ember-cli Changelog
|
|
2
2
|
|
|
3
|
+
## v3.5.1
|
|
4
|
+
|
|
5
|
+
#### Blueprint Changes
|
|
6
|
+
|
|
7
|
+
- [`ember new` diff](https://github.com/ember-cli/ember-new-output/compare/v3.5.0...v3.5.1)
|
|
8
|
+
- [`ember addon` diff](https://github.com/ember-cli/ember-addon-output/compare/v3.5.0...v3.5.1)
|
|
9
|
+
|
|
10
|
+
#### Community Contributions
|
|
11
|
+
|
|
12
|
+
- [#8127](https://github.com/ember-cli/ember-cli/pull/8127) Fix eslint errors in new app [@Gaurav0](https://github.com/Gaurav0)
|
|
13
|
+
- [#8130](https://github.com/ember-cli/ember-cli/pull/8130) Use regex to parse /livereload urls [@rwjblue](https://github.com/rwjblue)
|
|
14
|
+
- [#8141](https://github.com/ember-cli/ember-cli/pull/8141) Use `debug` for `package-info-cache` messages [@stefanpenner](https://github.com/stefanpenner)
|
|
15
|
+
- [#8150](https://github.com/ember-cli/ember-cli/pull/8150) Fix `toTree()` with custom paths [@wagenet](https://github.com/wagenet)
|
|
16
|
+
|
|
17
|
+
Thank you to all who took the time to contribute!
|
|
18
|
+
|
|
19
|
+
|
|
3
20
|
## v3.5.0
|
|
4
21
|
|
|
5
22
|
The following changes are required if you are upgrading from the previous
|
|
@@ -14,7 +14,7 @@ module.exports = function() {
|
|
|
14
14
|
{
|
|
15
15
|
name: 'ember-lts-2.16',
|
|
16
16
|
env: {
|
|
17
|
-
EMBER_OPTIONAL_FEATURES: JSON.stringify({ 'jquery-integration': true })
|
|
17
|
+
EMBER_OPTIONAL_FEATURES: JSON.stringify({ 'jquery-integration': true })
|
|
18
18
|
},
|
|
19
19
|
npm: {
|
|
20
20
|
devDependencies: {
|
|
@@ -26,7 +26,7 @@ module.exports = function() {
|
|
|
26
26
|
{
|
|
27
27
|
name: 'ember-lts-2.18',
|
|
28
28
|
env: {
|
|
29
|
-
EMBER_OPTIONAL_FEATURES: JSON.stringify({ 'jquery-integration': true })
|
|
29
|
+
EMBER_OPTIONAL_FEATURES: JSON.stringify({ 'jquery-integration': true })
|
|
30
30
|
},
|
|
31
31
|
npm: {
|
|
32
32
|
devDependencies: {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"ember-maybe-import-regenerator": "^0.1.6",
|
|
40
40
|
"ember-qunit": "^3.4.1",
|
|
41
41
|
"ember-resolver": "^5.0.1",
|
|
42
|
-
"ember-source": "~3.5.
|
|
42
|
+
"ember-source": "~3.5.1<% if (welcome) { %>",
|
|
43
43
|
"ember-welcome-page": "^3.2.0<% } %>",
|
|
44
44
|
"eslint-plugin-ember": "^5.2.0",
|
|
45
45
|
"loader.js": "^4.7.0",
|
|
@@ -26,6 +26,7 @@ const ConfigReplace = require('broccoli-config-replace');
|
|
|
26
26
|
const mergeTrees = require('./merge-trees');
|
|
27
27
|
const WatchedDir = require('broccoli-source').WatchedDir;
|
|
28
28
|
const UnwatchedDir = require('broccoli-source').UnwatchedDir;
|
|
29
|
+
const BroccoliMergeTrees = require('broccoli-merge-trees');
|
|
29
30
|
|
|
30
31
|
const merge = require('ember-cli-lodash-subset').merge;
|
|
31
32
|
const defaultsDeep = require('ember-cli-lodash-subset').defaultsDeep;
|
|
@@ -1744,10 +1745,9 @@ class EmberApp {
|
|
|
1744
1745
|
*/
|
|
1745
1746
|
toTree(additionalTrees) {
|
|
1746
1747
|
let packagedTree;
|
|
1747
|
-
let trees = this.toArray().concat(additionalTrees || []);
|
|
1748
1748
|
let packageFn = this.options.package;
|
|
1749
1749
|
|
|
1750
|
-
let fullTree = mergeTrees(
|
|
1750
|
+
let fullTree = mergeTrees(this.toArray(), {
|
|
1751
1751
|
overwrite: true,
|
|
1752
1752
|
annotation: 'Full Application',
|
|
1753
1753
|
});
|
|
@@ -1762,7 +1762,14 @@ class EmberApp {
|
|
|
1762
1762
|
}
|
|
1763
1763
|
}
|
|
1764
1764
|
|
|
1765
|
-
|
|
1765
|
+
if (!packagedTree) {
|
|
1766
|
+
packagedTree = this._legacyPackage(fullTree);
|
|
1767
|
+
}
|
|
1768
|
+
|
|
1769
|
+
let trees = [].concat(packagedTree, additionalTrees).filter(Boolean);
|
|
1770
|
+
let combinedPackageTree = new BroccoliMergeTrees(trees);
|
|
1771
|
+
|
|
1772
|
+
return this.addonPostprocessTree('all', combinedPackageTree);
|
|
1766
1773
|
}
|
|
1767
1774
|
}
|
|
1768
1775
|
|
|
@@ -11,6 +11,7 @@ const ErrorList = require('./error-list');
|
|
|
11
11
|
const Errors = require('./errors');
|
|
12
12
|
const PackageInfo = require('./package-info');
|
|
13
13
|
const NodeModulesList = require('./node-modules-list');
|
|
14
|
+
const logger = require('heimdalljs-logger')('ember-cli:package-info-cache');
|
|
14
15
|
|
|
15
16
|
let realFilePathCache;
|
|
16
17
|
let realDirectoryPathCache;
|
|
@@ -178,29 +179,29 @@ class PackageInfoCache {
|
|
|
178
179
|
return;
|
|
179
180
|
}
|
|
180
181
|
|
|
181
|
-
|
|
182
|
+
logger.info('');
|
|
182
183
|
let rootPath;
|
|
183
184
|
|
|
184
185
|
if (obj instanceof PackageInfoCache) {
|
|
185
|
-
|
|
186
|
+
logger.info('Top level errors:');
|
|
186
187
|
rootPath = this.realPath || '';
|
|
187
188
|
} else {
|
|
188
189
|
let typeName = (obj.project ? 'project' : 'addon');
|
|
189
190
|
|
|
190
|
-
|
|
191
|
+
logger.info(`The 'package.json' file for the ${typeName} at ${obj.realPath}`);
|
|
191
192
|
rootPath = obj.realPath;
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
errorEntries.forEach(errorEntry => {
|
|
195
196
|
switch (errorEntry.type) {
|
|
196
197
|
case Errors.ERROR_PACKAGE_JSON_MISSING:
|
|
197
|
-
|
|
198
|
+
logger.info(` does not exist`);
|
|
198
199
|
break;
|
|
199
200
|
case Errors.ERROR_PACKAGE_JSON_PARSE:
|
|
200
|
-
|
|
201
|
+
logger.info(` could not be parsed`);
|
|
201
202
|
break;
|
|
202
203
|
case Errors.ERROR_EMBER_ADDON_MAIN_MISSING:
|
|
203
|
-
|
|
204
|
+
logger.info(
|
|
204
205
|
` specifies a missing ember-addon 'main' file at relative path '${path.relative(
|
|
205
206
|
rootPath,
|
|
206
207
|
errorEntry.data
|
|
@@ -209,18 +210,18 @@ class PackageInfoCache {
|
|
|
209
210
|
break;
|
|
210
211
|
case Errors.ERROR_DEPENDENCIES_MISSING:
|
|
211
212
|
if (errorEntry.data.length === 1) {
|
|
212
|
-
|
|
213
|
+
logger.info(
|
|
213
214
|
` specifies a missing dependency '${errorEntry.data[0]}'`
|
|
214
215
|
);
|
|
215
216
|
} else {
|
|
216
|
-
|
|
217
|
+
logger.info(` specifies some missing dependencies:`);
|
|
217
218
|
errorEntry.data.forEach(dependencyName => {
|
|
218
|
-
|
|
219
|
+
logger.info(` ${dependencyName}`);
|
|
219
220
|
});
|
|
220
221
|
}
|
|
221
222
|
break;
|
|
222
223
|
case Errors.ERROR_NODEMODULES_ENTRY_MISSING:
|
|
223
|
-
|
|
224
|
+
logger.info(` specifies a missing 'node_modules/${errorEntry.data}' directory`);
|
|
224
225
|
break;
|
|
225
226
|
}
|
|
226
227
|
});
|
|
@@ -5,6 +5,7 @@ const ErrorList = require('./error-list');
|
|
|
5
5
|
const Errors = require('./errors');
|
|
6
6
|
const AddonInfo = require('../addon-info');
|
|
7
7
|
const isAddon = require('../../utilities/is-addon');
|
|
8
|
+
const logger = require('heimdalljs-logger')('ember-cli:package-info-cache:package-info');
|
|
8
9
|
|
|
9
10
|
function lexicographically(a, b) {
|
|
10
11
|
const aIsString = typeof a.name === 'string';
|
|
@@ -336,24 +337,22 @@ class PackageInfo {
|
|
|
336
337
|
|
|
337
338
|
let invalidPackages = this.getInvalidPackages(addonPackageList);
|
|
338
339
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
if (invalidPackages.length > 0 && ui && ui.writeWarnLine) {
|
|
340
|
+
if (invalidPackages.length > 0) {
|
|
342
341
|
let typeName = (this.project ? 'project' : 'addon');
|
|
343
342
|
|
|
344
|
-
|
|
345
|
-
|
|
343
|
+
logger.info('');
|
|
344
|
+
logger.info(`The 'package.json' file for the ${typeName} at ${this.realPath}`);
|
|
346
345
|
|
|
347
346
|
let relativePath;
|
|
348
347
|
|
|
349
348
|
if (invalidPackages.length === 1) {
|
|
350
349
|
relativePath = path.relative(this.realPath, invalidPackages[0].realPath);
|
|
351
|
-
|
|
350
|
+
logger.info(` specifies an invalid, malformed or missing addon at relative path '${relativePath}'`);
|
|
352
351
|
} else {
|
|
353
|
-
|
|
352
|
+
logger.info(' specifies invalid, malformed or missing addons at relative paths');
|
|
354
353
|
invalidPackages.forEach(packageInfo => {
|
|
355
354
|
let relativePath = path.relative(this.realPath, packageInfo.realPath);
|
|
356
|
-
|
|
355
|
+
logger.info(` '${relativePath}'`);
|
|
357
356
|
});
|
|
358
357
|
}
|
|
359
358
|
}
|
|
@@ -8,6 +8,7 @@ const logger = require('heimdalljs-logger')('ember-cli:live-reload:');
|
|
|
8
8
|
const fs = require('fs');
|
|
9
9
|
const Promise = require('rsvp').Promise;
|
|
10
10
|
const cleanBaseUrl = require('clean-base-url');
|
|
11
|
+
const isLiveReloadRequest = require('../../utilities/is-live-reload-request');
|
|
11
12
|
|
|
12
13
|
function isNotRemoved(entryTuple) {
|
|
13
14
|
let operation = entryTuple[0];
|
|
@@ -102,7 +103,7 @@ module.exports = class LiveReloadServer {
|
|
|
102
103
|
// Reload on express server restarts
|
|
103
104
|
this.app.on('restart', this.didRestart.bind(this));
|
|
104
105
|
this.httpServer.on('upgrade', (req, socket, head) => {
|
|
105
|
-
if (req.url.
|
|
106
|
+
if (isLiveReloadRequest(req.url, this.liveReloadPrefix)) {
|
|
106
107
|
this.liveReloadServer.websocketify(req, socket, head);
|
|
107
108
|
}
|
|
108
109
|
});
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
// eslint-disable-next-line
|
|
4
|
+
const isLiveReloadRequest = require('../../../../utilities/is-live-reload-request');
|
|
5
|
+
|
|
3
6
|
class ProxyServerAddon {
|
|
4
7
|
constructor(project) {
|
|
5
8
|
this.project = project;
|
|
@@ -32,7 +35,7 @@ class ProxyServerAddon {
|
|
|
32
35
|
options.ui.writeLine(`Proxying to ${options.proxy}`);
|
|
33
36
|
|
|
34
37
|
server.on('upgrade', (req, socket, head) => {
|
|
35
|
-
this.handleProxiedRequest(req, socket, head, options, proxy);
|
|
38
|
+
this.handleProxiedRequest({ req, socket, head, options, proxy });
|
|
36
39
|
});
|
|
37
40
|
|
|
38
41
|
app.use(morgan('dev'));
|
|
@@ -40,8 +43,8 @@ class ProxyServerAddon {
|
|
|
40
43
|
}
|
|
41
44
|
}
|
|
42
45
|
|
|
43
|
-
handleProxiedRequest(req, socket, head, options, proxy) {
|
|
44
|
-
if (req.url.
|
|
46
|
+
handleProxiedRequest({ req, socket, head, options, proxy }) {
|
|
47
|
+
if (!isLiveReloadRequest(req.url, options.liveReloadPrefix)) {
|
|
45
48
|
options.ui.writeLine(`Proxying websocket to ${req.url}`);
|
|
46
49
|
proxy.ws(req, socket, head);
|
|
47
50
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const cleanBaseUrl = require('clean-base-url');
|
|
4
|
+
const deprecate = require('./deprecate');
|
|
5
|
+
|
|
6
|
+
module.exports = function isLiveReloadRequest(url, liveReloadPrefix) {
|
|
7
|
+
let regex = /\/livereload$/gi;
|
|
8
|
+
if (url === `${cleanBaseUrl(liveReloadPrefix)}livereload`) {
|
|
9
|
+
return true;
|
|
10
|
+
} else if (regex.test(url)) {
|
|
11
|
+
//version needs to be updated according to the this PR (https://github.com/ember-cli/ember-cli-inject-live-reload/pull/55)
|
|
12
|
+
//in master of ember-cli-inject-live-reload.
|
|
13
|
+
deprecate(`Upgrade ember-cli-inject-live-reload version to 1.10.0 or above`, true);
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
};
|