From 66bb1d24d460618639fd9a9dde39baf93765f81b Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Tue, 24 Oct 2023 10:02:24 -0400 Subject: [PATCH 01/27] Bump vm packages Upgrade VM @glimmer/* packages Also, @glimmer/vm needed to be added to the root package.json so non-declared dependencies (such as @ember/-internals) may be provided access to @glimmer/vm Upgrade glimmer-vm again --- .npmrc | 5 + package.json | 33 +- packages/@ember/-internals/package.json | 32 +- packages/@ember/application/package.json | 10 +- packages/@ember/array/package.json | 12 +- packages/@ember/component/package.json | 6 +- packages/@ember/controller/package.json | 10 +- packages/@ember/debug/package.json | 12 +- packages/@ember/destroyable/package.json | 4 +- packages/@ember/engine/package.json | 10 +- packages/@ember/enumerable/package.json | 10 +- packages/@ember/helper/package.json | 6 +- packages/@ember/instrumentation/package.json | 4 +- packages/@ember/modifier/package.json | 6 +- packages/@ember/object/package.json | 12 +- packages/@ember/routing/package.json | 12 +- packages/@ember/runloop/package.json | 4 +- packages/@ember/service/package.json | 10 +- .../@ember/template-compilation/package.json | 6 +- packages/@ember/template-factory/package.json | 4 +- packages/@ember/utils/package.json | 12 +- packages/@ember/version/package.json | 6 +- packages/ember-template-compiler/package.json | 12 +- packages/ember-testing/package.json | 10 +- packages/ember/package.json | 14 +- packages/internal-test-helpers/package.json | 20 +- pnpm-lock.yaml | 389 ++++++++++-------- 27 files changed, 351 insertions(+), 320 deletions(-) create mode 100644 .npmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000000..3f38641bd1a --- /dev/null +++ b/.npmrc @@ -0,0 +1,5 @@ +# super strict mode +auto-install-peers=false +resolve-peers-from-workspace-root=false + + diff --git a/package.json b/package.json index 3d0044223e3..29dd2ca9a15 100644 --- a/package.json +++ b/package.json @@ -57,23 +57,24 @@ "@babel/helper-module-imports": "^7.16.7", "@babel/plugin-transform-block-scoping": "^7.22.5", "@ember/edition-utils": "^1.2.0", - "@glimmer/compiler": "0.84.3", + "@glimmer/compiler": "0.85.13", "@glimmer/component": "^1.1.2", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/global-context": "0.84.3", - "@glimmer/interfaces": "0.84.3", - "@glimmer/manager": "0.84.3", - "@glimmer/node": "0.84.3", - "@glimmer/opcode-compiler": "0.84.3", - "@glimmer/owner": "0.84.3", - "@glimmer/program": "0.84.3", - "@glimmer/reference": "0.84.3", - "@glimmer/runtime": "0.84.3", - "@glimmer/syntax": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", - "@glimmer/vm-babel-plugins": "0.84.3", + "@glimmer/global-context": "0.85.13", + "@glimmer/interfaces": "0.85.13", + "@glimmer/manager": "0.85.13", + "@glimmer/node": "0.85.13", + "@glimmer/opcode-compiler": "0.85.13", + "@glimmer/owner": "0.85.13", + "@glimmer/program": "0.85.13", + "@glimmer/reference": "0.85.13", + "@glimmer/runtime": "0.85.13", + "@glimmer/syntax": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", + "@glimmer/vm": "0.85.13", + "@glimmer/vm-babel-plugins": "0.85.13", "@simple-dom/interface": "^1.4.0", "babel-plugin-debug-macros": "^0.3.4", "babel-plugin-filter-imports": "^4.0.0", @@ -194,6 +195,6 @@ }, "volta": { "node": "16.20.0", - "pnpm": "8.7.6" + "pnpm": "8.10.0" } } diff --git a/packages/@ember/-internals/package.json b/packages/@ember/-internals/package.json index 5f15c095ca3..ee47dc65de7 100644 --- a/packages/@ember/-internals/package.json +++ b/packages/@ember/-internals/package.json @@ -38,22 +38,23 @@ "@ember/service": "workspace:*", "@ember/template-factory": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/compiler": "0.84.3", + "@glimmer/compiler": "0.85.13", "@glimmer/component": "^1.1.2", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/global-context": "0.84.3", - "@glimmer/interfaces": "0.84.3", - "@glimmer/manager": "0.84.3", - "@glimmer/node": "0.84.3", - "@glimmer/opcode-compiler": "0.84.3", - "@glimmer/owner": "0.84.3", - "@glimmer/program": "0.84.3", - "@glimmer/reference": "0.84.3", - "@glimmer/runtime": "0.84.3", - "@glimmer/syntax": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/global-context": "0.85.13", + "@glimmer/interfaces": "0.85.13", + "@glimmer/manager": "0.85.13", + "@glimmer/node": "0.85.13", + "@glimmer/opcode-compiler": "0.85.13", + "@glimmer/owner": "0.85.13", + "@glimmer/program": "0.85.13", + "@glimmer/reference": "0.85.13", + "@glimmer/runtime": "0.85.13", + "@glimmer/syntax": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", + "@glimmer/vm": "0.85.13", "@simple-dom/interface": "^1.4.0", "backburner.js": "^2.7.0", "dag-map": "^2.0.2", @@ -64,4 +65,5 @@ "router_js": "^8.0.3", "rsvp": "^4.8.5" } -} \ No newline at end of file +} + diff --git a/packages/@ember/application/package.json b/packages/@ember/application/package.json index a3cc9afc860..7f18eea8c24 100644 --- a/packages/@ember/application/package.json +++ b/packages/@ember/application/package.json @@ -19,11 +19,11 @@ "@ember/runloop": "workspace:*", "@ember/service": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "backburner.js": "^2.7.0", "dag-map": "^2.0.2", "ember": "workspace:*", @@ -32,4 +32,4 @@ "internal-test-helpers": "workspace:*", "router_js": "^8.0.3" } -} \ No newline at end of file +} diff --git a/packages/@ember/array/package.json b/packages/@ember/array/package.json index aafeb6fd541..4d5cfa27c1c 100644 --- a/packages/@ember/array/package.json +++ b/packages/@ember/array/package.json @@ -16,13 +16,13 @@ "@ember/object": "workspace:*", "@ember/runloop": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/manager": "0.84.3", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/component/package.json b/packages/@ember/component/package.json index 3365807b784..23176917343 100644 --- a/packages/@ember/component/package.json +++ b/packages/@ember/component/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@ember/-internals": "workspace:*", - "@glimmer/manager": "0.84.3", - "@glimmer/runtime": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/runtime": "0.85.13", "expect-type": "^0.15.0" } -} \ No newline at end of file +} diff --git a/packages/@ember/controller/package.json b/packages/@ember/controller/package.json index 14958077e85..19d288aac94 100644 --- a/packages/@ember/controller/package.json +++ b/packages/@ember/controller/package.json @@ -11,12 +11,12 @@ "@ember/debug": "workspace:*", "@ember/object": "workspace:*", "@ember/service": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/debug/package.json b/packages/@ember/debug/package.json index 5eabaf8b6f9..424b54fe321 100644 --- a/packages/@ember/debug/package.json +++ b/packages/@ember/debug/package.json @@ -18,14 +18,14 @@ "@ember/routing": "workspace:*", "@ember/runloop": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/manager": "0.84.3", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "backburner.js": "^2.7.0", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/destroyable/package.json b/packages/@ember/destroyable/package.json index 651dd21e493..e63ac47b199 100644 --- a/packages/@ember/destroyable/package.json +++ b/packages/@ember/destroyable/package.json @@ -6,7 +6,7 @@ ".": "./index.ts" }, "dependencies": { - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "expect-type": "^0.15.0" } -} \ No newline at end of file +} diff --git a/packages/@ember/engine/package.json b/packages/@ember/engine/package.json index fe5f62e9bee..5114934b5a3 100644 --- a/packages/@ember/engine/package.json +++ b/packages/@ember/engine/package.json @@ -18,14 +18,14 @@ "@ember/runloop": "workspace:*", "@ember/service": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "dag-map": "^2.0.2", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*", "router_js": "^8.0.3" } -} \ No newline at end of file +} diff --git a/packages/@ember/enumerable/package.json b/packages/@ember/enumerable/package.json index f667899f108..b2ccb6b288d 100644 --- a/packages/@ember/enumerable/package.json +++ b/packages/@ember/enumerable/package.json @@ -11,11 +11,11 @@ "@ember/array": "workspace:*", "@ember/debug": "workspace:*", "@ember/object": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/helper/package.json b/packages/@ember/helper/package.json index 108c5d88448..e48449521e1 100644 --- a/packages/@ember/helper/package.json +++ b/packages/@ember/helper/package.json @@ -8,8 +8,8 @@ "dependencies": { "@ember/-internals": "workspace:*", "@ember/component": "workspace:*", - "@glimmer/manager": "0.84.3", - "@glimmer/runtime": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/runtime": "0.85.13", "expect-type": "^0.15.0" } -} \ No newline at end of file +} diff --git a/packages/@ember/instrumentation/package.json b/packages/@ember/instrumentation/package.json index 1a57c16411a..887dd0011c5 100644 --- a/packages/@ember/instrumentation/package.json +++ b/packages/@ember/instrumentation/package.json @@ -14,7 +14,7 @@ "@ember/runloop": "workspace:*", "@ember/utils": "workspace:*", "@glimmer/env": "^0.1.7", - "@glimmer/validator": "0.84.3", + "@glimmer/validator": "0.85.13", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/modifier/package.json b/packages/@ember/modifier/package.json index 8b4f98de789..8c0a5642206 100644 --- a/packages/@ember/modifier/package.json +++ b/packages/@ember/modifier/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "@ember/-internals": "workspace:*", - "@glimmer/manager": "0.84.3", - "@glimmer/runtime": "0.84.3" + "@glimmer/manager": "0.85.13", + "@glimmer/runtime": "0.85.13" } -} \ No newline at end of file +} diff --git a/packages/@ember/object/package.json b/packages/@ember/object/package.json index 725c2c3505b..bc795b362fc 100644 --- a/packages/@ember/object/package.json +++ b/packages/@ember/object/package.json @@ -26,13 +26,13 @@ "@ember/runloop": "workspace:*", "@ember/service": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/manager": "0.84.3", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/routing/package.json b/packages/@ember/routing/package.json index 70c70e4be92..94ccbaa2d82 100644 --- a/packages/@ember/routing/package.json +++ b/packages/@ember/routing/package.json @@ -25,16 +25,16 @@ "@ember/runloop": "workspace:*", "@ember/service": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/manager": "0.84.3", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "backburner.js": "^2.7.0", "dag-map": "^2.0.2", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*", "router_js": "^8.0.3" } -} \ No newline at end of file +} diff --git a/packages/@ember/runloop/package.json b/packages/@ember/runloop/package.json index 8c8fb3e76ea..633180ef985 100644 --- a/packages/@ember/runloop/package.json +++ b/packages/@ember/runloop/package.json @@ -13,9 +13,9 @@ "@ember/object": "workspace:*", "@ember/utils": "workspace:*", "@glimmer/env": "^0.1.7", - "@glimmer/validator": "0.84.3", + "@glimmer/validator": "0.85.13", "backburner.js": "^2.7.0", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/service/package.json b/packages/@ember/service/package.json index 69d4aa09f0c..0f0cbb53461 100644 --- a/packages/@ember/service/package.json +++ b/packages/@ember/service/package.json @@ -10,12 +10,12 @@ "@ember/array": "workspace:*", "@ember/debug": "workspace:*", "@ember/object": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/template-compilation/package.json b/packages/@ember/template-compilation/package.json index 00f24ff4e90..3a1f606f5de 100644 --- a/packages/@ember/template-compilation/package.json +++ b/packages/@ember/template-compilation/package.json @@ -8,10 +8,10 @@ "dependencies": { "@ember/-internals": "workspace:*", "@ember/canary-features": "workspace:*", - "@glimmer/compiler": "0.84.3", + "@glimmer/compiler": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/syntax": "0.84.3", + "@glimmer/syntax": "0.85.13", "ember": "workspace:*", "ember-template-compiler": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/template-factory/package.json b/packages/@ember/template-factory/package.json index 3ca216f0ef3..f7af03ab4c1 100644 --- a/packages/@ember/template-factory/package.json +++ b/packages/@ember/template-factory/package.json @@ -6,6 +6,6 @@ ".": "./index.ts" }, "dependencies": { - "@glimmer/opcode-compiler": "0.84.3" + "@glimmer/opcode-compiler": "0.85.13" } -} \ No newline at end of file +} diff --git a/packages/@ember/utils/package.json b/packages/@ember/utils/package.json index a0c25998771..401c8e9d802 100644 --- a/packages/@ember/utils/package.json +++ b/packages/@ember/utils/package.json @@ -13,13 +13,13 @@ "@ember/enumerable": "workspace:*", "@ember/object": "workspace:*", "@ember/runloop": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/manager": "0.84.3", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/@ember/version/package.json b/packages/@ember/version/package.json index 01efc3f1715..e6f48cf45e3 100644 --- a/packages/@ember/version/package.json +++ b/packages/@ember/version/package.json @@ -22,10 +22,10 @@ "@ember/runloop": "workspace:*", "@ember/service": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/manager": "0.84.3", - "@glimmer/runtime": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/runtime": "0.85.13", "backburner.js": "^2.7.0", "ember": "workspace:*", "expect-type": "^0.15.0" } -} \ No newline at end of file +} diff --git a/packages/ember-template-compiler/package.json b/packages/ember-template-compiler/package.json index 1b108f9ad83..043698f8244 100644 --- a/packages/ember-template-compiler/package.json +++ b/packages/ember-template-compiler/package.json @@ -22,14 +22,14 @@ "@ember/runloop": "workspace:*", "@ember/service": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/compiler": "0.84.3", + "@glimmer/compiler": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/manager": "0.84.3", - "@glimmer/runtime": "0.84.3", - "@glimmer/syntax": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/runtime": "0.85.13", + "@glimmer/syntax": "0.85.13", + "@glimmer/validator": "0.85.13", "backburner.js": "^2.7.0", "ember": "workspace:*", "internal-test-helpers": "workspace:*" } -} \ No newline at end of file +} diff --git a/packages/ember-testing/package.json b/packages/ember-testing/package.json index a2ff601a09b..a0621ac77cf 100644 --- a/packages/ember-testing/package.json +++ b/packages/ember-testing/package.json @@ -19,14 +19,14 @@ "@ember/service": "workspace:*", "@ember/test": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/owner": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/owner": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "backburner.js": "^2.7.0", "ember": "workspace:*", "internal-test-helpers": "workspace:*", "router_js": "^8.0.3" } -} \ No newline at end of file +} diff --git a/packages/ember/package.json b/packages/ember/package.json index 4bc30570a9e..d40d5a3cdac 100644 --- a/packages/ember/package.json +++ b/packages/ember/package.json @@ -31,14 +31,14 @@ "@ember/test": "workspace:*", "@ember/utils": "workspace:*", "@ember/version": "workspace:*", - "@glimmer/destroyable": "0.84.3", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/manager": "0.84.3", - "@glimmer/owner": "0.84.3", - "@glimmer/runtime": "0.84.3", - "@glimmer/util": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/owner": "0.85.13", + "@glimmer/runtime": "0.85.13", + "@glimmer/util": "0.85.13", "@glimmer/tracking": "workspace:*", - "@glimmer/validator": "0.84.3", + "@glimmer/validator": "0.85.13", "backburner.js": "^2.7.0", "dag-map": "^2.0.2", "ember-template-compiler": "workspace:*", @@ -47,4 +47,4 @@ "router_js": "^8.0.3", "rsvp": "^4.8.5" } -} \ No newline at end of file +} diff --git a/packages/internal-test-helpers/package.json b/packages/internal-test-helpers/package.json index df0c28126d2..2ed0693286e 100644 --- a/packages/internal-test-helpers/package.json +++ b/packages/internal-test-helpers/package.json @@ -24,16 +24,16 @@ "@ember/runloop": "workspace:*", "@ember/service": "workspace:*", "@ember/utils": "workspace:*", - "@glimmer/compiler": "0.84.3", - "@glimmer/destroyable": "0.84.3", + "@glimmer/compiler": "0.85.13", + "@glimmer/destroyable": "0.85.13", "@glimmer/env": "^0.1.7", - "@glimmer/manager": "0.84.3", - "@glimmer/opcode-compiler": "0.84.3", - "@glimmer/owner": "0.84.3", - "@glimmer/runtime": "0.84.3", - "@glimmer/syntax": "0.84.3", - "@glimmer/util": "0.84.3", - "@glimmer/validator": "0.84.3", + "@glimmer/manager": "0.85.13", + "@glimmer/opcode-compiler": "0.85.13", + "@glimmer/owner": "0.85.13", + "@glimmer/runtime": "0.85.13", + "@glimmer/syntax": "0.85.13", + "@glimmer/util": "0.85.13", + "@glimmer/validator": "0.85.13", "backburner.js": "^2.7.0", "dag-map": "^2.0.2", "ember": "workspace:*", @@ -42,4 +42,4 @@ "rsvp": "^4.8.5", "simple-html-tokenizer": "^0.5.11" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6638f658ce5..ac33d50a30c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: false + excludeLinksFromLockfile: false + overrides: socket.io: ^4.7.0 @@ -14,56 +18,59 @@ dependencies: specifier: ^1.2.0 version: 1.2.0 '@glimmer/compiler': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/component': specifier: ^1.1.2 version: 1.1.2(@babel/core@7.23.2) '@glimmer/destroyable': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/env': specifier: ^0.1.7 version: 0.1.7 '@glimmer/global-context': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/interfaces': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/manager': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/node': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/opcode-compiler': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/owner': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/program': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/reference': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/runtime': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/syntax': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/util': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 '@glimmer/validator': - specifier: 0.84.3 - version: 0.84.3 + specifier: 0.85.13 + version: 0.85.13 + '@glimmer/vm': + specifier: 0.85.13 + version: 0.85.13 '@glimmer/vm-babel-plugins': - specifier: 0.84.3 - version: 0.84.3(@babel/core@7.23.2) + specifier: 0.85.13 + version: 0.85.13(@babel/core@7.23.2) '@simple-dom/interface': specifier: ^1.4.0 version: 1.4.0 @@ -951,7 +958,7 @@ packages: '@babel/traverse': 7.23.2 '@babel/types': 7.23.0 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -1025,7 +1032,7 @@ packages: '@babel/core': 7.23.2 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -2082,7 +2089,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.0 '@babel/types': 7.23.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -2138,7 +2145,7 @@ packages: engines: {node: 12.* || 14.* || >= 16} dependencies: babel-import-util: 2.0.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) ember-rfc176-data: 0.3.18 fs-extra: 9.1.0 js-string-escape: 1.0.1 @@ -2367,7 +2374,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.23.0 ignore: 5.2.4 @@ -2384,14 +2391,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@glimmer/compiler@0.84.3: - resolution: {integrity: sha512-cj9sGlnvExP9httxY6ZMivJRGulyaZ31DddCYB5h6LxupR4Nk2d1nAJCWPLsvuQJ8qR+eYw0y9aiY/VeT0krpQ==} + /@glimmer/compiler@0.85.13: + resolution: {integrity: sha512-Xhed0alW98LtgZPuwtk+q0JIkpUquSTM5e7CNKZ1kS3caieq0nVrHnEQQiny35/DmALQOwzAoJOSVcvpcbdyGg==} + engines: {node: '>= 16.0.0'} dependencies: - '@glimmer/interfaces': 0.84.3 - '@glimmer/syntax': 0.84.3 - '@glimmer/util': 0.84.3 - '@glimmer/wire-format': 0.84.3 - '@simple-dom/interface': 1.4.0 + '@glimmer/interfaces': 0.85.13 + '@glimmer/syntax': 0.85.13 + '@glimmer/util': 0.85.13 + '@glimmer/vm': 0.85.13 + '@glimmer/wire-format': 0.85.13 dev: false /@glimmer/component@1.1.2(@babel/core@7.23.2): @@ -2417,34 +2425,39 @@ packages: - supports-color dev: false - /@glimmer/destroyable@0.84.3: - resolution: {integrity: sha512-4tUw5UR4ntuySPvbcWyCMRjqxMJMV1GewjU3zGq22XvuBVFfq2K9WmuYV9H9FHg8X0MgDwcus+LjxrVSel39Sw==} + /@glimmer/debug@0.85.13: + resolution: {integrity: sha512-zJTtcRNbY+Byx8O8yg7qDGHw/IDCtMRZe/mDZPkdfRxbh/P5/55wxsmR6Xboqbs8arQk3nnCEXyjpgie8HcElw==} + dependencies: + '@glimmer/interfaces': 0.85.13 + '@glimmer/util': 0.85.13 + '@glimmer/vm': 0.85.13 + dev: false + + /@glimmer/destroyable@0.85.13: + resolution: {integrity: sha512-Uv9Ol38KyHtNo6yZdIkR3W7+LVJQeQ6DAVACk0FSMlOAAd87LZxe8jDXjWRjXjSZ6JPOVYLd93fxfh3WW4LDSw==} dependencies: '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.84.3 - '@glimmer/interfaces': 0.84.3 - '@glimmer/util': 0.84.3 + '@glimmer/global-context': 0.85.13 + '@glimmer/interfaces': 0.85.13 + '@glimmer/util': 0.85.13 dev: false /@glimmer/di@0.1.11: resolution: {integrity: sha512-moRwafNDwHTnTHzyyZC9D+mUSvYrs1Ak0tRPjjmCghdoHHIvMshVbEnwKb/1WmW5CUlKc2eL9rlAV32n3GiItg==} dev: false - /@glimmer/encoder@0.84.3: - resolution: {integrity: sha512-T99YQDhNC/1rOFgiz8k4uzgzQsQ+r1my+WVXRv26o0r+/yOnKYndrb6WH/E9d+XtBIZbm1yCSm2BMFYelR0Nrg==} + /@glimmer/encoder@0.85.13: + resolution: {integrity: sha512-gZv5dOTPG797J3iV3uX/gJvhm2XxykeHTC5RfYz0PFDKyQ2MmrKEqezup2A070za7imxucQ7x6CsuUKGmaBO1g==} dependencies: - '@glimmer/env': 0.1.7 - '@glimmer/interfaces': 0.84.3 - '@glimmer/vm': 0.84.3 + '@glimmer/interfaces': 0.85.13 + '@glimmer/vm': 0.85.13 dev: false /@glimmer/env@0.1.7: resolution: {integrity: sha512-JKF/a9I9jw6fGoz8kA7LEQslrwJ5jms5CXhu/aqkBWk+PmZ6pTl8mlb/eJ/5ujBGTiQzBhy5AIWF712iA+4/mw==} - /@glimmer/global-context@0.84.3: - resolution: {integrity: sha512-8Oy9Wg5IZxMEeAnVmzD2NkObf89BeHoFSzJgJROE/deutd3rxg83mvlOez4zBBGYwnTb+VGU2LYRpet92egJjA==} - dependencies: - '@glimmer/env': 0.1.7 + /@glimmer/global-context@0.85.13: + resolution: {integrity: sha512-vUFJtgzoYxONyY4Xza/G7kKQuPv6KmE3n6+3B6bQH9csPfUrST8whIoey8vZJfBnl2HGVHDqgg8/f9I3GGogHw==} dev: false /@glimmer/interfaces@0.84.3: @@ -2452,87 +2465,94 @@ packages: dependencies: '@simple-dom/interface': 1.4.0 - /@glimmer/low-level@0.78.2: - resolution: {integrity: sha512-0S6TWOOd0fzLLysw1pWZN0TgasaHmYs1Sjz9Til1mTByIXU1S+1rhdyr2veSQPO/aRjPuEQyKXZQHvx23Zax6w==} + /@glimmer/interfaces@0.85.13: + resolution: {integrity: sha512-ethjad78QPy55VgLxkmYSxHQhfbXj0718ICZcg36FlstNIOKtd0lqTar1BXkRBXn30pcwgtj8r7aq+r2FDwvQQ==} + dependencies: + '@simple-dom/interface': 1.4.0 dev: false - /@glimmer/manager@0.84.3: - resolution: {integrity: sha512-FtcwvrQ3HWlGRGChwlXiisMeKf9+XcCkMwVrrO0cxQavT01tIHx40OFtPOhXKGbgXGtRKcJI8XR41aK9t2kvyg==} + /@glimmer/manager@0.85.13: + resolution: {integrity: sha512-HxvuR6lTQvLLeR6FtZOT1gt/5ZZKX33pjy6EARFPwqlE6g/H21+6A8ACcxK351bfQlytvaFpglglvOdQpc/BVQ==} dependencies: - '@glimmer/destroyable': 0.84.3 + '@glimmer/debug': 0.85.13 + '@glimmer/destroyable': 0.85.13 '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.84.3 - '@glimmer/interfaces': 0.84.3 - '@glimmer/reference': 0.84.3 - '@glimmer/util': 0.84.3 - '@glimmer/validator': 0.84.3 + '@glimmer/global-context': 0.85.13 + '@glimmer/interfaces': 0.85.13 + '@glimmer/reference': 0.85.13 + '@glimmer/util': 0.85.13 + '@glimmer/validator': 0.85.13 + '@glimmer/vm': 0.85.13 dev: false - /@glimmer/node@0.84.3: - resolution: {integrity: sha512-QXlZjr7X6DDTJ3wiYQIHv2Pq/5sdGeTTW15+U+IosjZuQgvwCPJaeXC2CU8yqgA33yHgMgJpkdvLnPUCPrrhwg==} + /@glimmer/node@0.85.13: + resolution: {integrity: sha512-heFP9RGEQ3Sw8QPC9ZaPhwVmFS9dFuFND9gLzSqcSwQt2XR+umwBVVrwkpFV+LOJVqevkliyDEOjIICIEnpb+A==} dependencies: - '@glimmer/interfaces': 0.84.3 - '@glimmer/runtime': 0.84.3 - '@glimmer/util': 0.84.3 + '@glimmer/interfaces': 0.85.13 + '@glimmer/runtime': 0.85.13 + '@glimmer/util': 0.85.13 '@simple-dom/document': 1.4.0 - '@simple-dom/interface': 1.4.0 dev: false - /@glimmer/opcode-compiler@0.84.3: - resolution: {integrity: sha512-flUuikKLFL9cekJUA10gJxMRCDjUPb61R3UCl1u69TGN0Nm7FTsMhOsVDtJLeeiAROtPx+NvasPw/6UB1rrdyg==} + /@glimmer/opcode-compiler@0.85.13: + resolution: {integrity: sha512-FOxXG55zwNpZlysYKLkV2e2NiIkCoKDZ9nAIKxz0ptYtkuej/msVY3n1vlwCD/ijOqow5qdHTPkXnlSpyAircQ==} dependencies: - '@glimmer/encoder': 0.84.3 + '@glimmer/debug': 0.85.13 + '@glimmer/encoder': 0.85.13 '@glimmer/env': 0.1.7 - '@glimmer/interfaces': 0.84.3 - '@glimmer/reference': 0.84.3 - '@glimmer/util': 0.84.3 - '@glimmer/vm': 0.84.3 - '@glimmer/wire-format': 0.84.3 + '@glimmer/global-context': 0.85.13 + '@glimmer/interfaces': 0.85.13 + '@glimmer/manager': 0.85.13 + '@glimmer/reference': 0.85.13 + '@glimmer/util': 0.85.13 + '@glimmer/vm': 0.85.13 + '@glimmer/wire-format': 0.85.13 dev: false - /@glimmer/owner@0.84.3: - resolution: {integrity: sha512-ZwA0rU4V8m0z4ncXtWD2QEU6eh61wkKKQUThahPYhfB+JYceVM6Grx7uWeiAxc2v3ncpvbYqIGdnICXDMloxAA==} + /@glimmer/owner@0.85.13: + resolution: {integrity: sha512-ZDiTA0hkluDM+c1HXcLUzINcDAHb6UzkWPwaWWNgzlcwzUItdPKKMTS7zGj+uQu5b82a+6qGw9HTV3TdO4xSpA==} dependencies: - '@glimmer/util': 0.84.3 + '@glimmer/util': 0.85.13 dev: false - /@glimmer/program@0.84.3: - resolution: {integrity: sha512-D8z1lP8NEMyzT8gByFsZpmbRThZvGLS0Tl5AngaDbI2FqlcpEV0ujvLTzzgecd9QQ1k3Cd60dTgy/2N2CI82SA==} + /@glimmer/program@0.85.13: + resolution: {integrity: sha512-+n2L90laukwOYXrg4w/X1N8OkC5+q9zhJ3GrS01whMrMVlEoai1HDvOHCZznk51VPaCY1g05wtju0psBdj/qtg==} dependencies: - '@glimmer/encoder': 0.84.3 + '@glimmer/encoder': 0.85.13 '@glimmer/env': 0.1.7 - '@glimmer/interfaces': 0.84.3 - '@glimmer/manager': 0.84.3 - '@glimmer/opcode-compiler': 0.84.3 - '@glimmer/util': 0.84.3 + '@glimmer/interfaces': 0.85.13 + '@glimmer/manager': 0.85.13 + '@glimmer/opcode-compiler': 0.85.13 + '@glimmer/util': 0.85.13 + '@glimmer/vm': 0.85.13 + '@glimmer/wire-format': 0.85.13 dev: false - /@glimmer/reference@0.84.3: - resolution: {integrity: sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw==} + /@glimmer/reference@0.85.13: + resolution: {integrity: sha512-+Y8ToBSEBEjmJW9UZwuFD1H09q2oMSpKIz5dCQBsiewTW+S59hLGClbRh41xBV9DtS50iri7dsey7w2/tvOLwA==} dependencies: '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.84.3 - '@glimmer/interfaces': 0.84.3 - '@glimmer/util': 0.84.3 - '@glimmer/validator': 0.84.3 + '@glimmer/global-context': 0.85.13 + '@glimmer/interfaces': 0.85.13 + '@glimmer/util': 0.85.13 + '@glimmer/validator': 0.85.13 dev: false - /@glimmer/runtime@0.84.3: - resolution: {integrity: sha512-LzlJbPDCUH/wjsgJ5kRImvOkqAImSyVRW37t34n/1Qd3v7ZoI8xVQg92lS+2kHZe030sT49ZwKkEIeVZiBreBw==} + /@glimmer/runtime@0.85.13: + resolution: {integrity: sha512-QhfrNFTji/PG3N1uz7cnxHwUE7d0QWY4brKK4PsvKIiVpAW5qyLxUZ8yIHoq0dEHyqf+5rYcu8wdlBC11lTaXg==} dependencies: - '@glimmer/destroyable': 0.84.3 + '@glimmer/destroyable': 0.85.13 '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.84.3 - '@glimmer/interfaces': 0.84.3 - '@glimmer/low-level': 0.78.2 - '@glimmer/owner': 0.84.3 - '@glimmer/program': 0.84.3 - '@glimmer/reference': 0.84.3 - '@glimmer/util': 0.84.3 - '@glimmer/validator': 0.84.3 - '@glimmer/vm': 0.84.3 - '@glimmer/wire-format': 0.84.3 - '@simple-dom/interface': 1.4.0 + '@glimmer/global-context': 0.85.13 + '@glimmer/interfaces': 0.85.13 + '@glimmer/manager': 0.85.13 + '@glimmer/owner': 0.85.13 + '@glimmer/program': 0.85.13 + '@glimmer/reference': 0.85.13 + '@glimmer/util': 0.85.13 + '@glimmer/validator': 0.85.13 + '@glimmer/vm': 0.85.13 + '@glimmer/wire-format': 0.85.13 dev: false /@glimmer/syntax@0.84.3: @@ -2543,6 +2563,16 @@ packages: '@handlebars/parser': 2.0.0 simple-html-tokenizer: 0.5.11 + /@glimmer/syntax@0.85.13: + resolution: {integrity: sha512-PopX/DzIogOeaQRRqZPWWkD8UYL1uNhip0IdmHElXQOZScICsgd2k7HN7lZbTDwlGmMil3Szj+PrhUNhqT8znQ==} + dependencies: + '@glimmer/interfaces': 0.85.13 + '@glimmer/util': 0.85.13 + '@glimmer/wire-format': 0.85.13 + '@handlebars/parser': 2.0.0 + simple-html-tokenizer: 0.5.11 + dev: false + /@glimmer/util@0.44.0: resolution: {integrity: sha512-duAsm30uVK9jSysElCbLyU6QQYO2X9iLDLBIBUcCqck9qN1o3tK2qWiHbGK5d6g8E2AJ4H88UrfElkyaJlGrwg==} dev: false @@ -2554,33 +2584,43 @@ packages: '@glimmer/interfaces': 0.84.3 '@simple-dom/interface': 1.4.0 - /@glimmer/validator@0.84.3: - resolution: {integrity: sha512-RTBV4TokUB0vI31UC7ikpV7lOYpWUlyqaKV//pRC4pexYMlmqnVhkFrdiimB/R1XyNdUOQUmnIAcdic39NkbhQ==} + /@glimmer/util@0.85.13: + resolution: {integrity: sha512-11LZwIw0A4xxH68e7SnJcMx+cqt6K4+qlRgxPqTwpRhg+kzI9qp0LySt96jFPE8YA2+GZz5G2DK4IhF+iJFnNQ==} + dependencies: + '@glimmer/env': 0.1.7 + '@glimmer/interfaces': 0.85.13 + dev: false + + /@glimmer/validator@0.85.13: + resolution: {integrity: sha512-wxpq9DyRPz0ar7e2VR0zOaLEad8nY7g1I/HN7R049v2GtVWMUuEMvTUfxCToANSGBvmEK68IUg1sTIyCGFvIHg==} dependencies: '@glimmer/env': 0.1.7 - '@glimmer/global-context': 0.84.3 + '@glimmer/global-context': 0.85.13 + '@glimmer/interfaces': 0.85.13 + '@glimmer/util': 0.85.13 dev: false - /@glimmer/vm-babel-plugins@0.84.3(@babel/core@7.23.2): - resolution: {integrity: sha512-fucWuuN7Q9QFB0ODd+PCltcTkmH4fLqYyXGArrfLt/TYN8gLv0yo00mPwFOSY7MWti/MUx88xd20/PycvYtg8w==} + /@glimmer/vm-babel-plugins@0.85.13(@babel/core@7.23.2): + resolution: {integrity: sha512-cSvG+5W2fvfR9LhCwRYC09T7u7713LqmDGBJIeIEakh1ZxEJkGLNJsuAnk30QbTVnuECGq4rEqzm/qiL9vytLg==} + engines: {node: '>=16'} dependencies: babel-plugin-debug-macros: 0.3.4(@babel/core@7.23.2) transitivePeerDependencies: - '@babel/core' dev: false - /@glimmer/vm@0.84.3: - resolution: {integrity: sha512-3mBWvQLEbB8We2EwdmuALMT3zQEcE13ItfLJ0wxlSO2uj1uegeHat++mli8RMxeYNqex27DC+VuhHeWVve6Ngg==} + /@glimmer/vm@0.85.13: + resolution: {integrity: sha512-4+FhhZiA0ml1RZcf2jcL21wGncPV30ZMH0oN7A3ciS2+o2vm/3mYd5k1jk3jOCVk1nX3/T51ZdyOhs3/P5WiNw==} dependencies: - '@glimmer/interfaces': 0.84.3 - '@glimmer/util': 0.84.3 + '@glimmer/interfaces': 0.85.13 + '@glimmer/util': 0.85.13 dev: false - /@glimmer/wire-format@0.84.3: - resolution: {integrity: sha512-aZVfQhqv4k7tTo2vwjy+b4mAxKt7cHH75JR3zAeCilimApa+yYTYUyY73NDNSUVbelgAlQ5s6vTiMSQ55WwVow==} + /@glimmer/wire-format@0.85.13: + resolution: {integrity: sha512-lZyWeQ43uG867lgHXge28smmOS66yTxe3DxewhucJ5pgSoA25fp3H9edFVrKWAP0ymYldde9VfMhKfkAoJLq8w==} dependencies: - '@glimmer/interfaces': 0.84.3 - '@glimmer/util': 0.84.3 + '@glimmer/interfaces': 0.85.13 + '@glimmer/util': 0.85.13 dev: false /@handlebars/parser@2.0.0: @@ -2591,7 +2631,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -2669,7 +2709,7 @@ packages: typescript: optional: true dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.3.0 @@ -3386,7 +3426,7 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0(eslint@8.51.0)(typescript@5.1.6) '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.1.6) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 graphemer: 1.4.0 ignore: 5.2.4 @@ -3411,7 +3451,7 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 typescript: 5.1.6 transitivePeerDependencies: @@ -3438,7 +3478,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.1.6) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.51.0 tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 @@ -3462,7 +3502,7 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -3548,7 +3588,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -3557,7 +3597,7 @@ packages: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -3953,7 +3993,7 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) fs-extra: 9.1.0 meow: 9.0.0 package-json: 6.5.0 @@ -4308,7 +4348,7 @@ packages: dev: true /bower-endpoint-parser@0.2.2: - resolution: {integrity: sha1-ALVlrb+rby01rd3pd+l5Yqy8s/Y=} + resolution: {integrity: sha512-YWZHhWkPdXtIfH3VRu3QIV95sa75O9vrQWBOHjexWCLBCTy5qJvRr36LXTqFwTchSXVlzy5piYJOjzHr7qhsNg==} engines: {node: '>=0.8.0'} dev: true @@ -4521,7 +4561,7 @@ packages: dependencies: array-equal: 1.0.0 broccoli-plugin: 4.0.7 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) fs-tree-diff: 2.0.1 heimdalljs: 0.2.6 minimatch: 3.1.2 @@ -4734,7 +4774,7 @@ packages: broccoli-persistent-filter: 2.3.1 broccoli-plugin: 2.1.0 chalk: 2.4.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) ensure-posix-path: 1.1.1 fs-extra: 8.1.0 minimatch: 3.1.2 @@ -4778,7 +4818,7 @@ packages: dependencies: async-promise-queue: 1.0.5 broccoli-plugin: 4.0.7 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) lodash.defaultsdeep: 4.6.1 matcher-collection: 2.0.1 source-map-url: 0.4.1 @@ -5327,7 +5367,7 @@ packages: dev: true /concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} /configstore@5.0.1: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} @@ -5558,7 +5598,7 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} /cookie-signature@1.0.6: - resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: true /cookie@0.4.2: @@ -5717,17 +5757,6 @@ packages: ms: 2.1.3 dev: true - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -5739,7 +5768,6 @@ packages: dependencies: ms: 2.1.2 supports-color: 8.1.1 - dev: true /decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} @@ -5951,7 +5979,7 @@ packages: engines: {node: '>=0.8'} /ee-first@1.1.1: - resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true /electron-to-chromium@1.4.557: @@ -5978,7 +6006,7 @@ packages: broccoli-plugin: 4.0.7 broccoli-source: 3.0.1 css-loader: 5.2.7 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) fs-extra: 10.1.0 fs-tree-diff: 2.0.1 handlebars: 4.7.8 @@ -6048,7 +6076,7 @@ packages: chai: 4.3.10 chai-as-promised: 7.1.1(chai@4.3.10) chai-files: 1.4.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) ember-cli-internal-test-helpers: 0.9.1 fs-extra: 7.0.1 testdouble: 3.19.0 @@ -6157,7 +6185,7 @@ packages: dependencies: '@babel/plugin-transform-typescript': 7.5.5(@babel/core@7.23.2) ansi-to-html: 0.6.15 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) ember-cli-babel-plugin-helpers: 1.1.1 execa: 2.1.0 fs-extra: 8.1.0 @@ -6434,7 +6462,7 @@ packages: base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) engine.io-parser: 5.2.1 ws: 8.11.0 transitivePeerDependencies: @@ -6814,7 +6842,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -7114,7 +7142,7 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -7706,7 +7734,7 @@ packages: dependencies: basic-ftp: 5.0.3 data-uri-to-buffer: 6.0.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -8170,7 +8198,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -8212,7 +8240,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -8222,7 +8250,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -8654,7 +8682,7 @@ packages: has-symbols: 1.0.3 /is-type@0.0.1: - resolution: {integrity: sha1-9lHYXDZdRJVdFKUdjXBh8/a0d5w=} + resolution: {integrity: sha512-YwJh/zBVrcJ90aAnPBM0CbHvm7lG9ao7lIFeqTZ1UQj4iFLpM5CikdaU+dGGesrMJwxLqPGmjjrUrQ6Kn3Zh+w==} dependencies: core-util-is: 1.0.3 dev: true @@ -8763,7 +8791,7 @@ packages: hasBin: true /json-buffer@3.0.0: - resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} dev: true /json-buffer@3.0.1: @@ -8885,7 +8913,7 @@ packages: dev: true /leek@0.0.24: - resolution: {integrity: sha1-5ADlfw5g2O8r1NBo3EKKVDRdvNo=} + resolution: {integrity: sha512-6PVFIYXxlYF0o6hrAsHtGpTmi06otkwNrMcmQ0K96SeSRHPREPa9J3nJZ1frliVH7XT0XFswoJFQoXsDukzGNQ==} dependencies: debug: 2.6.9 lodash.assign: 3.2.0 @@ -9281,7 +9309,7 @@ packages: dev: true /media-typer@0.3.0: - resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} dev: true @@ -9323,7 +9351,7 @@ packages: dev: true /merge-descriptors@1.0.1: - resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} dev: true /merge-stream@2.0.0: @@ -10067,7 +10095,7 @@ packages: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) get-uri: 6.0.2 http-proxy-agent: 7.0.0 https-proxy-agent: 7.0.2 @@ -10419,7 +10447,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) http-proxy-agent: 7.0.0 https-proxy-agent: 7.0.2 lru-cache: 7.18.3 @@ -10470,7 +10498,7 @@ packages: '@puppeteer/browsers': 1.4.6(typescript@5.1.6) chromium-bidi: 0.4.16(devtools-protocol@0.0.1147663) cross-fetch: 4.0.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) devtools-protocol: 0.0.1147663 typescript: 5.1.6 ws: 8.13.0 @@ -11350,7 +11378,7 @@ packages: engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -11362,7 +11390,7 @@ packages: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) engine.io: 6.5.3 socket.io-adapter: 2.5.2 socket.io-parser: 4.2.4 @@ -11377,7 +11405,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -11507,7 +11535,7 @@ packages: resolution: {integrity: sha512-GqXBq2SPWv9hTXDFKS8WrKK1aISB0aKGHZzH+uD4ShAgs+Fz20ZfoerLOm8U+f62iRWLrw6nimOY/uYuTcVhvg==} engines: {node: 6.* || 8.* || >= 10.*} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: false @@ -11714,7 +11742,7 @@ packages: dev: false /styled_string@0.0.1: - resolution: {integrity: sha1-0ieCvYEpVFm8Tx3xjEutjpTdEko=} + resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==} dev: true /sum-up@1.0.3: @@ -11751,7 +11779,6 @@ packages: engines: {node: '>=10'} dependencies: has-flag: 4.0.0 - dev: true /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} @@ -12144,7 +12171,7 @@ packages: resolution: {integrity: sha512-OLWW+Nd99NOM53aZ8ilT/YpEiOo6mXD3F4/wLbARqybSZ3Jb8IxHK5UGVbZaae0wtXAyQshVV+SeqVBik+Fbmw==} engines: {node: '>=8'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) fs-tree-diff: 2.0.1 mkdirp: 0.5.6 quick-temp: 0.1.8 @@ -12463,7 +12490,7 @@ packages: dev: true /utils-merge@1.0.1: - resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} dev: true @@ -12543,7 +12570,7 @@ packages: dependencies: glob: 7.2.3 uuid: 2.0.3 - vow: 0.4.13 + vow: 0.4.20 vow-queue: 0.4.3 dev: true @@ -12834,7 +12861,7 @@ packages: require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.4 + yargs-parser: 20.2.9 dev: true /yargs@17.7.1: @@ -12896,7 +12923,3 @@ packages: transitivePeerDependencies: - supports-color dev: true - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false From 2d78bb566d3fe3381eee7150aa591a104da815b3 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Tue, 24 Oct 2023 10:11:50 -0400 Subject: [PATCH 02/27] Address removal of Option from '@glimmer/interfaces' by internalizing the type to @ember/-internals/utility-types --- .../glimmer/lib/component-managers/curly.ts | 20 +++++++++---------- .../glimmer/lib/component-managers/mount.ts | 18 ++++++++--------- .../glimmer/lib/component-managers/outlet.ts | 14 ++++++------- .../glimmer/lib/component-managers/root.ts | 2 +- .../glimmer/lib/components/link-to.ts | 17 ++++++++-------- .../@ember/-internals/glimmer/lib/renderer.ts | 6 +++--- .../@ember/-internals/glimmer/lib/resolver.ts | 20 +++++++++---------- .../-internals/glimmer/lib/syntax/mount.ts | 7 ++++--- .../-internals/glimmer/lib/syntax/utils.ts | 3 ++- .../-internals/glimmer/lib/utils/iterator.ts | 10 +++++----- .../@ember/-internals/utility-types/index.ts | 8 +++++--- .../-internals/views/lib/system/utils.ts | 4 +++- packages/@ember/routing/lib/dsl.ts | 2 +- .../tests/utils/transform-test-case.ts | 2 +- 14 files changed, 70 insertions(+), 63 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts index e29c7d176d4..a9a44bd2f7e 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts @@ -6,6 +6,7 @@ import { } from '@ember/-internals/owner'; import { enumerableSymbol, guidFor } from '@ember/-internals/utils'; import { addChildView, setElementView, setViewElement } from '@ember/-internals/views'; +import type { Option } from '@ember/-internals/utility-types'; import { assert, debugFreeze } from '@ember/debug'; import { _instrumentStart } from '@ember/instrumentation'; import { DEBUG } from '@glimmer/env'; @@ -17,7 +18,6 @@ import type { ElementOperations, Environment, InternalComponentCapabilities, - Option, PreparedArguments, TemplateFactory, VMArguments, @@ -121,9 +121,9 @@ type ComponentFactory = InternalFactory< export default class CurlyComponentManager implements - WithCreateInstance, - WithDynamicLayout, - WithDynamicTagName + WithCreateInstance, + WithDynamicLayout, + WithDynamicTagName { protected templateFor(component: Component): CompilableProgram | null { let { layout, layoutName } = component; @@ -504,22 +504,22 @@ export function processComponentInitializationAssertions(component: Component, p assert( `You cannot use \`classNameBindings\` on a tag-less component: ${component}`, component.tagName !== '' || - !component.classNameBindings || - component.classNameBindings.length === 0 + !component.classNameBindings || + component.classNameBindings.length === 0 ); assert( `You cannot use \`elementId\` on a tag-less component: ${component}`, component.tagName !== '' || - props.id === component.elementId || - (!component.elementId && component.elementId !== '') + props.id === component.elementId || + (!component.elementId && component.elementId !== '') ); assert( `You cannot use \`attributeBindings\` on a tag-less component: ${component}`, component.tagName !== '' || - !component.attributeBindings || - component.attributeBindings.length === 0 + !component.attributeBindings || + component.attributeBindings.length === 0 ); } diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts b/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts index 8fad1b2f9d7..a8ad90fca46 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts @@ -10,7 +10,6 @@ import type { Destroyable, Environment, InternalComponentCapabilities, - Option, TemplateFactory, VMArguments, WithCreateInstance, @@ -18,6 +17,7 @@ import type { WithDynamicLayout, WithSubOwner, } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; import { capabilityFlagsFrom } from '@glimmer/manager'; import type { Reference } from '@glimmer/reference'; import { createConstRef, valueForRef } from '@glimmer/reference'; @@ -53,10 +53,10 @@ const CAPABILITIES = { class MountManager implements - WithCreateInstance, - WithDynamicLayout, - WithCustomDebugRenderTree, - WithSubOwner + WithCreateInstance, + WithDynamicLayout, + WithCustomDebugRenderTree, + WithSubOwner { getDynamicLayout(state: EngineState) { let templateFactory = state.engine.lookup('template:application') as TemplateFactory; @@ -153,11 +153,11 @@ class MountManager return bucket.engine; } - didCreate() {} - didUpdate() {} + didCreate() { } + didUpdate() { } - didRenderLayout(): void {} - didUpdateLayout(): void {} + didRenderLayout(): void { } + didUpdateLayout(): void { } update(bucket: EngineState): void { let { controller, modelRef } = bucket; diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts index f914687b421..42ea58a58d1 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts @@ -13,13 +13,13 @@ import type { Environment, InternalComponentCapabilities, InternalComponentCapability, - Option, Template, VMArguments, WithCreateInstance, WithCustomDebugRenderTree, WithDynamicTagName, } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; import { capabilityFlagsFrom } from '@glimmer/manager'; import type { Reference } from '@glimmer/reference'; import { createConstRef, valueForRef } from '@glimmer/reference'; @@ -70,8 +70,8 @@ const CAPABILITIES: InternalComponentCapabilities = { class OutletComponentManager implements - WithCreateInstance, - WithCustomDebugRenderTree + WithCreateInstance, + WithCustomDebugRenderTree { create( _owner: InternalOwner, @@ -170,14 +170,14 @@ class OutletComponentManager return self; } - didCreate() {} - didUpdate() {} + didCreate() { } + didUpdate() { } didRenderLayout(state: OutletInstanceState): void { state.finalize(); } - didUpdateLayout() {} + didUpdateLayout() { } getDestroyable(): Option { return null; @@ -188,7 +188,7 @@ const OUTLET_MANAGER = new OutletComponentManager(); export class OutletComponentDefinition implements - ComponentDefinition + ComponentDefinition { // handle is not used by this custom definition public handle = -1; diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/root.ts b/packages/@ember/-internals/glimmer/lib/component-managers/root.ts index 96039c6ef3f..94e067217f0 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/root.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/root.ts @@ -6,10 +6,10 @@ import type { ComponentDefinition, Environment, InternalComponentCapabilities, - Option, Owner, VMArguments, } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; import { capabilityFlagsFrom } from '@glimmer/manager'; import { CONSTANT_TAG, consumeTag } from '@glimmer/validator'; import type Component from '../component'; diff --git a/packages/@ember/-internals/glimmer/lib/components/link-to.ts b/packages/@ember/-internals/glimmer/lib/components/link-to.ts index 97c119a10f2..06fd21ca1d6 100644 --- a/packages/@ember/-internals/glimmer/lib/components/link-to.ts +++ b/packages/@ember/-internals/glimmer/lib/components/link-to.ts @@ -8,7 +8,8 @@ import { flaggedInstrument } from '@ember/instrumentation'; import { action } from '@ember/object'; import { service } from '@ember/service'; import { DEBUG } from '@glimmer/env'; -import type { Maybe, Option } from '@glimmer/interfaces'; +import type { Maybe } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; import { consumeTag, createCache, getValue, tagFor, untrack } from '@glimmer/validator'; import type { Transition } from 'router_js'; import LinkToTemplate from '../templates/link-to'; @@ -283,17 +284,17 @@ class _LinkTo extends InternalComponent { validateArguments(): void { assert( 'You attempted to use the component within a routeless engine, this is not supported. ' + - 'If you are using the ember-engines addon, use the component instead. ' + - 'See https://ember-engines.com/docs/links for more info.', + 'If you are using the ember-engines addon, use the component instead. ' + + 'See https://ember-engines.com/docs/links for more info.', !this.isEngine || this.engineMountPoint !== undefined ); assert( 'You must provide at least one of the `@route`, `@model`, `@models` or `@query` arguments to ``.', 'route' in this.args.named || - 'model' in this.args.named || - 'models' in this.args.named || - 'query' in this.args.named + 'model' in this.args.named || + 'models' in this.args.named || + 'query' in this.args.named ); assert( @@ -382,7 +383,7 @@ class _LinkTo extends InternalComponent { if (this.isLoading) { warn( 'This link is in an inactive loading state because at least one of its models ' + - 'currently has a null/undefined value, or the provided route name is invalid.', + 'currently has a null/undefined value, or the provided route name is invalid.', false, { id: 'ember-glimmer.link-to.inactive-loading-state', @@ -694,5 +695,5 @@ let descriptorFor = (target: object, property: string): Option, OpaqueInternalComponentConstructor {} +interface LinkTo extends Opaque<'component:link-to'>, OpaqueInternalComponentConstructor { } export default LinkTo; diff --git a/packages/@ember/-internals/glimmer/lib/renderer.ts b/packages/@ember/-internals/glimmer/lib/renderer.ts index 3b036cd9a2e..ef1163eae62 100644 --- a/packages/@ember/-internals/glimmer/lib/renderer.ts +++ b/packages/@ember/-internals/glimmer/lib/renderer.ts @@ -16,13 +16,13 @@ import type { DynamicScope as GlimmerDynamicScope, ElementBuilder, Environment, - Option, RenderResult, RuntimeContext, Template, TemplateFactory, } from '@glimmer/interfaces'; import { CurriedType } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; import { programCompilationContext } from '@glimmer/opcode-compiler'; import { artifacts } from '@glimmer/program'; import type { Reference } from '@glimmer/reference'; @@ -64,7 +64,7 @@ export interface View { } export class DynamicScope implements GlimmerDynamicScope { - constructor(public view: View | null, public outletState: Reference) {} + constructor(public view: View | null, public outletState: Reference) { } child() { return new DynamicScope(this.view, this.outletState); @@ -88,7 +88,7 @@ export class DynamicScope implements GlimmerDynamicScope { } } -const NO_OP = () => {}; +const NO_OP = () => { }; // This wrapper logic prevents us from rerendering in case of a hard failure // during render. This prevents infinite revalidation type loops from occuring, diff --git a/packages/@ember/-internals/glimmer/lib/resolver.ts b/packages/@ember/-internals/glimmer/lib/resolver.ts index 9496140c0fa..54639311102 100644 --- a/packages/@ember/-internals/glimmer/lib/resolver.ts +++ b/packages/@ember/-internals/glimmer/lib/resolver.ts @@ -9,12 +9,12 @@ import type { CompileTimeResolver, HelperDefinitionState, ModifierDefinitionState, - Option, ResolvedComponentDefinition, RuntimeResolver, Template, TemplateFactory, } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; import { getComponentTemplate, getInternalComponentManager, @@ -73,17 +73,17 @@ function layoutFor( type LookupResult = | { - component: InternalFactory; - layout: TemplateFactory; - } + component: InternalFactory; + layout: TemplateFactory; + } | { - component: InternalFactory; - layout: null; - } + component: InternalFactory; + layout: null; + } | { - component: null; - layout: TemplateFactory; - }; + component: null; + layout: TemplateFactory; + }; function lookupComponentPair( owner: InternalOwner, diff --git a/packages/@ember/-internals/glimmer/lib/syntax/mount.ts b/packages/@ember/-internals/glimmer/lib/syntax/mount.ts index 5a1c9f3c19a..03d970fd263 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/mount.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/mount.ts @@ -4,7 +4,8 @@ import type { InternalOwner } from '@ember/-internals/owner'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import type { CapturedArguments, Option } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; +import type { CapturedArguments } from '@glimmer/interfaces'; import { CurriedType } from '@glimmer/interfaces'; import type { Reference } from '@glimmer/reference'; import { createComputeRef, valueForRef } from '@glimmer/reference'; @@ -70,8 +71,8 @@ export const mountHelper = internalHelper( assert( 'You can only pass a `model` argument to the {{mount}} helper, ' + - 'e.g. {{mount "profile-engine" model=this.profile}}. ' + - `You passed ${extra.join(',')}.`, + 'e.g. {{mount "profile-engine" model=this.profile}}. ' + + `You passed ${extra.join(',')}.`, extra.length === 0 ); } diff --git a/packages/@ember/-internals/glimmer/lib/syntax/utils.ts b/packages/@ember/-internals/glimmer/lib/syntax/utils.ts index 64b1a2dd301..8c8c2efd24a 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/utils.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/utils.ts @@ -1,4 +1,5 @@ -import type { Core, Option, PresentArray } from '@glimmer/interfaces'; +import type { Core, PresentArray } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; export function hashToArgs(hash: Option): Option { if (hash === null) return null; diff --git a/packages/@ember/-internals/glimmer/lib/utils/iterator.ts b/packages/@ember/-internals/glimmer/lib/utils/iterator.ts index 7b5c4657f8b..118c8253683 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/iterator.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/iterator.ts @@ -2,7 +2,7 @@ import { objectAt } from '@ember/-internals/metal'; import type EmberArray from '@ember/array'; import { isEmberArray } from '@ember/array/-internals'; import { isObject } from '@ember/-internals/utils'; -import type { Option } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; import type { IteratorDelegate } from '@glimmer/reference'; import { consumeTag, isTracking, tagFor } from '@glimmer/validator'; import { EachInWrapper } from '../helpers/each-in'; @@ -53,7 +53,7 @@ function toEachIterator(iterable: unknown) { abstract class BoundedIterator implements IteratorDelegate { private position = 0; - constructor(private length: number) {} + constructor(private length: number) { } isEmpty(): false { return false; @@ -151,7 +151,7 @@ class ObjectIterator extends BoundedIterator { let isMapLike = false; // Not using an arrow function here so we can get an accurate `arguments` - obj.forEach(function (value: unknown, key: unknown) { + obj.forEach(function(value: unknown, key: unknown) { isMapLike = isMapLike || arguments.length >= 2; if (isMapLike) { @@ -185,7 +185,7 @@ class ObjectIterator extends BoundedIterator { } interface NativeIteratorConstructor { - new (iterable: Iterator, result: IteratorResult): NativeIterator; + new(iterable: Iterator, result: IteratorResult): NativeIterator; } abstract class NativeIterator implements IteratorDelegate { @@ -203,7 +203,7 @@ abstract class NativeIterator implements IteratorDelegate { private position = 0; - constructor(private iterable: Iterator, private result: IteratorResult) {} + constructor(private iterable: Iterator, private result: IteratorResult) { } isEmpty(): false { return false; diff --git a/packages/@ember/-internals/utility-types/index.ts b/packages/@ember/-internals/utility-types/index.ts index f03be1a0b57..93a6af4feba 100644 --- a/packages/@ember/-internals/utility-types/index.ts +++ b/packages/@ember/-internals/utility-types/index.ts @@ -7,9 +7,9 @@ export type MethodsOf = { // This `keyof` check is the thing which gives us *only* these keys, and no // `foo: never` appears in the final type. [K in keyof T as T[K] extends AnyFn ? K : never]: - // While this makes sure the resolved type only has `AnyFn` in it, so that - // the resulting type is known to be only function types. - T[K] extends AnyFn ? T[K] : never; + // While this makes sure the resolved type only has `AnyFn` in it, so that + // the resulting type is known to be only function types. + T[K] extends AnyFn ? T[K] : never; }; export type MethodNamesOf = keyof MethodsOf; @@ -28,3 +28,5 @@ declare const Data: unique symbol; export class Opaque { private declare [Data]: Data; } + +export type Option = T | null; diff --git a/packages/@ember/-internals/views/lib/system/utils.ts b/packages/@ember/-internals/views/lib/system/utils.ts index e00a6f74d44..d055599d7a5 100644 --- a/packages/@ember/-internals/views/lib/system/utils.ts +++ b/packages/@ember/-internals/views/lib/system/utils.ts @@ -3,7 +3,9 @@ import type { InternalOwner } from '@ember/-internals/owner'; import { getOwner } from '@ember/-internals/owner'; import { guidFor } from '@ember/-internals/utils'; import { assert } from '@ember/debug'; -import type { Dict, Option } from '@glimmer/interfaces'; +import type { Dict } from '@glimmer/interfaces'; + +import type { Option } from '@ember/-internals/utility-types'; /** @module ember diff --git a/packages/@ember/routing/lib/dsl.ts b/packages/@ember/routing/lib/dsl.ts index f401e6cf811..cdf6389ca7e 100644 --- a/packages/@ember/routing/lib/dsl.ts +++ b/packages/@ember/routing/lib/dsl.ts @@ -1,6 +1,6 @@ import type { InternalFactory } from '@ember/-internals/owner'; import { assert } from '@ember/debug'; -import type { Option } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; import type { MatchCallback } from 'route-recognizer'; import type { EngineInfo, EngineRouteInfo } from './engines'; diff --git a/packages/ember-template-compiler/tests/utils/transform-test-case.ts b/packages/ember-template-compiler/tests/utils/transform-test-case.ts index 768a733d1a8..37dcd575810 100644 --- a/packages/ember-template-compiler/tests/utils/transform-test-case.ts +++ b/packages/ember-template-compiler/tests/utils/transform-test-case.ts @@ -1,5 +1,5 @@ import { precompile } from '@glimmer/compiler'; -import type { Option } from '@glimmer/interfaces'; +import type { Option } from '@ember/-internals/utility-types'; import type { AST, ASTPlugin } from '@glimmer/syntax'; import { AbstractTestCase } from 'internal-test-helpers'; import { compileOptions } from '../../index'; From fc9397ef6d18984ca0b603913d2add1d9c00b6c5 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Tue, 24 Oct 2023 10:17:01 -0400 Subject: [PATCH 03/27] Remove import of WeakSet polyfill as it's shipped everywhere now, and glimmer doesn't provide the polyfill anymore --- .../-internals/glimmer/lib/helpers/action.ts | 3 +-- .../@ember/-internals/glimmer/lib/resolver.ts | 21 +++++++++---------- .../@ember/-internals/metal/lib/chain-tags.ts | 3 +-- .../@ember/-internals/metal/lib/decorator.ts | 1 - .../@ember/-internals/utils/lib/is_proxy.ts | 1 - .../-internals/utils/lib/mandatory-setter.ts | 1 - packages/@ember/-internals/utils/lib/super.ts | 2 -- packages/@ember/array/-internals.ts | 3 +-- packages/@ember/debug/lib/inspect.ts | 1 - packages/@ember/object/core.ts | 1 - packages/@ember/object/mixin.ts | 3 +-- 11 files changed, 14 insertions(+), 26 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/helpers/action.ts b/packages/@ember/-internals/glimmer/lib/helpers/action.ts index d803e5c98f2..5fbd49e259a 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/action.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/action.ts @@ -10,10 +10,9 @@ import { DEBUG } from '@glimmer/env'; import type { CapturedArguments } from '@glimmer/interfaces'; import type { Reference } from '@glimmer/reference'; import { createUnboundRef, isInvokableRef, updateRef, valueForRef } from '@glimmer/reference'; -import { _WeakSet } from '@glimmer/util'; import { internalHelper } from './internal-helper'; -export const ACTIONS = new _WeakSet(); +export const ACTIONS = new WeakSet(); /** The `{{action}}` helper provides a way to pass triggers for behavior (usually diff --git a/packages/@ember/-internals/glimmer/lib/resolver.ts b/packages/@ember/-internals/glimmer/lib/resolver.ts index 54639311102..e1d9415e828 100644 --- a/packages/@ember/-internals/glimmer/lib/resolver.ts +++ b/packages/@ember/-internals/glimmer/lib/resolver.ts @@ -30,7 +30,6 @@ import { templateOnlyComponent, TEMPLATE_ONLY_COMPONENT_MANAGER, } from '@glimmer/runtime'; -import { _WeakSet } from '@glimmer/util'; import { isCurlyManager } from './component-managers/curly'; import { CLASSIC_HELPER_MANAGER, isClassicHelper } from './helper'; import { default as disallowDynamicResolution } from './helpers/-disallow-dynamic-resolution'; @@ -73,17 +72,17 @@ function layoutFor( type LookupResult = | { - component: InternalFactory; - layout: TemplateFactory; - } + component: InternalFactory; + layout: TemplateFactory; + } | { - component: InternalFactory; - layout: null; - } + component: InternalFactory; + layout: null; + } | { - component: null; - layout: TemplateFactory; - }; + component: null; + layout: TemplateFactory; + }; function lookupComponentPair( owner: InternalOwner, @@ -157,7 +156,7 @@ const BUILTIN_MODIFIERS: Record = { on, }; -const CLASSIC_HELPER_MANAGER_ASSOCIATED = new _WeakSet(); +const CLASSIC_HELPER_MANAGER_ASSOCIATED = new WeakSet(); export default class ResolverImpl implements RuntimeResolver, CompileTimeResolver diff --git a/packages/@ember/-internals/metal/lib/chain-tags.ts b/packages/@ember/-internals/metal/lib/chain-tags.ts index 14ae5742766..4f7c13603dd 100644 --- a/packages/@ember/-internals/metal/lib/chain-tags.ts +++ b/packages/@ember/-internals/metal/lib/chain-tags.ts @@ -2,7 +2,6 @@ import type { Meta } from '@ember/-internals/meta'; import { meta as metaFor, peekMeta } from '@ember/-internals/meta'; import { isObject } from '@ember/-internals/utils'; import { assert } from '@ember/debug'; -import { _WeakSet } from '@glimmer/util'; import type { Tag, TagMeta } from '@glimmer/validator'; import { combine, @@ -14,7 +13,7 @@ import { import { objectAt } from './array'; import { tagForProperty } from './tags'; -export const CHAIN_PASS_THROUGH = new _WeakSet(); +export const CHAIN_PASS_THROUGH = new WeakSet(); export function finishLazyChains(meta: Meta, key: string, value: any) { let lazyTags = meta.readableLazyChainsFor(key); diff --git a/packages/@ember/-internals/metal/lib/decorator.ts b/packages/@ember/-internals/metal/lib/decorator.ts index 71bc8ad6494..d2bf0ff2ccb 100644 --- a/packages/@ember/-internals/metal/lib/decorator.ts +++ b/packages/@ember/-internals/metal/lib/decorator.ts @@ -2,7 +2,6 @@ import type { Meta } from '@ember/-internals/meta'; import { meta as metaFor, peekMeta } from '@ember/-internals/meta'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import { _WeakSet as WeakSet } from '@glimmer/util'; export type DecoratorPropertyDescriptor = (PropertyDescriptor & { initializer?: any }) | undefined; diff --git a/packages/@ember/-internals/utils/lib/is_proxy.ts b/packages/@ember/-internals/utils/lib/is_proxy.ts index 87323a9abec..443e4c805b0 100644 --- a/packages/@ember/-internals/utils/lib/is_proxy.ts +++ b/packages/@ember/-internals/utils/lib/is_proxy.ts @@ -1,5 +1,4 @@ import type ProxyMixin from '@ember/-internals/runtime/lib/mixins/-proxy'; -import { _WeakSet as WeakSet } from '@glimmer/util'; import { isObject } from './spec'; const PROXIES = new WeakSet(); diff --git a/packages/@ember/-internals/utils/lib/mandatory-setter.ts b/packages/@ember/-internals/utils/lib/mandatory-setter.ts index e30fe4c9c21..92e157f8d8e 100644 --- a/packages/@ember/-internals/utils/lib/mandatory-setter.ts +++ b/packages/@ember/-internals/utils/lib/mandatory-setter.ts @@ -1,6 +1,5 @@ import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import { _WeakSet as WeakSet } from '@glimmer/util'; import type { Tag } from '@glimmer/validator'; import lookupDescriptor from './lookup-descriptor'; diff --git a/packages/@ember/-internals/utils/lib/super.ts b/packages/@ember/-internals/utils/lib/super.ts index 2123597675a..2c862bfc410 100644 --- a/packages/@ember/-internals/utils/lib/super.ts +++ b/packages/@ember/-internals/utils/lib/super.ts @@ -1,5 +1,3 @@ -import { _WeakSet as WeakSet } from '@glimmer/util'; - const HAS_SUPER_PATTERN = /\.(_super|call\(this|apply\(this)/; const fnToString = Function.prototype.toString; diff --git a/packages/@ember/array/-internals.ts b/packages/@ember/array/-internals.ts index 3c3d2bc2deb..e25e288d641 100644 --- a/packages/@ember/array/-internals.ts +++ b/packages/@ember/array/-internals.ts @@ -1,7 +1,6 @@ import type { EmberArrayLike } from '@ember/array'; -import { _WeakSet } from '@glimmer/util'; -const EMBER_ARRAYS = new _WeakSet(); +const EMBER_ARRAYS = new WeakSet(); export function setEmberArray(obj: object) { EMBER_ARRAYS.add(obj); diff --git a/packages/@ember/debug/lib/inspect.ts b/packages/@ember/debug/lib/inspect.ts index c6e532e955b..6dfe664ed91 100644 --- a/packages/@ember/debug/lib/inspect.ts +++ b/packages/@ember/debug/lib/inspect.ts @@ -1,4 +1,3 @@ -import { _WeakSet as WeakSet } from '@glimmer/util'; import { assert } from '@ember/debug'; const { toString: objectToString } = Object.prototype; const { toString: functionToString } = Function.prototype; diff --git a/packages/@ember/object/core.ts b/packages/@ember/object/core.ts index c61c16c1494..9eb4fcd509e 100644 --- a/packages/@ember/object/core.ts +++ b/packages/@ember/object/core.ts @@ -22,7 +22,6 @@ import { ActionHandler } from '@ember/-internals/runtime'; import { makeArray } from '@ember/array'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import { _WeakSet as WeakSet } from '@glimmer/util'; import { destroy, isDestroying, isDestroyed, registerDestructor } from '@glimmer/destroyable'; import { OWNER } from '@glimmer/owner'; diff --git a/packages/@ember/object/mixin.ts b/packages/@ember/object/mixin.ts index 330529045e9..dc7ce6afb8b 100644 --- a/packages/@ember/object/mixin.ts +++ b/packages/@ember/object/mixin.ts @@ -7,7 +7,6 @@ import { meta as metaFor, peekMeta } from '@ember/-internals/meta'; import { guidFor, observerListenerMetaFor, ROOT, wrap } from '@ember/-internals/utils'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import { _WeakSet } from '@glimmer/util'; import { type ComputedDecorator, type ComputedPropertyGetter, @@ -450,7 +449,7 @@ export function mixin(obj: object, ...args: any[]) { return obj; } -const MIXINS = new _WeakSet(); +const MIXINS = new WeakSet(); /** The `Mixin` class allows you to create mixins, whose properties can be From c76e4a2f12b3e63467a9d9cd2910cdf570b4000a Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Tue, 24 Oct 2023 10:26:09 -0400 Subject: [PATCH 04/27] ComponentDefinition's capabilities property is now of type CapabilityMask, instead of InternalComponentCapability --- .../glimmer/lib/component-managers/outlet.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts index 42ea58a58d1..403bc7e88aa 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts @@ -8,11 +8,11 @@ import type { CapturedArguments, CompilableProgram, ComponentDefinition, + CapabilityMask, CustomRenderNode, Destroyable, Environment, InternalComponentCapabilities, - InternalComponentCapability, Template, VMArguments, WithCreateInstance, @@ -70,8 +70,8 @@ const CAPABILITIES: InternalComponentCapabilities = { class OutletComponentManager implements - WithCreateInstance, - WithCustomDebugRenderTree + WithCreateInstance, + WithCustomDebugRenderTree { create( _owner: InternalOwner, @@ -170,14 +170,14 @@ class OutletComponentManager return self; } - didCreate() { } - didUpdate() { } + didCreate() {} + didUpdate() {} didRenderLayout(state: OutletInstanceState): void { state.finalize(); } - didUpdateLayout() { } + didUpdateLayout() {} getDestroyable(): Option { return null; @@ -188,14 +188,14 @@ const OUTLET_MANAGER = new OutletComponentManager(); export class OutletComponentDefinition implements - ComponentDefinition + ComponentDefinition { // handle is not used by this custom definition public handle = -1; public resolvedName: string; public compilable: CompilableProgram; - public capabilities: InternalComponentCapability; + public capabilities: CapabilityMask; constructor( public state: OutletDefinitionState, From 1c5ff60000a9e082f9e7ad380a421570d65e1717 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Tue, 24 Oct 2023 10:30:28 -0400 Subject: [PATCH 05/27] @glimmer/validator's setTrackingTransactionEnv is now only accessible via the 'debug' export --- packages/@ember/-internals/glimmer/lib/environment.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/environment.ts b/packages/@ember/-internals/glimmer/lib/environment.ts index 90c2f27ca88..ffa77980ad5 100644 --- a/packages/@ember/-internals/glimmer/lib/environment.ts +++ b/packages/@ember/-internals/glimmer/lib/environment.ts @@ -9,7 +9,7 @@ import { schedule, _backburner } from '@ember/runloop'; import { DEBUG } from '@glimmer/env'; import setGlobalContext from '@glimmer/global-context'; import type { EnvironmentDelegate } from '@glimmer/runtime'; -import { setTrackingTransactionEnv } from '@glimmer/validator'; +import { debug } from '@glimmer/validator'; import toIterator from './utils/iterator'; import { isHTMLSafe } from './utils/string'; import toBool from './utils/to-bool'; @@ -92,7 +92,7 @@ setGlobalContext({ }); if (DEBUG) { - setTrackingTransactionEnv?.({ + debug?.setTrackingTransactionEnv?.({ debugMessage(obj, keyName) { let dirtyString = keyName ? `\`${keyName}\` on \`${getDebugName?.(obj)}\`` From 3c385addbc254be0391ee24865522c85c3efde6a Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Tue, 24 Oct 2023 10:55:32 -0400 Subject: [PATCH 06/27] Cast away some Reference types to Reference and note that GlimmerVM needs further changes --- .../@ember/-internals/glimmer/lib/helpers/action.ts | 13 ++++++++++--- .../-internals/glimmer/lib/helpers/unique-id.ts | 7 ++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/helpers/action.ts b/packages/@ember/-internals/glimmer/lib/helpers/action.ts index 5fbd49e259a..5f9251ca0ba 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/action.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/action.ts @@ -298,8 +298,13 @@ export default internalHelper((args: CapturedArguments): Reference => } else { fn = makeDynamicClosureAction( valueForRef(context) as object, - target!, - action, + // SAFETY: glimmer-vm should expose narrowing utilities for references + // as is, `target` is still `Reference`. + // however, we never even tried to narrow `target`, so this is potentially risky code. + target! as Reference, + // SAFETY: glimmer-vm should expose narrowing utilities for references + // as is, `action` is still `Reference` + action as Reference, processArgs, debugKey ); @@ -307,7 +312,9 @@ export default internalHelper((args: CapturedArguments): Reference => ACTIONS.add(fn); - return createUnboundRef(fn, '(result of an `action` helper)'); + // SAFETY: glimmer-vm should change the signature of createUnboundRef to use a generic + // so that the type param to `Reference` can infer from the first argument. + return createUnboundRef(fn, '(result of an `action` helper)') as Reference; }); function NOOP(args: unknown[]) { diff --git a/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts b/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts index 211f4192963..7411d1d08f7 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts @@ -30,7 +30,12 @@ import { createConstRef } from '@glimmer/reference'; import { internalHelper } from './internal-helper'; export default internalHelper((): Reference => { - return createConstRef(uniqueId(), 'unique-id'); + // SAFETY: glimmer-vm should change the signature of createUnboundRef to use a generic + // so that the type param to `Reference` can infer from the first argument. + // + // However, since ember-source@4.5, we can use functions explicitly, + // so we should investigate if we even need this "internalHelper" wrapper. + return createConstRef(uniqueId(), 'unique-id') as Reference; }); // From https://gist.github.com/selfish/fef2c0ba6cdfe07af76e64cecd74888b From 49991cba9414c1089bc262d60a30736f86c8b2a1 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Tue, 24 Oct 2023 11:17:53 -0400 Subject: [PATCH 07/27] CurriedType is now in @glimmer/vm, because it's a value, not just a type/interface --- packages/@ember/-internals/glimmer/lib/renderer.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/renderer.ts b/packages/@ember/-internals/glimmer/lib/renderer.ts index ef1163eae62..98e2d3f9dfe 100644 --- a/packages/@ember/-internals/glimmer/lib/renderer.ts +++ b/packages/@ember/-internals/glimmer/lib/renderer.ts @@ -21,7 +21,8 @@ import type { Template, TemplateFactory, } from '@glimmer/interfaces'; -import { CurriedType } from '@glimmer/interfaces'; + +import { CurriedType } from '@glimmer/vm'; import type { Option } from '@ember/-internals/utility-types'; import { programCompilationContext } from '@glimmer/opcode-compiler'; import { artifacts } from '@glimmer/program'; @@ -64,7 +65,7 @@ export interface View { } export class DynamicScope implements GlimmerDynamicScope { - constructor(public view: View | null, public outletState: Reference) { } + constructor(public view: View | null, public outletState: Reference) {} child() { return new DynamicScope(this.view, this.outletState); @@ -88,7 +89,7 @@ export class DynamicScope implements GlimmerDynamicScope { } } -const NO_OP = () => { }; +const NO_OP = () => {}; // This wrapper logic prevents us from rerendering in case of a hard failure // during render. This prevents infinite revalidation type loops from occuring, From 3af1641524c5cc4230abec8310e434a2a35a96ea Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 30 Oct 2023 18:13:52 -0400 Subject: [PATCH 08/27] lint:fix --- .../glimmer/lib/component-managers/curly.ts | 18 +++++++++--------- .../glimmer/lib/component-managers/mount.ts | 16 ++++++++-------- .../glimmer/lib/components/link-to.ts | 14 +++++++------- .../-internals/glimmer/lib/syntax/mount.ts | 4 ++-- .../-internals/glimmer/lib/utils/iterator.ts | 8 ++++---- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts index a9a44bd2f7e..bc9c1870c04 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts @@ -121,9 +121,9 @@ type ComponentFactory = InternalFactory< export default class CurlyComponentManager implements - WithCreateInstance, - WithDynamicLayout, - WithDynamicTagName + WithCreateInstance, + WithDynamicLayout, + WithDynamicTagName { protected templateFor(component: Component): CompilableProgram | null { let { layout, layoutName } = component; @@ -504,22 +504,22 @@ export function processComponentInitializationAssertions(component: Component, p assert( `You cannot use \`classNameBindings\` on a tag-less component: ${component}`, component.tagName !== '' || - !component.classNameBindings || - component.classNameBindings.length === 0 + !component.classNameBindings || + component.classNameBindings.length === 0 ); assert( `You cannot use \`elementId\` on a tag-less component: ${component}`, component.tagName !== '' || - props.id === component.elementId || - (!component.elementId && component.elementId !== '') + props.id === component.elementId || + (!component.elementId && component.elementId !== '') ); assert( `You cannot use \`attributeBindings\` on a tag-less component: ${component}`, component.tagName !== '' || - !component.attributeBindings || - component.attributeBindings.length === 0 + !component.attributeBindings || + component.attributeBindings.length === 0 ); } diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts b/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts index a8ad90fca46..67655a37d1e 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts @@ -53,10 +53,10 @@ const CAPABILITIES = { class MountManager implements - WithCreateInstance, - WithDynamicLayout, - WithCustomDebugRenderTree, - WithSubOwner + WithCreateInstance, + WithDynamicLayout, + WithCustomDebugRenderTree, + WithSubOwner { getDynamicLayout(state: EngineState) { let templateFactory = state.engine.lookup('template:application') as TemplateFactory; @@ -153,11 +153,11 @@ class MountManager return bucket.engine; } - didCreate() { } - didUpdate() { } + didCreate() {} + didUpdate() {} - didRenderLayout(): void { } - didUpdateLayout(): void { } + didRenderLayout(): void {} + didUpdateLayout(): void {} update(bucket: EngineState): void { let { controller, modelRef } = bucket; diff --git a/packages/@ember/-internals/glimmer/lib/components/link-to.ts b/packages/@ember/-internals/glimmer/lib/components/link-to.ts index 06fd21ca1d6..2da84f8ff70 100644 --- a/packages/@ember/-internals/glimmer/lib/components/link-to.ts +++ b/packages/@ember/-internals/glimmer/lib/components/link-to.ts @@ -284,17 +284,17 @@ class _LinkTo extends InternalComponent { validateArguments(): void { assert( 'You attempted to use the component within a routeless engine, this is not supported. ' + - 'If you are using the ember-engines addon, use the component instead. ' + - 'See https://ember-engines.com/docs/links for more info.', + 'If you are using the ember-engines addon, use the component instead. ' + + 'See https://ember-engines.com/docs/links for more info.', !this.isEngine || this.engineMountPoint !== undefined ); assert( 'You must provide at least one of the `@route`, `@model`, `@models` or `@query` arguments to ``.', 'route' in this.args.named || - 'model' in this.args.named || - 'models' in this.args.named || - 'query' in this.args.named + 'model' in this.args.named || + 'models' in this.args.named || + 'query' in this.args.named ); assert( @@ -383,7 +383,7 @@ class _LinkTo extends InternalComponent { if (this.isLoading) { warn( 'This link is in an inactive loading state because at least one of its models ' + - 'currently has a null/undefined value, or the provided route name is invalid.', + 'currently has a null/undefined value, or the provided route name is invalid.', false, { id: 'ember-glimmer.link-to.inactive-loading-state', @@ -695,5 +695,5 @@ let descriptorFor = (target: object, property: string): Option, OpaqueInternalComponentConstructor { } +interface LinkTo extends Opaque<'component:link-to'>, OpaqueInternalComponentConstructor {} export default LinkTo; diff --git a/packages/@ember/-internals/glimmer/lib/syntax/mount.ts b/packages/@ember/-internals/glimmer/lib/syntax/mount.ts index 03d970fd263..76b30f298d5 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/mount.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/mount.ts @@ -71,8 +71,8 @@ export const mountHelper = internalHelper( assert( 'You can only pass a `model` argument to the {{mount}} helper, ' + - 'e.g. {{mount "profile-engine" model=this.profile}}. ' + - `You passed ${extra.join(',')}.`, + 'e.g. {{mount "profile-engine" model=this.profile}}. ' + + `You passed ${extra.join(',')}.`, extra.length === 0 ); } diff --git a/packages/@ember/-internals/glimmer/lib/utils/iterator.ts b/packages/@ember/-internals/glimmer/lib/utils/iterator.ts index 118c8253683..818273e3877 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/iterator.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/iterator.ts @@ -53,7 +53,7 @@ function toEachIterator(iterable: unknown) { abstract class BoundedIterator implements IteratorDelegate { private position = 0; - constructor(private length: number) { } + constructor(private length: number) {} isEmpty(): false { return false; @@ -151,7 +151,7 @@ class ObjectIterator extends BoundedIterator { let isMapLike = false; // Not using an arrow function here so we can get an accurate `arguments` - obj.forEach(function(value: unknown, key: unknown) { + obj.forEach(function (value: unknown, key: unknown) { isMapLike = isMapLike || arguments.length >= 2; if (isMapLike) { @@ -185,7 +185,7 @@ class ObjectIterator extends BoundedIterator { } interface NativeIteratorConstructor { - new(iterable: Iterator, result: IteratorResult): NativeIterator; + new (iterable: Iterator, result: IteratorResult): NativeIterator; } abstract class NativeIterator implements IteratorDelegate { @@ -203,7 +203,7 @@ abstract class NativeIterator implements IteratorDelegate { private position = 0; - constructor(private iterable: Iterator, private result: IteratorResult) { } + constructor(private iterable: Iterator, private result: IteratorResult) {} isEmpty(): false { return false; From 8d5a06da5ffd638bef55edc51f2d5d128820f18b Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 30 Oct 2023 18:28:18 -0400 Subject: [PATCH 09/27] Update usage of glimmer/babel-vm-plugins --- lib/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/index.js b/lib/index.js index 5a1a043dfb8..0c5e28ecc5b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -8,7 +8,7 @@ const buildDebugMacroPlugin = require('./build-debug-macro-plugin'); const buildStripClassCallcheckPlugin = require('./build-strip-class-callcheck-plugin'); const injectBabelHelpers = require('./transforms/inject-babel-helpers').injectBabelHelpers; const debugTree = require('broccoli-debug').buildDebugCallback('ember-source:addon'); -const vmBabelPlugins = require('@glimmer/vm-babel-plugins'); +const { default: vmBabelPlugins } = require('@glimmer/vm-babel-plugins'); const Overrides = require('./overrides'); const SilentError = require('silent-error'); const SupportedBrowsers = require('./browsers'); From 69f815c4ea08fa7b365ff2b711a2571dd22d6637 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Wed, 1 Nov 2023 12:13:31 -0400 Subject: [PATCH 10/27] programCompilationContext needs a third parameter --- packages/@ember/-internals/glimmer/lib/renderer.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/renderer.ts b/packages/@ember/-internals/glimmer/lib/renderer.ts index 98e2d3f9dfe..2144748225c 100644 --- a/packages/@ember/-internals/glimmer/lib/renderer.ts +++ b/packages/@ember/-internals/glimmer/lib/renderer.ts @@ -25,7 +25,7 @@ import type { import { CurriedType } from '@glimmer/vm'; import type { Option } from '@ember/-internals/utility-types'; import { programCompilationContext } from '@glimmer/opcode-compiler'; -import { artifacts } from '@glimmer/program'; +import { artifacts, RuntimeOpImpl } from '@glimmer/program'; import type { Reference } from '@glimmer/reference'; import { createConstRef, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference'; import type { CurriedValue } from '@glimmer/runtime'; @@ -336,7 +336,11 @@ export class Renderer { let sharedArtifacts = artifacts(); - this._context = programCompilationContext(sharedArtifacts, resolver); + this._context = programCompilationContext( + sharedArtifacts, + resolver, + (heap) => new RuntimeOpImpl(heap) + ); let runtimeEnvironmentDelegate = new EmberEnvironmentDelegate(owner, env.isInteractive); this._runtime = runtimeContext( From ae9ded96d5f965d93d25666c25b5546527fb0194 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Wed, 1 Nov 2023 12:32:07 -0400 Subject: [PATCH 11/27] Use correct CurriedType value --- packages/@ember/-internals/glimmer/lib/syntax/mount.ts | 2 +- packages/@ember/-internals/glimmer/lib/syntax/outlet.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/syntax/mount.ts b/packages/@ember/-internals/glimmer/lib/syntax/mount.ts index 76b30f298d5..8e0bf832921 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/mount.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/mount.ts @@ -6,7 +6,7 @@ import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import type { Option } from '@ember/-internals/utility-types'; import type { CapturedArguments } from '@glimmer/interfaces'; -import { CurriedType } from '@glimmer/interfaces'; +import { CurriedType } from '@glimmer/vm'; import type { Reference } from '@glimmer/reference'; import { createComputeRef, valueForRef } from '@glimmer/reference'; import type { CurriedValue } from '@glimmer/runtime'; diff --git a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts index 03de75066e5..6ec4d9753ad 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts @@ -2,7 +2,7 @@ import type { InternalOwner } from '@ember/-internals/owner'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import type { CapturedArguments, DynamicScope } from '@glimmer/interfaces'; -import { CurriedType } from '@glimmer/interfaces'; +import { CurriedType } from '@glimmer/vm'; import type { Reference } from '@glimmer/reference'; import { childRefFromParts, From 65d8caec343a1506d8f38d299bbff15dcd6fdea1 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Wed, 1 Nov 2023 17:42:28 -0400 Subject: [PATCH 12/27] 'fix' type of a ref in outlet --- packages/@ember/-internals/glimmer/lib/syntax/outlet.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts index 6ec4d9753ad..93d9d2ef5fc 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts @@ -110,7 +110,12 @@ export const outletHelper = internalHelper( } ); -function stateFor(ref: Reference, outlet: OutletState | undefined): OutletDefinitionState | null { +function stateFor( + // SAFETY: default type here is Reference, which isn't assignable to the + // type in OutletDefinitionState which is Reference + ref: Reference, + outlet: OutletState | undefined +): OutletDefinitionState | null { if (outlet === undefined) return null; let render = outlet.render; if (render === undefined) return null; From 7cbcaa5ec50c02ad02bc56ad8b4488e26d57dd62 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Wed, 1 Nov 2023 20:41:30 -0400 Subject: [PATCH 13/27] Force rollup v4 so we have real errors that we can understand as humans. This revealed that we don't need @babel/plugin-transform-block-scoping --- lib/index.js | 4 -- package.json | 6 ++- pnpm-lock.yaml | 141 ++++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 121 insertions(+), 30 deletions(-) diff --git a/lib/index.js b/lib/index.js index 0c5e28ecc5b..36ac10b24c3 100644 --- a/lib/index.js +++ b/lib/index.js @@ -156,10 +156,6 @@ module.exports = { babelHelperPlugin, buildDebugMacroPlugin(!isProduction), ...vmBabelPlugins({ isDebug: !isProduction }), - [ - require.resolve('@babel/plugin-transform-block-scoping'), - { throwIfClosureRequired: true }, - ], ], }), }; diff --git a/package.json b/package.json index 29dd2ca9a15..a4560658016 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,6 @@ }, "dependencies": { "@babel/helper-module-imports": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.22.5", "@ember/edition-utils": "^1.2.0", "@glimmer/compiler": "0.85.13", "@glimmer/component": "^1.1.2", @@ -174,6 +173,11 @@ "resolutions": { "socket.io": "^4.7.0" }, + "pnpm": { + "overrides": { + "rollup": "^4.2.0" + } + }, "peerDependencies": { "@glimmer/component": "^1.1.2" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac33d50a30c..15acf4fa767 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,14 +6,12 @@ settings: overrides: socket.io: ^4.7.0 + rollup: ^4.2.0 dependencies: '@babel/helper-module-imports': specifier: ^7.16.7 version: 7.22.15 - '@babel/plugin-transform-block-scoping': - specifier: ^7.22.5 - version: 7.23.0(@babel/core@7.23.2) '@ember/edition-utils': specifier: ^1.2.0 version: 1.2.0 @@ -2727,7 +2725,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0 '@types/babel__core': ^7.1.9 - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + rollup: ^4.2.0 peerDependenciesMeta: '@types/babel__core': optional: true @@ -2743,7 +2741,7 @@ packages: resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + rollup: ^4.2.0 peerDependenciesMeta: rollup: optional: true @@ -2753,6 +2751,102 @@ packages: picomatch: 2.3.1 dev: true + /@rollup/rollup-android-arm-eabi@4.2.0: + resolution: {integrity: sha512-8PlggAxGxavr+pkCNeV1TM2wTb2o+cUWDg9M1cm9nR27Dsn287uZtSLYXoQqQcmq+sYfF7lHfd3sWJJinH9GmA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.2.0: + resolution: {integrity: sha512-+71T85hbMFrJI+zKQULNmSYBeIhru55PYoF/u75MyeN2FcxE4HSPw20319b+FcZ4lWx2Nx/Ql9tN+hoaD3GH/A==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.2.0: + resolution: {integrity: sha512-IIIQLuG43QIElT1JZqUP/zqIdiJl4t9U/boa0GZnQTw9m1X0k3mlBuysbgYXeloLT1RozdL7bgw4lpSaI8GOXw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.2.0: + resolution: {integrity: sha512-BXcXvnLaea1Xz900omrGJhxHFJfH9jZ0CpJuVsbjjhpniJ6qiLXz3xA8Lekaa4MuhFcJd4f0r+Ky1G4VFbYhWw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.2.0: + resolution: {integrity: sha512-f4K3MKw9Y4AKi4ANGnmPIglr+S+8tO858YrGVuqAHXxJdVghBmz9CPU9kDpOnGvT4g4vg5uNyIFpOOFvffXyMA==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.2.0: + resolution: {integrity: sha512-bNsTYQBgp4H7w6cT7FZhesxpcUPahsSIy4NgdZjH1ZwEoZHxi4XKglj+CsSEkhsKi+x6toVvMylhjRKhEMYfnA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.2.0: + resolution: {integrity: sha512-Jp1NxBJpGLuxRU2ihrQk4IZ+ia5nffobG6sOFUPW5PMYkF0kQtxEbeDuCa69Xif211vUOcxlOnf5IOEIpTEySA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.2.0: + resolution: {integrity: sha512-3p3iRtQmv2aXw+vtKNyZMLOQ+LSRsqArXjKAh2Oj9cqwfIRe7OXvdkOzWfZOIp1F/x5KJzVAxGxnniF4cMbnsQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.2.0: + resolution: {integrity: sha512-atih7IF/reUZe4LBLC5Izd44hth2tfDIG8LaPp4/cQXdHh9jabcZEvIeRPrpDq0i/Uu487Qu5gl5KwyAnWajnw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.2.0: + resolution: {integrity: sha512-vYxF3tKJeUE4ceYzpNe2p84RXk/fGK30I8frpRfv/MyPStej/mRlojztkN7Jtd1014HHVeq/tYaMBz/3IxkxZw==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.2.0: + resolution: {integrity: sha512-1LZJ6zpl93SaPQvas618bMFarVwufWTaczH4ESAbFcwiC4OtznA6Ym+hFPyIGaJaGEB8uMWWac0uXGPXOg5FGA==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.2.0: + resolution: {integrity: sha512-dgQfFdHCNg08nM5zBmqxqc9vrm0DVzhWotpavbPa0j4//MAOKZEB75yGAfzQE9fUJ+4pvM1239Y4IhL8f6sSog==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@simple-dom/document@1.4.0: resolution: {integrity: sha512-/RUeVH4kuD3rzo5/91+h4Z1meLSLP66eXqpVAw/4aZmYozkeqUkMprq0znL4psX/adEed5cBgiNJcfMz/eKZLg==} dependencies: @@ -3565,12 +3659,6 @@ packages: acorn: 8.10.0 dev: true - /acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} @@ -4740,7 +4828,7 @@ packages: heimdalljs-logger: 0.1.10 magic-string: 0.25.9 node-modules-path: 1.0.2 - rollup: 1.32.1 + rollup: 4.2.0 symlink-or-copy: 1.3.1 walk-sync: 0.3.4 transitivePeerDependencies: @@ -10990,20 +11078,23 @@ packages: dependencies: glob: 7.2.3 - /rollup@1.32.1: - resolution: {integrity: sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==} - hasBin: true - dependencies: - '@types/estree': 1.0.2 - '@types/node': 18.18.5 - acorn: 7.4.1 - dev: true - - /rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + /rollup@4.2.0: + resolution: {integrity: sha512-deaMa9Z+jPVeBD2dKXv+h7EbdKte9++V2potc/ADqvVgEr6DEJ3ia9u0joarjC2lX/ubaCRYz3QVx0TzuVqAJA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.2.0 + '@rollup/rollup-android-arm64': 4.2.0 + '@rollup/rollup-darwin-arm64': 4.2.0 + '@rollup/rollup-darwin-x64': 4.2.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.2.0 + '@rollup/rollup-linux-arm64-gnu': 4.2.0 + '@rollup/rollup-linux-arm64-musl': 4.2.0 + '@rollup/rollup-linux-x64-gnu': 4.2.0 + '@rollup/rollup-linux-x64-musl': 4.2.0 + '@rollup/rollup-win32-arm64-msvc': 4.2.0 + '@rollup/rollup-win32-ia32-msvc': 4.2.0 + '@rollup/rollup-win32-x64-msvc': 4.2.0 fsevents: 2.3.3 dev: true @@ -12559,7 +12650,7 @@ packages: '@types/node': 18.18.5 esbuild: 0.18.20 postcss: 8.4.31 - rollup: 3.29.4 + rollup: 4.2.0 optionalDependencies: fsevents: 2.3.3 dev: true From 2bee51502c5070fd8f1bc1c73ddde655d2f95261 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 9 Nov 2023 18:22:13 -0500 Subject: [PATCH 14/27] We re-implement babel features for private fields, since glimmer-vm now ships them untranspiled --- packages/external-helpers/lib/external-helpers.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/external-helpers/lib/external-helpers.js b/packages/external-helpers/lib/external-helpers.js index c021c577804..32d05a4de8d 100644 --- a/packages/external-helpers/lib/external-helpers.js +++ b/packages/external-helpers/lib/external-helpers.js @@ -9,6 +9,19 @@ const hasReflectConstruct = typeof Reflect === 'object' && typeof Reflect.constr const nativeWrapperCache = new Map(); +// Implementations: +// https://github.com/babel/babel/blob/436d78920883603668666210a4aacf524257bc3b/packages/babel-helpers/src/helpers.ts#L958 +let privateFieldId = 0; +export function classPrivateFieldLooseKey(name) { + return '__private_' + privateFieldId++ + '_' + name; +} +export function classPrivateFieldLooseBase(receiver, privateKey) { + if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { + throw new TypeError('attempted to use private field on non-instance'); + } + return receiver; +} + // Super minimal version of Babel's wrapNativeSuper. We only use this for // extending Function, for ComputedDecoratorImpl and AliasDecoratorImpl. We know // we will never directly create an instance of these classes so no need to From 0092ad74c5a690f5acf4466ee04fce3107120440 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 10 Nov 2023 12:03:07 -0500 Subject: [PATCH 15/27] Internal type checking now passes. the debug render tree args now requires an 'errors' object so that errors can be reported back to the user if something goes wrong --- .../application/debug-render-tree-test.ts | 152 +++++++++--------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts b/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts index 260a61c4574..c4de90dcdb9 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts +++ b/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts @@ -99,7 +99,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'index', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: this.controllerFor('index'), template: 'my-app/templates/index.hbs', bounds: this.elementBounds(this.element!), @@ -113,7 +113,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'foo', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: this.controllerFor('foo'), template: 'my-app/templates/foo.hbs', bounds: this.elementBounds(this.element!), @@ -121,7 +121,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'foo.index', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: this.controllerFor('foo.index'), template: 'my-app/templates/foo/index.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -137,7 +137,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'foo', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: this.controllerFor('foo'), template: 'my-app/templates/foo.hbs', bounds: this.elementBounds(this.element!), @@ -145,7 +145,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'foo.inner', - args: { positional: [], named: { model: 'wow' } }, + args: { positional: [], named: { model: 'wow' }, errors: {} }, instance: this.controllerFor('foo.inner'), template: 'my-app/templates/foo/inner.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -161,7 +161,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'foo', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: this.controllerFor('foo'), template: 'my-app/templates/foo.hbs', bounds: this.elementBounds(this.element!), @@ -169,7 +169,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'foo.inner', - args: { positional: [], named: { model: 'zomg' } }, + args: { positional: [], named: { model: 'zomg' }, errors: {} }, instance: this.controllerFor('foo.inner'), template: 'my-app/templates/foo/inner.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -276,7 +276,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'foo', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: Record) => instance['isFooEngineInstance'] === true, template: null, @@ -285,7 +285,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'foo/templates/application.hbs', @@ -304,7 +304,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'foo', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: Record) => instance['isFooEngineInstance'] === true, template: null, @@ -313,7 +313,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'foo/templates/application.hbs', @@ -325,7 +325,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'bar', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: Record) => instance['isBarEngineInstance'] === true, template: null, @@ -334,7 +334,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'bar/templates/application.hbs', @@ -353,7 +353,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'foo', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: Record) => instance['isFooEngineInstance'] === true, template: null, @@ -362,7 +362,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'foo/templates/application.hbs', @@ -390,7 +390,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'foo', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: Record) => instance['isFooEngineInstance'] === true, template: null, @@ -399,7 +399,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'foo/templates/application.hbs', @@ -411,7 +411,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'foo', - args: { positional: [], named: { model } }, + args: { positional: [], named: { model }, errors: {} }, instance: (instance: Record) => instance['isFooEngineInstance'] === true, template: null, @@ -420,7 +420,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: { model } }, + args: { positional: [], named: { model }, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'foo/templates/application.hbs', @@ -429,7 +429,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'inspect-model', - args: { positional: [], named: { model } }, + args: { positional: [], named: { model }, errors: {} }, instance: null, template: 'foo/components/inspect-model.hbs', bounds: this.nodeBounds(this.$('#static-with-model')[0]!.lastChild), @@ -449,7 +449,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'foo', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: Record) => instance['isFooEngineInstance'] === true, template: null, @@ -458,7 +458,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'foo/templates/application.hbs', @@ -470,7 +470,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'bar', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: Record) => instance['isBarEngineInstance'] === true, template: null, @@ -479,7 +479,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'bar/templates/application.hbs', @@ -491,7 +491,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'foo', - args: { positional: [], named: { model } }, + args: { positional: [], named: { model }, errors: {} }, instance: (instance: Record) => instance['isFooEngineInstance'] === true, template: null, @@ -500,7 +500,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: { model } }, + args: { positional: [], named: { model }, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', bounds: this.elementBounds(this.$('#static-with-model')[0]!), @@ -509,7 +509,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'inspect-model', - args: { positional: [], named: { model } }, + args: { positional: [], named: { model }, errors: {} }, instance: null, template: 'foo/components/inspect-model.hbs', bounds: this.nodeBounds(this.$('#static-with-model')[0]!.lastChild), @@ -522,7 +522,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'bar', - args: { positional: [], named: { model } }, + args: { positional: [], named: { model }, errors: {} }, instance: (instance: Record) => instance['isBarEngineInstance'] === true, template: null, @@ -531,7 +531,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: { model } }, + args: { positional: [], named: { model }, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'bar/templates/application.hbs', @@ -540,7 +540,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'inspect-model', - args: { positional: [], named: { model } }, + args: { positional: [], named: { model }, errors: {} }, instance: null, template: 'bar/components/inspect-model.hbs', bounds: this.nodeBounds(this.$('#dynamic-with-model')[0]!.lastChild), @@ -563,7 +563,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'engine', name: 'foo', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: Record) => instance['isFooEngineInstance'] === true, template: null, @@ -572,7 +572,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: (instance: object) => instance.toString() === '(generated application controller)', template: 'foo/templates/application.hbs', @@ -644,7 +644,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'index', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: this.controllerFor('index'), template: 'my-app/templates/index.hbs', bounds: this.elementBounds(this.element!), @@ -658,7 +658,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'engine', name: 'foo', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: instance!, template: null, bounds: this.elementBounds(this.element!), @@ -666,7 +666,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: instance!.lookup('controller:application'), template: 'foo/templates/application.hbs', bounds: this.elementBounds(this.element!), @@ -674,7 +674,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'index', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: instance!.lookup('controller:index'), template: 'foo/templates/index.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -696,7 +696,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'engine', name: 'foo', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: instance!, template: null, bounds: this.elementBounds(this.element!), @@ -704,7 +704,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: instance!.lookup('controller:application'), template: 'foo/templates/application.hbs', bounds: this.elementBounds(this.element!), @@ -712,7 +712,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'index', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: instance!.lookup('controller:index'), template: 'foo/templates/index.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -721,7 +721,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello', - args: { positional: [], named: { message: 'World' } }, + args: { positional: [], named: { message: 'World' }, errors: {} }, instance: null, template: 'foo/components/hello.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -743,7 +743,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'engine', name: 'foo', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: instance!, template: null, bounds: this.elementBounds(this.element!), @@ -751,7 +751,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'route-template', name: 'application', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: instance!.lookup('controller:application'), template: 'foo/templates/application.hbs', bounds: this.elementBounds(this.element!), @@ -759,7 +759,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'index', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: instance!.lookup('controller:index'), template: 'foo/templates/index.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -777,7 +777,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'index', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: this.controllerFor('index'), template: 'my-app/templates/index.hbs', bounds: this.elementBounds(this.element!), @@ -809,7 +809,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: null, template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -825,7 +825,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: null, template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -834,7 +834,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'second' } }, + args: { positional: [], named: { name: 'second' }, errors: {} }, instance: null, template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -850,7 +850,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: null, template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -882,7 +882,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: null, template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -898,7 +898,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: null, template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -907,7 +907,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'second' } }, + args: { positional: [], named: { name: 'second' }, errors: {} }, instance: null, template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -923,7 +923,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: null, template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -957,7 +957,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: null, template: 'my-app/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -973,7 +973,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: null, template: 'my-app/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -982,7 +982,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'second' } }, + args: { positional: [], named: { name: 'second' }, errors: {} }, instance: null, template: 'my-app/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -998,7 +998,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: null, template: 'my-app/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1030,7 +1030,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: (instance: Record) => instance['name'] === 'first', template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1046,7 +1046,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: (instance: Record) => instance['name'] === 'first', template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1055,7 +1055,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'second' } }, + args: { positional: [], named: { name: 'second' }, errors: {} }, instance: (instance: Record) => instance['name'] === 'second', template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -1071,7 +1071,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: (instance: Record) => instance['name'] === 'first', template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1115,7 +1115,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: (instance: Record) => instance['name'] === 'first', template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1131,7 +1131,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: (instance: Record) => instance['name'] === 'first', template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1140,7 +1140,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'second' } }, + args: { positional: [], named: { name: 'second' }, errors: {} }, instance: (instance: Record) => instance['name'] === 'second', template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -1156,7 +1156,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'hello-world', - args: { positional: [], named: { name: 'first' } }, + args: { positional: [], named: { name: 'first' }, errors: {} }, instance: (instance: Record) => instance['name'] === 'first', template: 'my-app/templates/components/hello-world.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1187,7 +1187,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'input', - args: { positional: [], named: { type: 'text', value: 'first' } }, + args: { positional: [], named: { type: 'text', value: 'first' }, errors: {} }, instance: (instance: object) => inputToString.test(instance.toString()), template: 'packages/@ember/-internals/glimmer/lib/templates/input.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1201,7 +1201,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'input', - args: { positional: [], named: { type: 'text', value: 'first' } }, + args: { positional: [], named: { type: 'text', value: 'first' }, errors: {} }, instance: (instance: object) => inputToString.test(instance.toString()), template: 'packages/@ember/-internals/glimmer/lib/templates/input.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1210,7 +1210,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'input', - args: { positional: [], named: { type: 'checkbox', checked: false } }, + args: { positional: [], named: { type: 'checkbox', checked: false }, errors: {} }, instance: (instance: object) => inputToString.test(instance.toString()), template: 'packages/@ember/-internals/glimmer/lib/templates/input.hbs', bounds: this.nodeBounds(this.element!.lastChild), @@ -1224,7 +1224,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'input', - args: { positional: [], named: { type: 'text', value: 'first' } }, + args: { positional: [], named: { type: 'text', value: 'first' }, errors: {} }, instance: (instance: object) => inputToString.test(instance.toString()), template: 'packages/@ember/-internals/glimmer/lib/templates/input.hbs', bounds: this.nodeBounds(this.element!.firstChild), @@ -1251,7 +1251,7 @@ if (ENV._DEBUG_RENDER_TREE) { return { type: 'component', name: 'textarea', - args: { positional: [], named: { value } }, + args: { positional: [], named: { value }, errors: {} }, instance: (instance: Record) => instance['value'] === value, bounds: this.nodeBounds(node), template: 'packages/@ember/-internals/glimmer/lib/templates/textarea.hbs', @@ -1302,7 +1302,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'link-to', - args: { positional: [], named: { route: 'foo' } }, + args: { positional: [], named: { route: 'foo' }, errors: {} }, instance: (instance: Record) => instance['route'] === 'foo', template, bounds: this.nodeBounds(this.element!.firstChild), @@ -1318,7 +1318,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'link-to', - args: { positional: [], named: { route: 'foo' } }, + args: { positional: [], named: { route: 'foo' }, errors: {} }, instance: (instance: Record) => instance['route'] === 'foo', template, bounds: this.nodeBounds(this.element!.firstChild), @@ -1327,7 +1327,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'link-to', - args: { positional: [], named: { route: 'bar' } }, + args: { positional: [], named: { route: 'bar' }, errors: {} }, instance: (instance: Record) => instance['route'] === 'bar', template, bounds: this.nodeBounds(this.element!.lastChild), @@ -1343,7 +1343,7 @@ if (ENV._DEBUG_RENDER_TREE) { { type: 'component', name: 'link-to', - args: { positional: [], named: { route: 'foo' } }, + args: { positional: [], named: { route: 'foo' }, errors: {} }, instance: (instance: Record) => instance['route'] === 'foo', template, bounds: this.nodeBounds(this.element!.firstChild), @@ -1379,7 +1379,7 @@ if (ENV._DEBUG_RENDER_TREE) { type: 'outlet', name, instance: undefined, - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, template: null, bounds: node.bounds, children: [node], @@ -1412,7 +1412,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: '-top-level', - args: { positional: [], named: {} }, + args: { positional: [], named: {}, errors: {} }, instance: undefined, template: outlet, bounds: ENV._APPLICATION_TEMPLATE_WRAPPER @@ -1422,7 +1422,7 @@ if (ENV._DEBUG_RENDER_TREE) { this.outlet({ type: 'route-template', name: 'application', - args: { positional: [], named: { model: undefined } }, + args: { positional: [], named: { model: undefined }, errors: {} }, instance: this.controllerFor('application'), template: this.owner.hasRegistration('template:application') ? 'my-app/templates/application.hbs' From 1856b8c8eb5e64f17f02f3d19cc5fa42c125943e Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Sat, 11 Nov 2023 09:15:39 -0500 Subject: [PATCH 16/27] Add disable_local_debug to qunit, as we have a bug we need to fix, but it was likely pre-existing Add disable_local_debug to bin/run-tests --- bin/run-tests.js | 2 +- testem.browserstack.js | 2 +- testem.ci-browsers.js | 2 +- testem.js | 8 +++++++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bin/run-tests.js b/bin/run-tests.js index cbd49c87fc8..8e341cc7264 100755 --- a/bin/run-tests.js +++ b/bin/run-tests.js @@ -39,7 +39,7 @@ function run(queryString) { queryString = `${queryString}&debugrendertree`; } - let url = 'http://localhost:' + PORT + '/tests/?' + queryString; + let url = 'http://localhost:' + PORT + '/tests/?disable_local_debug&' + queryString; return runInBrowser(url, 3); } diff --git a/testem.browserstack.js b/testem.browserstack.js index e06d2d5d054..396abe93fe5 100644 --- a/testem.browserstack.js +++ b/testem.browserstack.js @@ -58,7 +58,7 @@ const BrowserStackLaunchers = { }; module.exports = { - test_page: 'dist/tests/index.html?hidepassed&hideskipped&timeout=60000', + test_page: 'dist/tests/index.html?hidepassed&hideskipped&timeout=60000&disable_local_debug', timeout: 1200, reporter: FailureOnlyPerBrowserReporter, browser_start_timeout: 2000, diff --git a/testem.ci-browsers.js b/testem.ci-browsers.js index 9d2d02fdd5c..bad7f3420de 100644 --- a/testem.ci-browsers.js +++ b/testem.ci-browsers.js @@ -1,7 +1,7 @@ const FailureOnlyReporter = require('testem-failure-only-reporter'); module.exports = { - test_page: 'tests/index.html?hidepassed&hideskipped&timeout=60000', + test_page: 'tests/index.html?hidepassed&hideskipped&timeout=60000&disable_local_debug', browser_disconnect_timeout: 120, timeout: 540, parallel: 1, diff --git a/testem.js b/testem.js index 98c0919d794..1ef30493dd2 100644 --- a/testem.js +++ b/testem.js @@ -1,5 +1,11 @@ module.exports = { - test_page: 'tests/index.html?hidepassed', + /** + * disable_local_debug was added as a supported dev-time glimmer-vm feature and lives here: + * https://github.com/glimmerjs/glimmer-vm/blob/master/packages/%40glimmer/local-debug-flags/index.ts + * + * It was introduced in: https://github.com/glimmerjs/glimmer-vm/pull/1427 + */ + test_page: 'tests/index.html?hidepassed&disable_local_debug', timeout: 540, parallel: 4, disable_watching: true, From 5a000f8ebc1c4ff2087495fcdb3e8f1e401f3caf Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 13 Nov 2023 18:22:43 -0500 Subject: [PATCH 17/27] Address incorrect type for stateFor --- packages/@ember/-internals/glimmer/lib/syntax/outlet.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts index 93d9d2ef5fc..debf7a97eb9 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts @@ -111,9 +111,7 @@ export const outletHelper = internalHelper( ); function stateFor( - // SAFETY: default type here is Reference, which isn't assignable to the - // type in OutletDefinitionState which is Reference - ref: Reference, + ref: Reference, outlet: OutletState | undefined ): OutletDefinitionState | null { if (outlet === undefined) return null; From b270cf05d11d650605d2d002c408ae60e0cf8fa4 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 13 Nov 2023 18:26:13 -0500 Subject: [PATCH 18/27] Update comment to be correct and note an optimization --- packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts b/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts index 7411d1d08f7..edf1d29eeab 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts @@ -33,8 +33,8 @@ export default internalHelper((): Reference => { // SAFETY: glimmer-vm should change the signature of createUnboundRef to use a generic // so that the type param to `Reference` can infer from the first argument. // - // However, since ember-source@4.5, we can use functions explicitly, - // so we should investigate if we even need this "internalHelper" wrapper. + // NOTE: constRef is an optimization so we don't let the VM create extra wrappers, + // tracking frames, etc. return createConstRef(uniqueId(), 'unique-id') as Reference; }); From 2120346c25889c8dbd8de036645ba3733d1ed8b8 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 13 Nov 2023 19:14:27 -0500 Subject: [PATCH 19/27] Fix the type of the refs for closureAction Changing AnyFn to Function in places up until the runloop public API --- .../-internals/glimmer/lib/helpers/action.ts | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/helpers/action.ts b/packages/@ember/-internals/glimmer/lib/helpers/action.ts index 5f9251ca0ba..f72d6b5471c 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/action.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/action.ts @@ -304,7 +304,7 @@ export default internalHelper((args: CapturedArguments): Reference => target! as Reference, // SAFETY: glimmer-vm should expose narrowing utilities for references // as is, `action` is still `Reference` - action as Reference, + action as Reference, processArgs, debugKey ); @@ -312,9 +312,7 @@ export default internalHelper((args: CapturedArguments): Reference => ACTIONS.add(fn); - // SAFETY: glimmer-vm should change the signature of createUnboundRef to use a generic - // so that the type param to `Reference` can infer from the first argument. - return createUnboundRef(fn, '(result of an `action` helper)') as Reference; + return createUnboundRef(fn, '(result of an `action` helper)'); }); function NOOP(args: unknown[]) { @@ -356,26 +354,22 @@ function makeArgsProcessor(valuePathRef: Reference | false, actionArgsRef: Refer function makeDynamicClosureAction( context: object, targetRef: Reference, - actionRef: Reference, + actionRef: Reference, processArgs: (args: unknown[]) => unknown[], debugKey: string ) { + const action = valueForRef(actionRef); + // We don't allow undefined/null values, so this creates a throw-away action to trigger the assertions if (DEBUG) { - makeClosureAction( - context, - valueForRef(targetRef), - valueForRef(actionRef), - processArgs, - debugKey - ); + makeClosureAction(context, valueForRef(targetRef), action, processArgs, debugKey); } return (...args: any[]) => { return makeClosureAction( context, valueForRef(targetRef), - valueForRef(actionRef), + action, processArgs, debugKey )(...args); @@ -383,18 +377,18 @@ function makeDynamicClosureAction( } interface MaybeActionHandler { - actions?: Record; + actions?: Record; } function makeClosureAction( context: object, target: MaybeActionHandler, - action: string | AnyFn, + action: unknown | null | undefined | string | Function, processArgs: (args: unknown[]) => unknown[], debugKey: string ) { let self: object; - let fn: AnyFn; + let fn: Function; assert( `Action passed is null or undefined in (action) from ${target}.`, @@ -423,7 +417,7 @@ function makeClosureAction( return (...args: any[]) => { let payload = { target: self, args, label: '@glimmer/closure-action' }; return flaggedInstrument('interaction.ember-action', payload, () => { - return join(self, fn, ...processArgs(args)); + return join(self, fn as AnyFn, ...processArgs(args)); }); }; } From 09a76488ca36605ecce493aace7941c3d11ef1cc Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 13 Nov 2023 19:42:51 -0500 Subject: [PATCH 20/27] Rename Option to Nullable to align with glimmer-vm terminology --- .../glimmer/lib/component-managers/curly.ts | 8 ++++---- .../glimmer/lib/component-managers/mount.ts | 4 ++-- .../glimmer/lib/component-managers/outlet.ts | 4 ++-- .../glimmer/lib/component-managers/root.ts | 4 ++-- .../-internals/glimmer/lib/components/link-to.ts | 8 ++++---- packages/@ember/-internals/glimmer/lib/renderer.ts | 6 +++--- packages/@ember/-internals/glimmer/lib/resolver.ts | 14 +++++++------- .../@ember/-internals/glimmer/lib/syntax/mount.ts | 4 ++-- .../@ember/-internals/glimmer/lib/syntax/utils.ts | 4 ++-- .../-internals/glimmer/lib/utils/iterator.ts | 4 ++-- packages/@ember/-internals/utility-types/index.ts | 2 +- .../@ember/-internals/views/lib/system/utils.ts | 8 ++++---- packages/@ember/routing/lib/dsl.ts | 4 ++-- .../tests/utils/transform-test-case.ts | 4 ++-- 14 files changed, 39 insertions(+), 39 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts index bc9c1870c04..23d004c28f5 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts @@ -6,7 +6,7 @@ import { } from '@ember/-internals/owner'; import { enumerableSymbol, guidFor } from '@ember/-internals/utils'; import { addChildView, setElementView, setViewElement } from '@ember/-internals/views'; -import type { Option } from '@ember/-internals/utility-types'; +import type { Nullable } from '@ember/-internals/utility-types'; import { assert, debugFreeze } from '@ember/debug'; import { _instrumentStart } from '@ember/instrumentation'; import { DEBUG } from '@glimmer/env'; @@ -154,7 +154,7 @@ export default class CurlyComponentManager return this.templateFor(bucket.component); } - getTagName(state: ComponentStateBucket): Option { + getTagName(state: ComponentStateBucket): Nullable { let { component, hasWrappedElement } = state; if (!hasWrappedElement) { @@ -168,7 +168,7 @@ export default class CurlyComponentManager return CURLY_CAPABILITIES; } - prepareArgs(ComponentClass: ComponentFactory, args: VMArguments): Option { + prepareArgs(ComponentClass: ComponentFactory, args: VMArguments): Nullable { if (args.named.has('__ARGS__')) { assert( '[BUG] cannot pass both __ARGS__ and positional arguments', @@ -467,7 +467,7 @@ export default class CurlyComponentManager } } - getDestroyable(bucket: ComponentStateBucket): Option { + getDestroyable(bucket: ComponentStateBucket): Nullable { return bucket; } } diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts b/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts index 67655a37d1e..068d30c8fbf 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts @@ -17,7 +17,7 @@ import type { WithDynamicLayout, WithSubOwner, } from '@glimmer/interfaces'; -import type { Option } from '@ember/-internals/utility-types'; +import type { Nullable } from '@ember/-internals/utility-types'; import { capabilityFlagsFrom } from '@glimmer/manager'; import type { Reference } from '@glimmer/reference'; import { createConstRef, valueForRef } from '@glimmer/reference'; @@ -149,7 +149,7 @@ class MountManager return self; } - getDestroyable(bucket: EngineState): Option { + getDestroyable(bucket: EngineState): Nullable { return bucket.engine; } diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts index 403bc7e88aa..39cf2cfd29c 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts @@ -19,7 +19,7 @@ import type { WithCustomDebugRenderTree, WithDynamicTagName, } from '@glimmer/interfaces'; -import type { Option } from '@ember/-internals/utility-types'; +import type { Nullable } from '@ember/-internals/utility-types'; import { capabilityFlagsFrom } from '@glimmer/manager'; import type { Reference } from '@glimmer/reference'; import { createConstRef, valueForRef } from '@glimmer/reference'; @@ -179,7 +179,7 @@ class OutletComponentManager didUpdateLayout() {} - getDestroyable(): Option { + getDestroyable(): Nullable { return null; } } diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/root.ts b/packages/@ember/-internals/glimmer/lib/component-managers/root.ts index 94e067217f0..00aca8f633c 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/root.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/root.ts @@ -9,7 +9,7 @@ import type { Owner, VMArguments, } from '@glimmer/interfaces'; -import type { Option } from '@ember/-internals/utility-types'; +import type { Nullable } from '@ember/-internals/utility-types'; import { capabilityFlagsFrom } from '@glimmer/manager'; import { CONSTANT_TAG, consumeTag } from '@glimmer/validator'; import type Component from '../component'; @@ -32,7 +32,7 @@ class RootComponentManager extends CurlyComponentManager { create( _owner: Owner, _state: unknown, - _args: Option, + _args: Nullable, { isInteractive }: Environment, dynamicScope: DynamicScope ) { diff --git a/packages/@ember/-internals/glimmer/lib/components/link-to.ts b/packages/@ember/-internals/glimmer/lib/components/link-to.ts index 2da84f8ff70..f5110758a4e 100644 --- a/packages/@ember/-internals/glimmer/lib/components/link-to.ts +++ b/packages/@ember/-internals/glimmer/lib/components/link-to.ts @@ -9,7 +9,7 @@ import { action } from '@ember/object'; import { service } from '@ember/service'; import { DEBUG } from '@glimmer/env'; import type { Maybe } from '@glimmer/interfaces'; -import type { Option } from '@ember/-internals/utility-types'; +import type { Nullable } from '@ember/-internals/utility-types'; import { consumeTag, createCache, getValue, tagFor, untrack } from '@glimmer/validator'; import type { Transition } from 'router_js'; import LinkToTemplate from '../templates/link-to'; @@ -32,7 +32,7 @@ function isPresent(value: Maybe): value is T { interface QueryParams { isQueryParams: true; - values: Option<{}>; + values: Nullable<{}>; } function isQueryParams(value: unknown): value is QueryParams { @@ -474,7 +474,7 @@ class _LinkTo extends InternalComponent { return this.isActiveForState(this.routing.currentState as Maybe); } - private get willBeActive(): Option { + private get willBeActive(): Nullable { let current = this.routing.currentState; let target = this.routing.targetState; @@ -586,7 +586,7 @@ class _LinkTo extends InternalComponent { let { prototype } = _LinkTo; -let descriptorFor = (target: object, property: string): Option => { +let descriptorFor = (target: object, property: string): Nullable => { if (target) { return ( Object.getOwnPropertyDescriptor(target, property) || diff --git a/packages/@ember/-internals/glimmer/lib/renderer.ts b/packages/@ember/-internals/glimmer/lib/renderer.ts index 2144748225c..1c9c0e44469 100644 --- a/packages/@ember/-internals/glimmer/lib/renderer.ts +++ b/packages/@ember/-internals/glimmer/lib/renderer.ts @@ -23,7 +23,7 @@ import type { } from '@glimmer/interfaces'; import { CurriedType } from '@glimmer/vm'; -import type { Option } from '@ember/-internals/utility-types'; +import type { Nullable } from '@ember/-internals/utility-types'; import { programCompilationContext } from '@glimmer/opcode-compiler'; import { artifacts, RuntimeOpImpl } from '@glimmer/program'; import type { Reference } from '@glimmer/reference'; @@ -55,7 +55,7 @@ import OutletView from './views/outlet'; export type IBuilder = (env: Environment, cursor: Cursor) => ElementBuilder; export interface View { - parentView: Option; + parentView: Nullable; renderer: Renderer; tagName: string | null; elementId: string | null; @@ -464,7 +464,7 @@ export class Renderer { this._clearAllRoots(); } - getElement(view: View): Option { + getElement(view: View): Nullable { if (this._isInteractive) { return getViewElement(view); } else { diff --git a/packages/@ember/-internals/glimmer/lib/resolver.ts b/packages/@ember/-internals/glimmer/lib/resolver.ts index e1d9415e828..5ad07efc0c4 100644 --- a/packages/@ember/-internals/glimmer/lib/resolver.ts +++ b/packages/@ember/-internals/glimmer/lib/resolver.ts @@ -14,7 +14,7 @@ import type { Template, TemplateFactory, } from '@glimmer/interfaces'; -import type { Option } from '@ember/-internals/utility-types'; +import type { Nullable } from '@ember/-internals/utility-types'; import { getComponentTemplate, getInternalComponentManager, @@ -55,7 +55,7 @@ function instrumentationPayload(name: string) { function componentFor( name: string, owner: InternalOwner -): Option | object> { +): Nullable | object> { let fullName = `component:${name}` as const; return owner.factoryFor(fullName) || null; } @@ -64,7 +64,7 @@ function layoutFor( name: string, owner: InternalOwner, options?: RegisterOptions -): Option