From 4e7a357d9a2d4748968f90b12c74e5f1009aeb89 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sun, 5 Oct 2025 11:29:04 -0400
Subject: [PATCH 01/12] begin docs-app
---
files/docs-app/app.gts | 0
files/docs-app/styles.css | 0
files/index.html | 24 ++++++++++++++++++++++++
files/package.json | 1 +
4 files changed, 25 insertions(+)
create mode 100644 files/docs-app/app.gts
create mode 100644 files/docs-app/styles.css
create mode 100644 files/index.html
diff --git a/files/docs-app/app.gts b/files/docs-app/app.gts
new file mode 100644
index 0000000..e69de29
diff --git a/files/docs-app/styles.css b/files/docs-app/styles.css
new file mode 100644
index 0000000..e69de29
diff --git a/files/index.html b/files/index.html
new file mode 100644
index 0000000..1d8becf
--- /dev/null
+++ b/files/index.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+ Docs App
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/package.json b/files/package.json
index a4bdcba..b58938d 100644
--- a/files/package.json
+++ b/files/package.json
@@ -84,6 +84,7 @@
"main": "addon-main.cjs"
},
"imports": {
+ "#docs-app/*": "./docs-app/*",
"#src/*": "./src/*"
},
"exports": {
From cd69db4d3027764156b817243b93231779c38860 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sun, 5 Oct 2025 11:57:16 -0400
Subject: [PATCH 02/12] Add some boilerplate
---
files/docs-app/app.gts | 21 +++++++++++++++++++++
files/docs-app/templates/application.gts | 5 +++++
files/tests/test-helper.__ext__ | 10 ++++++----
3 files changed, 32 insertions(+), 4 deletions(-)
create mode 100644 files/docs-app/templates/application.gts
diff --git a/files/docs-app/app.gts b/files/docs-app/app.gts
index e69de29..f8239e1 100644
--- a/files/docs-app/app.gts
+++ b/files/docs-app/app.gts
@@ -0,0 +1,21 @@
+import EmberApp from 'ember-strict-application-resolver';
+import EmberRouter from '@ember/routing/router';
+import PageTitleService from 'ember-page-title/services/page-title';
+
+class Router extends EmberRouter {
+ location = 'history';
+ rootURL = '/';
+}
+
+export const docsAppRegistry = {
+ './router': Router,
+ './services/page-title': PageTitleService,
+ // add any custom services here
+ // import.meta.glob('./services/*', { eager: true }),
+}
+
+export class App extends EmberApp {
+ modules = docsAppRegistry;
+}
+
+Router.map(function() { });
diff --git a/files/docs-app/templates/application.gts b/files/docs-app/templates/application.gts
new file mode 100644
index 0000000..f8a4b51
--- /dev/null
+++ b/files/docs-app/templates/application.gts
@@ -0,0 +1,5 @@
+const greeting = 'hello';
+
+
+ {{ greeting }}, world!
+
diff --git a/files/tests/test-helper.__ext__ b/files/tests/test-helper.__ext__
index 7ff84dd..ac5a512 100644
--- a/files/tests/test-helper.__ext__
+++ b/files/tests/test-helper.__ext__
@@ -1,19 +1,21 @@
-import EmberApp from 'ember-strict-application-resolver';
import EmberRouter from '@ember/routing/router';
import * as QUnit from 'qunit';
import { setApplication } from '@ember/test-helpers';
import { setup } from 'qunit-dom';
import { start as qunitStart, setupEmberOnerrorValidation } from 'ember-qunit';
+import { App, docsAppRegistry } from '#dosc-app/app';
+
class Router extends EmberRouter {
location = 'none';
rootURL = '/';
}
-class TestApp extends EmberApp {
+class TestApp extends App {
modules = {
- './router': { default: Router },
- // add any custom services here
+ ...docsAppRegistry,
+ './router': Router,
+ // add any overrides here
// import.meta.glob('./services/*', { eager: true }),
};
}
From 14519cfdd439da40b2b9760a77ffd1390a0d0e6f Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 09:35:09 -0400
Subject: [PATCH 03/12] Re-organize a bit
---
files/demo-app/app.gts | 32 +++++++++++++++++++
files/{docs-app => demo-app}/styles.css | 0
.../templates/application.gts | 0
files/docs-app/app.gts | 21 ------------
files/tests/test-helper.__ext__ | 10 +++---
5 files changed, 36 insertions(+), 27 deletions(-)
create mode 100644 files/demo-app/app.gts
rename files/{docs-app => demo-app}/styles.css (100%)
rename files/{docs-app => demo-app}/templates/application.gts (100%)
delete mode 100644 files/docs-app/app.gts
diff --git a/files/demo-app/app.gts b/files/demo-app/app.gts
new file mode 100644
index 0000000..3f110a2
--- /dev/null
+++ b/files/demo-app/app.gts
@@ -0,0 +1,32 @@
+import EmberApp from 'ember-strict-application-resolver';
+import EmberRouter from '@ember/routing/router';
+import PageTitleService from 'ember-page-title/services/page-title';
+
+class Router extends EmberRouter {
+ location = 'history';
+ rootURL = '/';
+}
+
+export class App extends EmberApp {
+ /**
+ * Any services or anything from the addon that needs to be in the app-tree registry
+ * will need to be manually specified here.
+ *
+ * Techniques to avoid needing this:
+ * - private services
+ * - require the consuming app import and configure themselves
+ * (which is what we're emulating here)
+ */
+ modules = {
+ './router': Router,
+ './services/page-title': PageTitleService,
+ /**
+ * NOTE: this glob will import everything matching the glob,
+ * and includes non-services in the services directory.
+ */
+ ...import.meta.glob('./services/**/*', { eager: true }),
+ ...import.meta.glob('./templates/**/*', { eager: true }),
+ };
+}
+
+Router.map(function() { });
diff --git a/files/docs-app/styles.css b/files/demo-app/styles.css
similarity index 100%
rename from files/docs-app/styles.css
rename to files/demo-app/styles.css
diff --git a/files/docs-app/templates/application.gts b/files/demo-app/templates/application.gts
similarity index 100%
rename from files/docs-app/templates/application.gts
rename to files/demo-app/templates/application.gts
diff --git a/files/docs-app/app.gts b/files/docs-app/app.gts
deleted file mode 100644
index f8239e1..0000000
--- a/files/docs-app/app.gts
+++ /dev/null
@@ -1,21 +0,0 @@
-import EmberApp from 'ember-strict-application-resolver';
-import EmberRouter from '@ember/routing/router';
-import PageTitleService from 'ember-page-title/services/page-title';
-
-class Router extends EmberRouter {
- location = 'history';
- rootURL = '/';
-}
-
-export const docsAppRegistry = {
- './router': Router,
- './services/page-title': PageTitleService,
- // add any custom services here
- // import.meta.glob('./services/*', { eager: true }),
-}
-
-export class App extends EmberApp {
- modules = docsAppRegistry;
-}
-
-Router.map(function() { });
diff --git a/files/tests/test-helper.__ext__ b/files/tests/test-helper.__ext__
index ac5a512..7ff84dd 100644
--- a/files/tests/test-helper.__ext__
+++ b/files/tests/test-helper.__ext__
@@ -1,21 +1,19 @@
+import EmberApp from 'ember-strict-application-resolver';
import EmberRouter from '@ember/routing/router';
import * as QUnit from 'qunit';
import { setApplication } from '@ember/test-helpers';
import { setup } from 'qunit-dom';
import { start as qunitStart, setupEmberOnerrorValidation } from 'ember-qunit';
-import { App, docsAppRegistry } from '#dosc-app/app';
-
class Router extends EmberRouter {
location = 'none';
rootURL = '/';
}
-class TestApp extends App {
+class TestApp extends EmberApp {
modules = {
- ...docsAppRegistry,
- './router': Router,
- // add any overrides here
+ './router': { default: Router },
+ // add any custom services here
// import.meta.glob('./services/*', { eager: true }),
};
}
From 7c960022d558f33aab703a145fc631cac6c9eee9 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 09:35:49 -0400
Subject: [PATCH 04/12] Rename
---
files/index.html | 2 +-
files/package.json | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/files/index.html b/files/index.html
index 1d8becf..8e0e8b4 100644
--- a/files/index.html
+++ b/files/index.html
@@ -15,7 +15,7 @@
diff --git a/files/package.json b/files/package.json
index b58938d..a4bdcba 100644
--- a/files/package.json
+++ b/files/package.json
@@ -84,7 +84,6 @@
"main": "addon-main.cjs"
},
"imports": {
- "#docs-app/*": "./docs-app/*",
"#src/*": "./src/*"
},
"exports": {
From 5d8140c703b7013c49b053a9fee044d6b8f1e0ae Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 09:38:55 -0400
Subject: [PATCH 05/12] More comments
---
files/demo-app/app.gts | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/files/demo-app/app.gts b/files/demo-app/app.gts
index 3f110a2..59d02e5 100644
--- a/files/demo-app/app.gts
+++ b/files/demo-app/app.gts
@@ -25,6 +25,12 @@ export class App extends EmberApp {
* and includes non-services in the services directory.
*/
...import.meta.glob('./services/**/*', { eager: true }),
+ /**
+ * These imports are not magic, but we do require that all entries in the
+ * modules object match a ./[type]/[name] pattern.
+ *
+ * See: https://rfcs.emberjs.com/id/1132-default-strict-resolver
+ */
...import.meta.glob('./templates/**/*', { eager: true }),
};
}
From e8ca935a4bd311682e98c5de3d46d250643086ed Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 10:10:16 -0400
Subject: [PATCH 06/12] Formatting
---
.prettierrc.cjs | 1 +
files/demo-app/templates/application.gts | 2 +-
package.json | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/.prettierrc.cjs b/.prettierrc.cjs
index a50563c..b23cc88 100644
--- a/.prettierrc.cjs
+++ b/.prettierrc.cjs
@@ -2,6 +2,7 @@
module.exports = {
printWidth: 100,
+ plugins: ['prettier-plugin-ember-template-tag'],
overrides: [
{
files: '*.{js,ts,mjs,mts,cjs,cts}',
diff --git a/files/demo-app/templates/application.gts b/files/demo-app/templates/application.gts
index f8a4b51..5fdabe2 100644
--- a/files/demo-app/templates/application.gts
+++ b/files/demo-app/templates/application.gts
@@ -1,5 +1,5 @@
const greeting = 'hello';
- {{ greeting }}, world!
+ {{greeting}}, world!
diff --git a/package.json b/package.json
index b7cb254..f4067cb 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
},
"devDependencies": {
"prettier": "^3.5.3",
+ "prettier-plugin-ember-template-tag": "2.1.0",
"release-plan": "^0.16.0"
},
"dependencies": {
From 736410c551afce0e193cbfcfd3acaa5b298f266b Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 10:11:42 -0400
Subject: [PATCH 07/12] Lockfile
---
pnpm-lock.yaml | 213 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 213 insertions(+)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4912304..68060fd 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -15,6 +15,9 @@ importers:
prettier:
specifier: ^3.5.3
version: 3.5.3
+ prettier-plugin-ember-template-tag:
+ specifier: 2.1.0
+ version: 2.1.0(prettier@3.5.3)
release-plan:
specifier: ^0.16.0
version: 0.16.0
@@ -68,18 +71,34 @@ packages:
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
engines: {node: '>=6.9.0'}
+ '@babel/code-frame@7.27.1':
+ resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/compat-data@7.26.8':
resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
engines: {node: '>=6.9.0'}
+ '@babel/compat-data@7.28.4':
+ resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/core@7.26.10':
resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==}
engines: {node: '>=6.9.0'}
+ '@babel/core@7.28.4':
+ resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/generator@7.27.0':
resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==}
engines: {node: '>=6.9.0'}
+ '@babel/generator@7.28.3':
+ resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-annotate-as-pure@7.25.9':
resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==}
engines: {node: '>=6.9.0'}
@@ -88,12 +107,20 @@ packages:
resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-compilation-targets@7.27.2':
+ resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-create-class-features-plugin@7.27.0':
resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-globals@7.28.0':
+ resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-member-expression-to-functions@7.25.9':
resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==}
engines: {node: '>=6.9.0'}
@@ -102,12 +129,22 @@ packages:
resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-module-imports@7.27.1':
+ resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-transforms@7.26.0':
resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-module-transforms@7.28.3':
+ resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
'@babel/helper-optimise-call-expression@7.25.9':
resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==}
engines: {node: '>=6.9.0'}
@@ -130,23 +167,44 @@ packages:
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-identifier@7.25.9':
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-option@7.25.9':
resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-option@7.27.1':
+ resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helpers@7.27.0':
resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==}
engines: {node: '>=6.9.0'}
+ '@babel/helpers@7.28.4':
+ resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
+ engines: {node: '>=6.9.0'}
+
'@babel/parser@7.27.0':
resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==}
engines: {node: '>=6.0.0'}
hasBin: true
+ '@babel/parser@7.28.4':
+ resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/plugin-syntax-decorators@7.25.9':
resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==}
engines: {node: '>=6.9.0'}
@@ -173,14 +231,26 @@ packages:
resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==}
engines: {node: '>=6.9.0'}
+ '@babel/template@7.27.2':
+ resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/traverse@7.27.0':
resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==}
engines: {node: '>=6.9.0'}
+ '@babel/traverse@7.28.4':
+ resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/types@7.27.0':
resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.28.4':
+ resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
+ engines: {node: '>=6.9.0'}
+
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
@@ -366,10 +436,16 @@ packages:
resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
engines: {node: '>=8'}
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -384,6 +460,9 @@ packages:
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
'@manypkg/find-root@2.2.3':
resolution: {integrity: sha512-jtEZKczWTueJYHjGpxU3KJQ08Gsrf4r6Q2GjmPp/RGk5leeYAA1eyDADSAF+KVCsQ6EwZd/FMcOFCoMhtqdCtQ==}
engines: {node: '>=14.18.0'}
@@ -1419,6 +1498,9 @@ packages:
content-tag@3.1.2:
resolution: {integrity: sha512-Z+MGhZfnFFKzYC+pUTWXnoDYhfiXP9ojZe3JbwsYufmDuoeq2EvuDyeFAJ/RnKokUwz5s9bQhDOrbvSYRShcrQ==}
+ content-tag@4.0.0:
+ resolution: {integrity: sha512-qqJiY9nueYAI396MOmfOk+w/0KL6ERKxANQcSKcR0CrNTc38yT//b73l+WHr9brZx57bFHNaW7a/6Yll0bn95w==}
+
content-type@1.0.5:
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
engines: {node: '>= 0.6'}
@@ -3169,6 +3251,12 @@ packages:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
+ prettier-plugin-ember-template-tag@2.1.0:
+ resolution: {integrity: sha512-Ium+m2zHSZKzRFt1Shn+sv8j1BzfFWP3E0tZeKTKP1U7v/tMyLuQNBRyRCJ7REdKc9bWkIJG/hCSf0CKqCVU1w==}
+ engines: {node: 18.* || >= 20}
+ peerDependencies:
+ prettier: '>= 3.0.0'
+
prettier@2.8.8:
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
engines: {node: '>=10.13.0'}
@@ -4213,8 +4301,16 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
+ '@babel/code-frame@7.27.1':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.27.1
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
'@babel/compat-data@7.26.8': {}
+ '@babel/compat-data@7.28.4': {}
+
'@babel/core@7.26.10':
dependencies:
'@ampproject/remapping': 2.3.0
@@ -4235,6 +4331,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/core@7.28.4':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.3
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/helpers': 7.28.4
+ '@babel/parser': 7.28.4
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
+ '@jridgewell/remapping': 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.0
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/generator@7.27.0':
dependencies:
'@babel/parser': 7.27.0
@@ -4243,6 +4359,14 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.25
jsesc: 3.1.0
+ '@babel/generator@7.28.3':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ jsesc: 3.1.0
+
'@babel/helper-annotate-as-pure@7.25.9':
dependencies:
'@babel/types': 7.27.0
@@ -4255,6 +4379,14 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
+ '@babel/helper-compilation-targets@7.27.2':
+ dependencies:
+ '@babel/compat-data': 7.28.4
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.24.4
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
'@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
@@ -4268,6 +4400,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-globals@7.28.0': {}
+
'@babel/helper-member-expression-to-functions@7.25.9':
dependencies:
'@babel/traverse': 7.27.0
@@ -4282,6 +4416,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-imports@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
@@ -4291,6 +4432,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)':
+ dependencies:
+ '@babel/core': 7.28.4
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.28.4
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-optimise-call-expression@7.25.9':
dependencies:
'@babel/types': 7.27.0
@@ -4315,19 +4465,34 @@ snapshots:
'@babel/helper-string-parser@7.25.9': {}
+ '@babel/helper-string-parser@7.27.1': {}
+
'@babel/helper-validator-identifier@7.25.9': {}
+ '@babel/helper-validator-identifier@7.27.1': {}
+
'@babel/helper-validator-option@7.25.9': {}
+ '@babel/helper-validator-option@7.27.1': {}
+
'@babel/helpers@7.27.0':
dependencies:
'@babel/template': 7.27.0
'@babel/types': 7.27.0
+ '@babel/helpers@7.28.4':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.4
+
'@babel/parser@7.27.0':
dependencies:
'@babel/types': 7.27.0
+ '@babel/parser@7.28.4':
+ dependencies:
+ '@babel/types': 7.28.4
+
'@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
@@ -4359,6 +4524,12 @@ snapshots:
'@babel/parser': 7.27.0
'@babel/types': 7.27.0
+ '@babel/template@7.27.2':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+
'@babel/traverse@7.27.0':
dependencies:
'@babel/code-frame': 7.26.2
@@ -4371,11 +4542,28 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/traverse@7.28.4':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.3
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.28.4
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.4
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/types@7.27.0':
dependencies:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
+ '@babel/types@7.28.4':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
'@bcoe/v8-coverage@0.2.3': {}
'@cnakazawa/watch@1.0.4':
@@ -4479,12 +4667,22 @@ snapshots:
'@istanbuljs/schema@0.1.3': {}
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.31
+
'@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/set-array@1.2.1': {}
@@ -4496,6 +4694,11 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
'@manypkg/find-root@2.2.3':
dependencies:
'@manypkg/tools': 1.1.2
@@ -5592,6 +5795,8 @@ snapshots:
content-tag@3.1.2: {}
+ content-tag@4.0.0: {}
+
content-type@1.0.5: {}
continuable-cache@0.3.1: {}
@@ -7582,6 +7787,14 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
+ prettier-plugin-ember-template-tag@2.1.0(prettier@3.5.3):
+ dependencies:
+ '@babel/core': 7.28.4
+ content-tag: 4.0.0
+ prettier: 3.5.3
+ transitivePeerDependencies:
+ - supports-color
+
prettier@2.8.8: {}
prettier@3.5.3: {}
From f86438623c9bb2856150b980cc13a39642669d34 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 10:20:37 -0400
Subject: [PATCH 08/12] Fix some TS
---
files/demo-app/app.gts | 26 +++++++++++++-------------
files/tsconfig.json | 2 +-
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/files/demo-app/app.gts b/files/demo-app/app.gts
index 59d02e5..d7f1916 100644
--- a/files/demo-app/app.gts
+++ b/files/demo-app/app.gts
@@ -9,21 +9,21 @@ class Router extends EmberRouter {
export class App extends EmberApp {
/**
- * Any services or anything from the addon that needs to be in the app-tree registry
- * will need to be manually specified here.
- *
- * Techniques to avoid needing this:
- * - private services
- * - require the consuming app import and configure themselves
- * (which is what we're emulating here)
- */
+ * Any services or anything from the addon that needs to be in the app-tree registry
+ * will need to be manually specified here.
+ *
+ * Techniques to avoid needing this:
+ * - private services
+ * - require the consuming app import and configure themselves
+ * (which is what we're emulating here)
+ */
modules = {
'./router': Router,
'./services/page-title': PageTitleService,
- /**
- * NOTE: this glob will import everything matching the glob,
- * and includes non-services in the services directory.
- */
+ /**
+ * NOTE: this glob will import everything matching the glob,
+ * and includes non-services in the services directory.
+ */
...import.meta.glob('./services/**/*', { eager: true }),
/**
* These imports are not magic, but we do require that all entries in the
@@ -35,4 +35,4 @@ export class App extends EmberApp {
};
}
-Router.map(function() { });
+Router.map(function () {});
diff --git a/files/tsconfig.json b/files/tsconfig.json
index ef0c5ab..1fabf7c 100644
--- a/files/tsconfig.json
+++ b/files/tsconfig.json
@@ -5,7 +5,7 @@
*/
{
"extends": "@ember/app-tsconfig",
- "include": ["src/**/*", "tests/**/*", "unpublished-development-types/**/*"],
+ "include": ["src/**/*", "tests/**/*", "unpublished-development-types/**/*", "demo-app/**/*"],
"compilerOptions": {
"rootDir": ".",
"types": [
From 9839ac35160f6ae5b0a7788bfb6817428896488a Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 10:22:57 -0400
Subject: [PATCH 09/12] Add ember-page-title to package.json
---
files/package.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/files/package.json b/files/package.json
index a4bdcba..4d48919 100644
--- a/files/package.json
+++ b/files/package.json
@@ -59,6 +59,7 @@
"ember-source": "^6.7.0",
"ember-strict-application-resolver": "^0.1.0",
"ember-template-lint": "^7.9.0",
+ "ember-page-title": "^8.2.0",
"eslint": "^9.17.0",
"eslint-config-prettier": "^10.1.5",
"eslint-plugin-ember": "^12.3.3",
From 21641acebc48eed8557a31fe2bdc984399bda574 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 10:25:07 -0400
Subject: [PATCH 10/12] Add note to the CSS
---
files/demo-app/styles.css | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/files/demo-app/styles.css b/files/demo-app/styles.css
index e69de29..fe5e87f 100644
--- a/files/demo-app/styles.css
+++ b/files/demo-app/styles.css
@@ -0,0 +1,6 @@
+/**
+* See: https://vite.dev/guide/features.html#css
+* for features beyond normal CSS that are available to you.
+*
+* This CSS is meant for the demo-app only, and will not be included in the published assets for this library.
+*/
From aedcc1fbce83cedb0e7fa4e090a5905f0584c00e Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 12:00:37 -0400
Subject: [PATCH 11/12] Evade prettier
---
files/demo-app/templates/application.gts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/files/demo-app/templates/application.gts b/files/demo-app/templates/application.gts
index 5fdabe2..7677302 100644
--- a/files/demo-app/templates/application.gts
+++ b/files/demo-app/templates/application.gts
@@ -1,5 +1,7 @@
const greeting = 'hello';
+ Welcome to ember!
+
{{greeting}}, world!
From c8bb5f746d1fa2ea8f6573f0bd569ed96f24f3f0 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Mon, 13 Oct 2025 12:13:49 -0400
Subject: [PATCH 12/12] Prettier: tsconfig
---
files/tsconfig.json | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/files/tsconfig.json b/files/tsconfig.json
index 1fabf7c..4162dc6 100644
--- a/files/tsconfig.json
+++ b/files/tsconfig.json
@@ -5,7 +5,12 @@
*/
{
"extends": "@ember/app-tsconfig",
- "include": ["src/**/*", "tests/**/*", "unpublished-development-types/**/*", "demo-app/**/*"],
+ "include": [
+ "src/**/*",
+ "tests/**/*",
+ "unpublished-development-types/**/*",
+ "demo-app/**/*"
+ ],
"compilerOptions": {
"rootDir": ".",
"types": [