From 1b552a23c026c7874c3a8104f2417f5f9029f318 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Thu, 6 Jun 2024 10:02:11 -0400
Subject: [PATCH 1/4] Do not use global ember -- internalize template
resolution cache
---
addon/addon/index.js | 10 +++++++---
addon/addon/template-cache.js | 8 ++++++++
.../tests/unit/resolvers/classic/-setup-resolver.js | 8 ++++++++
test-app/tests/unit/resolvers/classic/basic-test.js | 4 ++--
.../tests/unit/resolvers/classic/logging-test.js | 12 ++++++++----
5 files changed, 33 insertions(+), 9 deletions(-)
create mode 100644 addon/addon/template-cache.js
diff --git a/addon/addon/index.js b/addon/addon/index.js
index e62c95f6..9329978e 100644
--- a/addon/addon/index.js
+++ b/addon/addon/index.js
@@ -1,11 +1,13 @@
/* globals requirejs, require */
-import Ember from 'ember';
import { assert, deprecate, warn } from '@ember/debug';
import EmberObject from '@ember/object';
import { dasherize, classify, underscore } from './string';
import { DEBUG } from '@glimmer/env';
import classFactory from './utils/class-factory';
+import { getOwner } from '@ember/owner';
+
+import { TEMPLATES } from './template-cache';
if (typeof requirejs.entries === 'undefined') {
requirejs.entries = requirejs._eak_seen;
@@ -295,7 +297,7 @@ class Resolver extends EmberObject {
resolveTemplate(parsedName) {
let resolved = this.resolveOther(parsedName);
if (resolved == null) {
- resolved = Ember.TEMPLATES[parsedName.fullNameWithoutType];
+ resolved = TEMPLATES[parsedName.fullNameWithoutType];
}
return resolved;
}
@@ -459,7 +461,9 @@ class Resolver extends EmberObject {
// only needed until 1.6.0-beta.2 can be required
_logLookup(found, parsedName, description) {
- if (!Ember.ENV.LOG_MODULE_RESOLVER && !parsedName.root.LOG_RESOLVER) {
+ let owner = getOwner(this);
+ let env = owner?.resolveRegistration?.('config:environment');
+ if (!env?.LOG_MODULE_RESOLVER && !parsedName.root.LOG_RESOLVER) {
return;
}
diff --git a/addon/addon/template-cache.js b/addon/addon/template-cache.js
new file mode 100644
index 00000000..26bcf384
--- /dev/null
+++ b/addon/addon/template-cache.js
@@ -0,0 +1,8 @@
+/**
+ * Originally: https://github.com/emberjs/ember.js/blob/28444d536fa20debef2a67e2f18c5eb11113a4b5/packages/%40ember/-internals/glimmer/lib/template_registry.ts#L9
+ *
+ * import { TEMPLATES } from 'ember';
+ *
+ * Removed for RFC 1003
+ */
+export let TEMPLATES = {};
diff --git a/test-app/tests/unit/resolvers/classic/-setup-resolver.js b/test-app/tests/unit/resolvers/classic/-setup-resolver.js
index 06e85bee..235dcd9d 100644
--- a/test-app/tests/unit/resolvers/classic/-setup-resolver.js
+++ b/test-app/tests/unit/resolvers/classic/-setup-resolver.js
@@ -1,9 +1,13 @@
import Resolver, { ModuleRegistry } from 'ember-resolver';
+import { setOwner } from '@ember/owner';
export let resolver;
export let loader;
export function setupResolver(options = {}) {
+ let owner = options.owner;
+ delete options.owner;
+
if (!options.namespace) {
options.namespace = { modulePrefix: 'appkit' };
}
@@ -22,4 +26,8 @@ export function setupResolver(options = {}) {
};
resolver = Resolver.create(options);
+
+ if (owner) {
+ setOwner(resolver, owner);
+ }
}
diff --git a/test-app/tests/unit/resolvers/classic/basic-test.js b/test-app/tests/unit/resolvers/classic/basic-test.js
index 1e1f9764..847776c9 100644
--- a/test-app/tests/unit/resolvers/classic/basic-test.js
+++ b/test-app/tests/unit/resolvers/classic/basic-test.js
@@ -1,8 +1,8 @@
/* eslint-disable no-console */
-import Ember from 'ember';
import { module, test } from 'qunit';
import { setupResolver, resolver, loader } from './-setup-resolver';
+import { TEMPLATES } from 'ember-resolver/template-cache';
let originalConsoleInfo;
@@ -434,7 +434,7 @@ module('ember-resolver/resolvers/classic', function (hooks) {
});
test('can lookup templates via Ember.TEMPLATES', function (assert) {
- Ember.TEMPLATES['application'] = function () {
+ TEMPLATES['application'] = function () {
return '
herp
';
};
diff --git a/test-app/tests/unit/resolvers/classic/logging-test.js b/test-app/tests/unit/resolvers/classic/logging-test.js
index 78d26a95..ee29edae 100644
--- a/test-app/tests/unit/resolvers/classic/logging-test.js
+++ b/test-app/tests/unit/resolvers/classic/logging-test.js
@@ -1,18 +1,20 @@
-import Ember from 'ember';
import { module, test } from 'qunit';
+import { setupTest } from 'ember-qunit';
import { setupResolver, resolver, loader } from './-setup-resolver';
let originalConsoleInfo, logCalls;
module('Logging', function (hooks) {
+ setupTest(hooks);
+
hooks.beforeEach(function () {
originalConsoleInfo = console ? console.info : null;
logCalls = [];
console.info = function (arg) {
logCalls.push(arg);
};
- setupResolver();
+ setupResolver({ owner: this.owner });
});
hooks.afterEach(function () {
@@ -26,7 +28,8 @@ module('Logging', function (hooks) {
return 'is logged';
});
- Ember.ENV.LOG_MODULE_RESOLVER = true;
+ let env = this.owner.resolveRegistration('config:environment');
+ env.LOG_MODULE_RESOLVER = true;
resolver.resolve('fruit:orange');
@@ -38,7 +41,8 @@ module('Logging', function (hooks) {
return 'is not logged';
});
- Ember.ENV.LOG_MODULE_RESOLVER = false;
+ let env = this.owner.resolveRegistration('config:environment');
+ env.LOG_MODULE_RESOLVER = false;
resolver.resolve('fruit:orange');
From 9d1a0256c8e7ce415ded8fdd2198bd525cf75f2f Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Thu, 6 Jun 2024 15:40:30 -0400
Subject: [PATCH 2/4] Use @embroider/macros to chose the correct get/set Owner
api
---
addon/addon/index.js | 14 +-
addon/package.json | 2 +-
package-lock.json | 148 +++++++-----------
test-app/package.json | 3 +
.../unit/resolvers/classic/-setup-resolver.js | 14 +-
5 files changed, 83 insertions(+), 98 deletions(-)
diff --git a/addon/addon/index.js b/addon/addon/index.js
index 9329978e..86ed92a8 100644
--- a/addon/addon/index.js
+++ b/addon/addon/index.js
@@ -5,7 +5,19 @@ import EmberObject from '@ember/object';
import { dasherize, classify, underscore } from './string';
import { DEBUG } from '@glimmer/env';
import classFactory from './utils/class-factory';
-import { getOwner } from '@ember/owner';
+import {
+ macroCondition,
+ dependencySatisfies,
+ importSync,
+} from '@embroider/macros';
+
+let getOwner;
+
+if (macroCondition(dependencySatisfies('ember-source', '>= 4.11'))) {
+ getOwner = importSync('@ember/owner').getOwner;
+} else {
+ getOwner = importSync('@ember/application').getOwner;
+}
import { TEMPLATES } from './template-cache';
diff --git a/addon/package.json b/addon/package.json
index 70afb0c5..e9756841 100644
--- a/addon/package.json
+++ b/addon/package.json
@@ -23,9 +23,9 @@
},
"scripts": {},
"dependencies": {
+ "@embroider/macros": "^1.16.2",
"ember-cli-babel": "^7.26.11"
},
- "devDependencies": {},
"peerDependencies": {
"ember-source": "^4.8.3 || >= 5.0.0"
},
diff --git a/package-lock.json b/package-lock.json
index 23e7d772..2fd7ee08 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -32,9 +32,9 @@
"version": "11.0.1",
"license": "MIT",
"dependencies": {
+ "@embroider/macros": "^1.16.2",
"ember-cli-babel": "^7.26.11"
},
- "devDependencies": {},
"engines": {
"node": "14.* || 16.* || >= 18"
},
@@ -1866,14 +1866,13 @@
}
},
"node_modules/@embroider/macros": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.10.0.tgz",
- "integrity": "sha512-LMbfQGk/a+f6xtvAv5fq/wf2LRxETnbgSCLUf/z6ebzmuskOUxrke+uP55chF/loWrARi9g6erFQ7RDOUoBMSg==",
- "devOptional": true,
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.16.2.tgz",
+ "integrity": "sha512-V7/6zkPmoZrPmoHKlmMyNmg8mUMdIOH7z4dqygQwWoMJp6EYd6agSLLXsfEkjBPHwTvNmiUd64Ey4dyBcYWhwQ==",
"dependencies": {
- "@embroider/shared-internals": "2.0.0",
+ "@embroider/shared-internals": "2.6.1",
"assert-never": "^1.2.1",
- "babel-import-util": "^1.1.0",
+ "babel-import-util": "^2.0.0",
"ember-cli-babel": "^7.26.6",
"find-up": "^5.0.0",
"lodash": "^4.17.21",
@@ -1882,13 +1881,20 @@
},
"engines": {
"node": "12.* || 14.* || >= 16"
+ },
+ "peerDependencies": {
+ "@glint/template": "^1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@glint/template": {
+ "optional": true
+ }
}
},
"node_modules/@embroider/macros/node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "devOptional": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -1900,16 +1906,17 @@
}
},
"node_modules/@embroider/shared-internals": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.0.0.tgz",
- "integrity": "sha512-qZ2/xky9mWm5YC6noOa6AiAwgISEQ78YTZNv4SNu2PFgEK/H+Ha/3ddngzGSsnXkVnIHZyxIBzhxETonQYHY9g==",
- "devOptional": true,
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.6.1.tgz",
+ "integrity": "sha512-STU1oDP36JQY+zpivyAfXGXadN664d+DOiVNBUW+4AAuWLVxIRWDIuFj8UxzREXZU9trZY8vOhKwKQtfEgdwSg==",
"dependencies": {
- "babel-import-util": "^1.1.0",
+ "babel-import-util": "^2.0.0",
+ "debug": "^4.3.2",
"ember-rfc176-data": "^0.3.17",
"fs-extra": "^9.1.0",
"js-string-escape": "^1.0.1",
"lodash": "^4.17.21",
+ "minimatch": "^3.0.4",
"resolve-package-path": "^4.0.1",
"semver": "^7.3.5",
"typescript-memoize": "^1.0.1"
@@ -1922,7 +1929,6 @@
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "devOptional": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -3860,8 +3866,7 @@
"node_modules/assert-never": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
- "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==",
- "devOptional": true
+ "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
},
"node_modules/assign-symbols": {
"version": "1.0.0",
@@ -3970,7 +3975,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "devOptional": true,
"engines": {
"node": ">= 4.0.0"
}
@@ -4000,10 +4004,9 @@
}
},
"node_modules/babel-import-util": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-1.3.0.tgz",
- "integrity": "sha512-PPzUT17eAI18zn6ek1R3sB4Krc/MbnmT1MkZQFmyhjoaEGBVwNABhfVU9+EKcDSKrrOm9OIpGhjxukx1GCiy1g==",
- "devOptional": true,
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.1.1.tgz",
+ "integrity": "sha512-3qBQWRjzP9NreSH/YrOEU1Lj5F60+pWSLP0kIdCWxjFHH7pX2YPHIxQ67el4gnMNfYoDxSDGcT0zpVlZ+gVtQA==",
"engines": {
"node": ">= 12.*"
}
@@ -4092,15 +4095,6 @@
"node": ">= 12.*"
}
},
- "node_modules/babel-plugin-ember-template-compilation/node_modules/babel-import-util": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz",
- "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==",
- "devOptional": true,
- "engines": {
- "node": ">= 12.*"
- }
- },
"node_modules/babel-plugin-filter-imports": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/babel-plugin-filter-imports/-/babel-plugin-filter-imports-4.0.0.tgz",
@@ -12556,7 +12550,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "devOptional": true,
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -12572,7 +12565,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "devOptional": true,
"engines": {
"node": ">=8"
}
@@ -12834,7 +12826,6 @@
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "devOptional": true,
"dependencies": {
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
@@ -14936,7 +14927,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
"integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==",
- "devOptional": true,
"engines": {
"node": ">= 0.8"
}
@@ -15023,7 +15013,6 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "devOptional": true,
"dependencies": {
"universalify": "^2.0.0"
},
@@ -15565,7 +15554,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "devOptional": true,
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -15816,7 +15804,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "devOptional": true,
"dependencies": {
"yallist": "^4.0.0"
},
@@ -17880,7 +17867,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "devOptional": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -17895,7 +17881,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "devOptional": true,
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -20116,7 +20101,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/resolve-package-path/-/resolve-package-path-4.0.3.tgz",
"integrity": "sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA==",
- "devOptional": true,
"dependencies": {
"path-root": "^0.1.1"
},
@@ -22432,8 +22416,7 @@
"node_modules/typescript-memoize": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/typescript-memoize/-/typescript-memoize-1.1.0.tgz",
- "integrity": "sha512-LQPKVXK8QrBBkL/zclE6YgSWn0I8ew5m0Lf+XL00IwMhlotqRLlzHV+BRrljVQIc+NohUAuQP7mg4HQwrx5Xbg==",
- "devOptional": true
+ "integrity": "sha512-LQPKVXK8QrBBkL/zclE6YgSWn0I8ew5m0Lf+XL00IwMhlotqRLlzHV+BRrljVQIc+NohUAuQP7mg4HQwrx5Xbg=="
},
"node_modules/uc.micro": {
"version": "1.0.6",
@@ -22605,7 +22588,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "devOptional": true,
"engines": {
"node": ">= 10.0.0"
}
@@ -23547,8 +23529,7 @@
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "devOptional": true
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/yam": {
"version": "1.0.0",
@@ -23641,7 +23622,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "devOptional": true,
"engines": {
"node": ">=10"
},
@@ -23652,6 +23632,9 @@
"test-app": {
"version": "11.0.1",
"license": "MIT",
+ "dependencies": {
+ "@embroider/macros": "^1.16.2"
+ },
"devDependencies": {
"@babel/eslint-parser": "^7.21.3",
"@babel/plugin-proposal-decorators": "^7.21.0",
@@ -24934,14 +24917,13 @@
}
},
"@embroider/macros": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.10.0.tgz",
- "integrity": "sha512-LMbfQGk/a+f6xtvAv5fq/wf2LRxETnbgSCLUf/z6ebzmuskOUxrke+uP55chF/loWrARi9g6erFQ7RDOUoBMSg==",
- "devOptional": true,
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/@embroider/macros/-/macros-1.16.2.tgz",
+ "integrity": "sha512-V7/6zkPmoZrPmoHKlmMyNmg8mUMdIOH7z4dqygQwWoMJp6EYd6agSLLXsfEkjBPHwTvNmiUd64Ey4dyBcYWhwQ==",
"requires": {
- "@embroider/shared-internals": "2.0.0",
+ "@embroider/shared-internals": "2.6.1",
"assert-never": "^1.2.1",
- "babel-import-util": "^1.1.0",
+ "babel-import-util": "^2.0.0",
"ember-cli-babel": "^7.26.6",
"find-up": "^5.0.0",
"lodash": "^4.17.21",
@@ -24953,7 +24935,6 @@
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "devOptional": true,
"requires": {
"lru-cache": "^6.0.0"
}
@@ -24961,16 +24942,17 @@
}
},
"@embroider/shared-internals": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.0.0.tgz",
- "integrity": "sha512-qZ2/xky9mWm5YC6noOa6AiAwgISEQ78YTZNv4SNu2PFgEK/H+Ha/3ddngzGSsnXkVnIHZyxIBzhxETonQYHY9g==",
- "devOptional": true,
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@embroider/shared-internals/-/shared-internals-2.6.1.tgz",
+ "integrity": "sha512-STU1oDP36JQY+zpivyAfXGXadN664d+DOiVNBUW+4AAuWLVxIRWDIuFj8UxzREXZU9trZY8vOhKwKQtfEgdwSg==",
"requires": {
- "babel-import-util": "^1.1.0",
+ "babel-import-util": "^2.0.0",
+ "debug": "^4.3.2",
"ember-rfc176-data": "^0.3.17",
"fs-extra": "^9.1.0",
"js-string-escape": "^1.0.1",
"lodash": "^4.17.21",
+ "minimatch": "^3.0.4",
"resolve-package-path": "^4.0.1",
"semver": "^7.3.5",
"typescript-memoize": "^1.0.1"
@@ -24980,7 +24962,6 @@
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "devOptional": true,
"requires": {
"lru-cache": "^6.0.0"
}
@@ -26571,8 +26552,7 @@
"assert-never": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
- "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==",
- "devOptional": true
+ "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
},
"assign-symbols": {
"version": "1.0.0",
@@ -26672,8 +26652,7 @@
"at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "devOptional": true
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
},
"atob": {
"version": "2.1.2",
@@ -26688,10 +26667,9 @@
"dev": true
},
"babel-import-util": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-1.3.0.tgz",
- "integrity": "sha512-PPzUT17eAI18zn6ek1R3sB4Krc/MbnmT1MkZQFmyhjoaEGBVwNABhfVU9+EKcDSKrrOm9OIpGhjxukx1GCiy1g==",
- "devOptional": true
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.1.1.tgz",
+ "integrity": "sha512-3qBQWRjzP9NreSH/YrOEU1Lj5F60+pWSLP0kIdCWxjFHH7pX2YPHIxQ67el4gnMNfYoDxSDGcT0zpVlZ+gVtQA=="
},
"babel-loader": {
"version": "8.2.5",
@@ -26752,14 +26730,6 @@
"requires": {
"@glimmer/syntax": "^0.84.3",
"babel-import-util": "^2.0.0"
- },
- "dependencies": {
- "babel-import-util": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/babel-import-util/-/babel-import-util-2.0.0.tgz",
- "integrity": "sha512-pkWynbLwru0RZmA9iKeQL63+CkkW0RCP3kL5njCtudd6YPUKb5Pa0kL4fb3bmuKn2QDBFwY5mvvhEK/+jv2Ynw==",
- "devOptional": true
- }
}
},
"babel-plugin-filter-imports": {
@@ -31624,6 +31594,7 @@
"ember-resolver": {
"version": "file:addon",
"requires": {
+ "@embroider/macros": "^1.16.2",
"ember-cli-babel": "^7.26.11"
}
},
@@ -33430,7 +33401,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "devOptional": true,
"requires": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -33439,8 +33409,7 @@
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "devOptional": true
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
}
}
},
@@ -33648,7 +33617,6 @@
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "devOptional": true,
"requires": {
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
@@ -35238,8 +35206,7 @@
"js-string-escape": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
- "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==",
- "devOptional": true
+ "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg=="
},
"js-tokens": {
"version": "4.0.0",
@@ -35308,7 +35275,6 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "devOptional": true,
"requires": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
@@ -35717,7 +35683,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "devOptional": true,
"requires": {
"p-locate": "^5.0.0"
}
@@ -35956,7 +35921,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "devOptional": true,
"requires": {
"yallist": "^4.0.0"
}
@@ -37412,7 +37376,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "devOptional": true,
"requires": {
"yocto-queue": "^0.1.0"
}
@@ -37421,7 +37384,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "devOptional": true,
"requires": {
"p-limit": "^3.0.2"
}
@@ -39017,7 +38979,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/resolve-package-path/-/resolve-package-path-4.0.3.tgz",
"integrity": "sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA==",
- "devOptional": true,
"requires": {
"path-root": "^0.1.1"
}
@@ -40450,6 +40411,7 @@
"@babel/plugin-proposal-decorators": "^7.21.0",
"@ember/optional-features": "^2.0.0",
"@ember/test-helpers": "^2.8.1",
+ "@embroider/macros": "*",
"@embroider/test-setup": "^2.1.1",
"broccoli-asset-rev": "^3.0.0",
"ember-auto-import": "^2.6.3",
@@ -40884,8 +40846,7 @@
"typescript-memoize": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/typescript-memoize/-/typescript-memoize-1.1.0.tgz",
- "integrity": "sha512-LQPKVXK8QrBBkL/zclE6YgSWn0I8ew5m0Lf+XL00IwMhlotqRLlzHV+BRrljVQIc+NohUAuQP7mg4HQwrx5Xbg==",
- "devOptional": true
+ "integrity": "sha512-LQPKVXK8QrBBkL/zclE6YgSWn0I8ew5m0Lf+XL00IwMhlotqRLlzHV+BRrljVQIc+NohUAuQP7mg4HQwrx5Xbg=="
},
"uc.micro": {
"version": "1.0.6",
@@ -41023,8 +40984,7 @@
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "devOptional": true
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
},
"unpipe": {
"version": "1.0.0",
@@ -41709,8 +41669,7 @@
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "devOptional": true
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"yam": {
"version": "1.0.0",
@@ -41788,8 +41747,7 @@
"yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "devOptional": true
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
}
}
}
diff --git a/test-app/package.json b/test-app/package.json
index 5d41894d..b013725a 100644
--- a/test-app/package.json
+++ b/test-app/package.json
@@ -70,5 +70,8 @@
},
"volta": {
"extends": "../package.json"
+ },
+ "dependencies": {
+ "@embroider/macros": "^1.16.2"
}
}
diff --git a/test-app/tests/unit/resolvers/classic/-setup-resolver.js b/test-app/tests/unit/resolvers/classic/-setup-resolver.js
index 235dcd9d..67b9f768 100644
--- a/test-app/tests/unit/resolvers/classic/-setup-resolver.js
+++ b/test-app/tests/unit/resolvers/classic/-setup-resolver.js
@@ -1,5 +1,17 @@
import Resolver, { ModuleRegistry } from 'ember-resolver';
-import { setOwner } from '@ember/owner';
+import {
+ macroCondition,
+ dependencySatisfies,
+ importSync,
+} from '@embroider/macros';
+
+let setOwner;
+
+if (macroCondition(dependencySatisfies('ember-source', '>= 4.11'))) {
+ setOwner = importSync('@ember/owner').setOwner;
+} else {
+ setOwner = importSync('@ember/application').setOwner;
+}
export let resolver;
export let loader;
From 7497979f699ba014853d5fede0d8c70e93e274b6 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Fri, 7 Jun 2024 11:37:48 -0400
Subject: [PATCH 3/4] Support only 4.12 (LTS) or higher, delete a bunch of
code, remove macros, etc
---
.github/workflows/ci-build.yml | 2 --
addon/addon/index.js | 21 ++-----------------
addon/addon/template-cache.js | 8 -------
addon/package.json | 1 -
package-lock.json | 4 +---
test-app/config/ember-try.js | 16 --------------
.../unit/resolvers/classic/-setup-resolver.js | 13 +-----------
7 files changed, 4 insertions(+), 61 deletions(-)
delete mode 100644 addon/addon/template-cache.js
diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml
index bf870b4d..6ba5af07 100644
--- a/.github/workflows/ci-build.yml
+++ b/.github/workflows/ci-build.yml
@@ -66,8 +66,6 @@ jobs:
fail-fast: false
matrix:
ember-try-scenario:
- - ember-lts-4.4
- - ember-lts-4.8
- ember-lts-4.12
- ember-lts-5.4
- ember-lts-5.8
diff --git a/addon/addon/index.js b/addon/addon/index.js
index 86ed92a8..01c52793 100644
--- a/addon/addon/index.js
+++ b/addon/addon/index.js
@@ -5,21 +5,8 @@ import EmberObject from '@ember/object';
import { dasherize, classify, underscore } from './string';
import { DEBUG } from '@glimmer/env';
import classFactory from './utils/class-factory';
-import {
- macroCondition,
- dependencySatisfies,
- importSync,
-} from '@embroider/macros';
-
-let getOwner;
-
-if (macroCondition(dependencySatisfies('ember-source', '>= 4.11'))) {
- getOwner = importSync('@ember/owner').getOwner;
-} else {
- getOwner = importSync('@ember/application').getOwner;
-}
-import { TEMPLATES } from './template-cache';
+import { getOwner } from '@ember/owner';
if (typeof requirejs.entries === 'undefined') {
requirejs.entries = requirejs._eak_seen;
@@ -307,11 +294,7 @@ class Resolver extends EmberObject {
}
resolveTemplate(parsedName) {
- let resolved = this.resolveOther(parsedName);
- if (resolved == null) {
- resolved = TEMPLATES[parsedName.fullNameWithoutType];
- }
- return resolved;
+ return this.resolveOther(parsedName);
}
mainModuleName(parsedName) {
diff --git a/addon/addon/template-cache.js b/addon/addon/template-cache.js
deleted file mode 100644
index 26bcf384..00000000
--- a/addon/addon/template-cache.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Originally: https://github.com/emberjs/ember.js/blob/28444d536fa20debef2a67e2f18c5eb11113a4b5/packages/%40ember/-internals/glimmer/lib/template_registry.ts#L9
- *
- * import { TEMPLATES } from 'ember';
- *
- * Removed for RFC 1003
- */
-export let TEMPLATES = {};
diff --git a/addon/package.json b/addon/package.json
index e9756841..6e18c354 100644
--- a/addon/package.json
+++ b/addon/package.json
@@ -23,7 +23,6 @@
},
"scripts": {},
"dependencies": {
- "@embroider/macros": "^1.16.2",
"ember-cli-babel": "^7.26.11"
},
"peerDependencies": {
diff --git a/package-lock.json b/package-lock.json
index 2fd7ee08..724e2ce5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -32,7 +32,6 @@
"version": "11.0.1",
"license": "MIT",
"dependencies": {
- "@embroider/macros": "^1.16.2",
"ember-cli-babel": "^7.26.11"
},
"engines": {
@@ -31594,7 +31593,6 @@
"ember-resolver": {
"version": "file:addon",
"requires": {
- "@embroider/macros": "^1.16.2",
"ember-cli-babel": "^7.26.11"
}
},
@@ -40411,7 +40409,7 @@
"@babel/plugin-proposal-decorators": "^7.21.0",
"@ember/optional-features": "^2.0.0",
"@ember/test-helpers": "^2.8.1",
- "@embroider/macros": "*",
+ "@embroider/macros": "^1.16.2",
"@embroider/test-setup": "^2.1.1",
"broccoli-asset-rev": "^3.0.0",
"ember-auto-import": "^2.6.3",
diff --git a/test-app/config/ember-try.js b/test-app/config/ember-try.js
index 73e6525c..b657a453 100644
--- a/test-app/config/ember-try.js
+++ b/test-app/config/ember-try.js
@@ -42,22 +42,6 @@ module.exports = async function () {
},
scenarios: [
- {
- name: 'ember-lts-4.4',
- npm: {
- devDependencies: {
- 'ember-source': '~4.4.0',
- },
- },
- },
- {
- name: 'ember-lts-4.8',
- npm: {
- devDependencies: {
- 'ember-source': '~4.8.0',
- },
- },
- },
{
name: 'ember-lts-4.12',
npm: {
diff --git a/test-app/tests/unit/resolvers/classic/-setup-resolver.js b/test-app/tests/unit/resolvers/classic/-setup-resolver.js
index 67b9f768..f1b8808f 100644
--- a/test-app/tests/unit/resolvers/classic/-setup-resolver.js
+++ b/test-app/tests/unit/resolvers/classic/-setup-resolver.js
@@ -1,17 +1,6 @@
import Resolver, { ModuleRegistry } from 'ember-resolver';
-import {
- macroCondition,
- dependencySatisfies,
- importSync,
-} from '@embroider/macros';
-let setOwner;
-
-if (macroCondition(dependencySatisfies('ember-source', '>= 4.11'))) {
- setOwner = importSync('@ember/owner').setOwner;
-} else {
- setOwner = importSync('@ember/application').setOwner;
-}
+import { setOwner } from '@ember/owner';
export let resolver;
export let loader;
From fdd1e4ab3e8cd74a56dfb13bbf559a4d260cbf43 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Fri, 7 Jun 2024 11:39:03 -0400
Subject: [PATCH 4/4] Remove test occurance of TEMPLATES
---
test-app/tests/unit/resolvers/classic/basic-test.js | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/test-app/tests/unit/resolvers/classic/basic-test.js b/test-app/tests/unit/resolvers/classic/basic-test.js
index 847776c9..a35b9bcc 100644
--- a/test-app/tests/unit/resolvers/classic/basic-test.js
+++ b/test-app/tests/unit/resolvers/classic/basic-test.js
@@ -2,7 +2,6 @@
import { module, test } from 'qunit';
import { setupResolver, resolver, loader } from './-setup-resolver';
-import { TEMPLATES } from 'ember-resolver/template-cache';
let originalConsoleInfo;
@@ -433,15 +432,6 @@ module('ember-resolver/resolvers/classic', function (hooks) {
// assert.expectDeprecation('Modules should not contain underscores. Attempted to lookup "appkit/bands/-steve-miller-band" which was not found. Please rename "appkit/bands/_steve-miller-band" to "appkit/bands/-steve-miller-band" instead.');
});
- test('can lookup templates via Ember.TEMPLATES', function (assert) {
- TEMPLATES['application'] = function () {
- return 'herp
';
- };
-
- var template = resolver.resolve('template:application');
- assert.ok(template, 'template should resolve');
- });
-
test('it provides eachForType which invokes the callback for each item found', function (assert) {
function orange() {}
loader.define('appkit/fruits/orange', [], function () {