From 04f47d5dd105133cc798da18d691383bca5349c0 Mon Sep 17 00:00:00 2001 From: Matthew Beale Date: Sun, 4 Mar 2018 13:43:16 -0800 Subject: [PATCH 1/3] Add new types for new Ember releases --- mu-trees/addon/ember-config.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mu-trees/addon/ember-config.js b/mu-trees/addon/ember-config.js index e703f3ac..5b4e9eda 100644 --- a/mu-trees/addon/ember-config.js +++ b/mu-trees/addon/ember-config.js @@ -34,11 +34,13 @@ export default function generateConfig(name) { transform: { definitiveCollection: 'transforms' }, view: { definitiveCollection: 'views' }, '-view-registry': { definitiveCollection: 'main' }, - '-bucket-cache': { definitiveCollection: 'main' } + '-bucket-cache': { definitiveCollection: 'main' }, + '-environment': { definitiveCollection: 'main' }, + '-application-instance': { definitiveCollection: 'main' } }, collections: { 'main': { - types: ['router', '-bucket-cache', 'component-lookup', '-view-registry', 'event_dispatcher', 'application', 'location', 'renderer'] + types: ['router', '-bucket-cache', 'component-lookup', '-view-registry', 'event_dispatcher', 'application', 'location', 'renderer', '-environment', '-application-instance'] }, components: { group: 'ui', From ecc4748a8b18ac7aa13726a801932b7ffe18eb9c Mon Sep 17 00:00:00 2001 From: Matthew Beale Date: Sun, 4 Mar 2018 14:07:48 -0800 Subject: [PATCH 2/3] glimmer-resolver v0.4.3 --- yarn.lock | 450 ++---------------------------------------------------- 1 file changed, 11 insertions(+), 439 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6a14f6a7..f9089a40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,8 +15,8 @@ resolved "https://registry.yarnpkg.com/@glimmer/di/-/di-0.2.0.tgz#73bfd4a6ee4148a80bf092e8a5d29bcac9d4ce7e" "@glimmer/resolver@^0.4.1": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@glimmer/resolver/-/resolver-0.4.2.tgz#60c9b492e90bc3956ac82b3134649bd337e1651c" + version "0.4.3" + resolved "https://registry.yarnpkg.com/@glimmer/resolver/-/resolver-0.4.3.tgz#b1baae5c3291b4621002ccf8d7870466097e841d" dependencies: "@glimmer/di" "^0.2.0" @@ -42,28 +42,10 @@ accepts@~1.3.4: mime-types "~2.1.16" negotiator "0.6.1" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^5.2.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" - after@0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" @@ -71,15 +53,6 @@ ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^5.2.3, ajv@^5.3.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -108,10 +81,6 @@ ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" -ansi-escapes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" - ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" @@ -149,12 +118,6 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" -aot-test-generators@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/aot-test-generators/-/aot-test-generators-0.1.0.tgz#43f0f615f97cb298d7919c1b0b4e6b7310b03cd0" - dependencies: - jsesc "^2.5.0" - aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -212,16 +175,6 @@ array-to-sentence@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-to-sentence/-/array-to-sentence-1.1.0.tgz#c804956dafa53232495b205a9452753a258d39fc" -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" @@ -234,10 +187,6 @@ arraybuffer.slice@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" @@ -311,7 +260,7 @@ aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: @@ -1137,18 +1086,6 @@ broccoli-kitchen-sink-helpers@~0.2.0: glob "^5.0.10" mkdirp "^0.5.1" -broccoli-lint-eslint@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/broccoli-lint-eslint/-/broccoli-lint-eslint-4.2.1.tgz#f780dc083a7357a9746a9cfa8f76feb092777477" - dependencies: - aot-test-generators "^0.1.0" - broccoli-concat "^3.2.2" - broccoli-persistent-filter "^1.4.3" - eslint "^4.0.0" - json-stable-stringify "^1.0.1" - lodash.defaultsdeep "^4.6.0" - md5-hex "^2.0.0" - broccoli-merge-trees@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz#a001519bb5067f06589d91afa2942445a2d0fdb5" @@ -1176,7 +1113,7 @@ broccoli-middleware@^1.0.0: handlebars "^4.0.4" mime "^1.2.11" -broccoli-persistent-filter@^1.0.3, broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.4.0, broccoli-persistent-filter@^1.4.3: +broccoli-persistent-filter@^1.0.3, broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.4.0: version "1.4.3" resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-1.4.3.tgz#3511bc52fc53740cda51621f58a28152d9911bc1" dependencies: @@ -1314,20 +1251,10 @@ calculate-cache-key-for-tree@^1.0.0: dependencies: json-stable-stringify "^1.0.1" -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -1405,10 +1332,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - charm@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/charm/-/charm-1.0.2.tgz#8add367153a6d9a581331052c4090991da995e35" @@ -1430,10 +1353,6 @@ chokidar@1.7.0: optionalDependencies: fsevents "^1.0.0" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1612,7 +1531,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.7, concat-stream@^1.6.0: +concat-stream@^1.4.7: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -1778,10 +1697,6 @@ deep-extend@~0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -1794,18 +1709,6 @@ define-property@^1.0.0: dependencies: is-descriptor "^1.0.0" -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1850,12 +1753,6 @@ diff@^3.2.0: version "3.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - dependencies: - esutils "^2.0.2" - dot-prop@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" @@ -1928,15 +1825,6 @@ ember-cli-dependency-checker@^2.0.0: resolve "^1.5.0" semver "^5.3.0" -ember-cli-eslint@^4.2.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/ember-cli-eslint/-/ember-cli-eslint-4.2.3.tgz#2844d3f5e8184f19b2d7132ba99eb0b370b55598" - dependencies: - broccoli-lint-eslint "^4.2.1" - ember-cli-version-checker "^2.1.0" - rsvp "^4.6.1" - walk-sync "^0.3.0" - ember-cli-get-component-path-option@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ember-cli-get-component-path-option/-/ember-cli-get-component-path-option-1.0.0.tgz#0d7b595559e2f9050abed804f1d8eff1b08bc771" @@ -2334,75 +2222,6 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^ version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -eslint-plugin-node@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-5.2.1.tgz#80df3253c4d7901045ec87fa660a284e32bdca29" - dependencies: - ignore "^3.3.6" - minimatch "^3.0.4" - resolve "^1.3.3" - semver "5.3.0" - -eslint-scope@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - -eslint@^4.0.0: - version "4.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.16.0.tgz#934ada9e98715e1d7bbfd6f6f0519ed2fab35cc1" - dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "^4.0.1" - text-table "~0.2.0" - -espree@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca" - dependencies: - acorn "^5.2.1" - acorn-jsx "^3.0.0" - esprima@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" @@ -2415,23 +2234,6 @@ esprima@~3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" - dependencies: - estraverse "^4.1.0" - object-assign "^4.0.1" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2590,14 +2392,6 @@ external-editor@^1.1.0: spawn-sync "^1.0.15" tmp "^0.0.29" -external-editor@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -2625,18 +2419,6 @@ extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" -fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - fast-ordered-set@^1.0.0, fast-ordered-set@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz#3fbb36634f7be79e4f7edbdb4a357dee25d184eb" @@ -2675,13 +2457,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -2766,15 +2541,6 @@ fireworm@^0.7.0: lodash.flatten "^3.0.2" minimatch "^3.0.2" -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" - dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2911,10 +2677,6 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: mkdirp ">=0.5 0" rimraf "2" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -2998,7 +2760,7 @@ glob@^5.0.10: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.0.4, glob@^7.0.5, glob@^7.1.2: +glob@^7.0.4, glob@^7.0.5: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -3043,25 +2805,10 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^11.0.1: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4" - globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - got@^8.0.1: version "8.0.3" resolved "https://registry.yarnpkg.com/got/-/got-8.0.3.tgz#15d038e8101f89e93585d1639d9c49e8a55ae6bc" @@ -3285,14 +3032,10 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" -iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: +iconv-lite@0.4.19, iconv-lite@~0.4.13: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" -ignore@^3.3.3, ignore@^3.3.6: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3355,25 +3098,6 @@ inquirer@^2: strip-ansi "^3.0.0" through "^2.3.6" -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - into-stream@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" @@ -3537,22 +3261,6 @@ is-odd@^1.0.0: dependencies: is-number "^3.0.0" -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -3575,10 +3283,6 @@ is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" -is-resolvable@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.1.tgz#acca1cd36dbe44b974b924321555a70ba03b1cf4" - is-retry-allowed@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -3666,7 +3370,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.2.5, js-yaml@^3.2.7, js-yaml@^3.6.1, js-yaml@^3.9.1: +js-yaml@^3.2.5, js-yaml@^3.2.7, js-yaml@^3.6.1: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: @@ -3681,10 +3385,6 @@ jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" -jsesc@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" - jsesc@~0.3.x: version "0.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.3.0.tgz#1bf5ee63b4539fe2e26d0c1e99c240b97a457972" @@ -3697,18 +3397,10 @@ json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" @@ -3802,13 +3494,6 @@ leek@0.0.24: lodash.assign "^3.2.0" rsvp "^3.0.21" -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - linkify-it@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f" @@ -4249,16 +3934,6 @@ matcher-collection@^1.0.0, matcher-collection@^1.0.5: dependencies: minimatch "^3.0.2" -md5-hex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" - dependencies: - md5-o-matic "^0.1.1" - -md5-o-matic@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" - mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -4446,10 +4121,6 @@ mute-stream@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - nan@^2.3.0: version "2.8.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" @@ -4470,10 +4141,6 @@ nanomatch@^1.2.5: snapdragon "^0.8.1" to-regex "^3.0.1" -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -4658,17 +4325,6 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - options@>=0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" @@ -4690,7 +4346,7 @@ os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -4800,10 +4456,6 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -4850,10 +4502,6 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - portfinder@^1.0.7: version "1.0.13" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" @@ -4866,10 +4514,6 @@ posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -4896,10 +4540,6 @@ process-relative-require@^1.0.0: dependencies: node-modules-path "^1.0.0" -progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - promise-map-series@^0.2.1: version "0.2.3" resolved "https://registry.yarnpkg.com/promise-map-series/-/promise-map-series-0.2.3.tgz#c2d377afc93253f6bd03dbb77755eb88ab20a847" @@ -5156,13 +4796,6 @@ request@2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - requires-port@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -5181,10 +4814,6 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: expand-tilde "^2.0.0" global-modules "^1.0.0" -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -5235,7 +4864,7 @@ rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0. version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" -rsvp@^4.6.1, rsvp@^4.7.0: +rsvp@^4.7.0: version "4.8.0" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.0.tgz#dc1dc400e2d48bcf3b1991f2a3b714f038fc432e" @@ -5253,16 +4882,6 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" @@ -5305,10 +4924,6 @@ sane@^2.2.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" -semver@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - send@0.16.1: version "0.16.1" resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" @@ -5408,12 +5023,6 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - dependencies: - is-fullwidth-code-point "^2.0.0" - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -5644,7 +5253,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +string-width@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: @@ -5735,17 +5344,6 @@ symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.1.8.tgz#cabe61e0010c1c023c173b25ee5108b37f4b4aa3" -table@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - tap-parser@^5.1.0: version "5.4.0" resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-5.4.0.tgz#6907e89725d7b7fa6ae41ee2c464c3db43188aec" @@ -5814,10 +5412,6 @@ testem@^1.18.0: tap-parser "^5.1.0" xmldom "^0.1.19" -text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - "textextensions@1 || 2": version "2.1.0" resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.1.0.tgz#1be0dc2a0dc244d44be8a09af6a85afb93c4dbc3" @@ -5853,12 +5447,6 @@ tmp@^0.0.29: dependencies: os-tmpdir "~1.0.1" -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -5926,12 +5514,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - type-is@~1.6.15: version "1.6.15" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" @@ -6165,10 +5747,6 @@ wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - workerpool@^2.2.1: version "2.3.0" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-2.3.0.tgz#86c5cbe946b55e7dc9d12b1936c8801a6e2d744d" @@ -6187,12 +5765,6 @@ write-file-atomic@^2.0.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - ws@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" From 338680aaf1db1710fc89b88fdf0d072c30292465 Mon Sep 17 00:00:00 2001 From: Matthew Beale Date: Sun, 4 Mar 2018 13:44:06 -0800 Subject: [PATCH 3/3] Implement MU sources and namespaces with expandLocalLookup --- mu-trees/addon/resolvers/fallback/index.js | 4 +- .../addon/resolvers/glimmer-wrapper/index.js | 160 +++++---- .../expand-local-lookup-test.js | 315 ++++++++++++++++++ .../{basic-test.js => resolve-test.js} | 146 +------- 4 files changed, 425 insertions(+), 200 deletions(-) create mode 100644 mu-trees/tests/unit/resolvers/glimmer-wrapper/expand-local-lookup-test.js rename mu-trees/tests/unit/resolvers/glimmer-wrapper/{basic-test.js => resolve-test.js} (82%) diff --git a/mu-trees/addon/resolvers/fallback/index.js b/mu-trees/addon/resolvers/fallback/index.js index 58636dfc..28e01c04 100644 --- a/mu-trees/addon/resolvers/fallback/index.js +++ b/mu-trees/addon/resolvers/fallback/index.js @@ -9,8 +9,8 @@ export default Resolver.extend({ namespace: { modulePrefix: this.config.app.name } }, options)); }, - resolve(name, referrer, targetNamespace) { - let result = this._super(name, referrer, targetNamespace); + resolve(name) { + let result = this._super(name); return result || this._fallback.resolve(this._fallback.normalize(name)); } }); diff --git a/mu-trees/addon/resolvers/glimmer-wrapper/index.js b/mu-trees/addon/resolvers/glimmer-wrapper/index.js index 84d54ad3..9badb1b4 100644 --- a/mu-trees/addon/resolvers/glimmer-wrapper/index.js +++ b/mu-trees/addon/resolvers/glimmer-wrapper/index.js @@ -10,6 +10,60 @@ function slasherize(dotted) { const TEMPLATE_TO_PARTIAL = /^template:(.*\/)?_([\w-]+)/; +function isAbsoluteSpecifier(specifier) { + return specifier.indexOf(':/') !== -1; +} + +function cleanupEmberSpecifier(specifier, source, _namespace) { + let [type, name] = specifier.split(':'); + if (!name) { + return [specifier, null]; + } + + if (type === 'component' && name) { + specifier = `${type}:${name}`; + } else if (type === 'service') { + /* Services may be camelCased */ + specifier = `service:${dasherize(name)}`; + } else if (type === 'route') { + /* Routes may have.dot.paths */ + specifier = `route:${slasherize(name)}`; + } else if (type === 'controller') { + /* Controllers may have.dot.paths */ + specifier = `controller:${slasherize(name)}`; + } else if (type === 'template') { + if (name && name.indexOf('components/') === 0) { + let sliced = name.slice(11); + specifier = `template:${sliced}`; + } else { + /* + * Ember partials are looked up as templates. Here we replace the template + * resolution with a partial resolute when appropriate. Try to keep this + * code as "pay-go" as possible. + */ + let match = TEMPLATE_TO_PARTIAL.exec(specifier); + if (match) { + let namespace = match[1] || ''; + let name = match[2]; + + specifier = `partial:${namespace}${name}`; + } else { + if (source) { + throw new Error(`Cannot look up a route template ${specifier} with a source`); + } + /* + * Templates for routes must be looked up with a source. They may + * have dots.in.paths + */ + specifier = `template`; + source = `route:/${_namespace}/routes/${slasherize(name)}`; + } + } + } + + return [specifier, source]; +} + /* * Wrap the @glimmer/resolver in Ember's resolver API. Although * this code extends from the DefaultResolver, it should never @@ -30,74 +84,58 @@ const Resolver = DefaultResolver.extend({ normalize: null, - resolve(lookupString, referrer, targetNamespace) { - let rootName = targetNamespace ||this._configRootName; - - let [type, name] = lookupString.split(':'); - - /* - * Ember components require their lookupString to be massaged. Make this - * as "pay-go" as possible. - */ - if (referrer) { - // make absolute - let parts = referrer.split(':src/ui/'); - referrer = `${parts[0]}:/${rootName}/${parts[1]}`; - referrer = referrer.split('/template.hbs')[0]; - } else if (targetNamespace) { - // This is only required because: - // https://github.com/glimmerjs/glimmer-di/issues/45 - referrer = `${type}:/${rootName}/`; + expandLocalLookup(specifier, source, namespace) { + if (isAbsoluteSpecifier(specifier)) { + return specifier; // specifier is absolute } - if (name) { - if (type === 'component' && name) { - lookupString = `${type}:${name}`; - } else if (type === 'service') { - /* Services may be camelCased */ - lookupString = `service:${dasherize(name)}`; - } else if (type === 'route') { - /* Routes may have.dot.paths */ - lookupString = `route:${slasherize(name)}`; - } else if (type === 'controller') { - /* Controllers may have.dot.paths */ - lookupString = `controller:${slasherize(name)}`; - } else if (type === 'template') { - if (name && name.indexOf('components/') === 0) { - let sliced = name.slice(11); - lookupString = `template:${sliced}`; - } else { - /* - * Ember partials are looked up as templates. Here we replace the template - * resolution with a partial resolute when appropriate. Try to keep this - * code as "pay-go" as possible. - */ - let match = TEMPLATE_TO_PARTIAL.exec(lookupString); - if (match) { - let namespace = match[1] || ''; - let name = match[2]; - - lookupString = `partial:${namespace}${name}`; - } else { - if (referrer) { - throw new Error(`Cannot look up a route template ${lookupString} with a referrer`); - } - /* - * Templates for routes must be looked up with a referrer. They may - * have dots.in.paths - */ - lookupString = `template`; - referrer = `route:/${rootName}/routes/${slasherize(name)}`; - } - } + if (source || namespace) { + let rootName = namespace || this._configRootName; + + let [type, name] = specifier.split(':'); + + /* + * Ember components require their lookupString to be massaged. Make this + * as "pay-go" as possible. + */ + if (namespace) { + // This is only required because: + // https://github.com/glimmerjs/glimmer-di/issues/45 + source = `${type}:/${rootName}/`; + } else if (source) { + // make absolute + let parts = source.split(':src/ui/'); + source = `${parts[0]}:/${rootName}/${parts[1]}`; + source = source.split('/template.hbs')[0]; + } + + let [_specifier, _source] = cleanupEmberSpecifier(specifier, source, rootName); + + let absoluteSpecifier = this._glimmerResolver.identify(_specifier, _source); + + if (absoluteSpecifier) { + return absoluteSpecifier; + } + + absoluteSpecifier = this._glimmerResolver.identify(_specifier); + + if (absoluteSpecifier) { + return specifier; } } - return this._resolve(lookupString, referrer); + return specifier; }, - _resolve(lookupString, referrer) { - return this._glimmerResolver.resolve(lookupString, referrer); + resolve(specifier) { + let source = null; + if (!isAbsoluteSpecifier(specifier)) { + let [_specifier, _source] = cleanupEmberSpecifier(specifier, source, this._configRootName); + specifier = _specifier; + source = _source; + } + + return this._glimmerResolver.resolve(specifier, source); } }); diff --git a/mu-trees/tests/unit/resolvers/glimmer-wrapper/expand-local-lookup-test.js b/mu-trees/tests/unit/resolvers/glimmer-wrapper/expand-local-lookup-test.js new file mode 100644 index 00000000..af6ac1af --- /dev/null +++ b/mu-trees/tests/unit/resolvers/glimmer-wrapper/expand-local-lookup-test.js @@ -0,0 +1,315 @@ +import { module, test } from 'qunit'; +import Resolver from 'ember-resolver/resolvers/glimmer-wrapper'; +import BasicRegistry from '@glimmer/resolver/module-registries/basic-registry'; + +module('ember-resolver/resolvers/glimmer-wrapper#expandLocalLookup', { + beforeEach() { + this.resolverForEntries = (config, entries) => { + let glimmerModuleRegistry = new BasicRegistry(entries); + return Resolver.create({ + config, + glimmerModuleRegistry + }); + }; + } +}); + +test('Can expand private component template', function(assert) { + let template = {}; + let notTemplate = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + template: { definitiveCollection: 'components' } + }, + collections: { + components: { + group: 'ui', + types: [ 'template' ] + }, + routes: { + group: 'ui', + types: [ 'template' ], + privateCollections: ['components'] + } + } + }, { + 'template:/app/routes/my-page/my-input': notTemplate, + 'template:/app/routes/my-page/-components/my-input': template + }); + + + assert.equal( + resolver.expandLocalLookup('template:components/my-input', 'template:src/ui/routes/my-page'), + 'template:/app/routes/my-page/-components/my-input', + 'relative module specifier with source resolved w/ normalization' + ); +}); + +test('Can expand a local component for a route', function(assert) { + let component = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + component: { definitiveCollection: 'components' }, + route: { definitiveCollection: 'routes' }, + template: { definitiveCollection: 'components' } + }, + collections: { + components: { + group: 'ui', + types: [ 'component', 'template' ] + }, + routes: { + group: 'ui', + types: [ 'route', 'template' ] + } + } + }, { + 'component:/app/routes/posts/-components/my-input': component + }); + + assert.equal( + resolver.expandLocalLookup('component:my-input', 'template:src/ui/routes/posts'), + 'component:/app/routes/posts/-components/my-input', + 'component resolved' + ); + assert.equal( + resolver.expandLocalLookup('component:my-input'), + 'component:my-input', + 'component not resolved at global level' + ); +}); + +test('Can expand a namespaced service lookup', function(assert) { + let service = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + service: { definitiveCollection: 'services' } + }, + collections: { + services: { + types: [ 'service' ] + } + } + }, { + 'service:/other-namespace/services/i18n': service + }); + + assert.equal( + resolver.expandLocalLookup('service:i18n', null, 'other-namespace'), + 'service:/other-namespace/services/i18n', + 'namespaced resolution resolved' + ); +}); + +test('Can expand a namespaced component template', function(assert) { + let template = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + template: { definitiveCollection: 'components' } + }, + collections: { + components: { + group: 'ui', + types: [ 'template' ] + } + } + }, { + 'template:/other-namespace/components/my-component': template + }); + + assert.equal( + resolver.expandLocalLookup('template:components/my-component', null, 'other-namespace'), + 'template:/other-namespace/components/my-component', + 'namespaced resolution resolved' + ); +}); + +test('Can expand a namespaced component object', function(assert) { + let component = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + component: { definitiveCollection: 'components' } + }, + collections: { + components: { + group: 'ui', + types: [ 'component' ] + } + } + }, { + 'component:/other-namespace/components/my-component': component + }); + + assert.equal( + resolver.expandLocalLookup('component:my-component', null, 'other-namespace'), + 'component:/other-namespace/components/my-component', + 'namespaced resolution resolved' + ); +}); + +test('Can expand a local component for another component', function(assert) { + let component = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + component: { definitiveCollection: 'components' }, + route: { definitiveCollection: 'routes' }, + template: { definitiveCollection: 'components' } + }, + collections: { + components: { + group: 'ui', + types: [ 'component', 'template' ] + }, + routes: { + group: 'ui', + types: [ 'route', 'template' ] + } + } + }, { + 'component:/app/components/my-parent/my-input': component + }); + + assert.equal( + resolver.expandLocalLookup('component:my-input', 'template:src/ui/components/my-parent'), + 'component:/app/components/my-parent/my-input', + 'component resolved' + ); + assert.equal( + resolver.expandLocalLookup('component:my-input'), + 'component:my-input', + 'component not resolved at global levelt' + ); +}); + +test('Can expand a local helper for another component', function(assert) { + let helper = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + component: { definitiveCollection: 'components' }, + helper: { definitiveCollection: 'components' } + }, + collections: { + components: { + group: 'ui', + types: [ 'component', 'template' ] + }, + routes: { + group: 'ui', + types: [ 'route', 'template' ] + } + } + }, { + 'helper:/app/components/my-parent/my-input': helper + }); + + assert.equal( + resolver.expandLocalLookup('helper:my-input', 'template:src/ui/components/my-parent'), + 'helper:/app/components/my-parent/my-input', + 'helper resolved' + ); + assert.equal( + resolver.expandLocalLookup('helper:my-input'), + 'helper:my-input', + 'helper not resolved at global levelt' + ); +}); + +// Main addon component and service + +test('Can expand a namespaced main service lookup', function(assert) { + let service = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + service: { definitiveCollection: 'services' } + }, + collections: { + services: { + types: [ 'service' ] + } + } + }, { + 'service:/other-namespace/services/main': service + }); + + assert.equal( + resolver.expandLocalLookup('service:other-namespace'), + 'service:other-namespace', + 'namespaced resolution resolved' + ); +}); + +test('Can expand a namespaced main component template', function(assert) { + let template = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + template: { definitiveCollection: 'components' } + }, + collections: { + components: { + group: 'ui', + types: [ 'template' ] + } + } + }, { + 'template:/other-namespace/components/main': template + }); + + assert.equal( + resolver.expandLocalLookup('template:components/other-namespace'), + 'template:components/other-namespace', + 'namespaced resolution resolved' + ); +}); + +test('Can expand a namespaced component object', function(assert) { + let component = {}; + let resolver = this.resolverForEntries({ + app: { + name: 'example-app' + }, + types: { + component: { definitiveCollection: 'components' } + }, + collections: { + components: { + group: 'ui', + types: [ 'component' ] + } + } + }, { + 'component:/other-namespace/components/main': component + }); + + assert.equal( + resolver.expandLocalLookup('component:other-namespace'), + 'component:other-namespace', + 'namespaced resolution resolved' + ); +}); diff --git a/mu-trees/tests/unit/resolvers/glimmer-wrapper/basic-test.js b/mu-trees/tests/unit/resolvers/glimmer-wrapper/resolve-test.js similarity index 82% rename from mu-trees/tests/unit/resolvers/glimmer-wrapper/basic-test.js rename to mu-trees/tests/unit/resolvers/glimmer-wrapper/resolve-test.js index 70cdfa74..85f9430c 100644 --- a/mu-trees/tests/unit/resolvers/glimmer-wrapper/basic-test.js +++ b/mu-trees/tests/unit/resolvers/glimmer-wrapper/resolve-test.js @@ -2,7 +2,7 @@ import { module, test } from 'qunit'; import Resolver from 'ember-resolver/resolvers/glimmer-wrapper'; import BasicRegistry from '@glimmer/resolver/module-registries/basic-registry'; -module('ember-resolver/resolvers/glimmer-wrapper', { +module('ember-resolver/resolvers/glimmer-wrapper#resolve', { beforeEach() { this.resolverForEntries = (config, entries) => { let glimmerModuleRegistry = new BasicRegistry(entries); @@ -492,51 +492,17 @@ test('Can normalize and resolve a template for route', function(assert) { }); assert.equal( - resolver.resolve('template:parent/child', ''), + resolver.resolve('template:parent/child'), template, 'template resolved' ); assert.equal( - resolver.resolve('template:parent.child', ''), + resolver.resolve('template:parent.child'), template, 'template normalized and resolved' ); }); -test('Can resolve private component template', function(assert) { - let template = {}; - let notTemplate = {}; - let resolver = this.resolverForEntries({ - app: { - name: 'example-app' - }, - types: { - template: { definitiveCollection: 'components' } - }, - collections: { - components: { - group: 'ui', - types: [ 'template' ] - }, - routes: { - group: 'ui', - types: [ 'template' ], - privateCollections: ['components'] - } - } - }, { - 'template:/app/routes/my-page/my-input': notTemplate, - 'template:/app/routes/my-page/-components/my-input': template - }); - - - assert.equal( - resolver.resolve('template:components/my-input', 'template:src/ui/routes/my-page'), - template, - 'relative module specifier with source resolved w/ normalization' - ); -}); - test('Can resolve template in a route correctly', function(assert) { let routeTemplate = {}; let componentTemplate = {}; @@ -613,7 +579,7 @@ test('Does not fall back when resolving route', function(assert) { ); }); -test('Can resolve a local component for a route', function(assert) { +test('Can not resolve a local component for a route without source', function(assert) { let component = {}; let resolver = this.resolverForEntries({ app: { @@ -638,11 +604,6 @@ test('Can resolve a local component for a route', function(assert) { 'component:/app/routes/posts/-components/my-input': component }); - assert.equal( - resolver.resolve('component:my-input', 'template:src/ui/routes/posts'), - component, - 'component resolved' - ); assert.equal( resolver.resolve('component:my-input'), undefined, @@ -650,7 +611,7 @@ test('Can resolve a local component for a route', function(assert) { ); }); -test('Can resolve a local component for another component', function(assert) { +test('Can not resolve a local component for another component without source', function(assert) { let component = {}; let resolver = this.resolverForEntries({ app: { @@ -675,11 +636,6 @@ test('Can resolve a local component for another component', function(assert) { 'component:/app/components/my-parent/my-input': component }); - assert.equal( - resolver.resolve('component:my-input', 'template:src/ui/components/my-parent'), - component, - 'component resolved' - ); assert.equal( resolver.resolve('component:my-input'), undefined, @@ -687,7 +643,7 @@ test('Can resolve a local component for another component', function(assert) { ); }); -test('Can resolve a local helper for another component', function(assert) { +test('Can not resolve a local helper for another component without source', function(assert) { let helper = {}; let resolver = this.resolverForEntries({ app: { @@ -711,11 +667,6 @@ test('Can resolve a local helper for another component', function(assert) { 'helper:/app/components/my-parent/my-input': helper }); - assert.equal( - resolver.resolve('helper:my-input', 'template:src/ui/components/my-parent'), - helper, - 'helper resolved' - ); assert.equal( resolver.resolve('helper:my-input'), undefined, @@ -723,85 +674,6 @@ test('Can resolve a local helper for another component', function(assert) { ); }); -// Namespaces - -test('Can resolve a namespaced service lookup', function(assert) { - let service = {}; - let resolver = this.resolverForEntries({ - app: { - name: 'example-app' - }, - types: { - service: { definitiveCollection: 'services' } - }, - collections: { - services: { - types: [ 'service' ] - } - } - }, { - 'service:/other-namespace/services/i18n': service - }); - - assert.equal( - resolver.resolve('service:i18n', null, 'other-namespace'), - service, - 'namespaced resolution resolved' - ); -}); - -test('Can resolve a namespaced component template', function(assert) { - let template = {}; - let resolver = this.resolverForEntries({ - app: { - name: 'example-app' - }, - types: { - template: { definitiveCollection: 'components' } - }, - collections: { - components: { - group: 'ui', - types: [ 'template' ] - } - } - }, { - 'template:/other-namespace/components/my-component': template - }); - - assert.equal( - resolver.resolve('template:components/my-component', null, 'other-namespace'), - template, - 'namespaced resolution resolved' - ); -}); - -test('Can resolve a namespaced component object', function(assert) { - let component = {}; - let resolver = this.resolverForEntries({ - app: { - name: 'example-app' - }, - types: { - component: { definitiveCollection: 'components' } - }, - collections: { - components: { - group: 'ui', - types: [ 'component' ] - } - } - }, { - 'component:/other-namespace/components/my-component': component - }); - - assert.equal( - resolver.resolve('component:my-component', null, 'other-namespace'), - component, - 'namespaced resolution resolved' - ); -}); - // Main addon component and service test('Can resolve a namespaced main service lookup', function(assert) { @@ -823,7 +695,7 @@ test('Can resolve a namespaced main service lookup', function(assert) { }); assert.equal( - resolver.resolve('service:other-namespace', null), + resolver.resolve('service:other-namespace'), service, 'namespaced resolution resolved' ); @@ -849,7 +721,7 @@ test('Can resolve a namespaced main component template', function(assert) { }); assert.equal( - resolver.resolve('template:components/other-namespace', null), + resolver.resolve('template:components/other-namespace'), template, 'namespaced resolution resolved' ); @@ -875,7 +747,7 @@ test('Can resolve a namespaced component object', function(assert) { }); assert.equal( - resolver.resolve('component:other-namespace', null), + resolver.resolve('component:other-namespace'), component, 'namespaced resolution resolved' );