ember-cli 3.28.1 → 4.0.0-beta.2

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 (97) hide show
  1. package/.github/workflows/ci.yml +4 -0
  2. package/CHANGELOG.md +70 -0
  3. package/README.md +1 -1
  4. package/blueprints/addon/additional-dev-dependencies.json +1 -1
  5. package/blueprints/addon/files/.github/workflows/ci.yml +73 -0
  6. package/blueprints/addon/files/.travis.yml +1 -1
  7. package/blueprints/addon/files/addon-config/ember-try.js +3 -0
  8. package/blueprints/addon/files/npmignore +4 -0
  9. package/blueprints/addon/index.js +14 -5
  10. package/blueprints/app/files/.eslintignore +3 -0
  11. package/blueprints/app/files/.eslintrc.js +1 -1
  12. package/blueprints/app/files/.github/workflows/ci.yml +41 -0
  13. package/blueprints/app/files/.prettierignore +4 -0
  14. package/blueprints/app/files/config/targets.js +0 -15
  15. package/blueprints/app/files/gitignore +3 -0
  16. package/blueprints/app/files/package.json +15 -16
  17. package/blueprints/app/index.js +23 -2
  18. package/docs/build/classes/Addon.html +1 -1
  19. package/docs/build/classes/AmdTransformAddon.html +1 -1
  20. package/docs/build/classes/Blueprint.html +1 -1
  21. package/docs/build/classes/Builder.html +1 -1
  22. package/docs/build/classes/CLI.html +1 -1
  23. package/docs/build/classes/Command.html +1 -1
  24. package/docs/build/classes/DefaultPackager.html +1 -1
  25. package/docs/build/classes/EmberAddon.html +39 -39
  26. package/docs/build/classes/EmberApp.html +39 -39
  27. package/docs/build/classes/HardwareInfo.html +1 -1
  28. package/docs/build/classes/HistorySupportAddon.html +1 -1
  29. package/docs/build/classes/Instrumentation.html +1 -1
  30. package/docs/build/classes/NodeModulesList.html +1 -1
  31. package/docs/build/classes/NpmTask.html +4 -4
  32. package/docs/build/classes/PackageInfo.html +1 -1
  33. package/docs/build/classes/PackageInfoCache.html +1 -1
  34. package/docs/build/classes/PerBundleAddonCache {.html +1 -1
  35. package/docs/build/classes/Project.html +1 -1
  36. package/docs/build/classes/ServeFilesAddon.html +1 -1
  37. package/docs/build/classes/TestsServerAddon.html +1 -1
  38. package/docs/build/classes/WatcherAddon.html +1 -1
  39. package/docs/build/classes/WindowsSymlinkChecker.html +1 -1
  40. package/docs/build/data.json +36 -36
  41. package/docs/build/files/lib_broccoli_default-packager.js.html +1 -1
  42. package/docs/build/files/lib_broccoli_ember-addon.js.html +1 -1
  43. package/docs/build/files/lib_broccoli_ember-app.js.html +63 -21
  44. package/docs/build/files/lib_cli_cli.js.html +1 -1
  45. package/docs/build/files/lib_models_addon-info.js.html +1 -1
  46. package/docs/build/files/lib_models_addon.js.html +1 -1
  47. package/docs/build/files/lib_models_blueprint.js.html +5 -5
  48. package/docs/build/files/lib_models_builder.js.html +1 -1
  49. package/docs/build/files/lib_models_command.js.html +1 -1
  50. package/docs/build/files/lib_models_hardware-info.js.html +1 -1
  51. package/docs/build/files/lib_models_host-info-cache.js.html +1 -1
  52. package/docs/build/files/lib_models_installation-checker.js.html +1 -1
  53. package/docs/build/files/lib_models_instantiate-addons.js.html +1 -1
  54. package/docs/build/files/lib_models_instrumentation.js.html +1 -1
  55. package/docs/build/files/lib_models_package-info-cache_index.js.html +1 -1
  56. package/docs/build/files/lib_models_package-info-cache_node-modules-list.js.html +1 -1
  57. package/docs/build/files/lib_models_package-info-cache_package-info.js.html +1 -1
  58. package/docs/build/files/lib_models_per-bundle-addon-cache_addon-proxy.js.html +1 -1
  59. package/docs/build/files/lib_models_per-bundle-addon-cache_index.js.html +1 -1
  60. package/docs/build/files/lib_models_per-bundle-addon-cache_target-instance.js.html +1 -1
  61. package/docs/build/files/lib_models_project.js.html +1 -1
  62. package/docs/build/files/lib_models_task.js.html +1 -1
  63. package/docs/build/files/lib_tasks_build-watch.js.html +1 -1
  64. package/docs/build/files/lib_tasks_npm-task.js.html +134 -46
  65. package/docs/build/files/lib_tasks_serve.js.html +1 -1
  66. package/docs/build/files/lib_tasks_server_middleware_broccoli-serve-files_index.js.html +1 -1
  67. package/docs/build/files/lib_tasks_server_middleware_broccoli-watcher_index.js.html +1 -1
  68. package/docs/build/files/lib_tasks_server_middleware_history-support_index.js.html +1 -1
  69. package/docs/build/files/lib_tasks_server_middleware_tests-server_index.js.html +1 -1
  70. package/docs/build/files/lib_tasks_test-server.js.html +1 -1
  71. package/docs/build/files/lib_tasks_transforms_amd_index.js.html +1 -1
  72. package/docs/build/files/lib_utilities_ember-app-utils.js.html +1 -1
  73. package/docs/build/files/lib_utilities_insert-into-file.js.html +1 -1
  74. package/docs/build/files/lib_utilities_is-lazy-engine.js.html +1 -1
  75. package/docs/build/files/lib_utilities_is-yarn-project.js.html +1 -1
  76. package/docs/build/files/lib_utilities_valid-project-name.js.html +1 -1
  77. package/docs/build/files/lib_utilities_will-interrupt-process.js.html +1 -1
  78. package/docs/build/files/lib_utilities_windows-admin.js.html +1 -1
  79. package/docs/build/index.html +2 -2
  80. package/docs/build/modules/ember-cli.html +2 -2
  81. package/docs/build/modules/is-lazy-engine.html +1 -1
  82. package/docs/perf-guide.md +2 -0
  83. package/lib/broccoli/ember-app.js +62 -20
  84. package/lib/commands/addon.js +6 -0
  85. package/lib/commands/init.js +9 -1
  86. package/lib/commands/install.js +9 -1
  87. package/lib/commands/new.js +6 -0
  88. package/lib/models/blueprint.js +4 -4
  89. package/lib/tasks/addon-install.js +10 -1
  90. package/lib/tasks/generate-from-blueprint.js +0 -1
  91. package/lib/tasks/install-blueprint.js +1 -1
  92. package/lib/tasks/npm-install.js +2 -2
  93. package/lib/tasks/npm-task.js +133 -45
  94. package/lib/tasks/npm-uninstall.js +2 -2
  95. package/package.json +2 -2
  96. package/tests/helpers/dist-checker.js +21 -1
  97. package/tests/helpers/ember.js +2 -2
@@ -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": "3.28.1-release-15b9b49441"
6
+ "version": "4.0.0-beta.2-beta-6d064ff49f"
7
7
  },
8
8
  "files": {
9
9
  "lib/broccoli/default-packager.js": {
@@ -359,7 +359,7 @@
359
359
  },
360
360
  "tag": "module",
361
361
  "file": "lib/tasks/npm-task.js",
362
- "line": 16,
362
+ "line": 17,
363
363
  "access": "private",
364
364
  "tagname": "",
365
365
  "is_constructor": 1,
@@ -449,7 +449,7 @@
449
449
  "namespace": "",
450
450
  "file": "lib/broccoli/ember-app.js",
451
451
  "line": 72,
452
- "description": "EmberApp is the main class Ember CLI uses to manage the Broccoli trees\nfor your application. It is very tightly integrated with Broccoli and has\na `toTree()` method you can use to get the entire tree for your application.\n\nAvailable init options:\n- storeConfigInMeta, defaults to `true`\n- autoRun, defaults to `true`\n- outputPaths, defaults to `{}`\n- minifyCSS, defaults to `{enabled: !!isProduction,options: { relativeTo: 'assets' }}\n- minifyJS, defaults to `{enabled: !!isProduction}\n- sourcemaps, defaults to `{}`\n- trees, defaults to `{}`\n- jshintrc, defaults to `{}`\n- vendorFiles, defaults to `{}`\n- addons, defaults to `{ blacklist: [], whitelist: [] }`",
452
+ "description": "EmberApp is the main class Ember CLI uses to manage the Broccoli trees\nfor your application. It is very tightly integrated with Broccoli and has\na `toTree()` method you can use to get the entire tree for your application.\n\nAvailable init options:\n- storeConfigInMeta, defaults to `true`\n- autoRun, defaults to `true`\n- outputPaths, defaults to `{}`\n- minifyCSS, defaults to `{enabled: !!isProduction,options: { relativeTo: 'assets' }}\n- minifyJS, defaults to `{enabled: !!isProduction}\n- sourcemaps, defaults to `{}`\n- trees, defaults to `{}`\n- jshintrc, defaults to `{}`\n- vendorFiles, defaults to `{}`\n- addons, defaults to `{ exclude: [], include: [] }`",
453
453
  "is_constructor": 1,
454
454
  "params": [
455
455
  {
@@ -785,7 +785,7 @@
785
785
  "module": "ember-cli",
786
786
  "namespace": "",
787
787
  "file": "lib/tasks/npm-task.js",
788
- "line": 16,
788
+ "line": 17,
789
789
  "access": "private",
790
790
  "tagname": "",
791
791
  "is_constructor": 1,
@@ -818,7 +818,7 @@
818
818
  "classitems": [
819
819
  {
820
820
  "file": "lib/broccoli/ember-app.js",
821
- "line": 197,
821
+ "line": 201,
822
822
  "description": "Initializes the `tests` and `hinting` properties.\n\nDefaults to `false` unless `ember test` was used or this is *not* a production build.",
823
823
  "access": "private",
824
824
  "tagname": "",
@@ -836,7 +836,7 @@
836
836
  },
837
837
  {
838
838
  "file": "lib/broccoli/ember-app.js",
839
- "line": 213,
839
+ "line": 217,
840
840
  "description": "Initializes the `project` property from `options.project` or the\nclosest Ember CLI project from the current working directory.",
841
841
  "access": "private",
842
842
  "tagname": "",
@@ -854,7 +854,7 @@
854
854
  },
855
855
  {
856
856
  "file": "lib/broccoli/ember-app.js",
857
- "line": 234,
857
+ "line": 238,
858
858
  "description": "Initializes the `options` property from the `options` parameter and\na set of default values from Ember CLI.",
859
859
  "access": "private",
860
860
  "tagname": "",
@@ -872,7 +872,7 @@
872
872
  },
873
873
  {
874
874
  "file": "lib/broccoli/ember-app.js",
875
- "line": 388,
875
+ "line": 426,
876
876
  "description": "Resolves a path relative to the project's root",
877
877
  "access": "private",
878
878
  "tagname": "",
@@ -883,7 +883,7 @@
883
883
  },
884
884
  {
885
885
  "file": "lib/broccoli/ember-app.js",
886
- "line": 398,
886
+ "line": 436,
887
887
  "access": "private",
888
888
  "tagname": "",
889
889
  "itemtype": "method",
@@ -893,7 +893,7 @@
893
893
  },
894
894
  {
895
895
  "file": "lib/broccoli/ember-app.js",
896
- "line": 517,
896
+ "line": 555,
897
897
  "description": "Returns the environment name",
898
898
  "access": "public",
899
899
  "tagname": "",
@@ -909,7 +909,7 @@
909
909
  },
910
910
  {
911
911
  "file": "lib/broccoli/ember-app.js",
912
- "line": 529,
912
+ "line": 567,
913
913
  "description": "Delegates to `broccoli-concat` with the `sourceMapConfig` option set to `options.sourcemaps`.",
914
914
  "access": "private",
915
915
  "tagname": "",
@@ -933,7 +933,7 @@
933
933
  },
934
934
  {
935
935
  "file": "lib/broccoli/ember-app.js",
936
- "line": 544,
936
+ "line": 582,
937
937
  "description": "Checks the result of `addon.isEnabled()` if it exists, defaults to `true` otherwise.",
938
938
  "access": "private",
939
939
  "tagname": "",
@@ -955,11 +955,11 @@
955
955
  },
956
956
  {
957
957
  "file": "lib/broccoli/ember-app.js",
958
- "line": 556,
958
+ "line": 594,
959
959
  "access": "private",
960
960
  "tagname": "",
961
961
  "itemtype": "method",
962
- "name": "_addonDisabledByBlacklist",
962
+ "name": "_addonDisabledByExclude",
963
963
  "params": [
964
964
  {
965
965
  "name": "addon",
@@ -976,11 +976,11 @@
976
976
  },
977
977
  {
978
978
  "file": "lib/broccoli/ember-app.js",
979
- "line": 567,
979
+ "line": 605,
980
980
  "access": "private",
981
981
  "tagname": "",
982
982
  "itemtype": "method",
983
- "name": "_addonDisabledByWhitelist",
983
+ "name": "_addonDisabledByInclude",
984
984
  "params": [
985
985
  {
986
986
  "name": "addon",
@@ -997,7 +997,7 @@
997
997
  },
998
998
  {
999
999
  "file": "lib/broccoli/ember-app.js",
1000
- "line": 578,
1000
+ "line": 616,
1001
1001
  "access": "private",
1002
1002
  "tagname": "",
1003
1003
  "itemtype": "method",
@@ -1018,7 +1018,7 @@
1018
1018
  },
1019
1019
  {
1020
1020
  "file": "lib/broccoli/ember-app.js",
1021
- "line": 606,
1021
+ "line": 644,
1022
1022
  "description": "Returns whether an addon should be added to the project",
1023
1023
  "access": "private",
1024
1024
  "tagname": "",
@@ -1040,7 +1040,7 @@
1040
1040
  },
1041
1041
  {
1042
1042
  "file": "lib/broccoli/ember-app.js",
1043
- "line": 622,
1043
+ "line": 660,
1044
1044
  "description": "Calls the included hook on addons.",
1045
1045
  "access": "private",
1046
1046
  "tagname": "",
@@ -1051,7 +1051,7 @@
1051
1051
  },
1052
1052
  {
1053
1053
  "file": "lib/broccoli/ember-app.js",
1054
- "line": 658,
1054
+ "line": 700,
1055
1055
  "description": "Calls the importTransforms hook on addons.",
1056
1056
  "access": "private",
1057
1057
  "tagname": "",
@@ -1062,7 +1062,7 @@
1062
1062
  },
1063
1063
  {
1064
1064
  "file": "lib/broccoli/ember-app.js",
1065
- "line": 707,
1065
+ "line": 749,
1066
1066
  "description": "Loads and initializes addons for this project.\nCalls initializeAddons on the Project.",
1067
1067
  "access": "private",
1068
1068
  "tagname": "",
@@ -1073,7 +1073,7 @@
1073
1073
  },
1074
1074
  {
1075
1075
  "file": "lib/broccoli/ember-app.js",
1076
- "line": 734,
1076
+ "line": 776,
1077
1077
  "description": "Returns a list of trees for a given type, returned by all addons.",
1078
1078
  "access": "private",
1079
1079
  "tagname": "",
@@ -1095,7 +1095,7 @@
1095
1095
  },
1096
1096
  {
1097
1097
  "file": "lib/broccoli/ember-app.js",
1098
- "line": 833,
1098
+ "line": 875,
1099
1099
  "description": "Runs addon post-processing on a given tree and returns the processed tree.\n\nThis enables addons to do process immediately **after** the preprocessor for a\ngiven type is run, but before concatenation occurs. If an addon wishes to\napply a transform before the preprocessors run, they can instead implement the\npreprocessTree hook.\n\nTo utilize this addons implement `postprocessTree` hook.\n\nAn example, would be to apply some broccoli transform on all JS files, but\nonly after the existing pre-processors have run.\n\n```js\nmodule.exports = {\n name: 'my-cool-addon',\n postprocessTree(type, tree) {\n if (type === 'js') {\n return someBroccoliTransform(tree);\n }\n\n return tree;\n }\n}\n\n```",
1100
1100
  "access": "private",
1101
1101
  "tagname": "",
@@ -1122,7 +1122,7 @@
1122
1122
  },
1123
1123
  {
1124
1124
  "file": "lib/broccoli/ember-app.js",
1125
- "line": 870,
1125
+ "line": 912,
1126
1126
  "description": "Runs addon pre-processing on a given tree and returns the processed tree.\n\nThis enables addons to do process immediately **before** the preprocessor for a\ngiven type is run. If an addon wishes to apply a transform after the\npreprocessors run, they can instead implement the postprocessTree hook.\n\nTo utilize this addons implement `preprocessTree` hook.\n\nAn example, would be to remove some set of files before the preprocessors run.\n\n```js\nvar stew = require('broccoli-stew');\n\nmodule.exports = {\n name: 'my-cool-addon',\n preprocessTree(type, tree) {\n if (type === 'js' && type === 'template') {\n return stew.rm(tree, someGlobPattern);\n }\n\n return tree;\n }\n}\n```",
1127
1127
  "access": "private",
1128
1128
  "tagname": "",
@@ -1149,7 +1149,7 @@
1149
1149
  },
1150
1150
  {
1151
1151
  "file": "lib/broccoli/ember-app.js",
1152
- "line": 906,
1152
+ "line": 948,
1153
1153
  "description": "Runs addon lintTree hooks and returns a single tree containing all\ntheir output.",
1154
1154
  "access": "private",
1155
1155
  "tagname": "",
@@ -1176,7 +1176,7 @@
1176
1176
  },
1177
1177
  {
1178
1178
  "file": "lib/broccoli/ember-app.js",
1179
- "line": 925,
1179
+ "line": 967,
1180
1180
  "description": "Imports legacy imports in this.vendorFiles",
1181
1181
  "access": "private",
1182
1182
  "tagname": "",
@@ -1187,7 +1187,7 @@
1187
1187
  },
1188
1188
  {
1189
1189
  "file": "lib/broccoli/ember-app.js",
1190
- "line": 1106,
1190
+ "line": 1148,
1191
1191
  "access": "private",
1192
1192
  "tagname": "",
1193
1193
  "itemtype": "method",
@@ -1201,7 +1201,7 @@
1201
1201
  },
1202
1202
  {
1203
1203
  "file": "lib/broccoli/ember-app.js",
1204
- "line": 1321,
1204
+ "line": 1363,
1205
1205
  "description": "Runs the `app`, `tests` and `templates` trees through the chain of addons that produces lint trees.\n\nThose lint trees are afterwards funneled into the `tests` folder, babel-ified and returned as an array.",
1206
1206
  "access": "private",
1207
1207
  "tagname": "",
@@ -1216,7 +1216,7 @@
1216
1216
  },
1217
1217
  {
1218
1218
  "file": "lib/broccoli/ember-app.js",
1219
- "line": 1361,
1219
+ "line": 1403,
1220
1220
  "access": "private",
1221
1221
  "tagname": "",
1222
1222
  "itemtype": "method",
@@ -1237,7 +1237,7 @@
1237
1237
  },
1238
1238
  {
1239
1239
  "file": "lib/broccoli/ember-app.js",
1240
- "line": 1371,
1240
+ "line": 1413,
1241
1241
  "access": "public",
1242
1242
  "tagname": "",
1243
1243
  "itemtype": "method",
@@ -1251,7 +1251,7 @@
1251
1251
  },
1252
1252
  {
1253
1253
  "file": "lib/broccoli/ember-app.js",
1254
- "line": 1380,
1254
+ "line": 1422,
1255
1255
  "description": "Imports an asset into the application.",
1256
1256
  "access": "public",
1257
1257
  "tagname": "",
@@ -1309,7 +1309,7 @@
1309
1309
  },
1310
1310
  {
1311
1311
  "file": "lib/broccoli/ember-app.js",
1312
- "line": 1426,
1312
+ "line": 1468,
1313
1313
  "access": "private",
1314
1314
  "tagname": "",
1315
1315
  "itemtype": "method",
@@ -1346,7 +1346,7 @@
1346
1346
  },
1347
1347
  {
1348
1348
  "file": "lib/broccoli/ember-app.js",
1349
- "line": 1511,
1349
+ "line": 1553,
1350
1350
  "access": "private",
1351
1351
  "tagname": "",
1352
1352
  "itemtype": "method",
@@ -1367,7 +1367,7 @@
1367
1367
  },
1368
1368
  {
1369
1369
  "file": "lib/broccoli/ember-app.js",
1370
- "line": 1552,
1370
+ "line": 1594,
1371
1371
  "description": "Returns an array of trees for this application",
1372
1372
  "access": "private",
1373
1373
  "tagname": "",
@@ -1382,7 +1382,7 @@
1382
1382
  },
1383
1383
  {
1384
1384
  "file": "lib/broccoli/ember-app.js",
1385
- "line": 1656,
1385
+ "line": 1698,
1386
1386
  "description": "Returns the merged tree for this application",
1387
1387
  "access": "public",
1388
1388
  "tagname": "",
@@ -6268,7 +6268,7 @@
6268
6268
  },
6269
6269
  {
6270
6270
  "file": "lib/tasks/npm-task.js",
6271
- "line": 113,
6271
+ "line": 147,
6272
6272
  "description": "This method will determine what package manager (npm or yarn) should be\nused to install the npm dependencies.\n\nSetting `this.useYarn` to `true` or `false` will force the use of yarn\nor npm respectively.\n\nIf `this.useYarn` is not set we check if `yarn.lock` exists and if\n`yarn` is available and in that case set `useYarn` to `true`.",
6273
6273
  "access": "private",
6274
6274
  "tagname": "",
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -166,7 +166,7 @@ class EmberApp {
166
166
  - trees, defaults to &#x60;{}&#x60;
167
167
  - jshintrc, defaults to &#x60;{}&#x60;
168
168
  - vendorFiles, defaults to &#x60;{}&#x60;
169
- - addons, defaults to &#x60;{ blacklist: [], whitelist: [] }&#x60;
169
+ - addons, defaults to &#x60;{ exclude: [], include: [] }&#x60;
170
170
 
171
171
  @class EmberApp
172
172
  @constructor
@@ -252,10 +252,12 @@ class EmberApp {
252
252
  this._cachedAddonBundles = {};
253
253
 
254
254
  if (this.project.perBundleAddonCache &amp;&amp; this.project.perBundleAddonCache.numProxies &gt; 0) {
255
- if (this.options.addons.whitelist &amp;&amp; this.options.addons.whitelist.length) {
255
+ if (this.options.addons.include &amp;&amp; this.options.addons.include.length) {
256
+ let optionKey = this.options.addons.hasWhitelist ? &#x27;whitelist&#x27; : &#x27;include&#x27;;
257
+
256
258
  throw new Error(
257
259
  [
258
- &#x27;[ember-cli] addon bundle caching is disabled for apps that specify an addon &#x60;whitelist&#x60;&#x27;,
260
+ &#x60;[ember-cli] addon bundle caching is disabled for apps that specify an addon &quot;${optionKey}&quot;&#x60;,
259
261
  &#x27;&#x27;,
260
262
  &#x27;All addons using bundle caching:&#x27;,
261
263
  ...this.project.perBundleAddonCache.getPathsToAddonsOptedIn(),
@@ -263,10 +265,12 @@ class EmberApp {
263
265
  );
264
266
  }
265
267
 
266
- if (this.options.addons.blacklist &amp;&amp; this.options.addons.blacklist.length) {
268
+ if (this.options.addons.exclude &amp;&amp; this.options.addons.exclude.length) {
269
+ let optionKey = this.options.addons.hasBlacklist ? &#x27;blacklist&#x27; : &#x27;exclude&#x27;;
270
+
267
271
  throw new Error(
268
272
  [
269
- &#x27;[ember-cli] addon bundle caching is disabled for apps that specify an addon &#x60;blacklist&#x60;&#x27;,
273
+ &#x60;[ember-cli] addon bundle caching is disabled for apps that specify an addon &quot;${optionKey}&quot;&#x60;,
270
274
  &#x27;&#x27;,
271
275
  &#x27;All addons using bundle caching:&#x27;,
272
276
  ...this.project.perBundleAddonCache.getPathsToAddonsOptedIn(),
@@ -448,6 +452,40 @@ class EmberApp {
448
452
 
449
453
  this.options = defaultsDeep(options, detectedDefaultOptions, DEFAULT_CONFIG);
450
454
 
455
+ if (this.options.addons.blacklist) {
456
+ if (this.options.addons.exclude) {
457
+ throw new Error(&#x27;Specifying both &quot;blacklist&quot; and &quot;exclude&quot; is not supported. Please use only one.&#x27;);
458
+ }
459
+
460
+ this.options.addons.hasBlacklist = true;
461
+ this.options.addons.exclude = this.options.addons.blacklist;
462
+ }
463
+
464
+ Object.defineProperty(this.options.addons, &#x27;blacklist&#x27;, {
465
+ get() {
466
+ console.log(chalk.yellow(&#x27;Please use &quot;exclude&quot; instead of &quot;blacklist&quot;.&#x27;));
467
+
468
+ return this.exclude;
469
+ },
470
+ });
471
+
472
+ if (this.options.addons.whitelist) {
473
+ if (this.options.addons.include) {
474
+ throw new Error(&#x27;Specifying both &quot;whitelist&quot; and &quot;include&quot; is not supported. Please use only one.&#x27;);
475
+ }
476
+
477
+ this.options.addons.hasWhitelist = true;
478
+ this.options.addons.include = this.options.addons.whitelist;
479
+ }
480
+
481
+ Object.defineProperty(this.options.addons, &#x27;whitelist&#x27;, {
482
+ get() {
483
+ console.log(chalk.yellow(&#x27;Please use &quot;include&quot; instead of &quot;whitelist&quot;.&#x27;));
484
+
485
+ return this.include;
486
+ },
487
+ });
488
+
451
489
  // For now we must disable Babel sourcemaps due to unforeseen
452
490
  // performance regressions.
453
491
  if (!(&#x27;sourceMaps&#x27; in this.options.babel)) {
@@ -637,24 +675,24 @@ class EmberApp {
637
675
 
638
676
  /**
639
677
  @private
640
- @method _addonDisabledByBlacklist
678
+ @method _addonDisabledByExclude
641
679
  @param {Addon} addon
642
680
  @return {Boolean}
643
681
  */
644
- _addonDisabledByBlacklist(addon) {
645
- let blacklist = this.options.addons.blacklist;
646
- return !!blacklist &amp;&amp; blacklist.indexOf(addon.name) !== -1;
682
+ _addonDisabledByExclude(addon) {
683
+ let exclude = this.options.addons.exclude;
684
+ return !!exclude &amp;&amp; exclude.indexOf(addon.name) !== -1;
647
685
  }
648
686
 
649
687
  /**
650
688
  @private
651
- @method _addonDisabledByWhitelist
689
+ @method _addonDisabledByInclude
652
690
  @param {Addon} addon
653
691
  @return {Boolean}
654
692
  */
655
- _addonDisabledByWhitelist(addon) {
656
- let whitelist = this.options.addons.whitelist;
657
- return !!whitelist &amp;&amp; whitelist.indexOf(addon.name) === -1;
693
+ _addonDisabledByInclude(addon) {
694
+ let include = this.options.addons.include;
695
+ return !!include &amp;&amp; include.indexOf(addon.name) === -1;
658
696
  }
659
697
 
660
698
  /**
@@ -698,7 +736,7 @@ class EmberApp {
698
736
  return false;
699
737
  }
700
738
 
701
- return !this._addonDisabledByBlacklist(addon) &amp;&amp; !this._addonDisabledByWhitelist(addon);
739
+ return !this._addonDisabledByExclude(addon) &amp;&amp; !this._addonDisabledByInclude(addon);
702
740
  }
703
741
 
704
742
  /**
@@ -710,18 +748,22 @@ class EmberApp {
710
748
  _notifyAddonIncluded() {
711
749
  let addonNames = this.project.addons.map((addon) =&gt; addon.name);
712
750
 
713
- if (this.options.addons.blacklist) {
714
- this.options.addons.blacklist.forEach((addonName) =&gt; {
751
+ if (this.options.addons.exclude) {
752
+ let optionKey = this.options.addons.hasBlacklist ? &#x27;blacklist&#x27; : &#x27;exclude&#x27;;
753
+
754
+ this.options.addons.exclude.forEach((addonName) =&gt; {
715
755
  if (addonNames.indexOf(addonName) === -1) {
716
- throw new Error(&#x60;Addon &quot;${addonName}&quot; defined in blacklist is not found&#x60;);
756
+ throw new Error(&#x60;Addon &quot;${addonName}&quot; defined in &quot;${optionKey}&quot; is not found&#x60;);
717
757
  }
718
758
  });
719
759
  }
720
760
 
721
- if (this.options.addons.whitelist) {
722
- this.options.addons.whitelist.forEach((addonName) =&gt; {
761
+ if (this.options.addons.include) {
762
+ let optionKey = this.options.addons.hasWhitelist ? &#x27;whitelist&#x27; : &#x27;include&#x27;;
763
+
764
+ this.options.addons.include.forEach((addonName) =&gt; {
723
765
  if (addonNames.indexOf(addonName) === -1) {
724
- throw new Error(&#x60;Addon &quot;${addonName}&quot; defined in whitelist is not found&#x60;);
766
+ throw new Error(&#x60;Addon &quot;${addonName}&quot; defined in &quot;${optionKey}&quot; is not found&#x60;);
725
767
  }
726
768
  });
727
769
  }
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -528,7 +528,7 @@ let Blueprint = CoreObject.extend({
528
528
  this.project = options.project;
529
529
  this.pod = options.pod;
530
530
  this.options = options;
531
- this.hasPathToken = hasPathToken(this.files());
531
+ this.hasPathToken = hasPathToken(this.files(this.options));
532
532
 
533
533
  ui.writeLine(&#x60;installing ${this.name}&#x60;);
534
534
 
@@ -558,7 +558,7 @@ let Blueprint = CoreObject.extend({
558
558
  this.project = options.project;
559
559
  this.pod = options.pod;
560
560
  this.options = options;
561
- this.hasPathToken = hasPathToken(this.files());
561
+ this.hasPathToken = hasPathToken(this.files(this.options));
562
562
 
563
563
  ui.writeLine(&#x60;uninstalling ${this.name}&#x60;);
564
564
 
@@ -799,7 +799,7 @@ let Blueprint = CoreObject.extend({
799
799
  @return {Array} files
800
800
  */
801
801
  _getFilesForInstall(targetFiles) {
802
- let files = this.files();
802
+ let files = this.files(this.options);
803
803
 
804
804
  // if we&#x27;ve defined targetFiles, get file info on ones that match
805
805
  return (targetFiles &amp;&amp; targetFiles.length &gt; 0 &amp;&amp; _.intersection(files, targetFiles)) || files;
@@ -847,7 +847,7 @@ let Blueprint = CoreObject.extend({
847
847
  @param {Object} templateVariables
848
848
  */
849
849
  processFilesForUninstall(intoDir, templateVariables) {
850
- let fileInfos = this._getFileInfos(this.files(), intoDir, templateVariables);
850
+ let fileInfos = this._getFileInfos(this.files(this.options), intoDir, templateVariables);
851
851
 
852
852
  this._ignoreUpdateFiles();
853
853
 
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>
@@ -69,7 +69,7 @@
69
69
 
70
70
 
71
71
  <div class="version-info">
72
- Version: 3.28.1-release-15b9b49441
72
+ Version: 4.0.0-beta.2-beta-6d064ff49f
73
73
  </div>
74
74
 
75
75
  </div>