From 74862e1b0139924d99f3f05c0d2d50f074e24df6 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Sat, 4 Apr 2026 00:28:09 -0400 Subject: [PATCH 01/15] Remove barrel file imports from internal code for better tree-shaking Replace all internal barrel imports (from `@ember/-internals/glimmer`, `@ember/-internals/environment`, etc.) with direct imports from the specific source files that define what is needed. Also replace all `export *` patterns in `@ember` packages with explicit named exports. - Update ~40 source files to import from specific lib paths instead of barrel `index.ts` files - Replace `export *` with named exports in `@ember/-internals/environment`, `@ember/engine/parent`, `@ember/template-compiler/*`, `ember-template-compiler`, and `ember-testing` - Replace `import * as environment` with named `{ hasDOM }` import in `@ember/application/instance` - Add deep import path entries to `@ember/-internals/package.json` exports map - Add `@glimmer/opcode-compiler` dependency to `ember-template-compiler` Test files are intentionally left unchanged as they may use barrel imports. --- .../@ember/-internals/deprecations/index.ts | 2 +- .../@ember/-internals/environment/index.ts | 4 ++-- .../@ember/-internals/glimmer/lib/component.ts | 2 +- .../-internals/glimmer/lib/environment.ts | 2 +- .../@ember/-internals/glimmer/lib/renderer.ts | 2 +- .../-internals/metal/lib/namespace_search.ts | 2 +- .../@ember/-internals/metal/lib/observer.ts | 2 +- packages/@ember/-internals/package.json | 18 ++++++++++++++++++ .../lib/mixins/target_action_support.ts | 2 +- .../views/lib/system/event_dispatcher.ts | 2 +- .../-internals/views/lib/system/utils.ts | 2 +- .../-internals/views/lib/views/core_view.ts | 2 +- packages/@ember/application/index.ts | 4 ++-- packages/@ember/application/instance.ts | 14 ++++++-------- packages/@ember/canary-features/index.ts | 2 +- packages/@ember/component/helper.ts | 4 ++-- packages/@ember/component/index.ts | 6 ++++-- .../@ember/debug/lib/capture-render-tree.ts | 2 +- packages/@ember/debug/lib/deprecate.ts | 2 +- packages/@ember/engine/index.ts | 2 +- packages/@ember/engine/instance.ts | 2 +- packages/@ember/engine/parent.ts | 2 +- packages/@ember/instrumentation/index.ts | 2 +- packages/@ember/modifier/index.ts | 2 +- packages/@ember/object/index.ts | 2 +- packages/@ember/renderer/index.ts | 4 ++-- packages/@ember/routing/index.ts | 2 +- packages/@ember/routing/route.ts | 2 +- packages/@ember/routing/router.ts | 6 +++++- .../template-compiler/-internal-primitives.ts | 7 ++++++- .../template-compiler/-internal-utils.ts | 8 +++++++- packages/@ember/template-compiler/index.ts | 3 ++- .../@ember/template-compiler/lib/runtime.ts | 3 ++- packages/@ember/template-compiler/runtime.ts | 2 +- packages/@ember/template/index.ts | 2 +- packages/ember-template-compiler/index.ts | 17 ++++++++++++++++- .../lib/plugins/utils.ts | 8 +++++++- .../lib/system/compile.ts | 2 +- packages/ember-template-compiler/package.json | 1 + packages/ember-testing/index.ts | 3 ++- pnpm-lock.yaml | 9 ++++++--- 41 files changed, 114 insertions(+), 53 deletions(-) diff --git a/packages/@ember/-internals/deprecations/index.ts b/packages/@ember/-internals/deprecations/index.ts index b68b84b616e..44124f88990 100644 --- a/packages/@ember/-internals/deprecations/index.ts +++ b/packages/@ember/-internals/deprecations/index.ts @@ -1,5 +1,5 @@ import type { DeprecationOptions } from '@ember/debug'; -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import { VERSION } from '@ember/version'; import { deprecate, assert } from '@ember/debug'; import { dasherize } from '../string/index'; diff --git a/packages/@ember/-internals/environment/index.ts b/packages/@ember/-internals/environment/index.ts index 27e1530a895..cb100660e78 100644 --- a/packages/@ember/-internals/environment/index.ts +++ b/packages/@ember/-internals/environment/index.ts @@ -1,2 +1,2 @@ -export * from './lib/context'; -export * from './lib/env'; +export { context, getLookup, setLookup, type GlobalContext } from './lib/context'; +export { ENV, getENV } from './lib/env'; diff --git a/packages/@ember/-internals/glimmer/lib/component.ts b/packages/@ember/-internals/glimmer/lib/component.ts index d66842da331..e58353640d0 100644 --- a/packages/@ember/-internals/glimmer/lib/component.ts +++ b/packages/@ember/-internals/glimmer/lib/component.ts @@ -1,4 +1,4 @@ -import type { View } from '@ember/-internals/glimmer'; +import type { View } from './renderer'; import { descriptorForProperty, get, diff --git a/packages/@ember/-internals/glimmer/lib/environment.ts b/packages/@ember/-internals/glimmer/lib/environment.ts index 2ebcbdea8e5..3727fef563c 100644 --- a/packages/@ember/-internals/glimmer/lib/environment.ts +++ b/packages/@ember/-internals/glimmer/lib/environment.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import { get, set, _getProp, _setProp } from '@ember/-internals/metal'; import type { InternalOwner } from '@ember/-internals/owner'; import { getDebugName } from '@ember/-internals/utils'; diff --git a/packages/@ember/-internals/glimmer/lib/renderer.ts b/packages/@ember/-internals/glimmer/lib/renderer.ts index cfc74e0e423..2aee4bd8837 100644 --- a/packages/@ember/-internals/glimmer/lib/renderer.ts +++ b/packages/@ember/-internals/glimmer/lib/renderer.ts @@ -1,5 +1,5 @@ import { privatize as P } from '@ember/-internals/container'; -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import type { InternalOwner } from '@ember/-internals/owner'; import { getOwner } from '@ember/-internals/owner'; import { guidFor } from '@ember/-internals/utils'; diff --git a/packages/@ember/-internals/metal/lib/namespace_search.ts b/packages/@ember/-internals/metal/lib/namespace_search.ts index a9ab713bf9e..8b167c0efca 100644 --- a/packages/@ember/-internals/metal/lib/namespace_search.ts +++ b/packages/@ember/-internals/metal/lib/namespace_search.ts @@ -1,4 +1,4 @@ -import { context } from '@ember/-internals/environment'; +import { context } from '@ember/-internals/environment/lib/context'; import { getName, setName } from '@ember/-internals/utils'; const hasOwnProperty = Object.prototype.hasOwnProperty; diff --git a/packages/@ember/-internals/metal/lib/observer.ts b/packages/@ember/-internals/metal/lib/observer.ts index 4154e3441a8..920fade1b30 100644 --- a/packages/@ember/-internals/metal/lib/observer.ts +++ b/packages/@ember/-internals/metal/lib/observer.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import { peekMeta } from '@ember/-internals/meta'; import type { schedule } from '@ember/runloop'; import { registerDestructor } from '@glimmer/destroyable'; diff --git a/packages/@ember/-internals/package.json b/packages/@ember/-internals/package.json index cc947bbb6b5..bccc4230c08 100644 --- a/packages/@ember/-internals/package.json +++ b/packages/@ember/-internals/package.json @@ -11,7 +11,25 @@ "./environment": "./environment/index.ts", "./error-handling": "./error-handling/index.ts", "./glimmer": "./glimmer/index.ts", + "./glimmer/lib/component": "./glimmer/lib/component.ts", + "./glimmer/lib/components/input": "./glimmer/lib/components/input.ts", "./glimmer/lib/components/internal": "./glimmer/lib/components/internal.ts", + "./glimmer/lib/components/link-to": "./glimmer/lib/components/link-to.ts", + "./glimmer/lib/components/textarea": "./glimmer/lib/components/textarea.ts", + "./glimmer/lib/dom": "./glimmer/lib/dom.ts", + "./glimmer/lib/helper": "./glimmer/lib/helper.ts", + "./glimmer/lib/helpers/unique-id": "./glimmer/lib/helpers/unique-id.ts", + "./glimmer/lib/renderer": "./glimmer/lib/renderer.ts", + "./glimmer/lib/setup-registry": "./glimmer/lib/setup-registry.ts", + "./glimmer/lib/template": "./glimmer/lib/template.ts", + "./glimmer/lib/template_registry": "./glimmer/lib/template_registry.ts", + "./glimmer/lib/utils/managers": "./glimmer/lib/utils/managers.ts", + "./glimmer/lib/utils/outlet": "./glimmer/lib/utils/outlet.ts", + "./glimmer/lib/utils/serialization-first-node-helpers": "./glimmer/lib/utils/serialization-first-node-helpers.ts", + "./glimmer/lib/utils/string": "./glimmer/lib/utils/string.ts", + "./glimmer/lib/views/outlet": "./glimmer/lib/views/outlet.ts", + "./environment/lib/context": "./environment/lib/context.ts", + "./environment/lib/env": "./environment/lib/env.ts", "./meta": "./meta/index.ts", "./metal": "./metal/index.ts", "./owner": "./owner/index.ts", diff --git a/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts b/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts index f01223f2b42..ee7112b4da3 100644 --- a/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts +++ b/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts @@ -2,7 +2,7 @@ @module ember */ -import { context } from '@ember/-internals/environment'; +import { context } from '@ember/-internals/environment/lib/context'; import { get, computed } from '@ember/-internals/metal'; import Mixin from '@ember/object/mixin'; import { assert } from '@ember/debug'; diff --git a/packages/@ember/-internals/views/lib/system/event_dispatcher.ts b/packages/@ember/-internals/views/lib/system/event_dispatcher.ts index 1a023ff6cbd..5e3e95a2c7a 100644 --- a/packages/@ember/-internals/views/lib/system/event_dispatcher.ts +++ b/packages/@ember/-internals/views/lib/system/event_dispatcher.ts @@ -3,7 +3,7 @@ import { assert } from '@ember/debug'; import { get, set } from '@ember/-internals/metal'; import EmberObject from '@ember/object'; import { getElementView } from './utils'; -import type { BootEnvironment } from '@ember/-internals/glimmer'; +import type { BootEnvironment } from '@ember/-internals/glimmer/lib/views/outlet'; import type Component from '@ember/component'; /** diff --git a/packages/@ember/-internals/views/lib/system/utils.ts b/packages/@ember/-internals/views/lib/system/utils.ts index 05d81d7611c..1188af78811 100644 --- a/packages/@ember/-internals/views/lib/system/utils.ts +++ b/packages/@ember/-internals/views/lib/system/utils.ts @@ -1,4 +1,4 @@ -import type { View } from '@ember/-internals/glimmer'; +import type { View } from '@ember/-internals/glimmer/lib/renderer'; import type { InternalOwner } from '@ember/-internals/owner'; import { getOwner } from '@ember/-internals/owner'; import { guidFor } from '@ember/-internals/utils'; diff --git a/packages/@ember/-internals/views/lib/views/core_view.ts b/packages/@ember/-internals/views/lib/views/core_view.ts index 241b233da65..a2e7aff5423 100644 --- a/packages/@ember/-internals/views/lib/views/core_view.ts +++ b/packages/@ember/-internals/views/lib/views/core_view.ts @@ -1,4 +1,4 @@ -import type { Renderer, View } from '@ember/-internals/glimmer'; +import type { Renderer, View } from '@ember/-internals/glimmer/lib/renderer'; import { inject } from '@ember/-internals/metal'; import { ActionHandler } from '@ember/-internals/runtime'; import Evented from '@ember/object/evented'; diff --git a/packages/@ember/application/index.ts b/packages/@ember/application/index.ts index dc6d923835a..409153d0534 100644 --- a/packages/@ember/application/index.ts +++ b/packages/@ember/application/index.ts @@ -4,7 +4,7 @@ import { getOwner as actualGetOwner, setOwner as actualSetOwner } from '@ember/owner'; import { dictionary } from '@ember/-internals/utils'; -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import { hasDOM } from '@ember/-internals/browser-environment'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; @@ -23,7 +23,7 @@ import Engine, { buildInitializerMethod } from '@ember/engine'; import type { BootOptions } from '@ember/engine/instance'; import type { Container, Registry } from '@ember/-internals/container'; import { privatize as P } from '@ember/-internals/container'; -import { setupApplicationRegistry } from '@ember/-internals/glimmer'; +import { setupApplicationRegistry } from '@ember/-internals/glimmer/lib/setup-registry'; import RouterService from '@ember/routing/router-service'; import type { EngineInstanceOptions } from '@ember/engine/instance'; import type { SimpleDocument, SimpleElement } from '@simple-dom/interface'; diff --git a/packages/@ember/application/instance.ts b/packages/@ember/application/instance.ts index 47ecb342bd4..da85ae8f10a 100644 --- a/packages/@ember/application/instance.ts +++ b/packages/@ember/application/instance.ts @@ -3,12 +3,13 @@ */ import { get, set } from '@ember/object'; -import * as environment from '@ember/-internals/browser-environment'; +import { hasDOM } from '@ember/-internals/browser-environment'; import EngineInstance from '@ember/engine/instance'; import type { BootOptions } from '@ember/engine/instance'; import type Application from '@ember/application'; -import { renderSettled } from '@ember/-internals/glimmer'; -import type { BootEnvironment, Component } from '@ember/-internals/glimmer'; +import { renderSettled } from '@ember/-internals/glimmer/lib/renderer'; +import type { BootEnvironment } from '@ember/-internals/glimmer/lib/views/outlet'; +import type Component from '@ember/-internals/glimmer/lib/component'; import { assert } from '@ember/debug'; import Router from '@ember/routing/router'; import { EventDispatcher } from '@ember/-internals/views'; @@ -445,13 +446,13 @@ class _BootOptions { readonly rootElement?: string | SimpleElement; constructor(options: BootOptions = {}) { - this.isInteractive = Boolean(environment.hasDOM); // This default is overridable below + this.isInteractive = Boolean(hasDOM); // This default is overridable below this._renderMode = options._renderMode; if (options.isBrowser !== undefined) { this.isBrowser = Boolean(options.isBrowser); } else { - this.isBrowser = Boolean(environment.hasDOM); + this.isBrowser = Boolean(hasDOM); } if (!this.isBrowser) { @@ -493,10 +494,7 @@ class _BootOptions { } toEnvironment(): BootEnvironment { - // Do we really want to assign all of this!? return { - ...environment, - // For compatibility with existing code hasDOM: this.isBrowser, isInteractive: this.isInteractive, _renderMode: this._renderMode, diff --git a/packages/@ember/canary-features/index.ts b/packages/@ember/canary-features/index.ts index 0d2c89324f2..01548b71daa 100644 --- a/packages/@ember/canary-features/index.ts +++ b/packages/@ember/canary-features/index.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; /** Set `EmberENV.FEATURES` in your application's `config/environment.js` file diff --git a/packages/@ember/component/helper.ts b/packages/@ember/component/helper.ts index c1aa1427027..6be3f911df6 100644 --- a/packages/@ember/component/helper.ts +++ b/packages/@ember/component/helper.ts @@ -1,6 +1,6 @@ export { - Helper as default, + default as default, helper, type FunctionBasedHelper, type FunctionBasedHelperInstance, -} from '@ember/-internals/glimmer'; +} from '@ember/-internals/glimmer/lib/helper'; diff --git a/packages/@ember/component/index.ts b/packages/@ember/component/index.ts index 0834c935f80..35c36d82f39 100644 --- a/packages/@ember/component/index.ts +++ b/packages/@ember/component/index.ts @@ -5,11 +5,13 @@ export { setComponentTemplate, getComponentTemplate } from '@glimmer/manager'; -export { Component as default, Input, Textarea } from '@ember/-internals/glimmer'; +export { default as default } from '@ember/-internals/glimmer/lib/component'; +export { default as Input } from '@ember/-internals/glimmer/lib/components/input'; +export { default as Textarea } from '@ember/-internals/glimmer/lib/components/textarea'; export { componentCapabilities as capabilities, setComponentManager, -} from '@ember/-internals/glimmer'; +} from '@ember/-internals/glimmer/lib/utils/managers'; /** * Assigns a TemplateFactory to a component class. diff --git a/packages/@ember/debug/lib/capture-render-tree.ts b/packages/@ember/debug/lib/capture-render-tree.ts index 6f7d28bb532..03c5cd4b3fa 100644 --- a/packages/@ember/debug/lib/capture-render-tree.ts +++ b/packages/@ember/debug/lib/capture-render-tree.ts @@ -1,4 +1,4 @@ -import type { Renderer } from '@ember/-internals/glimmer'; +import type { Renderer } from '@ember/-internals/glimmer/lib/renderer'; import type Owner from '@ember/owner'; import type { CapturedRenderNode } from '@glimmer/interfaces'; diff --git a/packages/@ember/debug/lib/deprecate.ts b/packages/@ember/debug/lib/deprecate.ts index 20a30302868..ce32eacfbd4 100644 --- a/packages/@ember/debug/lib/deprecate.ts +++ b/packages/@ember/debug/lib/deprecate.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import { DEBUG } from '@glimmer/env'; import { assert } from './assert'; diff --git a/packages/@ember/engine/index.ts b/packages/@ember/engine/index.ts index e16240fa87d..38d6fb9e4e2 100644 --- a/packages/@ember/engine/index.ts +++ b/packages/@ember/engine/index.ts @@ -13,7 +13,7 @@ import type { EngineInstanceOptions } from '@ember/engine/instance'; import EngineInstance from '@ember/engine/instance'; import { RoutingService } from '@ember/routing/-internals'; import { ComponentLookup } from '@ember/-internals/views'; -import { setupEngineRegistry } from '@ember/-internals/glimmer'; +import { setupEngineRegistry } from '@ember/-internals/glimmer/lib/setup-registry'; import { RegistryProxyMixin } from '@ember/-internals/runtime'; function props(obj: object) { diff --git a/packages/@ember/engine/instance.ts b/packages/@ember/engine/instance.ts index 097b5c6ca6e..25b2a114f52 100644 --- a/packages/@ember/engine/instance.ts +++ b/packages/@ember/engine/instance.ts @@ -14,7 +14,7 @@ import type Owner from '@ember/-internals/owner'; import { type FullName, isFactory } from '@ember/-internals/owner'; import type Engine from '@ember/engine'; import type Application from '@ember/application'; -import type { BootEnvironment } from '@ember/-internals/glimmer'; +import type { BootEnvironment } from '@ember/-internals/glimmer/lib/views/outlet'; import type { SimpleElement } from '@simple-dom/interface'; export interface BootOptions { diff --git a/packages/@ember/engine/parent.ts b/packages/@ember/engine/parent.ts index 61bd5a7eeb4..4a04bc06e53 100644 --- a/packages/@ember/engine/parent.ts +++ b/packages/@ember/engine/parent.ts @@ -1 +1 @@ -export * from './lib/engine-parent'; +export { ENGINE_PARENT, getEngineParent, setEngineParent } from './lib/engine-parent'; diff --git a/packages/@ember/instrumentation/index.ts b/packages/@ember/instrumentation/index.ts index 00938f3a9c7..f3fb35d4775 100644 --- a/packages/@ember/instrumentation/index.ts +++ b/packages/@ember/instrumentation/index.ts @@ -1,7 +1,7 @@ /* eslint no-console:off */ /* global console */ -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import { assert } from '@ember/debug'; export interface Listener { diff --git a/packages/@ember/modifier/index.ts b/packages/@ember/modifier/index.ts index dfbb7ffa3b5..c7a3cb5bb32 100644 --- a/packages/@ember/modifier/index.ts +++ b/packages/@ember/modifier/index.ts @@ -15,4 +15,4 @@ export const setModifierManager: ( export type { ModifierManager }; export type { ModifierCapabilities } from '@glimmer/interfaces'; -export { modifierCapabilities as capabilities } from '@ember/-internals/glimmer'; +export { modifierCapabilities as capabilities } from '@ember/-internals/glimmer/lib/utils/managers'; diff --git a/packages/@ember/object/index.ts b/packages/@ember/object/index.ts index 58325bcf278..ef3f0dc0b72 100644 --- a/packages/@ember/object/index.ts +++ b/packages/@ember/object/index.ts @@ -1,5 +1,5 @@ import { assert } from '@ember/debug'; -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import type { ElementDescriptor, ExtendedMethodDecorator } from '@ember/-internals/metal'; import { isElementDescriptor, diff --git a/packages/@ember/renderer/index.ts b/packages/@ember/renderer/index.ts index 870e0508e02..a8c5366ba5a 100644 --- a/packages/@ember/renderer/index.ts +++ b/packages/@ember/renderer/index.ts @@ -61,7 +61,7 @@ @public */ -export { renderSettled } from '@ember/-internals/glimmer'; +export { renderSettled } from '@ember/-internals/glimmer/lib/renderer'; /** * Render a component into a DOM element. @@ -79,4 +79,4 @@ export { renderSettled } from '@ember/-internals/glimmer'; * @param {Object} [options.args] Optionally pass args in to the component. These may be reactive as long as it is an object or object-like * @public */ -export { renderComponent } from '@ember/-internals/glimmer'; +export { renderComponent } from '@ember/-internals/glimmer/lib/renderer'; diff --git a/packages/@ember/routing/index.ts b/packages/@ember/routing/index.ts index 474d8b90c17..be0dd6e698f 100644 --- a/packages/@ember/routing/index.ts +++ b/packages/@ember/routing/index.ts @@ -1 +1 @@ -export { LinkTo } from '@ember/-internals/glimmer'; +export { default as LinkTo } from '@ember/-internals/glimmer/lib/components/link-to'; diff --git a/packages/@ember/routing/route.ts b/packages/@ember/routing/route.ts index 7b4a8f24eac..69c646b5413 100644 --- a/packages/@ember/routing/route.ts +++ b/packages/@ember/routing/route.ts @@ -23,7 +23,7 @@ import { dependentKeyCompat } from '@ember/object/compat'; import { once } from '@ember/runloop'; import { DEBUG } from '@glimmer/env'; import { hasInternalComponentManager } from '@glimmer/manager'; -import type { RenderState } from '@ember/-internals/glimmer'; +import type { RenderState } from '@ember/-internals/glimmer/lib/utils/outlet'; import type { TemplateFactory } from '@glimmer/interfaces'; import type { InternalRouteInfo, Route as IRoute, Transition, TransitionState } from 'router_js'; import { PARAMS_SYMBOL, STATE_SYMBOL } from 'router_js'; diff --git a/packages/@ember/routing/router.ts b/packages/@ember/routing/router.ts index 114c398476e..992e0482004 100644 --- a/packages/@ember/routing/router.ts +++ b/packages/@ember/routing/router.ts @@ -1,5 +1,9 @@ import { privatize as P } from '@ember/-internals/container'; -import type { BootEnvironment, OutletState, OutletView } from '@ember/-internals/glimmer'; +import type { + BootEnvironment, + default as OutletView, +} from '@ember/-internals/glimmer/lib/views/outlet'; +import type { OutletState } from '@ember/-internals/glimmer/lib/utils/outlet'; import { computed, get, set } from '@ember/object'; import type { default as Owner, FactoryManager } from '@ember/owner'; import { getOwner } from '@ember/owner'; diff --git a/packages/@ember/template-compiler/-internal-primitives.ts b/packages/@ember/template-compiler/-internal-primitives.ts index 7808146a4cf..613276756a4 100644 --- a/packages/@ember/template-compiler/-internal-primitives.ts +++ b/packages/@ember/template-compiler/-internal-primitives.ts @@ -1 +1,6 @@ -export * from './lib/-internal/primitives'; +export { + RESOLUTION_MODE_TRANSFORMS, + STRICT_MODE_TRANSFORMS, + STRICT_MODE_KEYWORDS, + INTERNAL_PLUGINS, +} from './lib/-internal/primitives'; diff --git a/packages/@ember/template-compiler/-internal-utils.ts b/packages/@ember/template-compiler/-internal-utils.ts index 8e0d9aae4e0..517ac25c350 100644 --- a/packages/@ember/template-compiler/-internal-utils.ts +++ b/packages/@ember/template-compiler/-internal-utils.ts @@ -1 +1,7 @@ -export * from './lib/plugins/utils'; +export { + isPath, + isSubExpression, + isStringLiteral, + inScope, + trackLocals, +} from './lib/plugins/utils'; diff --git a/packages/@ember/template-compiler/index.ts b/packages/@ember/template-compiler/index.ts index 7d9e14cbe4d..f3707c7016f 100644 --- a/packages/@ember/template-compiler/index.ts +++ b/packages/@ember/template-compiler/index.ts @@ -1,3 +1,4 @@ -export * from './lib/public-api'; +export { template } from './lib/public-api'; +export type { EmberPrecompileOptions } from './lib/public-api'; export { ALLOWED_GLOBALS } from './lib/plugins/allowed-globals'; diff --git a/packages/@ember/template-compiler/lib/runtime.ts b/packages/@ember/template-compiler/lib/runtime.ts index 7e1a213e3ea..dd2fd3671da 100644 --- a/packages/@ember/template-compiler/lib/runtime.ts +++ b/packages/@ember/template-compiler/lib/runtime.ts @@ -1 +1,2 @@ -export * from './public-api'; +export { template } from './public-api'; +export type { EmberPrecompileOptions } from './public-api'; diff --git a/packages/@ember/template-compiler/runtime.ts b/packages/@ember/template-compiler/runtime.ts index 594745c2db1..be0cd015746 100644 --- a/packages/@ember/template-compiler/runtime.ts +++ b/packages/@ember/template-compiler/runtime.ts @@ -1 +1 @@ -export * from './lib/runtime'; +export { template, type EmberPrecompileOptions } from './lib/runtime'; diff --git a/packages/@ember/template/index.ts b/packages/@ember/template/index.ts index a177015c07b..e1095169d01 100644 --- a/packages/@ember/template/index.ts +++ b/packages/@ember/template/index.ts @@ -7,4 +7,4 @@ export { isHTMLSafe, type SafeString, type TrustedHTML, -} from '@ember/-internals/glimmer'; +} from '@ember/-internals/glimmer/lib/utils/string'; diff --git a/packages/ember-template-compiler/index.ts b/packages/ember-template-compiler/index.ts index 7fadb57f7be..6b8f6950881 100644 --- a/packages/ember-template-compiler/index.ts +++ b/packages/ember-template-compiler/index.ts @@ -1,4 +1,19 @@ -export * from './lib/public-api'; +export { + precompile, + compile, + compileOptions, + _buildCompileOptions, + _transformsFor, + RESOLUTION_MODE_TRANSFORMS, + STRICT_MODE_TRANSFORMS, + _preprocess, + _print, + _precompile, + _GlimmerSyntax, + VERSION, +} from './lib/public-api'; +export type { EmberPrecompileOptions } from './lib/public-api'; +// NOTE: import * is intentional here -- the namespace object is passed to __registerTemplateCompiler import * as ETC from './lib/public-api'; import { __registerTemplateCompiler } from '@ember/template-compilation'; diff --git a/packages/ember-template-compiler/lib/plugins/utils.ts b/packages/ember-template-compiler/lib/plugins/utils.ts index 64889cb560a..586eada16ae 100644 --- a/packages/ember-template-compiler/lib/plugins/utils.ts +++ b/packages/ember-template-compiler/lib/plugins/utils.ts @@ -1 +1,7 @@ -export * from '@ember/template-compiler/-internal-utils'; +export { + isPath, + isSubExpression, + isStringLiteral, + inScope, + trackLocals, +} from '@ember/template-compiler/-internal-utils'; diff --git a/packages/ember-template-compiler/lib/system/compile.ts b/packages/ember-template-compiler/lib/system/compile.ts index 6eb0e2a170e..ab49249e5fe 100644 --- a/packages/ember-template-compiler/lib/system/compile.ts +++ b/packages/ember-template-compiler/lib/system/compile.ts @@ -4,7 +4,7 @@ import type { EmberPrecompileOptions } from '../types'; import precompile from './precompile'; import type { SerializedTemplateWithLazyBlock, TemplateFactory } from '@glimmer/interfaces'; -import { template } from '@ember/-internals/glimmer'; +import { templateFactory as template } from '@glimmer/opcode-compiler'; /** Uses HTMLBars `compile` function to process a string into a compiled template. diff --git a/packages/ember-template-compiler/package.json b/packages/ember-template-compiler/package.json index 6bb122fbb56..081dcf1bc8f 100644 --- a/packages/ember-template-compiler/package.json +++ b/packages/ember-template-compiler/package.json @@ -27,6 +27,7 @@ "@ember/template-compiler": "workspace:*", "@ember/utils": "workspace:*", "@glimmer/compiler": "workspace:*", + "@glimmer/opcode-compiler": "workspace:*", "@glimmer/env": "workspace:*", "@glimmer/interfaces": "workspace:*", "@glimmer/manager": "workspace:*", diff --git a/packages/ember-testing/index.ts b/packages/ember-testing/index.ts index 4a99b5d26e0..a06bf5d774b 100644 --- a/packages/ember-testing/index.ts +++ b/packages/ember-testing/index.ts @@ -1,4 +1,5 @@ -export * from './lib/public-api'; +export { Test, Adapter } from './lib/public-api'; +// NOTE: import * is intentional here -- the namespace object is passed to registerTestImplementation import * as EmberTesting from './lib/public-api'; import { registerTestImplementation } from '@ember/test'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8905238c41c..f876a0f7fd7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -155,7 +155,7 @@ importers: version: 2.1.0 ember-cli-dependency-checker: specifier: ^3.3.1 - version: 3.3.3(ember-cli@6.11.2(@babel/core@7.29.0)(@types/node@22.19.15)) + version: 3.3.3(ember-cli@6.11.2(@babel/core@7.29.0)(@types/node@22.19.15)(ejs@3.1.10)(handlebars@4.7.9)(underscore@1.13.8)) ember-cli-yuidoc: specifier: ^0.9.1 version: 0.9.1 @@ -2539,6 +2539,9 @@ importers: '@glimmer/manager': specifier: workspace:* version: link:../@glimmer/manager + '@glimmer/opcode-compiler': + specifier: workspace:* + version: link:../@glimmer/opcode-compiler '@glimmer/runtime': specifier: workspace:* version: link:../@glimmer/runtime @@ -2815,7 +2818,7 @@ importers: version: 3.0.0 ember-cli-dependency-checker: specifier: ^3.3.3 - version: 3.3.3(ember-cli@6.11.2(@babel/core@7.29.0)(@types/node@22.19.15)) + version: 3.3.3(ember-cli@6.11.2(@babel/core@7.29.0)(@types/node@22.19.15)(ejs@3.1.10)(handlebars@4.7.9)(underscore@1.13.8)) ember-cli-deprecation-workflow: specifier: ^3.4.0 version: 3.4.0(ember-source@) @@ -17461,7 +17464,7 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-dependency-checker@3.3.3(ember-cli@6.11.2(@babel/core@7.29.0)(@types/node@22.19.15)): + ember-cli-dependency-checker@3.3.3(ember-cli@6.11.2(@babel/core@7.29.0)(@types/node@22.19.15)(ejs@3.1.10)(handlebars@4.7.9)(underscore@1.13.8)): dependencies: chalk: 2.4.2 ember-cli: 6.11.2(@babel/core@7.29.0)(@types/node@22.19.15)(ejs@3.1.10)(handlebars@4.7.9)(underscore@1.13.8) From f8403955d2a7e89fdebf6427facdccaeae6a4ac8 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 00:30:58 -0400 Subject: [PATCH 02/15] Revert manual changes, so we can test lint --- .../@ember/-internals/deprecations/index.ts | 2 +- .../@ember/-internals/environment/index.ts | 4 ++-- .../@ember/-internals/glimmer/lib/component.ts | 2 +- .../-internals/glimmer/lib/environment.ts | 2 +- .../@ember/-internals/glimmer/lib/renderer.ts | 2 +- .../-internals/metal/lib/namespace_search.ts | 2 +- .../@ember/-internals/metal/lib/observer.ts | 2 +- packages/@ember/-internals/package.json | 18 ------------------ .../lib/mixins/target_action_support.ts | 2 +- .../views/lib/system/event_dispatcher.ts | 2 +- .../-internals/views/lib/system/utils.ts | 2 +- .../-internals/views/lib/views/core_view.ts | 2 +- packages/@ember/application/index.ts | 4 ++-- packages/@ember/application/instance.ts | 14 ++++++++------ packages/@ember/canary-features/index.ts | 2 +- packages/@ember/component/helper.ts | 4 ++-- packages/@ember/component/index.ts | 6 ++---- .../@ember/debug/lib/capture-render-tree.ts | 2 +- packages/@ember/debug/lib/deprecate.ts | 2 +- packages/@ember/engine/index.ts | 2 +- packages/@ember/engine/instance.ts | 2 +- packages/@ember/engine/parent.ts | 2 +- packages/@ember/instrumentation/index.ts | 2 +- packages/@ember/modifier/index.ts | 2 +- packages/@ember/object/index.ts | 2 +- packages/@ember/renderer/index.ts | 4 ++-- packages/@ember/routing/index.ts | 2 +- packages/@ember/routing/route.ts | 2 +- packages/@ember/routing/router.ts | 6 +----- .../template-compiler/-internal-primitives.ts | 7 +------ .../template-compiler/-internal-utils.ts | 8 +------- packages/@ember/template-compiler/index.ts | 3 +-- .../@ember/template-compiler/lib/runtime.ts | 3 +-- packages/@ember/template-compiler/runtime.ts | 2 +- packages/@ember/template/index.ts | 2 +- packages/ember-template-compiler/index.ts | 17 +---------------- .../lib/plugins/utils.ts | 8 +------- .../lib/system/compile.ts | 2 +- packages/ember-template-compiler/package.json | 1 - packages/ember-testing/index.ts | 3 +-- 40 files changed, 50 insertions(+), 108 deletions(-) diff --git a/packages/@ember/-internals/deprecations/index.ts b/packages/@ember/-internals/deprecations/index.ts index 44124f88990..b68b84b616e 100644 --- a/packages/@ember/-internals/deprecations/index.ts +++ b/packages/@ember/-internals/deprecations/index.ts @@ -1,5 +1,5 @@ import type { DeprecationOptions } from '@ember/debug'; -import { ENV } from '@ember/-internals/environment/lib/env'; +import { ENV } from '@ember/-internals/environment'; import { VERSION } from '@ember/version'; import { deprecate, assert } from '@ember/debug'; import { dasherize } from '../string/index'; diff --git a/packages/@ember/-internals/environment/index.ts b/packages/@ember/-internals/environment/index.ts index cb100660e78..27e1530a895 100644 --- a/packages/@ember/-internals/environment/index.ts +++ b/packages/@ember/-internals/environment/index.ts @@ -1,2 +1,2 @@ -export { context, getLookup, setLookup, type GlobalContext } from './lib/context'; -export { ENV, getENV } from './lib/env'; +export * from './lib/context'; +export * from './lib/env'; diff --git a/packages/@ember/-internals/glimmer/lib/component.ts b/packages/@ember/-internals/glimmer/lib/component.ts index e58353640d0..d66842da331 100644 --- a/packages/@ember/-internals/glimmer/lib/component.ts +++ b/packages/@ember/-internals/glimmer/lib/component.ts @@ -1,4 +1,4 @@ -import type { View } from './renderer'; +import type { View } from '@ember/-internals/glimmer'; import { descriptorForProperty, get, diff --git a/packages/@ember/-internals/glimmer/lib/environment.ts b/packages/@ember/-internals/glimmer/lib/environment.ts index 3727fef563c..2ebcbdea8e5 100644 --- a/packages/@ember/-internals/glimmer/lib/environment.ts +++ b/packages/@ember/-internals/glimmer/lib/environment.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment/lib/env'; +import { ENV } from '@ember/-internals/environment'; import { get, set, _getProp, _setProp } from '@ember/-internals/metal'; import type { InternalOwner } from '@ember/-internals/owner'; import { getDebugName } from '@ember/-internals/utils'; diff --git a/packages/@ember/-internals/glimmer/lib/renderer.ts b/packages/@ember/-internals/glimmer/lib/renderer.ts index 2aee4bd8837..cfc74e0e423 100644 --- a/packages/@ember/-internals/glimmer/lib/renderer.ts +++ b/packages/@ember/-internals/glimmer/lib/renderer.ts @@ -1,5 +1,5 @@ import { privatize as P } from '@ember/-internals/container'; -import { ENV } from '@ember/-internals/environment/lib/env'; +import { ENV } from '@ember/-internals/environment'; import type { InternalOwner } from '@ember/-internals/owner'; import { getOwner } from '@ember/-internals/owner'; import { guidFor } from '@ember/-internals/utils'; diff --git a/packages/@ember/-internals/metal/lib/namespace_search.ts b/packages/@ember/-internals/metal/lib/namespace_search.ts index 8b167c0efca..a9ab713bf9e 100644 --- a/packages/@ember/-internals/metal/lib/namespace_search.ts +++ b/packages/@ember/-internals/metal/lib/namespace_search.ts @@ -1,4 +1,4 @@ -import { context } from '@ember/-internals/environment/lib/context'; +import { context } from '@ember/-internals/environment'; import { getName, setName } from '@ember/-internals/utils'; const hasOwnProperty = Object.prototype.hasOwnProperty; diff --git a/packages/@ember/-internals/metal/lib/observer.ts b/packages/@ember/-internals/metal/lib/observer.ts index 920fade1b30..4154e3441a8 100644 --- a/packages/@ember/-internals/metal/lib/observer.ts +++ b/packages/@ember/-internals/metal/lib/observer.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment/lib/env'; +import { ENV } from '@ember/-internals/environment'; import { peekMeta } from '@ember/-internals/meta'; import type { schedule } from '@ember/runloop'; import { registerDestructor } from '@glimmer/destroyable'; diff --git a/packages/@ember/-internals/package.json b/packages/@ember/-internals/package.json index bccc4230c08..cc947bbb6b5 100644 --- a/packages/@ember/-internals/package.json +++ b/packages/@ember/-internals/package.json @@ -11,25 +11,7 @@ "./environment": "./environment/index.ts", "./error-handling": "./error-handling/index.ts", "./glimmer": "./glimmer/index.ts", - "./glimmer/lib/component": "./glimmer/lib/component.ts", - "./glimmer/lib/components/input": "./glimmer/lib/components/input.ts", "./glimmer/lib/components/internal": "./glimmer/lib/components/internal.ts", - "./glimmer/lib/components/link-to": "./glimmer/lib/components/link-to.ts", - "./glimmer/lib/components/textarea": "./glimmer/lib/components/textarea.ts", - "./glimmer/lib/dom": "./glimmer/lib/dom.ts", - "./glimmer/lib/helper": "./glimmer/lib/helper.ts", - "./glimmer/lib/helpers/unique-id": "./glimmer/lib/helpers/unique-id.ts", - "./glimmer/lib/renderer": "./glimmer/lib/renderer.ts", - "./glimmer/lib/setup-registry": "./glimmer/lib/setup-registry.ts", - "./glimmer/lib/template": "./glimmer/lib/template.ts", - "./glimmer/lib/template_registry": "./glimmer/lib/template_registry.ts", - "./glimmer/lib/utils/managers": "./glimmer/lib/utils/managers.ts", - "./glimmer/lib/utils/outlet": "./glimmer/lib/utils/outlet.ts", - "./glimmer/lib/utils/serialization-first-node-helpers": "./glimmer/lib/utils/serialization-first-node-helpers.ts", - "./glimmer/lib/utils/string": "./glimmer/lib/utils/string.ts", - "./glimmer/lib/views/outlet": "./glimmer/lib/views/outlet.ts", - "./environment/lib/context": "./environment/lib/context.ts", - "./environment/lib/env": "./environment/lib/env.ts", "./meta": "./meta/index.ts", "./metal": "./metal/index.ts", "./owner": "./owner/index.ts", diff --git a/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts b/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts index ee7112b4da3..f01223f2b42 100644 --- a/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts +++ b/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts @@ -2,7 +2,7 @@ @module ember */ -import { context } from '@ember/-internals/environment/lib/context'; +import { context } from '@ember/-internals/environment'; import { get, computed } from '@ember/-internals/metal'; import Mixin from '@ember/object/mixin'; import { assert } from '@ember/debug'; diff --git a/packages/@ember/-internals/views/lib/system/event_dispatcher.ts b/packages/@ember/-internals/views/lib/system/event_dispatcher.ts index 5e3e95a2c7a..1a023ff6cbd 100644 --- a/packages/@ember/-internals/views/lib/system/event_dispatcher.ts +++ b/packages/@ember/-internals/views/lib/system/event_dispatcher.ts @@ -3,7 +3,7 @@ import { assert } from '@ember/debug'; import { get, set } from '@ember/-internals/metal'; import EmberObject from '@ember/object'; import { getElementView } from './utils'; -import type { BootEnvironment } from '@ember/-internals/glimmer/lib/views/outlet'; +import type { BootEnvironment } from '@ember/-internals/glimmer'; import type Component from '@ember/component'; /** diff --git a/packages/@ember/-internals/views/lib/system/utils.ts b/packages/@ember/-internals/views/lib/system/utils.ts index 1188af78811..05d81d7611c 100644 --- a/packages/@ember/-internals/views/lib/system/utils.ts +++ b/packages/@ember/-internals/views/lib/system/utils.ts @@ -1,4 +1,4 @@ -import type { View } from '@ember/-internals/glimmer/lib/renderer'; +import type { View } from '@ember/-internals/glimmer'; import type { InternalOwner } from '@ember/-internals/owner'; import { getOwner } from '@ember/-internals/owner'; import { guidFor } from '@ember/-internals/utils'; diff --git a/packages/@ember/-internals/views/lib/views/core_view.ts b/packages/@ember/-internals/views/lib/views/core_view.ts index a2e7aff5423..241b233da65 100644 --- a/packages/@ember/-internals/views/lib/views/core_view.ts +++ b/packages/@ember/-internals/views/lib/views/core_view.ts @@ -1,4 +1,4 @@ -import type { Renderer, View } from '@ember/-internals/glimmer/lib/renderer'; +import type { Renderer, View } from '@ember/-internals/glimmer'; import { inject } from '@ember/-internals/metal'; import { ActionHandler } from '@ember/-internals/runtime'; import Evented from '@ember/object/evented'; diff --git a/packages/@ember/application/index.ts b/packages/@ember/application/index.ts index 409153d0534..dc6d923835a 100644 --- a/packages/@ember/application/index.ts +++ b/packages/@ember/application/index.ts @@ -4,7 +4,7 @@ import { getOwner as actualGetOwner, setOwner as actualSetOwner } from '@ember/owner'; import { dictionary } from '@ember/-internals/utils'; -import { ENV } from '@ember/-internals/environment/lib/env'; +import { ENV } from '@ember/-internals/environment'; import { hasDOM } from '@ember/-internals/browser-environment'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; @@ -23,7 +23,7 @@ import Engine, { buildInitializerMethod } from '@ember/engine'; import type { BootOptions } from '@ember/engine/instance'; import type { Container, Registry } from '@ember/-internals/container'; import { privatize as P } from '@ember/-internals/container'; -import { setupApplicationRegistry } from '@ember/-internals/glimmer/lib/setup-registry'; +import { setupApplicationRegistry } from '@ember/-internals/glimmer'; import RouterService from '@ember/routing/router-service'; import type { EngineInstanceOptions } from '@ember/engine/instance'; import type { SimpleDocument, SimpleElement } from '@simple-dom/interface'; diff --git a/packages/@ember/application/instance.ts b/packages/@ember/application/instance.ts index da85ae8f10a..47ecb342bd4 100644 --- a/packages/@ember/application/instance.ts +++ b/packages/@ember/application/instance.ts @@ -3,13 +3,12 @@ */ import { get, set } from '@ember/object'; -import { hasDOM } from '@ember/-internals/browser-environment'; +import * as environment from '@ember/-internals/browser-environment'; import EngineInstance from '@ember/engine/instance'; import type { BootOptions } from '@ember/engine/instance'; import type Application from '@ember/application'; -import { renderSettled } from '@ember/-internals/glimmer/lib/renderer'; -import type { BootEnvironment } from '@ember/-internals/glimmer/lib/views/outlet'; -import type Component from '@ember/-internals/glimmer/lib/component'; +import { renderSettled } from '@ember/-internals/glimmer'; +import type { BootEnvironment, Component } from '@ember/-internals/glimmer'; import { assert } from '@ember/debug'; import Router from '@ember/routing/router'; import { EventDispatcher } from '@ember/-internals/views'; @@ -446,13 +445,13 @@ class _BootOptions { readonly rootElement?: string | SimpleElement; constructor(options: BootOptions = {}) { - this.isInteractive = Boolean(hasDOM); // This default is overridable below + this.isInteractive = Boolean(environment.hasDOM); // This default is overridable below this._renderMode = options._renderMode; if (options.isBrowser !== undefined) { this.isBrowser = Boolean(options.isBrowser); } else { - this.isBrowser = Boolean(hasDOM); + this.isBrowser = Boolean(environment.hasDOM); } if (!this.isBrowser) { @@ -494,7 +493,10 @@ class _BootOptions { } toEnvironment(): BootEnvironment { + // Do we really want to assign all of this!? return { + ...environment, + // For compatibility with existing code hasDOM: this.isBrowser, isInteractive: this.isInteractive, _renderMode: this._renderMode, diff --git a/packages/@ember/canary-features/index.ts b/packages/@ember/canary-features/index.ts index 01548b71daa..0d2c89324f2 100644 --- a/packages/@ember/canary-features/index.ts +++ b/packages/@ember/canary-features/index.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment/lib/env'; +import { ENV } from '@ember/-internals/environment'; /** Set `EmberENV.FEATURES` in your application's `config/environment.js` file diff --git a/packages/@ember/component/helper.ts b/packages/@ember/component/helper.ts index 6be3f911df6..c1aa1427027 100644 --- a/packages/@ember/component/helper.ts +++ b/packages/@ember/component/helper.ts @@ -1,6 +1,6 @@ export { - default as default, + Helper as default, helper, type FunctionBasedHelper, type FunctionBasedHelperInstance, -} from '@ember/-internals/glimmer/lib/helper'; +} from '@ember/-internals/glimmer'; diff --git a/packages/@ember/component/index.ts b/packages/@ember/component/index.ts index 35c36d82f39..0834c935f80 100644 --- a/packages/@ember/component/index.ts +++ b/packages/@ember/component/index.ts @@ -5,13 +5,11 @@ export { setComponentTemplate, getComponentTemplate } from '@glimmer/manager'; -export { default as default } from '@ember/-internals/glimmer/lib/component'; -export { default as Input } from '@ember/-internals/glimmer/lib/components/input'; -export { default as Textarea } from '@ember/-internals/glimmer/lib/components/textarea'; +export { Component as default, Input, Textarea } from '@ember/-internals/glimmer'; export { componentCapabilities as capabilities, setComponentManager, -} from '@ember/-internals/glimmer/lib/utils/managers'; +} from '@ember/-internals/glimmer'; /** * Assigns a TemplateFactory to a component class. diff --git a/packages/@ember/debug/lib/capture-render-tree.ts b/packages/@ember/debug/lib/capture-render-tree.ts index 03c5cd4b3fa..6f7d28bb532 100644 --- a/packages/@ember/debug/lib/capture-render-tree.ts +++ b/packages/@ember/debug/lib/capture-render-tree.ts @@ -1,4 +1,4 @@ -import type { Renderer } from '@ember/-internals/glimmer/lib/renderer'; +import type { Renderer } from '@ember/-internals/glimmer'; import type Owner from '@ember/owner'; import type { CapturedRenderNode } from '@glimmer/interfaces'; diff --git a/packages/@ember/debug/lib/deprecate.ts b/packages/@ember/debug/lib/deprecate.ts index ce32eacfbd4..20a30302868 100644 --- a/packages/@ember/debug/lib/deprecate.ts +++ b/packages/@ember/debug/lib/deprecate.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment/lib/env'; +import { ENV } from '@ember/-internals/environment'; import { DEBUG } from '@glimmer/env'; import { assert } from './assert'; diff --git a/packages/@ember/engine/index.ts b/packages/@ember/engine/index.ts index 38d6fb9e4e2..e16240fa87d 100644 --- a/packages/@ember/engine/index.ts +++ b/packages/@ember/engine/index.ts @@ -13,7 +13,7 @@ import type { EngineInstanceOptions } from '@ember/engine/instance'; import EngineInstance from '@ember/engine/instance'; import { RoutingService } from '@ember/routing/-internals'; import { ComponentLookup } from '@ember/-internals/views'; -import { setupEngineRegistry } from '@ember/-internals/glimmer/lib/setup-registry'; +import { setupEngineRegistry } from '@ember/-internals/glimmer'; import { RegistryProxyMixin } from '@ember/-internals/runtime'; function props(obj: object) { diff --git a/packages/@ember/engine/instance.ts b/packages/@ember/engine/instance.ts index 25b2a114f52..097b5c6ca6e 100644 --- a/packages/@ember/engine/instance.ts +++ b/packages/@ember/engine/instance.ts @@ -14,7 +14,7 @@ import type Owner from '@ember/-internals/owner'; import { type FullName, isFactory } from '@ember/-internals/owner'; import type Engine from '@ember/engine'; import type Application from '@ember/application'; -import type { BootEnvironment } from '@ember/-internals/glimmer/lib/views/outlet'; +import type { BootEnvironment } from '@ember/-internals/glimmer'; import type { SimpleElement } from '@simple-dom/interface'; export interface BootOptions { diff --git a/packages/@ember/engine/parent.ts b/packages/@ember/engine/parent.ts index 4a04bc06e53..61bd5a7eeb4 100644 --- a/packages/@ember/engine/parent.ts +++ b/packages/@ember/engine/parent.ts @@ -1 +1 @@ -export { ENGINE_PARENT, getEngineParent, setEngineParent } from './lib/engine-parent'; +export * from './lib/engine-parent'; diff --git a/packages/@ember/instrumentation/index.ts b/packages/@ember/instrumentation/index.ts index f3fb35d4775..00938f3a9c7 100644 --- a/packages/@ember/instrumentation/index.ts +++ b/packages/@ember/instrumentation/index.ts @@ -1,7 +1,7 @@ /* eslint no-console:off */ /* global console */ -import { ENV } from '@ember/-internals/environment/lib/env'; +import { ENV } from '@ember/-internals/environment'; import { assert } from '@ember/debug'; export interface Listener { diff --git a/packages/@ember/modifier/index.ts b/packages/@ember/modifier/index.ts index c7a3cb5bb32..dfbb7ffa3b5 100644 --- a/packages/@ember/modifier/index.ts +++ b/packages/@ember/modifier/index.ts @@ -15,4 +15,4 @@ export const setModifierManager: ( export type { ModifierManager }; export type { ModifierCapabilities } from '@glimmer/interfaces'; -export { modifierCapabilities as capabilities } from '@ember/-internals/glimmer/lib/utils/managers'; +export { modifierCapabilities as capabilities } from '@ember/-internals/glimmer'; diff --git a/packages/@ember/object/index.ts b/packages/@ember/object/index.ts index ef3f0dc0b72..58325bcf278 100644 --- a/packages/@ember/object/index.ts +++ b/packages/@ember/object/index.ts @@ -1,5 +1,5 @@ import { assert } from '@ember/debug'; -import { ENV } from '@ember/-internals/environment/lib/env'; +import { ENV } from '@ember/-internals/environment'; import type { ElementDescriptor, ExtendedMethodDecorator } from '@ember/-internals/metal'; import { isElementDescriptor, diff --git a/packages/@ember/renderer/index.ts b/packages/@ember/renderer/index.ts index a8c5366ba5a..870e0508e02 100644 --- a/packages/@ember/renderer/index.ts +++ b/packages/@ember/renderer/index.ts @@ -61,7 +61,7 @@ @public */ -export { renderSettled } from '@ember/-internals/glimmer/lib/renderer'; +export { renderSettled } from '@ember/-internals/glimmer'; /** * Render a component into a DOM element. @@ -79,4 +79,4 @@ export { renderSettled } from '@ember/-internals/glimmer/lib/renderer'; * @param {Object} [options.args] Optionally pass args in to the component. These may be reactive as long as it is an object or object-like * @public */ -export { renderComponent } from '@ember/-internals/glimmer/lib/renderer'; +export { renderComponent } from '@ember/-internals/glimmer'; diff --git a/packages/@ember/routing/index.ts b/packages/@ember/routing/index.ts index be0dd6e698f..474d8b90c17 100644 --- a/packages/@ember/routing/index.ts +++ b/packages/@ember/routing/index.ts @@ -1 +1 @@ -export { default as LinkTo } from '@ember/-internals/glimmer/lib/components/link-to'; +export { LinkTo } from '@ember/-internals/glimmer'; diff --git a/packages/@ember/routing/route.ts b/packages/@ember/routing/route.ts index 69c646b5413..7b4a8f24eac 100644 --- a/packages/@ember/routing/route.ts +++ b/packages/@ember/routing/route.ts @@ -23,7 +23,7 @@ import { dependentKeyCompat } from '@ember/object/compat'; import { once } from '@ember/runloop'; import { DEBUG } from '@glimmer/env'; import { hasInternalComponentManager } from '@glimmer/manager'; -import type { RenderState } from '@ember/-internals/glimmer/lib/utils/outlet'; +import type { RenderState } from '@ember/-internals/glimmer'; import type { TemplateFactory } from '@glimmer/interfaces'; import type { InternalRouteInfo, Route as IRoute, Transition, TransitionState } from 'router_js'; import { PARAMS_SYMBOL, STATE_SYMBOL } from 'router_js'; diff --git a/packages/@ember/routing/router.ts b/packages/@ember/routing/router.ts index 992e0482004..114c398476e 100644 --- a/packages/@ember/routing/router.ts +++ b/packages/@ember/routing/router.ts @@ -1,9 +1,5 @@ import { privatize as P } from '@ember/-internals/container'; -import type { - BootEnvironment, - default as OutletView, -} from '@ember/-internals/glimmer/lib/views/outlet'; -import type { OutletState } from '@ember/-internals/glimmer/lib/utils/outlet'; +import type { BootEnvironment, OutletState, OutletView } from '@ember/-internals/glimmer'; import { computed, get, set } from '@ember/object'; import type { default as Owner, FactoryManager } from '@ember/owner'; import { getOwner } from '@ember/owner'; diff --git a/packages/@ember/template-compiler/-internal-primitives.ts b/packages/@ember/template-compiler/-internal-primitives.ts index 613276756a4..7808146a4cf 100644 --- a/packages/@ember/template-compiler/-internal-primitives.ts +++ b/packages/@ember/template-compiler/-internal-primitives.ts @@ -1,6 +1 @@ -export { - RESOLUTION_MODE_TRANSFORMS, - STRICT_MODE_TRANSFORMS, - STRICT_MODE_KEYWORDS, - INTERNAL_PLUGINS, -} from './lib/-internal/primitives'; +export * from './lib/-internal/primitives'; diff --git a/packages/@ember/template-compiler/-internal-utils.ts b/packages/@ember/template-compiler/-internal-utils.ts index 517ac25c350..8e0d9aae4e0 100644 --- a/packages/@ember/template-compiler/-internal-utils.ts +++ b/packages/@ember/template-compiler/-internal-utils.ts @@ -1,7 +1 @@ -export { - isPath, - isSubExpression, - isStringLiteral, - inScope, - trackLocals, -} from './lib/plugins/utils'; +export * from './lib/plugins/utils'; diff --git a/packages/@ember/template-compiler/index.ts b/packages/@ember/template-compiler/index.ts index f3707c7016f..7d9e14cbe4d 100644 --- a/packages/@ember/template-compiler/index.ts +++ b/packages/@ember/template-compiler/index.ts @@ -1,4 +1,3 @@ -export { template } from './lib/public-api'; -export type { EmberPrecompileOptions } from './lib/public-api'; +export * from './lib/public-api'; export { ALLOWED_GLOBALS } from './lib/plugins/allowed-globals'; diff --git a/packages/@ember/template-compiler/lib/runtime.ts b/packages/@ember/template-compiler/lib/runtime.ts index dd2fd3671da..7e1a213e3ea 100644 --- a/packages/@ember/template-compiler/lib/runtime.ts +++ b/packages/@ember/template-compiler/lib/runtime.ts @@ -1,2 +1 @@ -export { template } from './public-api'; -export type { EmberPrecompileOptions } from './public-api'; +export * from './public-api'; diff --git a/packages/@ember/template-compiler/runtime.ts b/packages/@ember/template-compiler/runtime.ts index be0cd015746..594745c2db1 100644 --- a/packages/@ember/template-compiler/runtime.ts +++ b/packages/@ember/template-compiler/runtime.ts @@ -1 +1 @@ -export { template, type EmberPrecompileOptions } from './lib/runtime'; +export * from './lib/runtime'; diff --git a/packages/@ember/template/index.ts b/packages/@ember/template/index.ts index e1095169d01..a177015c07b 100644 --- a/packages/@ember/template/index.ts +++ b/packages/@ember/template/index.ts @@ -7,4 +7,4 @@ export { isHTMLSafe, type SafeString, type TrustedHTML, -} from '@ember/-internals/glimmer/lib/utils/string'; +} from '@ember/-internals/glimmer'; diff --git a/packages/ember-template-compiler/index.ts b/packages/ember-template-compiler/index.ts index 6b8f6950881..7fadb57f7be 100644 --- a/packages/ember-template-compiler/index.ts +++ b/packages/ember-template-compiler/index.ts @@ -1,19 +1,4 @@ -export { - precompile, - compile, - compileOptions, - _buildCompileOptions, - _transformsFor, - RESOLUTION_MODE_TRANSFORMS, - STRICT_MODE_TRANSFORMS, - _preprocess, - _print, - _precompile, - _GlimmerSyntax, - VERSION, -} from './lib/public-api'; -export type { EmberPrecompileOptions } from './lib/public-api'; -// NOTE: import * is intentional here -- the namespace object is passed to __registerTemplateCompiler +export * from './lib/public-api'; import * as ETC from './lib/public-api'; import { __registerTemplateCompiler } from '@ember/template-compilation'; diff --git a/packages/ember-template-compiler/lib/plugins/utils.ts b/packages/ember-template-compiler/lib/plugins/utils.ts index 586eada16ae..64889cb560a 100644 --- a/packages/ember-template-compiler/lib/plugins/utils.ts +++ b/packages/ember-template-compiler/lib/plugins/utils.ts @@ -1,7 +1 @@ -export { - isPath, - isSubExpression, - isStringLiteral, - inScope, - trackLocals, -} from '@ember/template-compiler/-internal-utils'; +export * from '@ember/template-compiler/-internal-utils'; diff --git a/packages/ember-template-compiler/lib/system/compile.ts b/packages/ember-template-compiler/lib/system/compile.ts index ab49249e5fe..6eb0e2a170e 100644 --- a/packages/ember-template-compiler/lib/system/compile.ts +++ b/packages/ember-template-compiler/lib/system/compile.ts @@ -4,7 +4,7 @@ import type { EmberPrecompileOptions } from '../types'; import precompile from './precompile'; import type { SerializedTemplateWithLazyBlock, TemplateFactory } from '@glimmer/interfaces'; -import { templateFactory as template } from '@glimmer/opcode-compiler'; +import { template } from '@ember/-internals/glimmer'; /** Uses HTMLBars `compile` function to process a string into a compiled template. diff --git a/packages/ember-template-compiler/package.json b/packages/ember-template-compiler/package.json index 081dcf1bc8f..6bb122fbb56 100644 --- a/packages/ember-template-compiler/package.json +++ b/packages/ember-template-compiler/package.json @@ -27,7 +27,6 @@ "@ember/template-compiler": "workspace:*", "@ember/utils": "workspace:*", "@glimmer/compiler": "workspace:*", - "@glimmer/opcode-compiler": "workspace:*", "@glimmer/env": "workspace:*", "@glimmer/interfaces": "workspace:*", "@glimmer/manager": "workspace:*", diff --git a/packages/ember-testing/index.ts b/packages/ember-testing/index.ts index a06bf5d774b..4a99b5d26e0 100644 --- a/packages/ember-testing/index.ts +++ b/packages/ember-testing/index.ts @@ -1,5 +1,4 @@ -export { Test, Adapter } from './lib/public-api'; -// NOTE: import * is intentional here -- the namespace object is passed to registerTestImplementation +export * from './lib/public-api'; import * as EmberTesting from './lib/public-api'; import { registerTestImplementation } from '@ember/test'; From 8ea64f17bdaeb7de726527df51c6f3d44afb6afb Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 00:38:07 -0400 Subject: [PATCH 03/15] Lint rule --- eslint-rules/index.js | 7 + eslint-rules/no-barrel-imports.js | 418 ++++++++++++++++++++++++++++++ eslint.config.mjs | 12 + 3 files changed, 437 insertions(+) create mode 100644 eslint-rules/index.js create mode 100644 eslint-rules/no-barrel-imports.js diff --git a/eslint-rules/index.js b/eslint-rules/index.js new file mode 100644 index 00000000000..721e6f6ac40 --- /dev/null +++ b/eslint-rules/index.js @@ -0,0 +1,7 @@ +'use strict'; + +module.exports = { + rules: { + 'no-barrel-imports': require('./no-barrel-imports'), + }, +}; diff --git a/eslint-rules/no-barrel-imports.js b/eslint-rules/no-barrel-imports.js new file mode 100644 index 00000000000..6980b4aa381 --- /dev/null +++ b/eslint-rules/no-barrel-imports.js @@ -0,0 +1,418 @@ +'use strict'; + +const fs = require('node:fs'); +const path = require('node:path'); +const { parse } = require('@typescript-eslint/typescript-estree'); + +const WORKSPACE_ROOT = path.resolve(__dirname, '..'); +const PACKAGES_ROOT = path.join(WORKSPACE_ROOT, 'packages'); + +const moduleCache = new Map(); + +const idOrStr = (n) => (n.type === 'Identifier' ? n.name : n.value); + +function resolveBarrelPath(specifier) { + if (!specifier?.startsWith('@ember/') && !specifier?.startsWith('@glimmer/')) return null; + for (const ext of ['.ts', '.js']) { + const p = path.join(PACKAGES_ROOT, specifier, `index${ext}`); + if (fs.existsSync(p)) return p; + } + return null; +} + +function resolveImportSource(spec, fromFile) { + if (!spec.startsWith('.')) return resolveBarrelPath(spec); + const base = path.resolve(path.dirname(fromFile), spec); + for (const c of [base, base + '.ts', base + '.js', path.join(base, 'index.ts'), path.join(base, 'index.js')]) { + if (fs.existsSync(c)) return c; + } + return null; +} + +function declarationNames(decl) { + if (!decl) return []; + switch (decl.type) { + case 'VariableDeclaration': + return decl.declarations + .filter((v) => v.id?.type === 'Identifier') + .map((v) => ({ name: v.id.name, isType: false })); + case 'FunctionDeclaration': + case 'ClassDeclaration': + case 'TSEnumDeclaration': + return decl.id ? [{ name: decl.id.name, isType: false }] : []; + case 'TSInterfaceDeclaration': + case 'TSTypeAliasDeclaration': + case 'TSModuleDeclaration': + return decl.id?.name ? [{ name: decl.id.name, isType: true }] : []; + default: + return []; + } +} + +function getModuleExports(filepath, stack = new Set()) { + if (moduleCache.has(filepath)) return moduleCache.get(filepath); + if (stack.has(filepath)) return new Map(); + stack.add(filepath); + + let ast; + try { + ast = parse(fs.readFileSync(filepath, 'utf8'), { jsx: false, range: true, loc: true }); + } catch { + moduleCache.set(filepath, null); + stack.delete(filepath); + return null; + } + + const exports = new Map(); + for (const stmt of ast.body) { + if (stmt.type === 'ExportNamedDeclaration') collectNamedExports(stmt, exports, filepath, stack); + else if (stmt.type === 'ExportAllDeclaration') collectStarExports(stmt, exports, filepath, stack); + else if (stmt.type === 'ExportDefaultDeclaration') { + exports.set('default', { source: filepath, localName: 'default', isType: false, kind: 'local' }); + } + } + + moduleCache.set(filepath, exports); + stack.delete(filepath); + return exports; +} + +function collectNamedExports(stmt, exports, filepath, stack) { + const stmtIsType = stmt.exportKind === 'type'; + + if (stmt.declaration) { + for (const { name, isType } of declarationNames(stmt.declaration)) { + exports.set(name, { source: filepath, localName: name, isType: isType || stmtIsType, kind: 'local' }); + } + return; + } + + if (!stmt.source) { + for (const spec of stmt.specifiers ?? []) { + if (spec.type !== 'ExportSpecifier') continue; + exports.set(idOrStr(spec.exported), { + source: filepath, + localName: idOrStr(spec.local), + isType: stmtIsType || spec.exportKind === 'type', + kind: 'local', + }); + } + return; + } + + const sourceSpec = stmt.source.value; + const targetFile = resolveImportSource(sourceSpec, filepath); + const isBare = !sourceSpec.startsWith('.'); + const nested = targetFile ? getModuleExports(targetFile, stack) : null; + + for (const spec of stmt.specifiers) { + if (spec.type !== 'ExportSpecifier') continue; + const isType = stmtIsType || spec.exportKind === 'type'; + let source = targetFile; + let bareSource = !targetFile && isBare ? sourceSpec : null; + let local = idOrStr(spec.local); + + const nestedEntry = nested?.get(local); + if (nestedEntry && nestedEntry.kind !== 'namespace') { + if (nestedEntry.source) { + source = nestedEntry.source; + bareSource = null; + local = nestedEntry.localName; + } else if (nestedEntry.bareSource) { + source = null; + bareSource = nestedEntry.bareSource; + local = nestedEntry.localName; + } + } + + exports.set(idOrStr(spec.exported), { source, bareSource, localName: local, isType, kind: 'named' }); + } +} + +function collectStarExports(stmt, exports, filepath, stack) { + const stmtIsType = stmt.exportKind === 'type'; + const targetFile = resolveImportSource(stmt.source.value, filepath); + + if (stmt.exported) { + exports.set(idOrStr(stmt.exported), { + source: targetFile, + isType: stmtIsType, + kind: 'namespace', + }); + return; + } + if (!targetFile) return; + const nested = getModuleExports(targetFile, stack); + if (!nested) return; + for (const [name, entry] of nested) { + if (name === 'default' || exports.has(name)) continue; + exports.set(name, { ...entry, isType: entry.isType || stmtIsType }); + } +} + +const SCOPE_PREFIXES = [ + path.join(PACKAGES_ROOT, '@ember') + path.sep, + path.join(PACKAGES_ROOT, '@glimmer') + path.sep, +]; +const TEST_DIR_RE = /[\\/](?:test|tests)[\\/]/; + +const isInScope = (filename) => SCOPE_PREFIXES.some((p) => filename.startsWith(p)); +const isInTestFile = (filename) => + TEST_DIR_RE.test(filename) || filename.includes(`${path.sep}internal-test-helpers${path.sep}`); + +const stripExt = (p) => p.replace(/\.(?:d\.ts|[mc]?[jt]sx?)$/, ''); +const toPosix = (p) => (path.sep === '/' ? p : p.replaceAll(path.sep, '/')); + +// Map an absolute file path back to (packageRoot, bareSpec) by convention: +// `@ember/-internals/` is depth-3, all other `@ember/` and `@glimmer/` are depth-2. +function getPackageInfo(absFile) { + if (!absFile.startsWith(PACKAGES_ROOT + path.sep)) return null; + const parts = toPosix(absFile.slice(PACKAGES_ROOT.length + 1)).split('/'); + const depth = parts[0] === '@ember' && parts[1] === '-internals' ? 3 : 2; + const bareSpec = parts.slice(0, depth).join('/'); + return { packageRoot: path.join(PACKAGES_ROOT, ...bareSpec.split('/')), bareSpec }; +} + +function computeNewSpecifier(targetAbs, currentFile) { + const targetInfo = getPackageInfo(targetAbs); + if (!targetInfo) return null; + const currentInfo = getPackageInfo(currentFile); + if (currentInfo?.bareSpec === targetInfo.bareSpec) { + let rel = toPosix(path.relative(path.dirname(currentFile), targetAbs)); + if (!rel.startsWith('.')) rel = './' + rel; + return stripExt(rel); + } + const tail = toPosix(path.relative(targetInfo.packageRoot, targetAbs)); + return stripExt(path.posix.join(targetInfo.bareSpec, tail)); +} + +function specPart(item, statementIsType) { + const typePrefix = !statementIsType && item.isType ? 'type ' : ''; + if (item.sourceName === item.localName) return `${typePrefix}${item.sourceName}`; + return `${typePrefix}${item.sourceName} as ${item.localName}`; +} + +function buildImportStatements(groups, allTypes) { + const out = []; + for (const [newSpec, items] of groups) { + const useType = allTypes || items.every((it) => it.isType); + const typeKw = useType ? 'type ' : ''; + if (items.length === 1 && items[0].sourceName === 'default') { + out.push(`import ${typeKw}${items[0].localName} from '${newSpec}';`); + } else { + const parts = items.map((it) => specPart(it, useType)); + out.push(`import ${typeKw}{ ${parts.join(', ')} } from '${newSpec}';`); + } + } + return out.join('\n'); +} + +function buildExportStatements(groups, allTypes) { + const out = []; + for (const [newSpec, items] of groups) { + const useType = allTypes || items.every((it) => it.isType); + const typeKw = useType ? 'type ' : ''; + const parts = items.map((it) => { + const tp = !useType && it.isType ? 'type ' : ''; + return it.sourceName === it.exportedName + ? `${tp}${it.sourceName}` + : `${tp}${it.sourceName} as ${it.exportedName}`; + }); + out.push(`export ${typeKw}{ ${parts.join(', ')} } from '${newSpec}';`); + } + return out.join('\n'); +} + +function pushGroup(groups, key, item) { + const items = groups.get(key) ?? []; + items.push(item); + groups.set(key, items); +} + +/** @type {import('eslint').Rule.RuleModule} */ +module.exports = { + meta: { + type: 'suggestion', + fixable: 'code', + schema: [], + docs: { + description: + 'Disallow imports from barrel index files within @ember and @glimmer source code; prefer direct imports from source files for tree-shaking.', + }, + messages: { + barrelImport: + 'Avoid importing from the "{{spec}}" barrel; import directly from the source file ({{names}}).', + barrelImportUnresolved: + 'Avoid importing from the "{{spec}}" barrel; import directly from the source file. Could not auto-fix: {{names}}.', + }, + }, + create(context) { + const { filename } = context; + if (!filename || !isInScope(filename) || isInTestFile(filename)) return {}; + + function resolveSpecifier(moduleExports, importedName, barrelPath, originalSpec) { + const entry = moduleExports.get(importedName); + if (!entry) return { unresolved: true }; + if (entry.source === barrelPath) return { local: true }; + let newSpec; + if (entry.source) { + newSpec = computeNewSpecifier(entry.source, filename); + } else if (entry.bareSource && entry.bareSource !== originalSpec) { + newSpec = entry.bareSource; + } + if (!newSpec) return { unresolved: true }; + return { + newSpecifier: newSpec, + localName: entry.localName, + isType: entry.isType, + namespace: entry.kind === 'namespace', + }; + } + + function reportUnresolved(node, spec, names) { + context.report({ + node, + messageId: 'barrelImportUnresolved', + data: { spec, names: names.join(', ') || '(see above)' }, + }); + } + + function check(node) { + const spec = node.source?.value; + if (typeof spec !== 'string') return; + const barrelPath = resolveBarrelPath(spec); + if (!barrelPath || filename === barrelPath) return; + + const moduleExports = getModuleExports(barrelPath); + if (!moduleExports) { + reportUnresolved(node, spec, ['(could not parse barrel)']); + return; + } + + if (node.type === 'ImportDeclaration') return handleImport(node, moduleExports, spec, barrelPath); + if (node.type === 'ExportNamedDeclaration') return handleExportNamed(node, moduleExports, spec, barrelPath); + if (node.type === 'ExportAllDeclaration') reportUnresolved(node, spec, ['*']); + } + + function handleImport(node, moduleExports, spec, barrelPath) { + const isWholeTypeImport = node.importKind === 'type'; + const groups = new Map(); + const namespaceImports = []; + const unresolved = []; + let allLocal = node.specifiers.length > 0; + + for (const sp of node.specifiers) { + if (sp.type === 'ImportNamespaceSpecifier') { + unresolved.push('* as ' + sp.local.name); + allLocal = false; + continue; + } + const importedName = + sp.type === 'ImportDefaultSpecifier' ? 'default' + : sp.type === 'ImportSpecifier' ? idOrStr(sp.imported) + : null; + if (importedName === null) continue; + + const local = sp.local.name; + const specIsType = isWholeTypeImport || sp.importKind === 'type'; + const r = resolveSpecifier(moduleExports, importedName, barrelPath, spec); + + if (r.local) continue; + allLocal = false; + if (r.unresolved) { + unresolved.push(importedName); + continue; + } + if (r.namespace) { + namespaceImports.push({ newSpec: r.newSpecifier, localName: local, isType: specIsType || r.isType }); + continue; + } + pushGroup(groups, r.newSpecifier, { + sourceName: r.localName, + localName: local, + isType: specIsType || r.isType, + }); + } + + if (allLocal) return; + if (unresolved.length > 0) { + reportUnresolved(node, spec, unresolved); + return; + } + if (groups.size === 0 && namespaceImports.length === 0) return; + + const statements = namespaceImports.map((ns) => { + const useType = isWholeTypeImport || ns.isType; + return `import ${useType ? 'type ' : ''}* as ${ns.localName} from '${ns.newSpec}';`; + }); + if (groups.size > 0) statements.push(buildImportStatements(groups, isWholeTypeImport)); + + const allSpecs = [...namespaceImports.map((n) => n.newSpec), ...groups.keys()]; + context.report({ + node, + messageId: 'barrelImport', + data: { spec, names: allSpecs.join(', ') }, + fix: (fixer) => fixer.replaceText(node, statements.join('\n')), + }); + } + + function handleExportNamed(node, moduleExports, spec, barrelPath) { + const isWholeTypeExport = node.exportKind === 'type'; + const groups = new Map(); + const namespaceExports = []; + const unresolved = []; + let allLocal = node.specifiers.length > 0; + + for (const sp of node.specifiers) { + if (sp.type !== 'ExportSpecifier') continue; + const importedName = idOrStr(sp.local); + const exportedName = idOrStr(sp.exported); + const specIsType = isWholeTypeExport || sp.exportKind === 'type'; + const r = resolveSpecifier(moduleExports, importedName, barrelPath, spec); + + if (r.local) continue; + allLocal = false; + if (r.unresolved) { + unresolved.push(importedName); + continue; + } + if (r.namespace) { + namespaceExports.push({ newSpec: r.newSpecifier, exportedName, isType: specIsType || r.isType }); + continue; + } + pushGroup(groups, r.newSpecifier, { + sourceName: r.localName, + exportedName, + isType: specIsType || r.isType, + }); + } + + if (allLocal) return; + if (unresolved.length > 0) { + reportUnresolved(node, spec, unresolved); + return; + } + if (groups.size === 0 && namespaceExports.length === 0) return; + + const statements = namespaceExports.map((ns) => { + const useType = isWholeTypeExport || ns.isType; + return `export ${useType ? 'type ' : ''}* as ${ns.exportedName} from '${ns.newSpec}';`; + }); + if (groups.size > 0) statements.push(buildExportStatements(groups, isWholeTypeExport)); + + const allSpecs = [...namespaceExports.map((n) => n.newSpec), ...groups.keys()]; + context.report({ + node, + messageId: 'barrelImport', + data: { spec, names: allSpecs.join(', ') }, + fix: (fixer) => fixer.replaceText(node, statements.join('\n')), + }); + } + + return { + ImportDeclaration: check, + ExportNamedDeclaration: (node) => node.source && check(node), + ExportAllDeclaration: check, + }; + }, +}; diff --git a/eslint.config.mjs b/eslint.config.mjs index 7407d64b580..2708364d659 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,4 +1,5 @@ import emberInternal from 'eslint-plugin-ember-internal'; +import emberLocal from './eslint-rules/index.js'; import importPlugin from 'eslint-plugin-import'; import qunitPluginRecommended from 'eslint-plugin-qunit/configs/recommended'; import disableFeatures from 'eslint-plugin-disable-features'; @@ -40,6 +41,7 @@ export default [ { plugins: { 'ember-internal': emberInternal, + 'ember-local': emberLocal, 'disable-features': disableFeatures, }, @@ -517,4 +519,14 @@ export default [ '@typescript-eslint/naming-convention': 'off', }, }, + { + files: ['packages/@ember/**/*.{ts,js}', 'packages/@glimmer/**/*.{ts,js}'], + ignores: [ + 'packages/@ember/**/tests/**', + 'packages/@glimmer/**/test/**', + ], + rules: { + 'ember-local/no-barrel-imports': 'error', + }, + }, ]; From 62ff4c506bf3919cb2bac50c8886553bebe2364f Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 00:52:07 -0400 Subject: [PATCH 04/15] Lint rule --- eslint-rules/no-barrel-imports.js | 108 ++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 5 deletions(-) diff --git a/eslint-rules/no-barrel-imports.js b/eslint-rules/no-barrel-imports.js index 6980b4aa381..639d05a02a8 100644 --- a/eslint-rules/no-barrel-imports.js +++ b/eslint-rules/no-barrel-imports.js @@ -8,6 +8,8 @@ const WORKSPACE_ROOT = path.resolve(__dirname, '..'); const PACKAGES_ROOT = path.join(WORKSPACE_ROOT, 'packages'); const moduleCache = new Map(); +const owningPackageCache = new Map(); +const wildcardExportsCache = new Map(); const idOrStr = (n) => (n.type === 'Identifier' ? n.name : n.value); @@ -173,6 +175,40 @@ function getPackageInfo(absFile) { return { packageRoot: path.join(PACKAGES_ROOT, ...bareSpec.split('/')), bareSpec }; } +function findOwningPackage(absFile) { + if (owningPackageCache.has(absFile)) return owningPackageCache.get(absFile); + let dir = path.dirname(absFile); + let result = null; + while (dir.length >= PACKAGES_ROOT.length && dir.startsWith(PACKAGES_ROOT)) { + if (fs.existsSync(path.join(dir, 'package.json'))) { + result = dir; + break; + } + dir = path.dirname(dir); + } + owningPackageCache.set(absFile, result); + return result; +} + +function packageHasWildcardSourceExports(packageRoot) { + if (wildcardExportsCache.has(packageRoot)) return wildcardExportsCache.get(packageRoot); + let allowed = false; + try { + const pkg = JSON.parse(fs.readFileSync(path.join(packageRoot, 'package.json'), 'utf8')); + const wildcard = pkg.exports?.['./*']; + const matches = (v) => v === './*.ts'; + allowed = + matches(wildcard) || + (wildcard && + typeof wildcard === 'object' && + Object.values(wildcard).some(matches)); + } catch { + /* ignore */ + } + wildcardExportsCache.set(packageRoot, allowed); + return allowed; +} + function computeNewSpecifier(targetAbs, currentFile) { const targetInfo = getPackageInfo(targetAbs); if (!targetInfo) return null; @@ -180,10 +216,15 @@ function computeNewSpecifier(targetAbs, currentFile) { if (currentInfo?.bareSpec === targetInfo.bareSpec) { let rel = toPosix(path.relative(path.dirname(currentFile), targetAbs)); if (!rel.startsWith('.')) rel = './' + rel; - return stripExt(rel); + return { newSpec: stripExt(rel), deep: false }; } const tail = toPosix(path.relative(targetInfo.packageRoot, targetAbs)); - return stripExt(path.posix.join(targetInfo.bareSpec, tail)); + const owner = findOwningPackage(targetAbs); + return { + newSpec: stripExt(path.posix.join(targetInfo.bareSpec, tail)), + deep: true, + owningPackageRoot: owner, + }; } function specPart(item, statementIsType) { @@ -244,6 +285,8 @@ module.exports = { 'Avoid importing from the "{{spec}}" barrel; import directly from the source file ({{names}}).', barrelImportUnresolved: 'Avoid importing from the "{{spec}}" barrel; import directly from the source file. Could not auto-fix: {{names}}.', + missingWildcardExports: + 'Avoid importing from the "{{spec}}" barrel. Cannot auto-fix because {{packages}} {{verb}} missing `"./*": "./*.ts"` in the `exports` field — add it to enable direct imports.', }, }, create(context) { @@ -255,8 +298,11 @@ module.exports = { if (!entry) return { unresolved: true }; if (entry.source === barrelPath) return { local: true }; let newSpec; + let owningPackageRoot = null; if (entry.source) { - newSpec = computeNewSpecifier(entry.source, filename); + const computed = computeNewSpecifier(entry.source, filename); + newSpec = computed?.newSpec; + if (computed?.deep) owningPackageRoot = computed.owningPackageRoot; } else if (entry.bareSource && entry.bareSource !== originalSpec) { newSpec = entry.bareSource; } @@ -266,6 +312,7 @@ module.exports = { localName: entry.localName, isType: entry.isType, namespace: entry.kind === 'namespace', + owningPackageRoot, }; } @@ -277,6 +324,31 @@ module.exports = { }); } + function reportMissingExports(node, spec, packageRoots) { + const paths = [...packageRoots] + .map((root) => path.relative(WORKSPACE_ROOT, path.join(root, 'package.json'))) + .sort(); + context.report({ + node, + messageId: 'missingWildcardExports', + data: { + spec, + packages: paths.join(', '), + verb: paths.length > 1 ? 'are' : 'is', + }, + }); + } + + function collectMissingExports(items) { + const missing = new Set(); + for (const item of items) { + if (item.owningPackageRoot && !packageHasWildcardSourceExports(item.owningPackageRoot)) { + missing.add(item.owningPackageRoot); + } + } + return missing; + } + function check(node) { const spec = node.source?.value; if (typeof spec !== 'string') return; @@ -324,13 +396,19 @@ module.exports = { continue; } if (r.namespace) { - namespaceImports.push({ newSpec: r.newSpecifier, localName: local, isType: specIsType || r.isType }); + namespaceImports.push({ + newSpec: r.newSpecifier, + localName: local, + isType: specIsType || r.isType, + owningPackageRoot: r.owningPackageRoot, + }); continue; } pushGroup(groups, r.newSpecifier, { sourceName: r.localName, localName: local, isType: specIsType || r.isType, + owningPackageRoot: r.owningPackageRoot, }); } @@ -341,6 +419,13 @@ module.exports = { } if (groups.size === 0 && namespaceImports.length === 0) return; + const allItems = [...namespaceImports, ...[...groups.values()].flat()]; + const missing = collectMissingExports(allItems); + if (missing.size > 0) { + reportMissingExports(node, spec, missing); + return; + } + const statements = namespaceImports.map((ns) => { const useType = isWholeTypeImport || ns.isType; return `import ${useType ? 'type ' : ''}* as ${ns.localName} from '${ns.newSpec}';`; @@ -377,13 +462,19 @@ module.exports = { continue; } if (r.namespace) { - namespaceExports.push({ newSpec: r.newSpecifier, exportedName, isType: specIsType || r.isType }); + namespaceExports.push({ + newSpec: r.newSpecifier, + exportedName, + isType: specIsType || r.isType, + owningPackageRoot: r.owningPackageRoot, + }); continue; } pushGroup(groups, r.newSpecifier, { sourceName: r.localName, exportedName, isType: specIsType || r.isType, + owningPackageRoot: r.owningPackageRoot, }); } @@ -394,6 +485,13 @@ module.exports = { } if (groups.size === 0 && namespaceExports.length === 0) return; + const allItems = [...namespaceExports, ...[...groups.values()].flat()]; + const missing = collectMissingExports(allItems); + if (missing.size > 0) { + reportMissingExports(node, spec, missing); + return; + } + const statements = namespaceExports.map((ns) => { const useType = isWholeTypeExport || ns.isType; return `export ${useType ? 'type ' : ''}* as ${ns.exportedName} from '${ns.newSpec}';`; From eb792b31f4e3c4abcc7b0c0d41cb24593d360399 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 00:58:14 -0400 Subject: [PATCH 05/15] Update sub-path exports --- packages/@ember/-internals/package.json | 3 ++- packages/@ember/application/package.json | 3 ++- packages/@ember/array/package.json | 3 ++- packages/@ember/canary-features/package.json | 3 ++- packages/@ember/component/package.json | 3 ++- packages/@ember/controller/package.json | 5 +++-- packages/@ember/debug/package.json | 3 ++- packages/@ember/deprecated-features/package.json | 3 ++- packages/@ember/destroyable/package.json | 3 ++- packages/@ember/engine/package.json | 3 ++- packages/@ember/enumerable/package.json | 3 ++- packages/@ember/helper/package.json | 3 ++- packages/@ember/instrumentation/package.json | 3 ++- packages/@ember/modifier/package.json | 3 ++- packages/@ember/object/package.json | 3 ++- packages/@ember/owner/package.json | 3 ++- packages/@ember/reactive/package.json | 3 ++- packages/@ember/renderer/package.json | 3 ++- packages/@ember/routing/package.json | 3 ++- packages/@ember/runloop/package.json | 3 ++- packages/@ember/service/package.json | 3 ++- packages/@ember/template-compilation/package.json | 3 ++- packages/@ember/template-compiler/package.json | 5 +++-- packages/@ember/template-factory/package.json | 3 ++- packages/@ember/template/package.json | 3 ++- packages/@ember/utils/package.json | 3 ++- packages/@ember/version/package.json | 3 ++- packages/@glimmer/compiler/package.json | 5 ++++- packages/@glimmer/component/package.json | 3 ++- packages/@glimmer/constants/package.json | 4 ++++ packages/@glimmer/debug-util/package.json | 5 ++++- packages/@glimmer/debug/package.json | 5 ++++- packages/@glimmer/destroyable/package.json | 5 ++++- packages/@glimmer/encoder/package.json | 5 ++++- packages/@glimmer/env/package.json | 3 ++- packages/@glimmer/global-context/package.json | 5 ++++- packages/@glimmer/local-debug-flags/package.json | 5 ++++- packages/@glimmer/manager/package.json | 5 ++++- packages/@glimmer/node/package.json | 5 ++++- packages/@glimmer/opcode-compiler/package.json | 5 ++++- packages/@glimmer/owner/package.json | 5 ++++- packages/@glimmer/program/package.json | 5 ++++- packages/@glimmer/reference/package.json | 5 ++++- packages/@glimmer/runtime/package.json | 5 ++++- packages/@glimmer/syntax/package.json | 5 ++++- packages/@glimmer/tracking/package.json | 3 ++- packages/@glimmer/util/package.json | 5 ++++- packages/@glimmer/validator/package.json | 5 ++++- packages/@glimmer/vm/package.json | 5 ++++- packages/@glimmer/wire-format/package.json | 5 ++++- 50 files changed, 142 insertions(+), 51 deletions(-) diff --git a/packages/@ember/-internals/package.json b/packages/@ember/-internals/package.json index cc947bbb6b5..ed45dfe6c74 100644 --- a/packages/@ember/-internals/package.json +++ b/packages/@ember/-internals/package.json @@ -20,7 +20,8 @@ "./string": "./string/index.ts", "./utility-types": "./utility-types/index.ts", "./utils": "./utils/index.ts", - "./views": "./views/index.ts" + "./views": "./views/index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/application": "workspace:*", diff --git a/packages/@ember/application/package.json b/packages/@ember/application/package.json index 074819001a0..aa0f4bfb648 100644 --- a/packages/@ember/application/package.json +++ b/packages/@ember/application/package.json @@ -5,7 +5,8 @@ "exports": { ".": "./index.ts", "./instance": "./instance.ts", - "./namespace": "./namespace.ts" + "./namespace": "./namespace.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/array/package.json b/packages/@ember/array/package.json index 4d70f3a7416..19b45196287 100644 --- a/packages/@ember/array/package.json +++ b/packages/@ember/array/package.json @@ -7,7 +7,8 @@ "./-internals": "./-internals.ts", "./proxy": "./proxy.ts", "./make": "./make.ts", - "./mutable": "./mutable.ts" + "./mutable": "./mutable.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/canary-features/package.json b/packages/@ember/canary-features/package.json index a48d2c25cce..e787701b4c8 100644 --- a/packages/@ember/canary-features/package.json +++ b/packages/@ember/canary-features/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/component/package.json b/packages/@ember/component/package.json index 1ba77462038..e101a1c97b1 100644 --- a/packages/@ember/component/package.json +++ b/packages/@ember/component/package.json @@ -5,7 +5,8 @@ "exports": { ".": "./index.ts", "./helper": "./helper.ts", - "./template-only": "./template-only.ts" + "./template-only": "./template-only.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/controller/package.json b/packages/@ember/controller/package.json index 516e2c15e8b..90e42a88425 100644 --- a/packages/@ember/controller/package.json +++ b/packages/@ember/controller/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", @@ -16,7 +17,7 @@ "@glimmer/env": "workspace:*", "@glimmer/owner": "workspace:*", "@glimmer/util": "workspace:*", - "@glimmer/validator":"workspace:*", + "@glimmer/validator": "workspace:*", "expect-type": "^0.15.0", "internal-test-helpers": "workspace:*" }, diff --git a/packages/@ember/debug/package.json b/packages/@ember/debug/package.json index d3dba7157e9..0d271bb0f79 100644 --- a/packages/@ember/debug/package.json +++ b/packages/@ember/debug/package.json @@ -5,7 +5,8 @@ "exports": { ".": "./index.ts", "./container-debug-adapter": "./container-debug-adapter.ts", - "./data-adapter": "./data-adapter.ts" + "./data-adapter": "./data-adapter.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/deprecated-features/package.json b/packages/@ember/deprecated-features/package.json index 4571941dcae..c42c06292ad 100644 --- a/packages/@ember/deprecated-features/package.json +++ b/packages/@ember/deprecated-features/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": {} } \ No newline at end of file diff --git a/packages/@ember/destroyable/package.json b/packages/@ember/destroyable/package.json index 07688a98e9e..16feea8982b 100644 --- a/packages/@ember/destroyable/package.json +++ b/packages/@ember/destroyable/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@glimmer/destroyable": "workspace:*", diff --git a/packages/@ember/engine/package.json b/packages/@ember/engine/package.json index b08914eb32f..1756d1d1cdc 100644 --- a/packages/@ember/engine/package.json +++ b/packages/@ember/engine/package.json @@ -5,7 +5,8 @@ "exports": { ".": "./index.ts", "./instance": "./instance.ts", - "./parent": "./parent.ts" + "./parent": "./parent.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/enumerable/package.json b/packages/@ember/enumerable/package.json index 8c7a9a95bf2..a12c717454d 100644 --- a/packages/@ember/enumerable/package.json +++ b/packages/@ember/enumerable/package.json @@ -4,7 +4,8 @@ "type": "module", "exports": { ".": "./index.ts", - "./mutable": "./mutable.ts" + "./mutable": "./mutable.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/helper/package.json b/packages/@ember/helper/package.json index 08cdf2c7a0e..8884ff2d17a 100644 --- a/packages/@ember/helper/package.json +++ b/packages/@ember/helper/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/instrumentation/package.json b/packages/@ember/instrumentation/package.json index 71c5dba9d64..b0e5097cebd 100644 --- a/packages/@ember/instrumentation/package.json +++ b/packages/@ember/instrumentation/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/modifier/package.json b/packages/@ember/modifier/package.json index ce095c02a16..b4f8daa52c8 100644 --- a/packages/@ember/modifier/package.json +++ b/packages/@ember/modifier/package.json @@ -4,7 +4,8 @@ "type": "module", "exports": { ".": "./index.ts", - "./on": "./on.ts" + "./on": "./on.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/object/package.json b/packages/@ember/object/package.json index d6e7c7eaeb4..93e35bf1cf9 100644 --- a/packages/@ember/object/package.json +++ b/packages/@ember/object/package.json @@ -15,7 +15,8 @@ "./compat": "./compat.ts", "./proxy": "./proxy.ts", "./promise-proxy-mixin": "./promise-proxy-mixin.ts", - "./observers": "./observers.ts" + "./observers": "./observers.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/owner/package.json b/packages/@ember/owner/package.json index 2ee55bd4ae5..84e3795a759 100644 --- a/packages/@ember/owner/package.json +++ b/packages/@ember/owner/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/reactive/package.json b/packages/@ember/reactive/package.json index 9ffd74c6289..214b3509371 100644 --- a/packages/@ember/reactive/package.json +++ b/packages/@ember/reactive/package.json @@ -4,7 +4,8 @@ "type": "module", "exports": { ".": "./index.ts", - "./collections": "./collections.ts" + "./collections": "./collections.ts", + "./*": "./*.ts" }, "dependencies": { "@glimmer/validator": "0.95.0" diff --git a/packages/@ember/renderer/package.json b/packages/@ember/renderer/package.json index 16c60a1d471..a4843dd6fae 100644 --- a/packages/@ember/renderer/package.json +++ b/packages/@ember/renderer/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*" diff --git a/packages/@ember/routing/package.json b/packages/@ember/routing/package.json index b75af126221..5a956191f63 100644 --- a/packages/@ember/routing/package.json +++ b/packages/@ember/routing/package.json @@ -11,7 +11,8 @@ "./location": "./location.ts", "./route": "./route.ts", "./-internals": "./-internals.ts", - "./router-service": "./router-service.ts" + "./router-service": "./router-service.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/runloop/package.json b/packages/@ember/runloop/package.json index ec634d80459..e0b194a2af7 100644 --- a/packages/@ember/runloop/package.json +++ b/packages/@ember/runloop/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/service/package.json b/packages/@ember/service/package.json index d098d020379..4af5a789601 100644 --- a/packages/@ember/service/package.json +++ b/packages/@ember/service/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/template-compilation/package.json b/packages/@ember/template-compilation/package.json index 751f7ce4016..9df8e4b158f 100644 --- a/packages/@ember/template-compilation/package.json +++ b/packages/@ember/template-compilation/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/template-compiler/package.json b/packages/@ember/template-compiler/package.json index 5f4fc58cfd7..026dd334b21 100644 --- a/packages/@ember/template-compiler/package.json +++ b/packages/@ember/template-compiler/package.json @@ -6,7 +6,8 @@ "./runtime": "./runtime.ts", "./-internal-primitives": "./-internal-primitives.ts", "./-internal-utils": "./-internal-utils.ts", - "./types": "./lib/types.ts" + "./types": "./lib/types.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", @@ -23,6 +24,6 @@ "expect-type": "^0.15.0" }, "devDependencies": { - "internal-test-helpers": "workspace:*" + "internal-test-helpers": "workspace:*" } } diff --git a/packages/@ember/template-factory/package.json b/packages/@ember/template-factory/package.json index ca9eec29dc4..3ac88e04c58 100644 --- a/packages/@ember/template-factory/package.json +++ b/packages/@ember/template-factory/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@glimmer/opcode-compiler": "0.94.10" diff --git a/packages/@ember/template/package.json b/packages/@ember/template/package.json index cbd113c51e4..ed5be09c68d 100644 --- a/packages/@ember/template/package.json +++ b/packages/@ember/template/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/utils/package.json b/packages/@ember/utils/package.json index 43ffa12c448..a26dab58aae 100644 --- a/packages/@ember/utils/package.json +++ b/packages/@ember/utils/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@ember/version/package.json b/packages/@ember/version/package.json index aac5a26488e..f61f55d3498 100644 --- a/packages/@ember/version/package.json +++ b/packages/@ember/version/package.json @@ -3,7 +3,8 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*", diff --git a/packages/@glimmer/compiler/package.json b/packages/@glimmer/compiler/package.json index a91403128d9..73a5091471b 100644 --- a/packages/@glimmer/compiler/package.json +++ b/packages/@glimmer/compiler/package.json @@ -8,7 +8,10 @@ "directory": "packages/@glimmer/compiler" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "repo-meta": { "supportcjs": true }, diff --git a/packages/@glimmer/component/package.json b/packages/@glimmer/component/package.json index 16688584349..24e58c7f907 100644 --- a/packages/@glimmer/component/package.json +++ b/packages/@glimmer/component/package.json @@ -3,7 +3,8 @@ "version": "2.1.1", "description": "Glimmer component library", "exports": { - ".": "./dist/index.js" + ".": "./dist/index.js", + "./*": "./*.ts" }, "keywords": [ "ember-addon" diff --git a/packages/@glimmer/constants/package.json b/packages/@glimmer/constants/package.json index 7bad358a898..77632423395 100644 --- a/packages/@glimmer/constants/package.json +++ b/packages/@glimmer/constants/package.json @@ -17,5 +17,9 @@ "eslint": "^9.20.1", "publint": "^0.3.2", "typescript": "^5.7.3" + }, + "exports": { + ".": "./index.ts", + "./*": "./*.ts" } } diff --git a/packages/@glimmer/debug-util/package.json b/packages/@glimmer/debug-util/package.json index e6cb231a474..b1787c001d4 100644 --- a/packages/@glimmer/debug-util/package.json +++ b/packages/@glimmer/debug-util/package.json @@ -5,7 +5,10 @@ "license": "MIT", "description": "Common utilities used in Glimmer with debug-specific behavior", "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "scripts": {}, "dependencies": { "@glimmer/interfaces": "workspace:*" diff --git a/packages/@glimmer/debug/package.json b/packages/@glimmer/debug/package.json index ae9a349a3f1..ecc5e82d84d 100644 --- a/packages/@glimmer/debug/package.json +++ b/packages/@glimmer/debug/package.json @@ -6,7 +6,10 @@ "description": "Utilities for helping make working in the vm easier. these should be inlined and stripped for ember usage.", "sideEffects": false, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "scripts": {}, "dependencies": { "@glimmer/interfaces": "workspace:*", diff --git a/packages/@glimmer/destroyable/package.json b/packages/@glimmer/destroyable/package.json index a0e9a057caf..da4531ef29d 100644 --- a/packages/@glimmer/destroyable/package.json +++ b/packages/@glimmer/destroyable/package.json @@ -9,7 +9,10 @@ "directory": "packages/@glimmer/destroyable" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/encoder/package.json b/packages/@glimmer/encoder/package.json index 156378b26a4..a72cd33af6a 100644 --- a/packages/@glimmer/encoder/package.json +++ b/packages/@glimmer/encoder/package.json @@ -8,7 +8,10 @@ "directory": "packages/@glimmer/encoder" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/env/package.json b/packages/@glimmer/env/package.json index e652a975727..f94e3f88fb4 100644 --- a/packages/@glimmer/env/package.json +++ b/packages/@glimmer/env/package.json @@ -7,6 +7,7 @@ "private": true, "type": "module", "exports": { - ".": "./index.ts" + ".": "./index.ts", + "./*": "./*.ts" } } diff --git a/packages/@glimmer/global-context/package.json b/packages/@glimmer/global-context/package.json index 22675197f0c..7b7b81d8d68 100644 --- a/packages/@glimmer/global-context/package.json +++ b/packages/@glimmer/global-context/package.json @@ -8,7 +8,10 @@ "directory": "packages/@glimmer/global-context" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/local-debug-flags/package.json b/packages/@glimmer/local-debug-flags/package.json index 2ab25e74b16..e94433fc968 100644 --- a/packages/@glimmer/local-debug-flags/package.json +++ b/packages/@glimmer/local-debug-flags/package.json @@ -5,7 +5,10 @@ "description": "Helpers for debugging during local development. These get stripped from published builds. This package should not be published.", "type": "module", "private": true, - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "scripts": {}, "devDependencies": { "eslint": "^9.20.1" diff --git a/packages/@glimmer/manager/package.json b/packages/@glimmer/manager/package.json index 8f9e7f69272..3500b17a72e 100644 --- a/packages/@glimmer/manager/package.json +++ b/packages/@glimmer/manager/package.json @@ -8,7 +8,10 @@ "directory": "packages/@glimmer/manager" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/node/package.json b/packages/@glimmer/node/package.json index d1ebabd439a..45221506e43 100644 --- a/packages/@glimmer/node/package.json +++ b/packages/@glimmer/node/package.json @@ -8,7 +8,10 @@ "directory": "packages/@glimmer/node" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/opcode-compiler/package.json b/packages/@glimmer/opcode-compiler/package.json index e89e0cb781c..bb2d28c019d 100644 --- a/packages/@glimmer/opcode-compiler/package.json +++ b/packages/@glimmer/opcode-compiler/package.json @@ -8,7 +8,10 @@ "directory": "packages/@glimmer/opcode-compiler" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/owner/package.json b/packages/@glimmer/owner/package.json index aab6a3f5381..bb3c051270f 100644 --- a/packages/@glimmer/owner/package.json +++ b/packages/@glimmer/owner/package.json @@ -9,7 +9,10 @@ "directory": "packages/@glimmer/owner" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/program/package.json b/packages/@glimmer/program/package.json index 875552f4f7d..61f6c1414f1 100644 --- a/packages/@glimmer/program/package.json +++ b/packages/@glimmer/program/package.json @@ -8,7 +8,10 @@ "directory": "packages/@glimmer/program" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/reference/package.json b/packages/@glimmer/reference/package.json index 94bbf910c25..21eec906d51 100644 --- a/packages/@glimmer/reference/package.json +++ b/packages/@glimmer/reference/package.json @@ -9,7 +9,10 @@ "directory": "packages/@glimmer/reference" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/runtime/package.json b/packages/@glimmer/runtime/package.json index 02fb70c80a7..2a0f295272f 100644 --- a/packages/@glimmer/runtime/package.json +++ b/packages/@glimmer/runtime/package.json @@ -9,7 +9,10 @@ "directory": "packages/@glimmer/runtime" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/syntax/package.json b/packages/@glimmer/syntax/package.json index 886a9b99963..d31efaf0837 100644 --- a/packages/@glimmer/syntax/package.json +++ b/packages/@glimmer/syntax/package.json @@ -8,7 +8,10 @@ "directory": "packages/@glimmer/syntax" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "repo-meta": { "supportcjs": true }, diff --git a/packages/@glimmer/tracking/package.json b/packages/@glimmer/tracking/package.json index 988575e68ac..52fd1f825f6 100644 --- a/packages/@glimmer/tracking/package.json +++ b/packages/@glimmer/tracking/package.json @@ -4,7 +4,8 @@ "type": "module", "exports": { ".": "./index.ts", - "./primitives/cache": "./primitives/cache.ts" + "./primitives/cache": "./primitives/cache.ts", + "./*": "./*.ts" }, "dependencies": { "@ember/-internals": "workspace:*" diff --git a/packages/@glimmer/util/package.json b/packages/@glimmer/util/package.json index acc2287f91a..3c9506a44b4 100644 --- a/packages/@glimmer/util/package.json +++ b/packages/@glimmer/util/package.json @@ -9,7 +9,10 @@ "directory": "packages/@glimmer/util" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/validator/package.json b/packages/@glimmer/validator/package.json index 647ea1e3650..fdcfc25357e 100644 --- a/packages/@glimmer/validator/package.json +++ b/packages/@glimmer/validator/package.json @@ -9,7 +9,10 @@ "directory": "packages/@glimmer/validator" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/vm/package.json b/packages/@glimmer/vm/package.json index f2bb520fa06..2baa6515d0e 100644 --- a/packages/@glimmer/vm/package.json +++ b/packages/@glimmer/vm/package.json @@ -8,7 +8,10 @@ "directory": "packages/@glimmer/vm" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { diff --git a/packages/@glimmer/wire-format/package.json b/packages/@glimmer/wire-format/package.json index 5bfb6ba257b..1dc8681f15b 100644 --- a/packages/@glimmer/wire-format/package.json +++ b/packages/@glimmer/wire-format/package.json @@ -9,7 +9,10 @@ "directory": "packages/@glimmer/wire-format" }, "type": "module", - "exports": "./index.ts", + "exports": { + ".": "./index.ts", + "./*": "./*.ts" + }, "publishConfig": { "access": "public", "exports": { From dddb883ef34c285bd1650d38323f2cb19b7f2157 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 01:12:02 -0400 Subject: [PATCH 06/15] Lint rule --- eslint-rules/no-barrel-imports.js | 32 ++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/eslint-rules/no-barrel-imports.js b/eslint-rules/no-barrel-imports.js index 639d05a02a8..63d2da6825c 100644 --- a/eslint-rules/no-barrel-imports.js +++ b/eslint-rules/no-barrel-imports.js @@ -212,18 +212,26 @@ function packageHasWildcardSourceExports(packageRoot) { function computeNewSpecifier(targetAbs, currentFile) { const targetInfo = getPackageInfo(targetAbs); if (!targetInfo) return null; + const tail = toPosix(path.relative(targetInfo.packageRoot, targetAbs)); + // If the target IS the package's own index file, use just the bare specifier + // (any `/index` suffix is redundant and confuses TS's module resolution). + const isPackageIndex = /^index\.[mc]?[jt]sx?$/.test(tail); + const currentInfo = getPackageInfo(currentFile); if (currentInfo?.bareSpec === targetInfo.bareSpec) { let rel = toPosix(path.relative(path.dirname(currentFile), targetAbs)); if (!rel.startsWith('.')) rel = './' + rel; return { newSpec: stripExt(rel), deep: false }; } - const tail = toPosix(path.relative(targetInfo.packageRoot, targetAbs)); - const owner = findOwningPackage(targetAbs); + + if (isPackageIndex) { + return { newSpec: targetInfo.bareSpec, deep: false }; + } + return { newSpec: stripExt(path.posix.join(targetInfo.bareSpec, tail)), deep: true, - owningPackageRoot: owner, + owningPackageRoot: findOwningPackage(targetAbs), }; } @@ -370,6 +378,7 @@ module.exports = { const isWholeTypeImport = node.importKind === 'type'; const groups = new Map(); const namespaceImports = []; + const kept = []; // specifiers that must stay with the original barrel spec const unresolved = []; let allLocal = node.specifiers.length > 0; @@ -389,7 +398,10 @@ module.exports = { const specIsType = isWholeTypeImport || sp.importKind === 'type'; const r = resolveSpecifier(moduleExports, importedName, barrelPath, spec); - if (r.local) continue; + if (r.local) { + kept.push({ sourceName: importedName, localName: local, isType: specIsType }); + continue; + } allLocal = false; if (r.unresolved) { unresolved.push(importedName); @@ -426,6 +438,10 @@ module.exports = { return; } + // Locally-defined symbols stay with the original barrel — they can't + // be sourced from a sub-file because they don't live in one. + for (const item of kept) pushGroup(groups, spec, item); + const statements = namespaceImports.map((ns) => { const useType = isWholeTypeImport || ns.isType; return `import ${useType ? 'type ' : ''}* as ${ns.localName} from '${ns.newSpec}';`; @@ -445,6 +461,7 @@ module.exports = { const isWholeTypeExport = node.exportKind === 'type'; const groups = new Map(); const namespaceExports = []; + const kept = []; const unresolved = []; let allLocal = node.specifiers.length > 0; @@ -455,7 +472,10 @@ module.exports = { const specIsType = isWholeTypeExport || sp.exportKind === 'type'; const r = resolveSpecifier(moduleExports, importedName, barrelPath, spec); - if (r.local) continue; + if (r.local) { + kept.push({ sourceName: importedName, exportedName, isType: specIsType }); + continue; + } allLocal = false; if (r.unresolved) { unresolved.push(importedName); @@ -492,6 +512,8 @@ module.exports = { return; } + for (const item of kept) pushGroup(groups, spec, item); + const statements = namespaceExports.map((ns) => { const useType = isWholeTypeExport || ns.isType; return `export ${useType ? 'type ' : ''}* as ${ns.exportedName} from '${ns.newSpec}';`; From 3478b865354527a27487a362fba693387861d274 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 01:17:34 -0400 Subject: [PATCH 07/15] Lint rule --- eslint-rules/no-barrel-imports.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/eslint-rules/no-barrel-imports.js b/eslint-rules/no-barrel-imports.js index 63d2da6825c..0f6fdd12e05 100644 --- a/eslint-rules/no-barrel-imports.js +++ b/eslint-rules/no-barrel-imports.js @@ -11,6 +11,13 @@ const moduleCache = new Map(); const owningPackageCache = new Map(); const wildcardExportsCache = new Map(); +// Barrels we deliberately don't rewrite imports from. `@glimmer/component` +// has its own legacy-resolution tsconfig that can't follow deep paths; +// `@ember/version` is a one-line shim that re-exports from `ember/version` +// (a different package), and we want to keep `@ember/version` as the canonical +// import path for the framework version. +const EXCLUDED_BARRELS = new Set(['@glimmer/component', '@ember/version']); + const idOrStr = (n) => (n.type === 'Identifier' ? n.name : n.value); function resolveBarrelPath(specifier) { @@ -156,9 +163,14 @@ const SCOPE_PREFIXES = [ path.join(PACKAGES_ROOT, '@ember') + path.sep, path.join(PACKAGES_ROOT, '@glimmer') + path.sep, ]; +const EXCLUDED_FILE_PREFIXES = [ + path.join(PACKAGES_ROOT, '@glimmer/component') + path.sep, +]; const TEST_DIR_RE = /[\\/](?:test|tests)[\\/]/; const isInScope = (filename) => SCOPE_PREFIXES.some((p) => filename.startsWith(p)); +const isExcludedFile = (filename) => + EXCLUDED_FILE_PREFIXES.some((p) => filename.startsWith(p)); const isInTestFile = (filename) => TEST_DIR_RE.test(filename) || filename.includes(`${path.sep}internal-test-helpers${path.sep}`); @@ -299,7 +311,9 @@ module.exports = { }, create(context) { const { filename } = context; - if (!filename || !isInScope(filename) || isInTestFile(filename)) return {}; + if (!filename || !isInScope(filename) || isInTestFile(filename) || isExcludedFile(filename)) { + return {}; + } function resolveSpecifier(moduleExports, importedName, barrelPath, originalSpec) { const entry = moduleExports.get(importedName); @@ -360,6 +374,7 @@ module.exports = { function check(node) { const spec = node.source?.value; if (typeof spec !== 'string') return; + if (EXCLUDED_BARRELS.has(spec)) return; const barrelPath = resolveBarrelPath(spec); if (!barrelPath || filename === barrelPath) return; From eb3a79e00264427714bebb6b426f1e3661c35c86 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 01:20:34 -0400 Subject: [PATCH 08/15] eslint --- .../-internals/container/lib/container.ts | 2 +- .../-internals/container/lib/registry.ts | 5 +- .../@ember/-internals/deprecations/index.ts | 4 +- packages/@ember/-internals/glimmer/index.ts | 2 +- .../glimmer/lib/component-managers/curly.ts | 23 ++-- .../glimmer/lib/component-managers/mount.ts | 6 +- .../glimmer/lib/component-managers/outlet.ts | 8 +- .../glimmer/lib/component-managers/root.ts | 7 +- .../lib/component-managers/route-template.ts | 8 +- .../-internals/glimmer/lib/component.ts | 43 ++++---- .../glimmer/lib/components/abstract-input.ts | 6 +- .../glimmer/lib/components/input.ts | 6 +- .../glimmer/lib/components/internal.ts | 11 +- .../glimmer/lib/components/link-to.ts | 8 +- packages/@ember/-internals/glimmer/lib/dom.ts | 13 ++- .../-internals/glimmer/lib/environment.ts | 15 +-- .../@ember/-internals/glimmer/lib/helper.ts | 13 ++- .../helpers/-disallow-dynamic-resolution.ts | 2 +- .../lib/helpers/-in-element-null-check.ts | 2 +- .../glimmer/lib/helpers/-normalize-class.ts | 2 +- .../glimmer/lib/helpers/-resolve.ts | 2 +- .../glimmer/lib/helpers/-track-array.ts | 8 +- .../-internals/glimmer/lib/helpers/each-in.ts | 10 +- .../-internals/glimmer/lib/helpers/element.ts | 4 +- .../glimmer/lib/helpers/internal-helper.ts | 2 +- .../-internals/glimmer/lib/helpers/mut.ts | 2 +- .../glimmer/lib/helpers/readonly.ts | 2 +- .../-internals/glimmer/lib/helpers/unbound.ts | 2 +- .../glimmer/lib/helpers/unique-id.ts | 4 +- .../@ember/-internals/glimmer/lib/renderer.ts | 38 +++---- .../@ember/-internals/glimmer/lib/resolver.ts | 24 ++--- .../-internals/glimmer/lib/setup-registry.ts | 4 +- .../-internals/glimmer/lib/syntax/mount.ts | 9 +- .../-internals/glimmer/lib/syntax/outlet.ts | 19 ++-- .../-internals/glimmer/lib/utils/bindings.ts | 12 +-- .../lib/utils/curly-component-state-bucket.ts | 12 ++- .../-internals/glimmer/lib/utils/iterator.ts | 9 +- .../-internals/glimmer/lib/utils/managers.ts | 5 +- .../glimmer/lib/utils/process-args.ts | 6 +- .../utils/serialization-first-node-helpers.ts | 2 +- .../-internals/glimmer/lib/utils/string.ts | 2 +- .../-internals/glimmer/lib/utils/to-bool.ts | 7 +- .../-internals/glimmer/lib/views/outlet.ts | 7 +- packages/@ember/-internals/meta/lib/meta.ts | 7 +- packages/@ember/-internals/metal/lib/alias.ts | 21 ++-- .../-internals/metal/lib/array_events.ts | 2 +- packages/@ember/-internals/metal/lib/cache.ts | 2 +- .../@ember/-internals/metal/lib/cached.ts | 2 +- .../@ember/-internals/metal/lib/chain-tags.ts | 18 ++-- .../@ember/-internals/metal/lib/computed.ts | 25 ++--- .../-internals/metal/lib/computed_cache.ts | 2 +- .../@ember/-internals/metal/lib/decorator.ts | 4 +- .../metal/lib/deprecate_property.ts | 2 +- .../@ember/-internals/metal/lib/events.ts | 6 +- .../-internals/metal/lib/namespace_search.ts | 4 +- .../@ember/-internals/metal/lib/observer.ts | 9 +- .../@ember/-internals/metal/lib/path_cache.ts | 2 +- .../@ember/-internals/metal/lib/properties.ts | 6 +- .../-internals/metal/lib/property_events.ts | 4 +- .../-internals/metal/lib/property_get.ts | 7 +- .../-internals/metal/lib/property_set.ts | 4 +- packages/@ember/-internals/metal/lib/tags.ts | 12 ++- .../@ember/-internals/metal/lib/tracked.ts | 6 +- .../-internals/runtime/lib/mixins/-proxy.ts | 26 ++--- .../runtime/lib/mixins/action_handler.ts | 2 +- .../runtime/lib/mixins/container_proxy.ts | 2 +- .../runtime/lib/mixins/registry_proxy.ts | 2 +- .../lib/mixins/target_action_support.ts | 5 +- packages/@ember/-internals/string/index.ts | 2 +- .../@ember/-internals/utils/lib/is_proxy.ts | 2 +- .../-internals/utils/lib/mandatory-setter.ts | 2 +- .../lib/compat/fallback-view-registry.ts | 2 +- .../views/lib/mixins/action_support.ts | 5 +- .../views/lib/system/event_dispatcher.ts | 7 +- .../-internals/views/lib/system/utils.ts | 4 +- .../-internals/views/lib/views/core_view.ts | 6 +- .../-internals/views/lib/views/states.ts | 4 +- packages/@ember/application/index.ts | 22 ++-- packages/@ember/application/instance.ts | 13 ++- packages/@ember/application/namespace.ts | 17 +-- packages/@ember/array/index.ts | 22 ++-- packages/@ember/array/proxy.ts | 38 +++---- packages/@ember/canary-features/index.ts | 2 +- packages/@ember/component/helper.ts | 7 +- packages/@ember/component/index.ts | 12 +-- packages/@ember/component/template-only.ts | 2 +- packages/@ember/controller/index.ts | 9 +- .../@ember/debug/container-debug-adapter.ts | 4 +- packages/@ember/debug/data-adapter.ts | 7 +- packages/@ember/debug/index.ts | 2 +- .../@ember/debug/lib/capture-render-tree.ts | 2 +- packages/@ember/debug/lib/deprecate.ts | 2 +- packages/@ember/engine/index.ts | 15 +-- packages/@ember/engine/instance.ts | 11 +- packages/@ember/helper/index.ts | 24 ++--- packages/@ember/instrumentation/index.ts | 2 +- packages/@ember/modifier/index.ts | 4 +- packages/@ember/modifier/on.ts | 2 +- packages/@ember/object/-internals.ts | 6 +- packages/@ember/object/compat.ts | 18 ++-- packages/@ember/object/computed.ts | 4 +- packages/@ember/object/core.ts | 27 +++-- packages/@ember/object/evented.ts | 4 +- packages/@ember/object/events.ts | 2 +- packages/@ember/object/index.ts | 32 +++--- .../object/lib/computed/computed_macros.ts | 13 ++- .../lib/computed/reduce_computed_macros.ts | 8 +- packages/@ember/object/mixin.ts | 35 ++---- packages/@ember/object/observable.ts | 21 ++-- packages/@ember/object/observers.ts | 2 +- packages/@ember/object/promise-proxy-mixin.ts | 4 +- packages/@ember/object/proxy.ts | 2 +- packages/@ember/reactive/collections.ts | 12 +-- packages/@ember/renderer/index.ts | 4 +- packages/@ember/routing/index.ts | 2 +- packages/@ember/routing/lib/controller_for.ts | 4 +- .../@ember/routing/lib/generate_controller.ts | 2 +- packages/@ember/routing/lib/utils.ts | 2 +- packages/@ember/routing/route.ts | 32 +++--- packages/@ember/routing/router-service.ts | 3 +- packages/@ember/routing/router.ts | 14 ++- packages/@ember/runloop/index.ts | 2 +- packages/@ember/service/index.ts | 4 +- .../template-compiler/lib/compile-options.ts | 2 +- .../lib/dasherize-component-name.ts | 2 +- .../lib/plugins/assert-against-attrs.ts | 3 +- .../plugins/assert-against-named-outlets.ts | 3 +- .../assert-input-helper-without-block.ts | 3 +- .../assert-reserved-named-arguments.ts | 3 +- .../lib/plugins/auto-import-builtins.ts | 3 +- .../lib/plugins/transform-action-syntax.ts | 3 +- .../plugins/transform-each-in-into-each.ts | 3 +- .../lib/plugins/transform-each-track-array.ts | 3 +- .../lib/plugins/transform-in-element.ts | 3 +- ...form-quoted-bindings-into-just-bindings.ts | 3 +- .../lib/plugins/transform-resolutions.ts | 5 +- .../transform-wrap-mount-and-outlet.ts | 3 +- .../template-compiler/lib/plugins/utils.ts | 2 +- .../lib/system/calculate-location-display.ts | 2 +- .../@ember/template-compiler/lib/template.ts | 6 +- .../@ember/template-compiler/lib/types.ts | 9 +- packages/@ember/template-factory/index.ts | 2 +- packages/@ember/template/index.ts | 9 +- packages/@ember/utils/lib/compare.ts | 2 +- packages/@ember/utils/lib/is_empty.ts | 4 +- .../compiler/lib/builder/builder-interface.ts | 43 ++------ .../@glimmer/compiler/lib/builder/builder.ts | 45 ++------ packages/@glimmer/compiler/lib/compiler.ts | 9 +- .../lib/passes/1-normalization/context.ts | 3 +- .../lib/passes/1-normalization/index.ts | 8 +- .../passes/1-normalization/keywords/append.ts | 6 +- .../passes/1-normalization/keywords/block.ts | 6 +- .../passes/1-normalization/keywords/call.ts | 2 +- .../passes/1-normalization/keywords/impl.ts | 8 +- .../1-normalization/keywords/utils/curry.ts | 5 +- .../keywords/utils/dynamic-vars.ts | 4 +- .../keywords/utils/has-block.ts | 4 +- .../keywords/utils/if-unless.ts | 4 +- .../1-normalization/keywords/utils/log.ts | 4 +- .../visitors/element/classified.ts | 4 +- .../visitors/element/component.ts | 2 +- .../visitors/element/simple-element.ts | 5 +- .../1-normalization/visitors/expressions.ts | 5 +- .../1-normalization/visitors/statements.ts | 2 +- .../1-normalization/visitors/strict-mode.ts | 7 +- .../compiler/lib/passes/2-encoding/content.ts | 4 +- .../lib/passes/2-encoding/expressions.ts | 7 +- .../compiler/lib/passes/2-encoding/mir.ts | 12 +-- packages/@glimmer/compiler/lib/shared/list.ts | 2 +- .../@glimmer/compiler/lib/shared/result.ts | 2 +- packages/@glimmer/compiler/lib/utils.ts | 2 +- .../compiler/lib/wire-format-debug.ts | 8 +- packages/@glimmer/constants/lib/immediate.ts | 2 +- packages/@glimmer/debug/lib/debug.ts | 5 +- packages/@glimmer/debug/lib/decoders.ts | 11 +- packages/@glimmer/debug/lib/dism/opcode.ts | 7 +- packages/@glimmer/debug/lib/dism/operands.ts | 2 +- .../@glimmer/debug/lib/opcode-metadata.ts | 101 +----------------- packages/@glimmer/debug/lib/render/basic.ts | 6 +- .../@glimmer/debug/lib/render/fragment.ts | 2 +- packages/@glimmer/debug/lib/render/ref.ts | 2 +- packages/@glimmer/debug/lib/stack-check.ts | 4 +- packages/@glimmer/debug/lib/vm/snapshot.ts | 6 +- packages/@glimmer/destroyable/index.ts | 2 +- packages/@glimmer/encoder/lib/encoder.ts | 2 +- packages/@glimmer/manager/lib/internal/api.ts | 2 +- .../@glimmer/manager/lib/public/component.ts | 4 +- .../@glimmer/manager/lib/public/helper.ts | 2 +- .../@glimmer/manager/lib/public/modifier.ts | 9 +- .../@glimmer/manager/lib/public/template.ts | 2 +- .../@glimmer/manager/lib/util/args-proxy.ts | 6 +- .../@glimmer/manager/lib/util/capabilities.ts | 4 +- packages/@glimmer/node/lib/node-dom-helper.ts | 3 +- .../@glimmer/node/lib/serialize-builder.ts | 5 +- .../lib/compilable-template.ts | 4 +- .../@glimmer/opcode-compiler/lib/compiler.ts | 4 +- .../lib/opcode-builder/encoder.ts | 14 ++- .../lib/opcode-builder/helpers/blocks.ts | 20 +--- .../lib/opcode-builder/helpers/components.ts | 58 ++-------- .../lib/opcode-builder/helpers/conditional.ts | 16 +-- .../lib/opcode-builder/helpers/expr.ts | 2 +- .../lib/opcode-builder/helpers/resolution.ts | 6 +- .../lib/opcode-builder/helpers/shared.ts | 4 +- .../lib/opcode-builder/helpers/stdlib.ts | 18 +--- .../lib/opcode-builder/helpers/vm.ts | 23 +--- .../lib/opcode-builder/operands.ts | 4 +- .../opcode-compiler/lib/syntax/compilers.ts | 3 +- .../opcode-compiler/lib/syntax/expressions.ts | 23 +--- .../opcode-compiler/lib/syntax/statements.ts | 39 +------ .../@glimmer/opcode-compiler/lib/template.ts | 2 +- .../@glimmer/opcode-compiler/lib/utils.ts | 6 +- packages/@glimmer/program/lib/constants.ts | 23 ++-- packages/@glimmer/program/lib/opcode.ts | 2 +- packages/@glimmer/program/lib/program.ts | 4 +- .../program/lib/util/default-template.ts | 2 +- packages/@glimmer/reference/lib/iterable.ts | 6 +- packages/@glimmer/reference/lib/reference.ts | 17 ++- packages/@glimmer/runtime/lib/bounds.ts | 3 +- .../lib/compiled/expressions/concat.ts | 4 +- .../lib/compiled/opcodes/-debug-strip.ts | 29 ++--- .../runtime/lib/compiled/opcodes/component.ts | 62 +++-------- .../runtime/lib/compiled/opcodes/content.ts | 29 ++--- .../runtime/lib/compiled/opcodes/debugger.ts | 9 +- .../runtime/lib/compiled/opcodes/dom.ts | 45 +++----- .../lib/compiled/opcodes/expressions.ts | 54 +++------- .../runtime/lib/compiled/opcodes/lists.ts | 7 +- .../runtime/lib/compiled/opcodes/vm.ts | 74 ++----------- .../@glimmer/runtime/lib/component/resolve.ts | 2 +- .../runtime/lib/component/template-only.ts | 6 +- .../@glimmer/runtime/lib/curried-value.ts | 2 +- .../@glimmer/runtime/lib/debug-render-tree.ts | 5 +- .../@glimmer/runtime/lib/dom/operations.ts | 4 +- packages/@glimmer/runtime/lib/environment.ts | 8 +- .../@glimmer/runtime/lib/helpers/array.ts | 4 +- .../@glimmer/runtime/lib/helpers/concat.ts | 2 +- packages/@glimmer/runtime/lib/helpers/fn.ts | 8 +- packages/@glimmer/runtime/lib/helpers/get.ts | 4 +- packages/@glimmer/runtime/lib/helpers/hash.ts | 4 +- .../runtime/lib/helpers/internal-helper.ts | 2 +- .../@glimmer/runtime/lib/helpers/invoke.ts | 7 +- packages/@glimmer/runtime/lib/modifiers/on.ts | 17 +-- packages/@glimmer/runtime/lib/opcodes.ts | 25 ++--- .../runtime/lib/references/class-list.ts | 4 +- .../runtime/lib/references/curry-value.ts | 10 +- packages/@glimmer/runtime/lib/render.ts | 9 +- packages/@glimmer/runtime/lib/scope.ts | 8 +- packages/@glimmer/runtime/lib/vm/append.ts | 19 ++-- packages/@glimmer/runtime/lib/vm/arguments.ts | 18 ++-- .../runtime/lib/vm/attributes/dynamic.ts | 4 +- .../@glimmer/runtime/lib/vm/content/text.ts | 4 +- .../runtime/lib/vm/element-builder.ts | 6 +- packages/@glimmer/runtime/lib/vm/low-level.ts | 16 +-- .../runtime/lib/vm/rehydrate-builder.ts | 8 +- .../@glimmer/runtime/lib/vm/render-result.ts | 2 +- packages/@glimmer/runtime/lib/vm/stack.ts | 4 +- packages/@glimmer/runtime/lib/vm/update.ts | 13 ++- packages/@glimmer/syntax/lib/parser.ts | 6 +- .../lib/parser/handlebars-node-visitors.ts | 4 +- .../lib/parser/tokenizer-event-handlers.ts | 12 +-- .../@glimmer/syntax/lib/source/loc/match.ts | 3 +- .../@glimmer/syntax/lib/source/loc/span.ts | 2 +- .../@glimmer/syntax/lib/source/location.ts | 2 +- packages/@glimmer/syntax/lib/source/source.ts | 3 +- .../@glimmer/syntax/lib/source/span-list.ts | 2 +- packages/@glimmer/syntax/lib/symbol-table.ts | 7 +- .../@glimmer/syntax/lib/traversal/traverse.ts | 3 +- .../@glimmer/syntax/lib/v1/legacy-interop.ts | 3 +- .../@glimmer/syntax/lib/v1/parser-builders.ts | 2 +- .../@glimmer/syntax/lib/v1/public-builders.ts | 3 +- packages/@glimmer/syntax/lib/v2/builders.ts | 5 +- packages/@glimmer/syntax/lib/v2/normalize.ts | 5 +- .../@glimmer/syntax/lib/v2/objects/node.ts | 4 +- .../syntax/lib/v2/objects/resolution.ts | 2 +- packages/@glimmer/tracking/index.ts | 3 +- .../@glimmer/tracking/primitives/cache.ts | 2 +- packages/@glimmer/util/lib/collections.ts | 3 +- packages/@glimmer/util/lib/debug-steps.ts | 3 +- packages/@glimmer/util/lib/string.ts | 2 +- packages/@glimmer/validator/lib/debug.ts | 2 +- 279 files changed, 1004 insertions(+), 1472 deletions(-) diff --git a/packages/@ember/-internals/container/lib/container.ts b/packages/@ember/-internals/container/lib/container.ts index 0705d2ee2de..540fd98bb35 100644 --- a/packages/@ember/-internals/container/lib/container.ts +++ b/packages/@ember/-internals/container/lib/container.ts @@ -7,7 +7,7 @@ import type { FullName, } from '@ember/-internals/owner'; import { setOwner } from '@ember/-internals/owner'; -import { dictionary } from '@ember/-internals/utils'; +import dictionary from '@ember/-internals/utils/lib/dictionary'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import type { DebugRegistry } from './registry'; diff --git a/packages/@ember/-internals/container/lib/registry.ts b/packages/@ember/-internals/container/lib/registry.ts index 81111ab2ff7..9e11f2e9569 100644 --- a/packages/@ember/-internals/container/lib/registry.ts +++ b/packages/@ember/-internals/container/lib/registry.ts @@ -7,9 +7,10 @@ import type { RegisterOptions, Resolver, } from '@ember/-internals/owner'; -import { dictionary, intern } from '@ember/-internals/utils'; +import dictionary from '@ember/-internals/utils/lib/dictionary'; +import intern from '@ember/-internals/utils/lib/intern'; import { assert } from '@ember/debug'; -import type { set } from '@ember/object'; +import type { set } from '@ember/-internals/metal/lib/property_set'; import { DEBUG } from '@glimmer/env'; import type { ContainerOptions, LazyInjection } from './container'; import Container from './container'; diff --git a/packages/@ember/-internals/deprecations/index.ts b/packages/@ember/-internals/deprecations/index.ts index b68b84b616e..bf105825bae 100644 --- a/packages/@ember/-internals/deprecations/index.ts +++ b/packages/@ember/-internals/deprecations/index.ts @@ -1,5 +1,5 @@ -import type { DeprecationOptions } from '@ember/debug'; -import { ENV } from '@ember/-internals/environment'; +import type { DeprecationOptions } from '@ember/debug/lib/deprecate'; +import { ENV } from '@ember/-internals/environment/lib/env'; import { VERSION } from '@ember/version'; import { deprecate, assert } from '@ember/debug'; import { dasherize } from '../string/index'; diff --git a/packages/@ember/-internals/glimmer/index.ts b/packages/@ember/-internals/glimmer/index.ts index 1e47aa55bbd..66afa93812e 100644 --- a/packages/@ember/-internals/glimmer/index.ts +++ b/packages/@ember/-internals/glimmer/index.ts @@ -444,7 +444,7 @@ @public */ -export { templateFactory as template, templateCacheCounters } from '@glimmer/opcode-compiler'; +export { default as template, templateCacheCounters } from '@glimmer/opcode-compiler/lib/template'; export { default as RootTemplate } from './lib/templates/root'; export { default as Input } from './lib/components/input'; diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts index 44b4cdc5c61..f075d39487c 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts @@ -4,8 +4,8 @@ import { getOwner, setOwner, } from '@ember/-internals/owner'; -import { guidFor } from '@ember/-internals/utils'; -import { addChildView, setElementView, setViewElement } from '@ember/-internals/views'; +import { guidFor } from '@ember/-internals/utils/lib/guid'; +import { addChildView, setElementView, setViewElement } from '@ember/-internals/views/lib/system/utils'; import type { Nullable } from '@ember/-internals/utility-types'; import { assert, debugFreeze } from '@ember/debug'; import { _instrumentStart } from '@ember/instrumentation'; @@ -25,20 +25,13 @@ import type { WithDynamicLayout, WithDynamicTagName, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { childRefFor, createComputeRef, createPrimitiveRef, valueForRef } from '@glimmer/reference'; -import { reifyPositional } from '@glimmer/runtime'; -import { EMPTY_ARRAY } from '@glimmer/util'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { childRefFor, createComputeRef, createPrimitiveRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { reifyPositional } from '@glimmer/runtime/lib/vm/arguments'; +import { EMPTY_ARRAY } from '@glimmer/util/lib/array-utils'; import { unwrapTemplate } from './unwrap-template'; -import { - beginTrackFrame, - beginUntrackFrame, - consumeTag, - endTrackFrame, - endUntrackFrame, - validateTag, - valueForTag, -} from '@glimmer/validator'; +import { beginTrackFrame, beginUntrackFrame, consumeTag, endTrackFrame, endUntrackFrame } from '@glimmer/validator/lib/tracking'; +import { validateTag, valueForTag } from '@glimmer/validator/lib/validators'; import type Component from '../component'; import type { DynamicScope } from '../renderer'; import type RuntimeResolver from '../resolver'; diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts b/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts index 77c8d793479..88fb9353f69 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/mount.ts @@ -18,9 +18,9 @@ import type { WithSubOwner, } from '@glimmer/interfaces'; 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'; +import { capabilityFlagsFrom } from '@glimmer/manager/lib/util/capabilities'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createConstRef, valueForRef } from '@glimmer/reference/lib/reference'; import { unwrapTemplate } from './unwrap-template'; import type RuntimeResolver from '../resolver'; diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts index f140f5f34a5..823e1239f51 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts @@ -15,10 +15,10 @@ import type { WithCreateInstance, WithCustomDebugRenderTree, } from '@glimmer/interfaces'; -import { capabilityFlagsFrom } from '@glimmer/manager'; -import type { Reference } from '@glimmer/reference'; -import { UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference'; -import { EMPTY_ARGS } from '@glimmer/runtime'; +import { capabilityFlagsFrom } from '@glimmer/manager/lib/util/capabilities'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import { EMPTY_ARGS } from '@glimmer/runtime/lib/vm/arguments'; import { unwrapTemplate } from './unwrap-template'; import type { DynamicScope } from '../renderer'; diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/root.ts b/packages/@ember/-internals/glimmer/lib/component-managers/root.ts index a0488f74488..2ca09c5e158 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/root.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/root.ts @@ -1,4 +1,4 @@ -import { getFactoryFor } from '@ember/-internals/container'; +import { getFactoryFor } from '@ember/-internals/container/lib/container'; import { assert } from '@ember/debug'; import { _instrumentStart } from '@ember/instrumentation'; import { DEBUG } from '@glimmer/env'; @@ -10,8 +10,9 @@ import type { VMArguments, } from '@glimmer/interfaces'; import type { Nullable } from '@ember/-internals/utility-types'; -import { capabilityFlagsFrom } from '@glimmer/manager'; -import { CONSTANT_TAG, consumeTag } from '@glimmer/validator'; +import { capabilityFlagsFrom } from '@glimmer/manager/lib/util/capabilities'; +import { CONSTANT_TAG } from '@glimmer/validator/lib/validators'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; import type Component from '../component'; import type { DynamicScope } from '../renderer'; import ComponentStateBucket from '../utils/curly-component-state-bucket'; diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/route-template.ts b/packages/@ember/-internals/glimmer/lib/component-managers/route-template.ts index bfb6a4ba09b..8e6b12278aa 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/route-template.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/route-template.ts @@ -15,10 +15,10 @@ import type { } from '@glimmer/interfaces'; import type { Nullable } from '@ember/-internals/utility-types'; import { DEBUG } from '@glimmer/env'; -import { capabilityFlagsFrom } from '@glimmer/manager'; -import type { Reference } from '@glimmer/reference'; -import { createDebugAliasRef, valueForRef } from '@glimmer/reference'; -import { curry, type CurriedValue } from '@glimmer/runtime'; +import { capabilityFlagsFrom } from '@glimmer/manager/lib/util/capabilities'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createDebugAliasRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { curry, type CurriedValue } from '@glimmer/runtime/lib/curried-value'; import { unwrapTemplate } from './unwrap-template'; interface RouteTemplateInstanceState { diff --git a/packages/@ember/-internals/glimmer/lib/component.ts b/packages/@ember/-internals/glimmer/lib/component.ts index d66842da331..0a15ea1a687 100644 --- a/packages/@ember/-internals/glimmer/lib/component.ts +++ b/packages/@ember/-internals/glimmer/lib/component.ts @@ -1,31 +1,24 @@ -import type { View } from '@ember/-internals/glimmer'; -import { - descriptorForProperty, - get, - nativeDescDecorator, - PROPERTY_DID_CHANGE, -} from '@ember/-internals/metal'; -import type { PropertyDidChange } from '@ember/-internals/metal'; +import type { View } from './renderer'; +import { descriptorForProperty, nativeDescDecorator } from '@ember/-internals/metal/lib/decorator'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { PROPERTY_DID_CHANGE } from '@ember/-internals/metal/lib/property_events'; +import type { PropertyDidChange } from '@ember/-internals/metal/lib/property_events'; import { getOwner } from '@ember/-internals/owner'; -import { TargetActionSupport } from '@ember/-internals/runtime'; -import type { ViewStates } from '@ember/-internals/views'; -import { - ActionSupport, - addChildView, - CoreView, - EventDispatcher, - getChildViews, - getViewElement, -} from '@ember/-internals/views'; -import { guidFor } from '@ember/-internals/utils'; +import TargetActionSupport from '@ember/-internals/runtime/lib/mixins/target_action_support'; +import type ViewStates from '@ember/-internals/views/lib/views/states'; +import ActionSupport from '@ember/-internals/views/lib/mixins/action_support'; +import { addChildView, getChildViews, getViewElement } from '@ember/-internals/views/lib/system/utils'; +import CoreView from '@ember/-internals/views/lib/views/core_view'; +import EventDispatcher from '@ember/-internals/views/lib/system/event_dispatcher'; +import { guidFor } from '@ember/-internals/utils/lib/guid'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import type { Environment, Template, TemplateFactory } from '@glimmer/interfaces'; -import { setInternalComponentManager } from '@glimmer/manager'; -import { isUpdatableRef, updateRef } from '@glimmer/reference'; -import { normalizeProperty } from '@glimmer/runtime'; -import type { DirtyableTag } from '@glimmer/validator'; -import { createTag, dirtyTag } from '@glimmer/validator'; +import { setInternalComponentManager } from '@glimmer/manager/lib/internal/api'; +import { isUpdatableRef, updateRef } from '@glimmer/reference/lib/reference'; +import { normalizeProperty } from '@glimmer/runtime/lib/dom/props'; +import type { DirtyableTag } from '@glimmer/interfaces'; +import { createTag, DIRTY_TAG as dirtyTag } from '@glimmer/validator/lib/validators'; import type { SimpleElement } from '@simple-dom/interface'; import { BOUNDS, @@ -34,7 +27,7 @@ import { IS_DISPATCHING_ATTRS, getComponentCapturedArgs, } from './component-managers/curly'; -import { hasDOM } from '@ember/-internals/browser-environment'; +import hasDOM from '@ember/-internals/browser-environment/lib/has-dom'; // Keep track of which component classes have already been processed for lazy event setup. let lazyEventsProcessed = new WeakMap>(); diff --git a/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts b/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts index 01bae28b626..1d6fc181c94 100644 --- a/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts +++ b/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts @@ -1,8 +1,8 @@ -import { tracked } from '@ember/-internals/metal'; +import { tracked } from '@ember/-internals/metal/lib/tracked'; import { assert } from '@ember/debug'; import { action } from '@ember/object'; -import type { Reference } from '@glimmer/reference'; -import { isConstRef, isUpdatableRef, updateRef, valueForRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { isConstRef, isUpdatableRef, updateRef, valueForRef } from '@glimmer/reference/lib/reference'; import type { EventListener } from './internal'; import InternalComponent from './internal'; diff --git a/packages/@ember/-internals/glimmer/lib/components/input.ts b/packages/@ember/-internals/glimmer/lib/components/input.ts index 6401d7a2864..cd9898555dc 100644 --- a/packages/@ember/-internals/glimmer/lib/components/input.ts +++ b/packages/@ember/-internals/glimmer/lib/components/input.ts @@ -1,12 +1,12 @@ /** @module @ember/component */ -import { hasDOM } from '@ember/-internals/browser-environment'; +import hasDOM from '@ember/-internals/browser-environment/lib/has-dom'; import { type Opaque } from '@ember/-internals/utility-types'; import { assert, warn } from '@ember/debug'; import { action } from '@ember/object'; -import { valueForRef } from '@glimmer/reference'; -import { untrack } from '@glimmer/validator'; +import { valueForRef } from '@glimmer/reference/lib/reference'; +import { untrack } from '@glimmer/validator/lib/tracking'; import InputTemplate from '../templates/input'; import AbstractInput, { valueFrom } from './abstract-input'; import { type OpaqueInternalComponentConstructor, opaquify } from './internal'; diff --git a/packages/@ember/-internals/glimmer/lib/components/internal.ts b/packages/@ember/-internals/glimmer/lib/components/internal.ts index 9bd6c132b6a..cd5571b35dc 100644 --- a/packages/@ember/-internals/glimmer/lib/components/internal.ts +++ b/packages/@ember/-internals/glimmer/lib/components/internal.ts @@ -1,6 +1,6 @@ import type { InternalOwner } from '@ember/-internals/owner'; import { setOwner } from '@ember/-internals/owner'; -import { guidFor } from '@ember/-internals/utils'; +import { guidFor } from '@ember/-internals/utils/lib/guid'; import { assert } from '@ember/debug'; import type { CapturedArguments, @@ -13,10 +13,11 @@ import type { VMArguments, WithCreateInstance, } from '@glimmer/interfaces'; -import { setComponentTemplate, setInternalComponentManager } from '@glimmer/manager'; -import type { Reference } from '@glimmer/reference'; -import { createConstRef, isConstRef, valueForRef } from '@glimmer/reference'; -import { untrack } from '@glimmer/validator'; +import { setComponentTemplate } from '@glimmer/manager/lib/public/template'; +import { setInternalComponentManager } from '@glimmer/manager/lib/internal/api'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createConstRef, isConstRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { untrack } from '@glimmer/validator/lib/tracking'; function NOOP(): void {} diff --git a/packages/@ember/-internals/glimmer/lib/components/link-to.ts b/packages/@ember/-internals/glimmer/lib/components/link-to.ts index a8c55b759e0..4f11670388c 100644 --- a/packages/@ember/-internals/glimmer/lib/components/link-to.ts +++ b/packages/@ember/-internals/glimmer/lib/components/link-to.ts @@ -1,7 +1,8 @@ import type Route from '@ember/routing/route'; import type { RouterState, RoutingService } from '@ember/routing/-internals'; -import { isSimpleClick } from '@ember/-internals/views'; -import { assert, debugFreeze, inspect, warn } from '@ember/debug'; +import { isSimpleClick } from '@ember/-internals/views/lib/system/utils'; +import inspect from '@ember/debug/lib/inspect'; +import { assert, debugFreeze, warn } from '@ember/debug'; import { getEngineParent } from '@ember/engine/parent'; import type EngineInstance from '@ember/engine/instance'; import { flaggedInstrument } from '@ember/instrumentation'; @@ -10,7 +11,8 @@ import { service } from '@ember/service'; import { DEBUG } from '@glimmer/env'; import type { Maybe } from '@glimmer/interfaces'; import type { Nullable } from '@ember/-internals/utility-types'; -import { consumeTag, createCache, getValue, tagFor, untrack } from '@glimmer/validator'; +import { consumeTag, createCache, getValue, untrack } from '@glimmer/validator/lib/tracking'; +import { tagFor } from '@glimmer/validator/lib/meta'; import type { Transition } from 'router_js'; import LinkToTemplate from '../templates/link-to'; import InternalComponent, { type OpaqueInternalComponentConstructor, opaquify } from './internal'; diff --git a/packages/@ember/-internals/glimmer/lib/dom.ts b/packages/@ember/-internals/glimmer/lib/dom.ts index 23731e97af5..d9b07fe2c22 100644 --- a/packages/@ember/-internals/glimmer/lib/dom.ts +++ b/packages/@ember/-internals/glimmer/lib/dom.ts @@ -1,7 +1,6 @@ -export { - DOMChanges, - DOMTreeConstruction, - clientBuilder, - rehydrationBuilder, -} from '@glimmer/runtime'; -export { NodeDOMTreeConstruction, serializeBuilder } from '@glimmer/node'; +export { DOMChanges } from '@glimmer/runtime/lib/dom/helper'; +export { DOMTreeConstruction } from '@glimmer/runtime/lib/dom/api'; +export { clientBuilder } from '@glimmer/runtime/lib/vm/element-builder'; +export { rehydrationBuilder } from '@glimmer/runtime/lib/vm/rehydrate-builder'; +export { default as NodeDOMTreeConstruction } from '@glimmer/node/lib/node-dom-helper'; +export { serializeBuilder } from '@glimmer/node/lib/serialize-builder'; diff --git a/packages/@ember/-internals/glimmer/lib/environment.ts b/packages/@ember/-internals/glimmer/lib/environment.ts index 2ebcbdea8e5..fc2d99f4f4d 100644 --- a/packages/@ember/-internals/glimmer/lib/environment.ts +++ b/packages/@ember/-internals/glimmer/lib/environment.ts @@ -1,15 +1,16 @@ -import { ENV } from '@ember/-internals/environment'; -import { get, set, _getProp, _setProp } from '@ember/-internals/metal'; +import { ENV } from '@ember/-internals/environment/lib/env'; +import { get, _getProp } from '@ember/-internals/metal/lib/property_get'; +import { set, _setProp } from '@ember/-internals/metal/lib/property_set'; import type { InternalOwner } from '@ember/-internals/owner'; -import { getDebugName } from '@ember/-internals/utils'; -import { constructStyleDeprecationMessage } from '@ember/-internals/views'; +import getDebugName from '@ember/-internals/utils/lib/get-debug-name'; +import { constructStyleDeprecationMessage } from '@ember/-internals/views/lib/system/utils'; import { assert, deprecate, warn } from '@ember/debug'; -import type { DeprecationOptions } from '@ember/debug'; +import type { DeprecationOptions } from '@ember/debug/lib/deprecate'; import { schedule, _backburner } from '@ember/runloop'; import { DEBUG } from '@glimmer/env'; import setGlobalContext from '@glimmer/global-context'; -import type { EnvironmentDelegate } from '@glimmer/runtime'; -import { debug } from '@glimmer/validator'; +import type { EnvironmentDelegate } from '@glimmer/runtime/lib/environment'; +import { debug } from '@glimmer/validator/lib/debug'; import toIterator from './utils/iterator'; import { isHTMLSafe } from './utils/string'; import toBool from './utils/to-bool'; diff --git a/packages/@ember/-internals/glimmer/lib/helper.ts b/packages/@ember/-internals/glimmer/lib/helper.ts index a538c33aeed..9f99e1d9829 100644 --- a/packages/@ember/-internals/glimmer/lib/helper.ts +++ b/packages/@ember/-internals/glimmer/lib/helper.ts @@ -2,17 +2,20 @@ @module @ember/component */ -import type { InternalFactoryManager } from '@ember/-internals/container'; +import type { InternalFactoryManager } from '@ember/-internals/container/lib/container'; import type { InternalFactory, InternalOwner } from '@ember/-internals/owner'; import { setOwner } from '@ember/-internals/owner'; import { FrameworkObject } from '@ember/object/-internals'; -import { getDebugName } from '@ember/-internals/utils'; +import getDebugName from '@ember/-internals/utils/lib/get-debug-name'; import { assert } from '@ember/debug'; import { join } from '@ember/runloop'; import type { Arguments, HelperManager } from '@glimmer/interfaces'; -import { getInternalHelperManager, helperCapabilities, setHelperManager } from '@glimmer/manager'; -import type { DirtyableTag } from '@glimmer/validator'; -import { consumeTag, createTag, dirtyTag } from '@glimmer/validator'; +import { getInternalHelperManager } from '@glimmer/manager/lib/internal/api'; +import { helperCapabilities } from '@glimmer/manager/lib/public/helper'; +import { setHelperManager } from '@glimmer/manager/lib/public/api'; +import type { DirtyableTag } from '@glimmer/interfaces'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; +import { createTag, DIRTY_TAG as dirtyTag } from '@glimmer/validator/lib/validators'; const RECOMPUTE_TAG = Symbol('RECOMPUTE_TAG'); diff --git a/packages/@ember/-internals/glimmer/lib/helpers/-disallow-dynamic-resolution.ts b/packages/@ember/-internals/glimmer/lib/helpers/-disallow-dynamic-resolution.ts index 6f821c8c171..00903f55928 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/-disallow-dynamic-resolution.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/-disallow-dynamic-resolution.ts @@ -3,7 +3,7 @@ */ import { assert } from '@ember/debug'; import type { CapturedArguments } from '@glimmer/interfaces'; -import { createComputeRef, valueForRef } from '@glimmer/reference'; +import { createComputeRef, valueForRef } from '@glimmer/reference/lib/reference'; import { internalHelper } from './internal-helper'; export default internalHelper(({ positional, named }: CapturedArguments) => { diff --git a/packages/@ember/-internals/glimmer/lib/helpers/-in-element-null-check.ts b/packages/@ember/-internals/glimmer/lib/helpers/-in-element-null-check.ts index 10fc222f5fe..04ea40921ad 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/-in-element-null-check.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/-in-element-null-check.ts @@ -1,7 +1,7 @@ import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import type { CapturedArguments, Helper } from '@glimmer/interfaces'; -import { createComputeRef, valueForRef } from '@glimmer/reference'; +import { createComputeRef, valueForRef } from '@glimmer/reference/lib/reference'; import { internalHelper } from './internal-helper'; let helper: Helper; diff --git a/packages/@ember/-internals/glimmer/lib/helpers/-normalize-class.ts b/packages/@ember/-internals/glimmer/lib/helpers/-normalize-class.ts index 5603e12c135..6c8dfc656ff 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/-normalize-class.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/-normalize-class.ts @@ -1,7 +1,7 @@ import { assert } from '@ember/debug'; import { dasherize } from '@ember/-internals/string'; import type { CapturedArguments } from '@glimmer/interfaces'; -import { createComputeRef, valueForRef } from '@glimmer/reference'; +import { createComputeRef, valueForRef } from '@glimmer/reference/lib/reference'; import { internalHelper } from './internal-helper'; export default internalHelper(({ positional }: CapturedArguments) => { diff --git a/packages/@ember/-internals/glimmer/lib/helpers/-resolve.ts b/packages/@ember/-internals/glimmer/lib/helpers/-resolve.ts index 71bd9f3ff43..b7386154056 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/-resolve.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/-resolve.ts @@ -5,7 +5,7 @@ import type { FullName, InternalOwner } from '@ember/-internals/owner'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import type { CapturedArguments } from '@glimmer/interfaces'; -import { createConstRef, isConstRef, valueForRef } from '@glimmer/reference'; +import { createConstRef, isConstRef, valueForRef } from '@glimmer/reference/lib/reference'; import { internalHelper } from './internal-helper'; export default internalHelper( diff --git a/packages/@ember/-internals/glimmer/lib/helpers/-track-array.ts b/packages/@ember/-internals/glimmer/lib/helpers/-track-array.ts index c380be4737d..607015a4a55 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/-track-array.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/-track-array.ts @@ -1,12 +1,12 @@ /** @module ember */ -import { tagForProperty } from '@ember/-internals/metal'; -import { isObject } from '@ember/-internals/utils'; +import { tagForProperty } from '@ember/-internals/metal/lib/tags'; +import { isObject } from '@ember/-internals/utils/lib/spec'; import { assert } from '@ember/debug'; import type { CapturedArguments } from '@glimmer/interfaces'; -import { createComputeRef, valueForRef } from '@glimmer/reference'; -import { consumeTag } from '@glimmer/validator'; +import { createComputeRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; import { internalHelper } from './internal-helper'; /** diff --git a/packages/@ember/-internals/glimmer/lib/helpers/each-in.ts b/packages/@ember/-internals/glimmer/lib/helpers/each-in.ts index 682d71b7c8a..1e4c51bc083 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/each-in.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/each-in.ts @@ -1,13 +1,13 @@ /** @module ember */ -import { tagForObject } from '@ember/-internals/metal'; -import { _contentFor } from '@ember/-internals/runtime'; -import { isProxy } from '@ember/-internals/utils'; +import { tagForObject } from '@ember/-internals/metal/lib/tags'; +import { contentFor as _contentFor } from '@ember/-internals/runtime/lib/mixins/-proxy'; +import { isProxy } from '@ember/-internals/utils/lib/is_proxy'; import { assert } from '@ember/debug'; import type { CapturedArguments } from '@glimmer/interfaces'; -import { createComputeRef, valueForRef } from '@glimmer/reference'; -import { consumeTag } from '@glimmer/validator'; +import { createComputeRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; import { internalHelper } from './internal-helper'; /** diff --git a/packages/@ember/-internals/glimmer/lib/helpers/element.ts b/packages/@ember/-internals/glimmer/lib/helpers/element.ts index 7c2aefec1a8..d8800ff9d88 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/element.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/element.ts @@ -3,8 +3,8 @@ */ import type { CapturedArguments, InternalComponentManager } from '@glimmer/interfaces'; -import { createComputeRef, valueForRef, NULL_REFERENCE } from '@glimmer/reference'; -import { setInternalComponentManager } from '@glimmer/manager'; +import { createComputeRef, valueForRef, NULL_REFERENCE } from '@glimmer/reference/lib/reference'; +import { setInternalComponentManager } from '@glimmer/manager/lib/internal/api'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import { internalHelper } from './internal-helper'; diff --git a/packages/@ember/-internals/glimmer/lib/helpers/internal-helper.ts b/packages/@ember/-internals/glimmer/lib/helpers/internal-helper.ts index f474a052e6e..c11617194c9 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/internal-helper.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/internal-helper.ts @@ -1,6 +1,6 @@ import type { InternalOwner } from '@ember/-internals/owner'; import type { Helper, HelperDefinitionState } from '@glimmer/interfaces'; -import { setInternalHelperManager } from '@glimmer/manager'; +import { setInternalHelperManager } from '@glimmer/manager/lib/internal/api'; export function internalHelper(helper: Helper): HelperDefinitionState { return setInternalHelperManager(helper, {}); diff --git a/packages/@ember/-internals/glimmer/lib/helpers/mut.ts b/packages/@ember/-internals/glimmer/lib/helpers/mut.ts index 2c75d05fbc2..94bb9c2106c 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/mut.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/mut.ts @@ -3,7 +3,7 @@ */ import { assert } from '@ember/debug'; import type { CapturedArguments } from '@glimmer/interfaces'; -import { createInvokableRef, isUpdatableRef } from '@glimmer/reference'; +import { createInvokableRef, isUpdatableRef } from '@glimmer/reference/lib/reference'; import { internalHelper } from './internal-helper'; /** diff --git a/packages/@ember/-internals/glimmer/lib/helpers/readonly.ts b/packages/@ember/-internals/glimmer/lib/helpers/readonly.ts index 503eeefb44c..b251f82069b 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/readonly.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/readonly.ts @@ -2,7 +2,7 @@ @module ember */ import type { CapturedArguments } from '@glimmer/interfaces'; -import { createReadOnlyRef } from '@glimmer/reference'; +import { createReadOnlyRef } from '@glimmer/reference/lib/reference'; import { assert } from '@ember/debug'; import { internalHelper } from './internal-helper'; diff --git a/packages/@ember/-internals/glimmer/lib/helpers/unbound.ts b/packages/@ember/-internals/glimmer/lib/helpers/unbound.ts index 402604cfbd1..637daeb8ce0 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/unbound.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/unbound.ts @@ -4,7 +4,7 @@ import { assert } from '@ember/debug'; import type { CapturedArguments } from '@glimmer/interfaces'; -import { createUnboundRef, valueForRef } from '@glimmer/reference'; +import { createUnboundRef, valueForRef } from '@glimmer/reference/lib/reference'; import { internalHelper } from './internal-helper'; /** diff --git a/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts b/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts index edf1d29eeab..bb02f12de21 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/unique-id.ts @@ -25,8 +25,8 @@ @public */ -import type { Reference } from '@glimmer/reference'; -import { createConstRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createConstRef } from '@glimmer/reference/lib/reference'; import { internalHelper } from './internal-helper'; export default internalHelper((): Reference => { diff --git a/packages/@ember/-internals/glimmer/lib/renderer.ts b/packages/@ember/-internals/glimmer/lib/renderer.ts index cfc74e0e423..bf90ff27c9e 100644 --- a/packages/@ember/-internals/glimmer/lib/renderer.ts +++ b/packages/@ember/-internals/glimmer/lib/renderer.ts @@ -1,9 +1,9 @@ -import { privatize as P } from '@ember/-internals/container'; -import { ENV } from '@ember/-internals/environment'; +import { privatize as P } from '@ember/-internals/container/lib/registry'; +import { ENV } from '@ember/-internals/environment/lib/env'; import type { InternalOwner } from '@ember/-internals/owner'; import { getOwner } from '@ember/-internals/owner'; -import { guidFor } from '@ember/-internals/utils'; -import { getViewElement, getViewId } from '@ember/-internals/views'; +import { guidFor } from '@ember/-internals/utils/lib/guid'; +import { getViewElement, getViewId } from '@ember/-internals/views/lib/system/utils'; import { assert } from '@ember/debug'; import { _backburner, _getCurrentRunLoop } from '@ember/runloop'; import { @@ -30,23 +30,19 @@ import type { } from '@glimmer/interfaces'; import type { Nullable } from '@ember/-internals/utility-types'; -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'; -import { - clientBuilder, - createCapturedArgs, - curry, - EMPTY_POSITIONAL, - inTransaction, - renderComponent as glimmerRenderComponent, - renderMain, - runtimeOptions, -} from '@glimmer/runtime'; -import { dict } from '@glimmer/util'; +import { artifacts } from '@glimmer/program/lib/helpers'; +import { RuntimeOpImpl } from '@glimmer/program/lib/opcode'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createConstRef, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import type { CurriedValue } from '@glimmer/runtime/lib/curried-value'; +import { clientBuilder } from '@glimmer/runtime/lib/vm/element-builder'; +import { createCapturedArgs, EMPTY_POSITIONAL } from '@glimmer/runtime/lib/vm/arguments'; +import { curry } from '@glimmer/runtime/lib/curried-value'; +import { inTransaction, runtimeOptions } from '@glimmer/runtime/lib/environment'; +import { renderComponent as glimmerRenderComponent, renderMain } from '@glimmer/runtime/lib/render'; +import { dict } from '@glimmer/util/lib/collections'; import { unwrapTemplate } from './component-managers/unwrap-template'; -import { CURRENT_TAG, validateTag, valueForTag } from '@glimmer/validator'; +import { CURRENT_TAG, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; import type { SimpleDocument, SimpleElement, SimpleNode } from '@simple-dom/interface'; import RSVP from 'rsvp'; import type Component from './component'; @@ -60,7 +56,7 @@ import ResolverImpl from './resolver'; import type { OutletState } from './utils/outlet'; import OutletView from './views/outlet'; import { makeRouteTemplate } from './component-managers/route-template'; -import { EvaluationContextImpl } from '@glimmer/opcode-compiler'; +import { EvaluationContextImpl } from '@glimmer/opcode-compiler/lib/program-context'; export type IBuilder = (env: Environment, cursor: Cursor) => TreeBuilder; diff --git a/packages/@ember/-internals/glimmer/lib/resolver.ts b/packages/@ember/-internals/glimmer/lib/resolver.ts index af51ab9865d..466fbbea772 100644 --- a/packages/@ember/-internals/glimmer/lib/resolver.ts +++ b/packages/@ember/-internals/glimmer/lib/resolver.ts @@ -12,21 +12,15 @@ import type { TemplateFactory, } from '@glimmer/interfaces'; import type { Nullable } from '@ember/-internals/utility-types'; -import { - getComponentTemplate, - getInternalComponentManager, - setInternalHelperManager, -} from '@glimmer/manager'; -import { - array, - concat, - fn, - get, - hash, - on, - templateOnlyComponent, - TEMPLATE_ONLY_COMPONENT_MANAGER, -} from '@glimmer/runtime'; +import { getComponentTemplate } from '@glimmer/manager/lib/public/template'; +import { getInternalComponentManager, setInternalHelperManager } from '@glimmer/manager/lib/internal/api'; +import { array } from '@glimmer/runtime/lib/helpers/array'; +import { concat } from '@glimmer/runtime/lib/helpers/concat'; +import { fn } from '@glimmer/runtime/lib/helpers/fn'; +import { get } from '@glimmer/runtime/lib/helpers/get'; +import { hash } from '@glimmer/runtime/lib/helpers/hash'; +import { on } from '@glimmer/runtime/lib/modifiers/on'; +import { templateOnlyComponent, TEMPLATE_ONLY_COMPONENT_MANAGER } from '@glimmer/runtime/lib/component/template-only'; import { isCurlyManager } from './component-managers/curly'; import { CLASSIC_HELPER_MANAGER, isClassicHelper } from './helper'; import { default as disallowDynamicResolution } from './helpers/-disallow-dynamic-resolution'; diff --git a/packages/@ember/-internals/glimmer/lib/setup-registry.ts b/packages/@ember/-internals/glimmer/lib/setup-registry.ts index 1608fe1f185..75fb2760855 100644 --- a/packages/@ember/-internals/glimmer/lib/setup-registry.ts +++ b/packages/@ember/-internals/glimmer/lib/setup-registry.ts @@ -1,5 +1,5 @@ -import type { Registry } from '@ember/-internals/container'; -import { privatize as P } from '@ember/-internals/container'; +import type Registry from '@ember/-internals/container/lib/registry'; +import { privatize as P } from '@ember/-internals/container/lib/registry'; import { getOwner } from '@ember/-internals/owner'; import { assert } from '@ember/debug'; import Input from './components/input'; diff --git a/packages/@ember/-internals/glimmer/lib/syntax/mount.ts b/packages/@ember/-internals/glimmer/lib/syntax/mount.ts index eef12143582..57baca66aeb 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/mount.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/mount.ts @@ -6,10 +6,11 @@ import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import type { Nullable } from '@ember/-internals/utility-types'; import type { CapturedArguments, CurriedComponent } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { createComputeRef, valueForRef } from '@glimmer/reference'; -import type { CurriedValue } from '@glimmer/runtime'; -import { createCapturedArgs, curry, EMPTY_POSITIONAL } from '@glimmer/runtime'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createComputeRef, valueForRef } from '@glimmer/reference/lib/reference'; +import type { CurriedValue } from '@glimmer/runtime/lib/curried-value'; +import { createCapturedArgs, EMPTY_POSITIONAL } from '@glimmer/runtime/lib/vm/arguments'; +import { curry } from '@glimmer/runtime/lib/curried-value'; import { MountDefinition } from '../component-managers/mount'; import { internalHelper } from '../helpers/internal-helper'; diff --git a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts index c4f6909a579..5e5190330ab 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts @@ -7,18 +7,13 @@ import type { DynamicScope, Template, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { - childRefFromParts, - createComputeRef, - createConstRef, - createDebugAliasRef, - valueForRef, -} from '@glimmer/reference'; -import type { CurriedValue } from '@glimmer/runtime'; -import { createCapturedArgs, curry, EMPTY_POSITIONAL } from '@glimmer/runtime'; -import { dict } from '@glimmer/util'; -import { hasInternalComponentManager } from '@glimmer/manager'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { childRefFromParts, createComputeRef, createConstRef, createDebugAliasRef, valueForRef } from '@glimmer/reference/lib/reference'; +import type { CurriedValue } from '@glimmer/runtime/lib/curried-value'; +import { createCapturedArgs, EMPTY_POSITIONAL } from '@glimmer/runtime/lib/vm/arguments'; +import { curry } from '@glimmer/runtime/lib/curried-value'; +import { dict } from '@glimmer/util/lib/collections'; +import { hasInternalComponentManager } from '@glimmer/manager/lib/internal/api'; import { OutletComponent, type OutletDefinitionState } from '../component-managers/outlet'; import { makeRouteTemplate } from '../component-managers/route-template'; import { internalHelper } from '../helpers/internal-helper'; diff --git a/packages/@ember/-internals/glimmer/lib/utils/bindings.ts b/packages/@ember/-internals/glimmer/lib/utils/bindings.ts index 405c44d390b..b742897bef8 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/bindings.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/bindings.ts @@ -1,15 +1,9 @@ -import { get } from '@ember/-internals/metal'; +import { get } from '@ember/-internals/metal/lib/property_get'; import { assert } from '@ember/debug'; import { dasherize } from '@ember/-internals/string'; import type { ElementOperations } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { - childRefFor, - childRefFromParts, - createComputeRef, - createPrimitiveRef, - valueForRef, -} from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { childRefFor, childRefFromParts, createComputeRef, createPrimitiveRef, valueForRef } from '@glimmer/reference/lib/reference'; import type Component from '../component'; function referenceForParts(rootRef: Reference, parts: string[]): Reference { diff --git a/packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts b/packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts index 5a4fb529a6f..ad1805c9522 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts @@ -1,10 +1,12 @@ -import { clearElementView, clearViewElement, getViewElement } from '@ember/-internals/views'; +import { clearElementView, clearViewElement, getViewElement } from '@ember/-internals/views/lib/system/utils'; import { registerDestructor } from '@glimmer/destroyable'; import type { CapturedNamedArguments } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { createConstRef } from '@glimmer/reference'; -import type { Revision, Tag } from '@glimmer/validator'; -import { beginUntrackFrame, endUntrackFrame, valueForTag } from '@glimmer/validator'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createConstRef } from '@glimmer/reference/lib/reference'; +import type { Revision } from '@glimmer/validator/lib/validators'; +import type { Tag } from '@glimmer/interfaces'; +import { beginUntrackFrame, endUntrackFrame } from '@glimmer/validator/lib/tracking'; +import { valueForTag } from '@glimmer/validator/lib/validators'; import type Component from '../component'; type Finalizer = () => void; diff --git a/packages/@ember/-internals/glimmer/lib/utils/iterator.ts b/packages/@ember/-internals/glimmer/lib/utils/iterator.ts index 34e3c512d64..a497c8a4a73 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/iterator.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/iterator.ts @@ -1,10 +1,11 @@ -import { objectAt } from '@ember/-internals/metal'; +import { objectAt } from '@ember/-internals/metal/lib/object-at'; import type EmberArray from '@ember/array'; import { isEmberArray } from '@ember/array/-internals'; -import { isObject } from '@ember/-internals/utils'; +import { isObject } from '@ember/-internals/utils/lib/spec'; import type { Nullable } from '@ember/-internals/utility-types'; -import type { IteratorDelegate } from '@glimmer/reference'; -import { consumeTag, isTracking, tagFor } from '@glimmer/validator'; +import type { IteratorDelegate } from '@glimmer/reference/lib/iterable'; +import { consumeTag, isTracking } from '@glimmer/validator/lib/tracking'; +import { tagFor } from '@glimmer/validator/lib/meta'; import { EachInWrapper } from '../helpers/each-in'; import type { NativeArray } from '@ember/array'; diff --git a/packages/@ember/-internals/glimmer/lib/utils/managers.ts b/packages/@ember/-internals/glimmer/lib/utils/managers.ts index 54fb7f46656..4f26f4487c3 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/managers.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/managers.ts @@ -1,7 +1,8 @@ import type { InternalOwner } from '@ember/-internals/owner'; import type { ComponentManager } from '@glimmer/interfaces'; -import { setComponentManager as glimmerSetComponentManager } from '@glimmer/manager'; -export { modifierCapabilities, componentCapabilities } from '@glimmer/manager'; +import { setComponentManager as glimmerSetComponentManager } from '@glimmer/manager/lib/public/api'; +export { modifierCapabilities } from '@glimmer/manager/lib/public/modifier'; +export { componentCapabilities } from '@glimmer/manager/lib/public/component'; /** Associate a class with a component manager (an object that is responsible for diff --git a/packages/@ember/-internals/glimmer/lib/utils/process-args.ts b/packages/@ember/-internals/glimmer/lib/utils/process-args.ts index 5b45c9f20fa..db10397450c 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/process-args.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/process-args.ts @@ -1,7 +1,7 @@ -import { MUTABLE_CELL } from '@ember/-internals/views'; +import { MUTABLE_CELL } from '@ember/-internals/views/lib/compat/attrs'; import type { CapturedNamedArguments } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { isUpdatableRef, updateRef, valueForRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { isUpdatableRef, updateRef, valueForRef } from '@glimmer/reference/lib/reference'; import { assert } from '@ember/debug'; // ComponentArgs takes EvaluatedNamedArgs and converts them into the diff --git a/packages/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.ts b/packages/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.ts index 57d23ea7e86..ef97de8c7eb 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.ts @@ -1 +1 @@ -export { isSerializationFirstNode } from '@glimmer/runtime'; +export { isSerializationFirstNode } from '@glimmer/runtime/lib/vm/rehydrate-builder'; diff --git a/packages/@ember/-internals/glimmer/lib/utils/string.ts b/packages/@ember/-internals/glimmer/lib/utils/string.ts index d00c17e7ec6..f1a846afe0b 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/string.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/string.ts @@ -2,7 +2,7 @@ @module @ember/template */ -import type { SafeString as GlimmerSafeString } from '@glimmer/runtime'; +import type { SafeString as GlimmerSafeString } from '@glimmer/runtime/lib/upsert'; /** A wrapper around a string that has been marked as "trusted". **When diff --git a/packages/@ember/-internals/glimmer/lib/utils/to-bool.ts b/packages/@ember/-internals/glimmer/lib/utils/to-bool.ts index a17bdd505f7..64933a3e22a 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/to-bool.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/to-bool.ts @@ -1,8 +1,9 @@ import { isHTMLSafe } from './string'; -import { get, tagForProperty } from '@ember/-internals/metal'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { tagForProperty } from '@ember/-internals/metal/lib/tags'; import { isArray } from '@ember/array'; -import { isProxy } from '@ember/-internals/utils'; -import { consumeTag } from '@glimmer/validator'; +import { isProxy } from '@ember/-internals/utils/lib/is_proxy'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; export default function toBool(predicate: unknown): boolean { if (isProxy(predicate)) { diff --git a/packages/@ember/-internals/glimmer/lib/views/outlet.ts b/packages/@ember/-internals/glimmer/lib/views/outlet.ts index 7cc9be26e73..00d0828a8e3 100644 --- a/packages/@ember/-internals/glimmer/lib/views/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/views/outlet.ts @@ -7,9 +7,10 @@ import type { BootOptions } from '@ember/engine/instance'; import { assert } from '@ember/debug'; import { schedule } from '@ember/runloop'; import type { Template, TemplateFactory } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { createComputeRef, updateRef } from '@glimmer/reference'; -import { consumeTag, createTag, dirtyTag } from '@glimmer/validator'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createComputeRef, updateRef } from '@glimmer/reference/lib/reference'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; +import { createTag, DIRTY_TAG as dirtyTag } from '@glimmer/validator/lib/validators'; import type { SimpleElement } from '@simple-dom/interface'; import type { OutletDefinitionState } from '../component-managers/outlet'; import type { Renderer } from '../renderer'; diff --git a/packages/@ember/-internals/meta/lib/meta.ts b/packages/@ember/-internals/meta/lib/meta.ts index 17c3ff59ec6..781566d20bd 100644 --- a/packages/@ember/-internals/meta/lib/meta.ts +++ b/packages/@ember/-internals/meta/lib/meta.ts @@ -1,9 +1,10 @@ -import type { ComputedProperty } from '@ember/-internals/metal'; -import { toString } from '@ember/-internals/utils'; +import type { ComputedProperty } from '@ember/-internals/metal/lib/computed'; +import toString from '@ember/-internals/utils/lib/to-string'; import { assert } from '@ember/debug'; import { isDestroyed } from '@glimmer/destroyable'; import { DEBUG } from '@glimmer/env'; -import type { Revision, UpdatableTag } from '@glimmer/validator'; +import type { Revision } from '@glimmer/validator/lib/validators'; +import type { UpdatableTag } from '@glimmer/interfaces'; type ObjMap = { [key: string]: T }; diff --git a/packages/@ember/-internals/metal/lib/alias.ts b/packages/@ember/-internals/metal/lib/alias.ts index 66ebf468f31..6554c56ea38 100644 --- a/packages/@ember/-internals/metal/lib/alias.ts +++ b/packages/@ember/-internals/metal/lib/alias.ts @@ -1,16 +1,11 @@ -import type { Meta } from '@ember/-internals/meta'; -import { meta as metaFor } from '@ember/-internals/meta'; -import { assert, inspect } from '@ember/debug'; -import type { UpdatableTag } from '@glimmer/validator'; -import { - consumeTag, - tagFor, - tagMetaFor, - untrack, - updateTag, - validateTag, - valueForTag, -} from '@glimmer/validator'; +import type { Meta } from '@ember/-internals/meta/lib/meta'; +import { meta as metaFor } from '@ember/-internals/meta/lib/meta'; +import inspect from '@ember/debug/lib/inspect'; +import { assert } from '@ember/debug'; +import type { UpdatableTag } from '@glimmer/interfaces'; +import { consumeTag, untrack } from '@glimmer/validator/lib/tracking'; +import { tagFor, tagMetaFor } from '@glimmer/validator/lib/meta'; +import { UPDATE_TAG as updateTag, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; import { CHAIN_PASS_THROUGH, finishLazyChains, getChainTagsForKey } from './chain-tags'; import type { ExtendedMethodDecorator } from './decorator'; import { diff --git a/packages/@ember/-internals/metal/lib/array_events.ts b/packages/@ember/-internals/metal/lib/array_events.ts index ee7c73285c5..61fd6072501 100644 --- a/packages/@ember/-internals/metal/lib/array_events.ts +++ b/packages/@ember/-internals/metal/lib/array_events.ts @@ -1,4 +1,4 @@ -import { peekMeta } from '@ember/-internals/meta'; +import { peekMeta } from '@ember/-internals/meta/lib/meta'; import { sendEvent } from './events'; import { notifyPropertyChange } from './property_events'; diff --git a/packages/@ember/-internals/metal/lib/cache.ts b/packages/@ember/-internals/metal/lib/cache.ts index afc7080c6ca..f6349c9c469 100644 --- a/packages/@ember/-internals/metal/lib/cache.ts +++ b/packages/@ember/-internals/metal/lib/cache.ts @@ -1,4 +1,4 @@ -export { createCache, getValue, isConst } from '@glimmer/validator'; +export { createCache, getValue, isConst } from '@glimmer/validator/lib/tracking'; /** Ember uses caching based on trackable values to avoid updating large portions diff --git a/packages/@ember/-internals/metal/lib/cached.ts b/packages/@ember/-internals/metal/lib/cached.ts index b40ccf4a2de..ea6049b4377 100644 --- a/packages/@ember/-internals/metal/lib/cached.ts +++ b/packages/@ember/-internals/metal/lib/cached.ts @@ -2,7 +2,7 @@ // Both glimmerjs/glimmer.js and emberjs/ember.js have the exact same implementation // of @cached, so any changes made to one should also be made to the other import { DEBUG } from '@glimmer/env'; -import { createCache, getValue } from '@glimmer/validator'; +import { createCache, getValue } from '@glimmer/validator/lib/tracking'; /** * @decorator diff --git a/packages/@ember/-internals/metal/lib/chain-tags.ts b/packages/@ember/-internals/metal/lib/chain-tags.ts index 8e6a0261a88..461330e0db3 100644 --- a/packages/@ember/-internals/metal/lib/chain-tags.ts +++ b/packages/@ember/-internals/metal/lib/chain-tags.ts @@ -1,15 +1,11 @@ -import type { Meta } from '@ember/-internals/meta'; -import { meta as metaFor, peekMeta } from '@ember/-internals/meta'; -import { isObject } from '@ember/-internals/utils'; +import type { Meta } from '@ember/-internals/meta/lib/meta'; +import { meta as metaFor, peekMeta } from '@ember/-internals/meta/lib/meta'; +import { isObject } from '@ember/-internals/utils/lib/spec'; import { assert } from '@ember/debug'; -import type { Tag, TagMeta } from '@glimmer/validator'; -import { - combine, - createUpdatableTag, - tagMetaFor, - updateTag, - validateTag, -} from '@glimmer/validator'; +import type { Tag } from '@glimmer/interfaces'; +import type { TagMeta } from '@glimmer/validator/lib/meta'; +import { combine, createUpdatableTag, UPDATE_TAG as updateTag, validateTag } from '@glimmer/validator/lib/validators'; +import { tagMetaFor } from '@glimmer/validator/lib/meta'; import { objectAt } from './object-at'; import { tagForProperty } from './tags'; diff --git a/packages/@ember/-internals/metal/lib/computed.ts b/packages/@ember/-internals/metal/lib/computed.ts index aac84147b84..60d3b78a6fe 100644 --- a/packages/@ember/-internals/metal/lib/computed.ts +++ b/packages/@ember/-internals/metal/lib/computed.ts @@ -1,21 +1,14 @@ -import type { Meta } from '@ember/-internals/meta'; -import { meta as metaFor } from '@ember/-internals/meta'; -import { toString } from '@ember/-internals/utils'; -import { assert, inspect } from '@ember/debug'; +import type { Meta } from '@ember/-internals/meta/lib/meta'; +import { meta as metaFor } from '@ember/-internals/meta/lib/meta'; +import toString from '@ember/-internals/utils/lib/to-string'; +import inspect from '@ember/debug/lib/inspect'; +import { assert } from '@ember/debug'; import { isDestroyed } from '@glimmer/destroyable'; import { DEBUG } from '@glimmer/env'; -import type { UpdatableTag } from '@glimmer/validator'; -import { - ALLOW_CYCLES, - consumeTag, - tagFor, - tagMetaFor, - track, - untrack, - updateTag, - validateTag, - valueForTag, -} from '@glimmer/validator'; +import type { UpdatableTag } from '@glimmer/interfaces'; +import { ALLOW_CYCLES, UPDATE_TAG as updateTag, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; +import { consumeTag, track, untrack } from '@glimmer/validator/lib/tracking'; +import { tagFor, tagMetaFor } from '@glimmer/validator/lib/meta'; import { finishLazyChains, getChainTagsForKeys } from './chain-tags'; import type { ExtendedMethodDecorator, diff --git a/packages/@ember/-internals/metal/lib/computed_cache.ts b/packages/@ember/-internals/metal/lib/computed_cache.ts index 31a856ebc9f..678fff489db 100644 --- a/packages/@ember/-internals/metal/lib/computed_cache.ts +++ b/packages/@ember/-internals/metal/lib/computed_cache.ts @@ -1,4 +1,4 @@ -import { peekMeta } from '@ember/-internals/meta'; +import { peekMeta } from '@ember/-internals/meta/lib/meta'; export function getCachedValueFor(obj: T, key: K): T[K] | undefined; export function getCachedValueFor(obj: object, key: string): unknown; diff --git a/packages/@ember/-internals/metal/lib/decorator.ts b/packages/@ember/-internals/metal/lib/decorator.ts index 5c71ad98338..c5a305b2ce3 100644 --- a/packages/@ember/-internals/metal/lib/decorator.ts +++ b/packages/@ember/-internals/metal/lib/decorator.ts @@ -1,5 +1,5 @@ -import type { Meta } from '@ember/-internals/meta'; -import { meta as metaFor, peekMeta } from '@ember/-internals/meta'; +import type { Meta } from '@ember/-internals/meta/lib/meta'; +import { meta as metaFor, peekMeta } from '@ember/-internals/meta/lib/meta'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; diff --git a/packages/@ember/-internals/metal/lib/deprecate_property.ts b/packages/@ember/-internals/metal/lib/deprecate_property.ts index 04f8313dd7d..8c2c49dbd59 100644 --- a/packages/@ember/-internals/metal/lib/deprecate_property.ts +++ b/packages/@ember/-internals/metal/lib/deprecate_property.ts @@ -3,7 +3,7 @@ */ import { deprecate } from '@ember/debug'; -import type { DeprecationOptions } from '@ember/debug'; +import type { DeprecationOptions } from '@ember/debug/lib/deprecate'; import { get } from './property_get'; import { set } from './property_set'; diff --git a/packages/@ember/-internals/metal/lib/events.ts b/packages/@ember/-internals/metal/lib/events.ts index ab77fb52c86..56668b9bc9b 100644 --- a/packages/@ember/-internals/metal/lib/events.ts +++ b/packages/@ember/-internals/metal/lib/events.ts @@ -1,9 +1,9 @@ /** @module @ember/object */ -import type { Meta } from '@ember/-internals/meta'; -import { meta as metaFor, peekMeta } from '@ember/-internals/meta'; -import { setListeners } from '@ember/-internals/utils'; +import type { Meta } from '@ember/-internals/meta/lib/meta'; +import { meta as metaFor, peekMeta } from '@ember/-internals/meta/lib/meta'; +import { setListeners } from '@ember/-internals/utils/lib/super'; import type { AnyFn } from '@ember/-internals/utility-types'; import { assert } from '@ember/debug'; diff --git a/packages/@ember/-internals/metal/lib/namespace_search.ts b/packages/@ember/-internals/metal/lib/namespace_search.ts index a9ab713bf9e..b06a7963b31 100644 --- a/packages/@ember/-internals/metal/lib/namespace_search.ts +++ b/packages/@ember/-internals/metal/lib/namespace_search.ts @@ -1,5 +1,5 @@ -import { context } from '@ember/-internals/environment'; -import { getName, setName } from '@ember/-internals/utils'; +import { context } from '@ember/-internals/environment/lib/context'; +import { getName, setName } from '@ember/-internals/utils/lib/name'; const hasOwnProperty = Object.prototype.hasOwnProperty; diff --git a/packages/@ember/-internals/metal/lib/observer.ts b/packages/@ember/-internals/metal/lib/observer.ts index 4154e3441a8..08c5148cd9c 100644 --- a/packages/@ember/-internals/metal/lib/observer.ts +++ b/packages/@ember/-internals/metal/lib/observer.ts @@ -1,9 +1,10 @@ -import { ENV } from '@ember/-internals/environment'; -import { peekMeta } from '@ember/-internals/meta'; +import { ENV } from '@ember/-internals/environment/lib/env'; +import { peekMeta } from '@ember/-internals/meta/lib/meta'; import type { schedule } from '@ember/runloop'; import { registerDestructor } from '@glimmer/destroyable'; -import type { Tag } from '@glimmer/validator'; -import { CURRENT_TAG, tagMetaFor, validateTag, valueForTag } from '@glimmer/validator'; +import type { Tag } from '@glimmer/interfaces'; +import { CURRENT_TAG, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; +import { tagMetaFor } from '@glimmer/validator/lib/meta'; import { getChainTagsForKey } from './chain-tags'; import changeEvent from './change_event'; import { addListener, removeListener, sendEvent } from './events'; diff --git a/packages/@ember/-internals/metal/lib/path_cache.ts b/packages/@ember/-internals/metal/lib/path_cache.ts index 1859f03272a..bb86157d250 100644 --- a/packages/@ember/-internals/metal/lib/path_cache.ts +++ b/packages/@ember/-internals/metal/lib/path_cache.ts @@ -1,4 +1,4 @@ -import { Cache } from '@ember/-internals/utils'; +import Cache from '@ember/-internals/utils/lib/cache'; const firstDotIndexCache = new Cache(1000, (key) => key.indexOf('.')); diff --git a/packages/@ember/-internals/metal/lib/properties.ts b/packages/@ember/-internals/metal/lib/properties.ts index 68ec802b1ef..968b10d1752 100644 --- a/packages/@ember/-internals/metal/lib/properties.ts +++ b/packages/@ember/-internals/metal/lib/properties.ts @@ -2,9 +2,9 @@ @module @ember/object */ -import type { Meta } from '@ember/-internals/meta'; -import { meta as metaFor } from '@ember/-internals/meta'; -import { setWithMandatorySetter } from '@ember/-internals/utils'; +import type { Meta } from '@ember/-internals/meta/lib/meta'; +import { meta as metaFor } from '@ember/-internals/meta/lib/meta'; +import { setWithMandatorySetter } from '@ember/-internals/utils/lib/mandatory-setter'; import { DEBUG } from '@glimmer/env'; import type { ExtendedMethodDecorator } from './decorator'; import { descriptorForProperty, isClassicDecorator } from './decorator'; diff --git a/packages/@ember/-internals/metal/lib/property_events.ts b/packages/@ember/-internals/metal/lib/property_events.ts index 12758ed9858..b4420bc952b 100644 --- a/packages/@ember/-internals/metal/lib/property_events.ts +++ b/packages/@ember/-internals/metal/lib/property_events.ts @@ -1,5 +1,5 @@ -import type { Meta } from '@ember/-internals/meta'; -import { peekMeta } from '@ember/-internals/meta'; +import type { Meta } from '@ember/-internals/meta/lib/meta'; +import { peekMeta } from '@ember/-internals/meta/lib/meta'; import { assert } from '@ember/debug'; import { flushSyncObservers, diff --git a/packages/@ember/-internals/metal/lib/property_get.ts b/packages/@ember/-internals/metal/lib/property_get.ts index c797bc38589..c1cd6eb2168 100644 --- a/packages/@ember/-internals/metal/lib/property_get.ts +++ b/packages/@ember/-internals/metal/lib/property_get.ts @@ -1,12 +1,13 @@ /** @module @ember/object */ -import type { _ProxyMixin as ProxyMixin } from '@ember/-internals/runtime'; -import { setProxy } from '@ember/-internals/utils'; +import type ProxyMixin from '@ember/-internals/runtime/lib/mixins/-proxy'; +import { setProxy } from '@ember/-internals/utils/lib/is_proxy'; import { isEmberArray } from '@ember/array/-internals'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import { consumeTag, isTracking, tagFor, track } from '@glimmer/validator'; +import { consumeTag, isTracking, track } from '@glimmer/validator/lib/tracking'; +import { tagFor } from '@glimmer/validator/lib/meta'; import { isPath } from './path_cache'; export const PROXY_CONTENT = Symbol('PROXY_CONTENT'); diff --git a/packages/@ember/-internals/metal/lib/property_set.ts b/packages/@ember/-internals/metal/lib/property_set.ts index 65b78f9c1ed..7502923e85c 100644 --- a/packages/@ember/-internals/metal/lib/property_set.ts +++ b/packages/@ember/-internals/metal/lib/property_set.ts @@ -1,4 +1,6 @@ -import { lookupDescriptor, setWithMandatorySetter, toString } from '@ember/-internals/utils'; +import lookupDescriptor from '@ember/-internals/utils/lib/lookup-descriptor'; +import { setWithMandatorySetter } from '@ember/-internals/utils/lib/mandatory-setter'; +import toString from '@ember/-internals/utils/lib/to-string'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import { COMPUTED_SETTERS } from './decorator'; diff --git a/packages/@ember/-internals/metal/lib/tags.ts b/packages/@ember/-internals/metal/lib/tags.ts index 3d7f267436a..41ab6860a53 100644 --- a/packages/@ember/-internals/metal/lib/tags.ts +++ b/packages/@ember/-internals/metal/lib/tags.ts @@ -1,10 +1,14 @@ -import { isObject, setupMandatorySetter, toString } from '@ember/-internals/utils'; +import { isObject } from '@ember/-internals/utils/lib/spec'; +import { setupMandatorySetter } from '@ember/-internals/utils/lib/mandatory-setter'; +import toString from '@ember/-internals/utils/lib/to-string'; import { assert } from '@ember/debug'; import { isDestroyed } from '@glimmer/destroyable'; import { DEBUG } from '@glimmer/env'; -import { getCustomTagFor } from '@glimmer/manager'; -import type { Tag, TagMeta } from '@glimmer/validator'; -import { CONSTANT_TAG, dirtyTagFor, tagFor } from '@glimmer/validator'; +import { getCustomTagFor } from '@glimmer/manager/lib/util/args-proxy'; +import type { Tag } from '@glimmer/interfaces'; +import type { TagMeta } from '@glimmer/validator/lib/meta'; +import { CONSTANT_TAG } from '@glimmer/validator/lib/validators'; +import { dirtyTagFor, tagFor } from '@glimmer/validator/lib/meta'; ///////// diff --git a/packages/@ember/-internals/metal/lib/tracked.ts b/packages/@ember/-internals/metal/lib/tracked.ts index 226b632c2e3..71dc16cbe75 100644 --- a/packages/@ember/-internals/metal/lib/tracked.ts +++ b/packages/@ember/-internals/metal/lib/tracked.ts @@ -1,8 +1,10 @@ -import { meta as metaFor } from '@ember/-internals/meta'; +import { meta as metaFor } from '@ember/-internals/meta/lib/meta'; import { isEmberArray } from '@ember/array/-internals'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import { consumeTag, dirtyTagFor, tagFor, trackedData } from '@glimmer/validator'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; +import { dirtyTagFor, tagFor } from '@glimmer/validator/lib/meta'; +import { trackedData } from '@glimmer/validator/lib/tracked-data'; import type { ElementDescriptor } from '..'; import { CHAIN_PASS_THROUGH } from './chain-tags'; import type { ExtendedMethodDecorator, DecoratorPropertyDescriptor } from './decorator'; diff --git a/packages/@ember/-internals/runtime/lib/mixins/-proxy.ts b/packages/@ember/-internals/runtime/lib/mixins/-proxy.ts index e7e3e218454..ddb31a6c18d 100644 --- a/packages/@ember/-internals/runtime/lib/mixins/-proxy.ts +++ b/packages/@ember/-internals/runtime/lib/mixins/-proxy.ts @@ -2,22 +2,22 @@ @module ember */ -import { meta } from '@ember/-internals/meta'; +import { meta } from '@ember/-internals/meta/lib/meta'; import Mixin from '@ember/object/mixin'; -import { - get, - set, - defineProperty, - tagForObject, - computed, - tagForProperty, -} from '@ember/-internals/metal'; -import { setProxy, setupMandatorySetter, isObject, isProxy } from '@ember/-internals/utils'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { set } from '@ember/-internals/metal/lib/property_set'; +import { defineProperty } from '@ember/-internals/metal/lib/properties'; +import { tagForObject, tagForProperty } from '@ember/-internals/metal/lib/tags'; +import computed from '@ember/-internals/metal/lib/computed'; +import { setProxy, isProxy } from '@ember/-internals/utils/lib/is_proxy'; +import { setupMandatorySetter } from '@ember/-internals/utils/lib/mandatory-setter'; +import { isObject } from '@ember/-internals/utils/lib/spec'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import { setCustomTagFor } from '@glimmer/manager'; -import type { UpdatableTag, Tag } from '@glimmer/validator'; -import { combine, updateTag, tagFor, tagMetaFor } from '@glimmer/validator'; +import { setCustomTagFor } from '@glimmer/manager/lib/util/args-proxy'; +import type { UpdatableTag, Tag } from '@glimmer/interfaces'; +import { combine, UPDATE_TAG as updateTag } from '@glimmer/validator/lib/validators'; +import { tagFor, tagMetaFor } from '@glimmer/validator/lib/meta'; export function contentFor(proxy: ProxyMixin): T | null { let content = get(proxy, 'content'); diff --git a/packages/@ember/-internals/runtime/lib/mixins/action_handler.ts b/packages/@ember/-internals/runtime/lib/mixins/action_handler.ts index c9496fde7ff..bab591600ee 100644 --- a/packages/@ember/-internals/runtime/lib/mixins/action_handler.ts +++ b/packages/@ember/-internals/runtime/lib/mixins/action_handler.ts @@ -3,7 +3,7 @@ */ import Mixin from '@ember/object/mixin'; -import { get } from '@ember/-internals/metal'; +import { get } from '@ember/-internals/metal/lib/property_get'; import { assert } from '@ember/debug'; /** diff --git a/packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts b/packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts index ee60ca9cde9..9b9a870a7c9 100644 --- a/packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts +++ b/packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts @@ -2,7 +2,7 @@ import { schedule, join } from '@ember/runloop'; /** @module ember */ -import type { Container } from '@ember/-internals/container'; +import type Container from '@ember/-internals/container/lib/container'; import Mixin from '@ember/object/mixin'; import type { ContainerProxy } from '@ember/-internals/owner'; diff --git a/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.ts b/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.ts index 1399a185d49..600b2bf62f2 100644 --- a/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.ts +++ b/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.ts @@ -2,7 +2,7 @@ @module ember */ -import type { Registry } from '@ember/-internals/container'; +import type Registry from '@ember/-internals/container/lib/registry'; import type { RegistryProxy } from '@ember/-internals/owner'; import type { AnyFn } from '@ember/-internals/utility-types'; diff --git a/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts b/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts index f01223f2b42..d5a7d79229f 100644 --- a/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts +++ b/packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts @@ -2,8 +2,9 @@ @module ember */ -import { context } from '@ember/-internals/environment'; -import { get, computed } from '@ember/-internals/metal'; +import { context } from '@ember/-internals/environment/lib/context'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import computed from '@ember/-internals/metal/lib/computed'; import Mixin from '@ember/object/mixin'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; diff --git a/packages/@ember/-internals/string/index.ts b/packages/@ember/-internals/string/index.ts index e2e2591b6b4..642ae8b687e 100644 --- a/packages/@ember/-internals/string/index.ts +++ b/packages/@ember/-internals/string/index.ts @@ -4,7 +4,7 @@ now deprecated and to be removed. */ -import { Cache } from '@ember/-internals/utils'; +import Cache from '@ember/-internals/utils/lib/cache'; const STRING_DASHERIZE_REGEXP = /[ _]/g; diff --git a/packages/@ember/-internals/utils/lib/is_proxy.ts b/packages/@ember/-internals/utils/lib/is_proxy.ts index 8456b61f9dc..443e4c805b0 100644 --- a/packages/@ember/-internals/utils/lib/is_proxy.ts +++ b/packages/@ember/-internals/utils/lib/is_proxy.ts @@ -1,4 +1,4 @@ -import type { _ProxyMixin as ProxyMixin } from '@ember/-internals/runtime'; +import type ProxyMixin from '@ember/-internals/runtime/lib/mixins/-proxy'; 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 92e157f8d8e..fb8c902deeb 100644 --- a/packages/@ember/-internals/utils/lib/mandatory-setter.ts +++ b/packages/@ember/-internals/utils/lib/mandatory-setter.ts @@ -1,6 +1,6 @@ import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import type { Tag } from '@glimmer/validator'; +import type { Tag } from '@glimmer/interfaces'; import lookupDescriptor from './lookup-descriptor'; export let setupMandatorySetter: diff --git a/packages/@ember/-internals/views/lib/compat/fallback-view-registry.ts b/packages/@ember/-internals/views/lib/compat/fallback-view-registry.ts index 728924073ff..7f73b851aed 100644 --- a/packages/@ember/-internals/views/lib/compat/fallback-view-registry.ts +++ b/packages/@ember/-internals/views/lib/compat/fallback-view-registry.ts @@ -1,3 +1,3 @@ -import { dictionary } from '@ember/-internals/utils'; +import dictionary from '@ember/-internals/utils/lib/dictionary'; export default dictionary(null); diff --git a/packages/@ember/-internals/views/lib/mixins/action_support.ts b/packages/@ember/-internals/views/lib/mixins/action_support.ts index f7d79862587..a4c95d28ac3 100644 --- a/packages/@ember/-internals/views/lib/mixins/action_support.ts +++ b/packages/@ember/-internals/views/lib/mixins/action_support.ts @@ -1,9 +1,10 @@ /** @module ember */ -import { get } from '@ember/-internals/metal'; +import { get } from '@ember/-internals/metal/lib/property_get'; import Mixin from '@ember/object/mixin'; -import { assert, inspect } from '@ember/debug'; +import inspect from '@ember/debug/lib/inspect'; +import { assert } from '@ember/debug'; /** @class ActionSupport diff --git a/packages/@ember/-internals/views/lib/system/event_dispatcher.ts b/packages/@ember/-internals/views/lib/system/event_dispatcher.ts index 1a023ff6cbd..afe9debd56e 100644 --- a/packages/@ember/-internals/views/lib/system/event_dispatcher.ts +++ b/packages/@ember/-internals/views/lib/system/event_dispatcher.ts @@ -1,10 +1,11 @@ import { getOwner } from '@ember/-internals/owner'; import { assert } from '@ember/debug'; -import { get, set } from '@ember/-internals/metal'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { set } from '@ember/-internals/metal/lib/property_set'; import EmberObject from '@ember/object'; import { getElementView } from './utils'; -import type { BootEnvironment } from '@ember/-internals/glimmer'; -import type Component from '@ember/component'; +import type { BootEnvironment } from '@ember/-internals/glimmer/lib/views/outlet'; +import type Component from '@ember/-internals/glimmer/lib/component'; /** @module ember diff --git a/packages/@ember/-internals/views/lib/system/utils.ts b/packages/@ember/-internals/views/lib/system/utils.ts index 05d81d7611c..1a33fdfcb68 100644 --- a/packages/@ember/-internals/views/lib/system/utils.ts +++ b/packages/@ember/-internals/views/lib/system/utils.ts @@ -1,7 +1,7 @@ -import type { View } from '@ember/-internals/glimmer'; +import type { View } from '@ember/-internals/glimmer/lib/renderer'; import type { InternalOwner } from '@ember/-internals/owner'; import { getOwner } from '@ember/-internals/owner'; -import { guidFor } from '@ember/-internals/utils'; +import { guidFor } from '@ember/-internals/utils/lib/guid'; import { assert } from '@ember/debug'; import type { Dict } from '@glimmer/interfaces'; diff --git a/packages/@ember/-internals/views/lib/views/core_view.ts b/packages/@ember/-internals/views/lib/views/core_view.ts index 241b233da65..ceb6c0cfa8f 100644 --- a/packages/@ember/-internals/views/lib/views/core_view.ts +++ b/packages/@ember/-internals/views/lib/views/core_view.ts @@ -1,6 +1,6 @@ -import type { Renderer, View } from '@ember/-internals/glimmer'; -import { inject } from '@ember/-internals/metal'; -import { ActionHandler } from '@ember/-internals/runtime'; +import type { Renderer, View } from '@ember/-internals/glimmer/lib/renderer'; +import inject from '@ember/-internals/metal/lib/injected_property'; +import ActionHandler from '@ember/-internals/runtime/lib/mixins/action_handler'; import Evented from '@ember/object/evented'; import { FrameworkObject } from '@ember/object/-internals'; import type { ViewState } from './states'; diff --git a/packages/@ember/-internals/views/lib/views/states.ts b/packages/@ember/-internals/views/lib/views/states.ts index c9480ffbdf4..aba69ba106b 100644 --- a/packages/@ember/-internals/views/lib/views/states.ts +++ b/packages/@ember/-internals/views/lib/views/states.ts @@ -1,5 +1,5 @@ -import { teardownMandatorySetter } from '@ember/-internals/utils'; -import type Component from '@ember/component'; +import { teardownMandatorySetter } from '@ember/-internals/utils/lib/mandatory-setter'; +import type Component from '@ember/-internals/glimmer/lib/component'; import { assert } from '@ember/debug'; import { flaggedInstrument } from '@ember/instrumentation'; import { join } from '@ember/runloop'; diff --git a/packages/@ember/application/index.ts b/packages/@ember/application/index.ts index dc6d923835a..e4ac76f8de3 100644 --- a/packages/@ember/application/index.ts +++ b/packages/@ember/application/index.ts @@ -2,16 +2,17 @@ @module @ember/application */ -import { getOwner as actualGetOwner, setOwner as actualSetOwner } from '@ember/owner'; -import { dictionary } from '@ember/-internals/utils'; -import { ENV } from '@ember/-internals/environment'; -import { hasDOM } from '@ember/-internals/browser-environment'; +import { setOwner as actualSetOwner } from '@ember/-internals/owner'; +import { getOwner as actualGetOwner } from '@ember/owner'; +import dictionary from '@ember/-internals/utils/lib/dictionary'; +import { ENV } from '@ember/-internals/environment/lib/env'; +import hasDOM from '@ember/-internals/browser-environment/lib/has-dom'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import { join, once, run, schedule } from '@ember/runloop'; -import { libraries } from '@ember/-internals/metal'; -import { RSVP } from '@ember/-internals/runtime'; -import { EventDispatcher } from '@ember/-internals/views'; +import libraries from '@ember/-internals/metal/lib/libraries'; +import RSVP from '@ember/-internals/runtime/lib/ext/rsvp'; +import EventDispatcher from '@ember/-internals/views/lib/system/event_dispatcher'; import Route from '@ember/routing/route'; import Router from '@ember/routing/router'; import HashLocation from '@ember/routing/hash-location'; @@ -21,9 +22,10 @@ import { BucketCache } from '@ember/routing/-internals'; import ApplicationInstance from '@ember/application/instance'; import Engine, { buildInitializerMethod } from '@ember/engine'; import type { BootOptions } from '@ember/engine/instance'; -import type { Container, Registry } from '@ember/-internals/container'; -import { privatize as P } from '@ember/-internals/container'; -import { setupApplicationRegistry } from '@ember/-internals/glimmer'; +import type Container from '@ember/-internals/container/lib/container'; +import type Registry from '@ember/-internals/container/lib/registry'; +import { privatize as P } from '@ember/-internals/container/lib/registry'; +import { setupApplicationRegistry } from '@ember/-internals/glimmer/lib/setup-registry'; import RouterService from '@ember/routing/router-service'; import type { EngineInstanceOptions } from '@ember/engine/instance'; import type { SimpleDocument, SimpleElement } from '@simple-dom/interface'; diff --git a/packages/@ember/application/instance.ts b/packages/@ember/application/instance.ts index 47ecb342bd4..1bc600c172c 100644 --- a/packages/@ember/application/instance.ts +++ b/packages/@ember/application/instance.ts @@ -2,17 +2,20 @@ @module @ember/application */ -import { get, set } from '@ember/object'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { set } from '@ember/-internals/metal/lib/property_set'; +// eslint-disable-next-line ember-local/no-barrel-imports import * as environment from '@ember/-internals/browser-environment'; import EngineInstance from '@ember/engine/instance'; import type { BootOptions } from '@ember/engine/instance'; import type Application from '@ember/application'; -import { renderSettled } from '@ember/-internals/glimmer'; -import type { BootEnvironment, Component } from '@ember/-internals/glimmer'; +import { renderSettled } from '@ember/-internals/glimmer/lib/renderer'; +import type { BootEnvironment } from '@ember/-internals/glimmer/lib/views/outlet'; +import type Component from '@ember/-internals/glimmer/lib/component'; import { assert } from '@ember/debug'; import Router from '@ember/routing/router'; -import { EventDispatcher } from '@ember/-internals/views'; -import type { Registry } from '@ember/-internals/container'; +import EventDispatcher from '@ember/-internals/views/lib/system/event_dispatcher'; +import type Registry from '@ember/-internals/container/lib/registry'; import type { SimpleElement } from '@simple-dom/interface'; /** diff --git a/packages/@ember/application/namespace.ts b/packages/@ember/application/namespace.ts index 17424a6a9f5..57c86f15b62 100644 --- a/packages/@ember/application/namespace.ts +++ b/packages/@ember/application/namespace.ts @@ -2,19 +2,10 @@ @module @ember/application/namespace */ -import { - NAMESPACES, - NAMESPACES_BY_ID, - addNamespace, - findNamespace, - findNamespaces, - processNamespace, - processAllNamespaces, - removeNamespace, - type Namespace as MetalNamespace, -} from '@ember/-internals/metal'; // Preloaded into namespaces -import { get } from '@ember/object'; -import { getName, guidFor, setName } from '@ember/-internals/utils'; +import { NAMESPACES, NAMESPACES_BY_ID, addNamespace, findNamespace, findNamespaces, processNamespace, processAllNamespaces, removeNamespace, type Namespace as MetalNamespace } from '@ember/-internals/metal/lib/namespace_search'; // Preloaded into namespaces +import { get } from '@ember/-internals/metal/lib/property_get'; +import { getName, setName } from '@ember/-internals/utils/lib/name'; +import { guidFor } from '@ember/-internals/utils/lib/guid'; import { assert } from '@ember/debug'; import EmberObject from '@ember/object'; diff --git a/packages/@ember/array/index.ts b/packages/@ember/array/index.ts index 044eaf6ddbc..a7a7a8241f1 100644 --- a/packages/@ember/array/index.ts +++ b/packages/@ember/array/index.ts @@ -2,24 +2,22 @@ @module @ember/array */ import { DEBUG } from '@glimmer/env'; -import { PROXY_CONTENT } from '@ember/-internals/metal'; -import { - objectAt, - replaceInNativeArray, - replace, - computed, - beginPropertyChanges, - endPropertyChanges, -} from '@ember/-internals/metal'; -import { get, set } from '@ember/object'; +import { PROXY_CONTENT } from '@ember/-internals/metal/lib/property_get'; +import { objectAt } from '@ember/-internals/metal/lib/object-at'; +import { replaceInNativeArray, replace } from '@ember/-internals/metal/lib/array'; +import computed from '@ember/-internals/metal/lib/computed'; +import { beginPropertyChanges, endPropertyChanges } from '@ember/-internals/metal/lib/property_events'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { set } from '@ember/-internals/metal/lib/property_set'; import Mixin from '@ember/object/mixin'; import { assert } from '@ember/debug'; import Enumerable from '@ember/enumerable'; import MutableEnumerable from '@ember/enumerable/mutable'; -import { compare, typeOf } from '@ember/utils'; +import compare from '@ember/utils/lib/compare'; +import typeOf from '@ember/utils/lib/type-of'; import Observable from '@ember/object/observable'; import type { MethodNamesOf, MethodParams, MethodReturns } from '@ember/-internals/utility-types'; -import type { ComputedPropertyCallback } from '@ember/-internals/metal'; +import type { ComputedPropertyCallback } from '@ember/-internals/metal/lib/computed'; import { isEmberArray, setEmberArray } from '@ember/array/-internals'; export { default as makeArray } from './make'; diff --git a/packages/@ember/array/proxy.ts b/packages/@ember/array/proxy.ts index ff72f1990ac..6f944cce9ff 100644 --- a/packages/@ember/array/proxy.ts +++ b/packages/@ember/array/proxy.ts @@ -2,34 +2,24 @@ @module @ember/array/proxy */ -import { - objectAt, - alias, - PROPERTY_DID_CHANGE, - addArrayObserver, - removeArrayObserver, - replace, - arrayContentDidChange, - arrayContentWillChange, - tagForProperty, -} from '@ember/-internals/metal'; -import { get } from '@ember/object'; -import type { PropertyDidChange } from '@ember/-internals/metal'; -import { isObject } from '@ember/-internals/utils'; +import { objectAt } from '@ember/-internals/metal/lib/object-at'; +import alias from '@ember/-internals/metal/lib/alias'; +import { PROPERTY_DID_CHANGE } from '@ember/-internals/metal/lib/property_events'; +import { addArrayObserver, removeArrayObserver, replace } from '@ember/-internals/metal/lib/array'; +import { arrayContentDidChange, arrayContentWillChange } from '@ember/-internals/metal/lib/array_events'; +import { tagForProperty } from '@ember/-internals/metal/lib/tags'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import type { PropertyDidChange } from '@ember/-internals/metal/lib/property_events'; +import { isObject } from '@ember/-internals/utils/lib/spec'; import EmberObject from '@ember/object'; import EmberArray, { type NativeArray } from '@ember/array'; import MutableArray from '@ember/array/mutable'; import { assert } from '@ember/debug'; -import { setCustomTagFor } from '@glimmer/manager'; -import { - combine, - consumeTag, - validateTag, - valueForTag, - tagFor, - type Tag, - type Revision, -} from '@glimmer/validator'; +import { setCustomTagFor } from '@glimmer/manager/lib/util/args-proxy'; +import { combine, validateTag, valueForTag, type Revision } from '@glimmer/validator/lib/validators'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; +import { tagFor } from '@glimmer/validator/lib/meta'; +import type { Tag } from '@glimmer/interfaces'; function isMutable(obj: T[] | EmberArray): obj is T[] | MutableArray { return Array.isArray(obj) || typeof (obj as MutableArray).replace === 'function'; diff --git a/packages/@ember/canary-features/index.ts b/packages/@ember/canary-features/index.ts index 0d2c89324f2..01548b71daa 100644 --- a/packages/@ember/canary-features/index.ts +++ b/packages/@ember/canary-features/index.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; /** Set `EmberENV.FEATURES` in your application's `config/environment.js` file diff --git a/packages/@ember/component/helper.ts b/packages/@ember/component/helper.ts index c1aa1427027..1a158309af1 100644 --- a/packages/@ember/component/helper.ts +++ b/packages/@ember/component/helper.ts @@ -1,6 +1 @@ -export { - Helper as default, - helper, - type FunctionBasedHelper, - type FunctionBasedHelperInstance, -} from '@ember/-internals/glimmer'; +export { default, helper, type FunctionBasedHelper, type FunctionBasedHelperInstance } from '@ember/-internals/glimmer/lib/helper'; diff --git a/packages/@ember/component/index.ts b/packages/@ember/component/index.ts index 0834c935f80..9ce284937b3 100644 --- a/packages/@ember/component/index.ts +++ b/packages/@ember/component/index.ts @@ -3,13 +3,13 @@ @public */ -export { setComponentTemplate, getComponentTemplate } from '@glimmer/manager'; +export { setComponentTemplate, getComponentTemplate } from '@glimmer/manager/lib/public/template'; -export { Component as default, Input, Textarea } from '@ember/-internals/glimmer'; -export { - componentCapabilities as capabilities, - setComponentManager, -} from '@ember/-internals/glimmer'; +export { default } from '@ember/-internals/glimmer/lib/component'; +export { default as Input } from '@ember/-internals/glimmer/lib/components/input'; +export { default as Textarea } from '@ember/-internals/glimmer/lib/components/textarea'; +export { componentCapabilities as capabilities } from '@glimmer/manager/lib/public/component'; +export { setComponentManager } from '@ember/-internals/glimmer/lib/utils/managers'; /** * Assigns a TemplateFactory to a component class. diff --git a/packages/@ember/component/template-only.ts b/packages/@ember/component/template-only.ts index 93625305975..92fd1696cc1 100644 --- a/packages/@ember/component/template-only.ts +++ b/packages/@ember/component/template-only.ts @@ -31,7 +31,7 @@ @category EMBER_GLIMMER_SET_COMPONENT_TEMPLATE */ import { type Opaque } from '@ember/-internals/utility-types'; -import { templateOnlyComponent as glimmerTemplateOnlyComponent } from '@glimmer/runtime'; +import { templateOnlyComponent as glimmerTemplateOnlyComponent } from '@glimmer/runtime/lib/component/template-only'; /** * Template-only components have no backing class instance, so `this` in their diff --git a/packages/@ember/controller/index.ts b/packages/@ember/controller/index.ts index 02b17a3be21..b8a336f2d87 100644 --- a/packages/@ember/controller/index.ts +++ b/packages/@ember/controller/index.ts @@ -1,11 +1,12 @@ import { getOwner } from '@ember/-internals/owner'; // This is imported from -internals to avoid circularity -import { computed, get } from '@ember/object'; +import computed from '@ember/-internals/metal/lib/computed'; +import { get } from '@ember/-internals/metal/lib/property_get'; import { FrameworkObject } from '@ember/object/-internals'; -import { inject as metalInject } from '@ember/-internals/metal'; -import type { DecoratorPropertyDescriptor, ElementDescriptor } from '@ember/-internals/metal'; +import metalInject from '@ember/-internals/metal/lib/injected_property'; +import type { DecoratorPropertyDescriptor, ElementDescriptor } from '@ember/-internals/metal/lib/decorator'; import Mixin from '@ember/object/mixin'; import type { RouteArgs } from '@ember/routing/-internals'; -import { ActionHandler } from '@ember/-internals/runtime'; +import ActionHandler from '@ember/-internals/runtime/lib/mixins/action_handler'; import type { Transition } from 'router_js'; export type ControllerQueryParamType = 'boolean' | 'number' | 'array' | 'string'; diff --git a/packages/@ember/debug/container-debug-adapter.ts b/packages/@ember/debug/container-debug-adapter.ts index e62fcb0ed7b..f61fe2652d6 100644 --- a/packages/@ember/debug/container-debug-adapter.ts +++ b/packages/@ember/debug/container-debug-adapter.ts @@ -1,9 +1,9 @@ import { classify, dasherize } from '@ember/-internals/string'; import EmberObject from '@ember/object'; -import { typeOf } from '@ember/utils'; +import typeOf from '@ember/utils/lib/type-of'; import type Owner from '@ember/owner'; import { getOwner } from '@ember/-internals/owner'; -import type { Resolver } from '@ember/owner'; +import type { Resolver } from '@ember/-internals/owner'; import Namespace from '@ember/application/namespace'; /** diff --git a/packages/@ember/debug/data-adapter.ts b/packages/@ember/debug/data-adapter.ts index a92118eb33a..4b37faaff4b 100644 --- a/packages/@ember/debug/data-adapter.ts +++ b/packages/@ember/debug/data-adapter.ts @@ -1,14 +1,15 @@ import type Owner from '@ember/owner'; import { getOwner } from '@ember/-internals/owner'; import { _backburner, next } from '@ember/runloop'; -import { get } from '@ember/object'; +import { get } from '@ember/-internals/metal/lib/property_get'; import { dasherize } from '@ember/-internals/string'; import Namespace from '@ember/application/namespace'; import type { NativeArray } from '@ember/array'; import EmberObject from '@ember/object'; import { A as emberA } from '@ember/array'; -import type { Cache } from '@glimmer/validator'; -import { consumeTag, createCache, getValue, tagFor, untrack } from '@glimmer/validator'; +import type { Cache } from '@glimmer/validator/lib/tracking'; +import { consumeTag, createCache, getValue, untrack } from '@glimmer/validator/lib/tracking'; +import { tagFor } from '@glimmer/validator/lib/meta'; import type ContainerDebugAdapter from '@ember/debug/container-debug-adapter'; import { assert } from '.'; diff --git a/packages/@ember/debug/index.ts b/packages/@ember/debug/index.ts index 522c0109e78..d24c1ec74cf 100644 --- a/packages/@ember/debug/index.ts +++ b/packages/@ember/debug/index.ts @@ -1,5 +1,5 @@ import { isChrome, isFirefox } from '@ember/-internals/browser-environment'; -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import type { AnyFn } from '@ember/-internals/utility-types'; import { DEBUG } from '@glimmer/env'; import type { DeprecateFunc, DeprecationOptions } from './lib/deprecate'; diff --git a/packages/@ember/debug/lib/capture-render-tree.ts b/packages/@ember/debug/lib/capture-render-tree.ts index 6f7d28bb532..03c5cd4b3fa 100644 --- a/packages/@ember/debug/lib/capture-render-tree.ts +++ b/packages/@ember/debug/lib/capture-render-tree.ts @@ -1,4 +1,4 @@ -import type { Renderer } from '@ember/-internals/glimmer'; +import type { Renderer } from '@ember/-internals/glimmer/lib/renderer'; import type Owner from '@ember/owner'; import type { CapturedRenderNode } from '@glimmer/interfaces'; diff --git a/packages/@ember/debug/lib/deprecate.ts b/packages/@ember/debug/lib/deprecate.ts index 20a30302868..ce32eacfbd4 100644 --- a/packages/@ember/debug/lib/deprecate.ts +++ b/packages/@ember/debug/lib/deprecate.ts @@ -1,4 +1,4 @@ -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import { DEBUG } from '@glimmer/env'; import { assert } from './assert'; diff --git a/packages/@ember/engine/index.ts b/packages/@ember/engine/index.ts index e16240fa87d..593c52a2930 100644 --- a/packages/@ember/engine/index.ts +++ b/packages/@ember/engine/index.ts @@ -1,20 +1,21 @@ export { getEngineParent, setEngineParent } from './parent'; -import { canInvoke } from '@ember/-internals/utils'; +import { canInvoke } from '@ember/-internals/utils/lib/invoke'; import Controller from '@ember/controller'; import Namespace from '@ember/application/namespace'; -import { Registry } from '@ember/-internals/container'; -import type { ResolverClass } from '@ember/-internals/container'; +import Registry from '@ember/-internals/container/lib/registry'; +import type { ResolverClass } from '@ember/-internals/container/lib/registry'; import DAG from 'dag-map'; import { assert } from '@ember/debug'; import ContainerDebugAdapter from '@ember/debug/container-debug-adapter'; -import { get, set } from '@ember/object'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { set } from '@ember/-internals/metal/lib/property_set'; import type { EngineInstanceOptions } from '@ember/engine/instance'; import EngineInstance from '@ember/engine/instance'; import { RoutingService } from '@ember/routing/-internals'; -import { ComponentLookup } from '@ember/-internals/views'; -import { setupEngineRegistry } from '@ember/-internals/glimmer'; -import { RegistryProxyMixin } from '@ember/-internals/runtime'; +import ComponentLookup from '@ember/-internals/views/lib/component_lookup'; +import { setupEngineRegistry } from '@ember/-internals/glimmer/lib/setup-registry'; +import RegistryProxyMixin from '@ember/-internals/runtime/lib/mixins/registry_proxy'; function props(obj: object) { let properties = []; diff --git a/packages/@ember/engine/instance.ts b/packages/@ember/engine/instance.ts index 097b5c6ca6e..050d27eb3b8 100644 --- a/packages/@ember/engine/instance.ts +++ b/packages/@ember/engine/instance.ts @@ -3,18 +3,19 @@ */ import EmberObject from '@ember/object'; -import { RSVP } from '@ember/-internals/runtime'; +import RSVP from '@ember/-internals/runtime/lib/ext/rsvp'; import { assert } from '@ember/debug'; -import { Registry, privatize as P } from '@ember/-internals/container'; -import { guidFor } from '@ember/-internals/utils'; +import { default as Registry, privatize as P } from '@ember/-internals/container/lib/registry'; +import { guidFor } from '@ember/-internals/utils/lib/guid'; import { ENGINE_PARENT, getEngineParent, setEngineParent } from './parent'; -import { ContainerProxyMixin, RegistryProxyMixin } from '@ember/-internals/runtime'; +import ContainerProxyMixin from '@ember/-internals/runtime/lib/mixins/container_proxy'; +import RegistryProxyMixin from '@ember/-internals/runtime/lib/mixins/registry_proxy'; import type { InternalOwner } from '@ember/-internals/owner'; import type Owner from '@ember/-internals/owner'; import { type FullName, isFactory } from '@ember/-internals/owner'; import type Engine from '@ember/engine'; import type Application from '@ember/application'; -import type { BootEnvironment } from '@ember/-internals/glimmer'; +import type { BootEnvironment } from '@ember/-internals/glimmer/lib/views/outlet'; import type { SimpleElement } from '@simple-dom/interface'; export interface BootOptions { diff --git a/packages/@ember/helper/index.ts b/packages/@ember/helper/index.ts index bdf745a9974..502c6baae91 100644 --- a/packages/@ember/helper/index.ts +++ b/packages/@ember/helper/index.ts @@ -2,18 +2,18 @@ @module @ember/helper */ -import { setHelperManager as glimmerSetHelperManager, helperCapabilities } from '@glimmer/manager'; -import { - invokeHelper as glimmerInvokeHelper, - hash as glimmerHash, - array as glimmerArray, - concat as glimmerConcat, - eq as glimmerEq, - get as glimmerGet, - fn as glimmerFn, - neq as glimmerNeq, -} from '@glimmer/runtime'; -import { element as glimmerElement, uniqueId as glimmerUniqueId } from '@ember/-internals/glimmer'; +import { setHelperManager as glimmerSetHelperManager } from '@glimmer/manager/lib/public/api'; +import { helperCapabilities } from '@glimmer/manager/lib/public/helper'; +import { invokeHelper as glimmerInvokeHelper } from '@glimmer/runtime/lib/helpers/invoke'; +import { hash as glimmerHash } from '@glimmer/runtime/lib/helpers/hash'; +import { array as glimmerArray } from '@glimmer/runtime/lib/helpers/array'; +import { concat as glimmerConcat } from '@glimmer/runtime/lib/helpers/concat'; +import { eq as glimmerEq } from '@glimmer/runtime/lib/helpers/eq'; +import { get as glimmerGet } from '@glimmer/runtime/lib/helpers/get'; +import { fn as glimmerFn } from '@glimmer/runtime/lib/helpers/fn'; +import { neq as glimmerNeq } from '@glimmer/runtime/lib/helpers/neq'; +import glimmerElement from '@ember/-internals/glimmer/lib/helpers/element'; +import { uniqueId as glimmerUniqueId } from '@ember/-internals/glimmer/lib/helpers/unique-id'; import { type Opaque } from '@ember/-internals/utility-types'; /** diff --git a/packages/@ember/instrumentation/index.ts b/packages/@ember/instrumentation/index.ts index 00938f3a9c7..f3fb35d4775 100644 --- a/packages/@ember/instrumentation/index.ts +++ b/packages/@ember/instrumentation/index.ts @@ -1,7 +1,7 @@ /* eslint no-console:off */ /* global console */ -import { ENV } from '@ember/-internals/environment'; +import { ENV } from '@ember/-internals/environment/lib/env'; import { assert } from '@ember/debug'; export interface Listener { diff --git a/packages/@ember/modifier/index.ts b/packages/@ember/modifier/index.ts index dfbb7ffa3b5..428bc4f71b5 100644 --- a/packages/@ember/modifier/index.ts +++ b/packages/@ember/modifier/index.ts @@ -1,4 +1,4 @@ -import { setModifierManager as glimmerSetModifierManager } from '@glimmer/manager'; +import { setModifierManager as glimmerSetModifierManager } from '@glimmer/manager/lib/public/api'; import type Owner from '@ember/owner'; import type { ModifierManager } from '@glimmer/interfaces'; @@ -15,4 +15,4 @@ export const setModifierManager: ( export type { ModifierManager }; export type { ModifierCapabilities } from '@glimmer/interfaces'; -export { modifierCapabilities as capabilities } from '@ember/-internals/glimmer'; +export { modifierCapabilities as capabilities } from '@glimmer/manager/lib/public/modifier'; diff --git a/packages/@ember/modifier/on.ts b/packages/@ember/modifier/on.ts index e440c3921fa..1ee27e47e35 100644 --- a/packages/@ember/modifier/on.ts +++ b/packages/@ember/modifier/on.ts @@ -1,4 +1,4 @@ -import { on as glimmerOn } from '@glimmer/runtime'; +import { on as glimmerOn } from '@glimmer/runtime/lib/modifiers/on'; import type { Opaque } from '@ember/-internals/utility-types'; diff --git a/packages/@ember/object/-internals.ts b/packages/@ember/object/-internals.ts index 880c5a05af9..9021a8dd03d 100644 --- a/packages/@ember/object/-internals.ts +++ b/packages/@ember/object/-internals.ts @@ -1,7 +1,7 @@ -export { getCachedValueFor as cacheFor } from '@ember/-internals/metal'; -export { guidFor } from '@ember/-internals/utils'; +export { getCachedValueFor as cacheFor } from '@ember/-internals/metal/lib/computed_cache'; +export { guidFor } from '@ember/-internals/utils/lib/guid'; -import { addListener } from '@ember/-internals/metal'; +import { addListener } from '@ember/-internals/metal/lib/events'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import EmberObject from '.'; diff --git a/packages/@ember/object/compat.ts b/packages/@ember/object/compat.ts index 39265d27b66..7a839a56d75 100644 --- a/packages/@ember/object/compat.ts +++ b/packages/@ember/object/compat.ts @@ -1,14 +1,12 @@ -import type { Meta } from '@ember/-internals/meta'; -import type { ExtendedMethodDecorator, DecoratorPropertyDescriptor } from '@ember/-internals/metal'; -import { - descriptorForProperty, - isElementDescriptor, - setClassicDecorator, -} from '@ember/-internals/metal'; -import type { ElementDescriptor } from '@ember/-internals/metal'; +import type { Meta } from '@ember/-internals/meta/lib/meta'; +import type { ExtendedMethodDecorator, DecoratorPropertyDescriptor } from '@ember/-internals/metal/lib/decorator'; +import { descriptorForProperty, isElementDescriptor, setClassicDecorator } from '@ember/-internals/metal/lib/decorator'; +import type { ElementDescriptor } from '@ember/-internals/metal/lib/decorator'; import { assert } from '@ember/debug'; -import type { UpdatableTag } from '@glimmer/validator'; -import { consumeTag, tagFor, track, updateTag } from '@glimmer/validator'; +import type { UpdatableTag } from '@glimmer/interfaces'; +import { consumeTag, track } from '@glimmer/validator/lib/tracking'; +import { tagFor } from '@glimmer/validator/lib/meta'; +import { UPDATE_TAG as updateTag } from '@glimmer/validator/lib/validators'; let wrapGetterSetter = function (target: object, key: string, desc: PropertyDescriptor) { let { get: originalGet } = desc; diff --git a/packages/@ember/object/computed.ts b/packages/@ember/object/computed.ts index 9949474f786..5e4d41bc33b 100644 --- a/packages/@ember/object/computed.ts +++ b/packages/@ember/object/computed.ts @@ -1,4 +1,6 @@ -export { ComputedProperty as default, expandProperties, alias } from '@ember/-internals/metal'; +export { ComputedProperty as default } from '@ember/-internals/metal/lib/computed'; +export { default as expandProperties } from '@ember/-internals/metal/lib/expand_properties'; +export { default as alias } from '@ember/-internals/metal/lib/alias'; export { empty, diff --git a/packages/@ember/object/core.ts b/packages/@ember/object/core.ts index a8ed8d112e1..858015174fb 100644 --- a/packages/@ember/object/core.ts +++ b/packages/@ember/object/core.ts @@ -2,23 +2,20 @@ @module @ember/object/core */ -import { getFactoryFor, setFactoryFor } from '@ember/-internals/container'; +import { getFactoryFor, setFactoryFor } from '@ember/-internals/container/lib/container'; import { type default as Owner, getOwner } from '@ember/-internals/owner'; -import { guidFor } from '@ember/-internals/utils'; -import { meta } from '@ember/-internals/meta'; -import type { ComputedProperty, HasUnknownProperty } from '@ember/-internals/metal'; -import { - PROXY_CONTENT, - sendEvent, - activateObserver, - defineProperty, - descriptorForProperty, - isClassicDecorator, - DEBUG_INJECTION_FUNCTIONS, - hasUnknownProperty, -} from '@ember/-internals/metal'; +import { guidFor } from '@ember/-internals/utils/lib/guid'; +import { meta } from '@ember/-internals/meta/lib/meta'; +import type { ComputedProperty } from '@ember/-internals/metal/lib/computed'; +import type { HasUnknownProperty } from '@ember/-internals/metal/lib/property_get'; +import { PROXY_CONTENT, hasUnknownProperty } from '@ember/-internals/metal/lib/property_get'; +import { sendEvent } from '@ember/-internals/metal/lib/events'; +import { activateObserver } from '@ember/-internals/metal/lib/observer'; +import { defineProperty } from '@ember/-internals/metal/lib/properties'; +import { descriptorForProperty, isClassicDecorator } from '@ember/-internals/metal/lib/decorator'; +import { DEBUG_INJECTION_FUNCTIONS } from '@ember/-internals/metal/lib/injected_property'; import Mixin, { applyMixin } from '@ember/object/mixin'; -import { ActionHandler } from '@ember/-internals/runtime'; +import ActionHandler from '@ember/-internals/runtime/lib/mixins/action_handler'; import makeArray from '@ember/array/make'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; diff --git a/packages/@ember/object/evented.ts b/packages/@ember/object/evented.ts index 2134d344206..e062f2bfe6e 100644 --- a/packages/@ember/object/evented.ts +++ b/packages/@ember/object/evented.ts @@ -1,7 +1,7 @@ -import { addListener, removeListener, hasListeners, sendEvent } from '@ember/-internals/metal'; +import { addListener, removeListener, hasListeners, sendEvent } from '@ember/-internals/metal/lib/events'; import Mixin from '@ember/object/mixin'; -export { on } from '@ember/-internals/metal'; +export { on } from '@ember/-internals/metal/lib/events'; /** @module @ember/object/evented diff --git a/packages/@ember/object/events.ts b/packages/@ember/object/events.ts index 3f4559266fc..66224dac13f 100644 --- a/packages/@ember/object/events.ts +++ b/packages/@ember/object/events.ts @@ -1 +1 @@ -export { addListener, removeListener, sendEvent } from '@ember/-internals/metal'; +export { addListener, removeListener, sendEvent } from '@ember/-internals/metal/lib/events'; diff --git a/packages/@ember/object/index.ts b/packages/@ember/object/index.ts index 58325bcf278..677158f91ab 100644 --- a/packages/@ember/object/index.ts +++ b/packages/@ember/object/index.ts @@ -1,27 +1,21 @@ import { assert } from '@ember/debug'; -import { ENV } from '@ember/-internals/environment'; -import type { ElementDescriptor, ExtendedMethodDecorator } from '@ember/-internals/metal'; -import { - isElementDescriptor, - expandProperties, - setClassicDecorator, -} from '@ember/-internals/metal'; -import { getFactoryFor } from '@ember/-internals/container'; -import { setObservers } from '@ember/-internals/utils'; +import { ENV } from '@ember/-internals/environment/lib/env'; +import type { ElementDescriptor, ExtendedMethodDecorator } from '@ember/-internals/metal/lib/decorator'; +import { isElementDescriptor, setClassicDecorator } from '@ember/-internals/metal/lib/decorator'; +import expandProperties from '@ember/-internals/metal/lib/expand_properties'; +import { getFactoryFor } from '@ember/-internals/container/lib/container'; +import { setObservers } from '@ember/-internals/utils/lib/super'; import type { AnyFn } from '@ember/-internals/utility-types'; import CoreObject from '@ember/object/core'; import Observable from '@ember/object/observable'; -export { - notifyPropertyChange, - defineProperty, - get, - set, - getProperties, - setProperties, - computed, - trySet, -} from '@ember/-internals/metal'; +export { notifyPropertyChange } from '@ember/-internals/metal/lib/property_events'; +export { defineProperty } from '@ember/-internals/metal/lib/properties'; +export { get } from '@ember/-internals/metal/lib/property_get'; +export { set, trySet } from '@ember/-internals/metal/lib/property_set'; +export { default as getProperties } from '@ember/-internals/metal/lib/get_properties'; +export { default as setProperties } from '@ember/-internals/metal/lib/set_properties'; +export { default as computed } from '@ember/-internals/metal/lib/computed'; /** @module @ember/object diff --git a/packages/@ember/object/lib/computed/computed_macros.ts b/packages/@ember/object/lib/computed/computed_macros.ts index 0c71a2967e0..94f9cb769a7 100644 --- a/packages/@ember/object/lib/computed/computed_macros.ts +++ b/packages/@ember/object/lib/computed/computed_macros.ts @@ -1,8 +1,13 @@ -import { computed, isElementDescriptor, alias, expandProperties } from '@ember/-internals/metal'; -import { get, set } from '@ember/object'; -import type { DeprecationOptions } from '@ember/debug'; +import computed from '@ember/-internals/metal/lib/computed'; +import { isElementDescriptor } from '@ember/-internals/metal/lib/decorator'; +import alias from '@ember/-internals/metal/lib/alias'; +import expandProperties from '@ember/-internals/metal/lib/expand_properties'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { set } from '@ember/-internals/metal/lib/property_set'; +import type { DeprecationOptions } from '@ember/debug/lib/deprecate'; import { assert, deprecate } from '@ember/debug'; -import { isEmpty, isNone } from '@ember/utils'; +import isEmpty from '@ember/utils/lib/is_empty'; +import isNone from '@ember/utils/lib/is_none'; /** @module @ember/object diff --git a/packages/@ember/object/lib/computed/reduce_computed_macros.ts b/packages/@ember/object/lib/computed/reduce_computed_macros.ts index 525c9611746..a08f1953b3d 100644 --- a/packages/@ember/object/lib/computed/reduce_computed_macros.ts +++ b/packages/@ember/object/lib/computed/reduce_computed_macros.ts @@ -3,9 +3,11 @@ */ import { DEBUG } from '@glimmer/env'; import { assert } from '@ember/debug'; -import { autoComputed, isElementDescriptor } from '@ember/-internals/metal'; -import { computed, get } from '@ember/object'; -import { compare } from '@ember/utils'; +import { autoComputed } from '@ember/-internals/metal/lib/computed'; +import { isElementDescriptor } from '@ember/-internals/metal/lib/decorator'; +import computed from '@ember/-internals/metal/lib/computed'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import compare from '@ember/utils/lib/compare'; import EmberArray, { A as emberA, uniqBy as uniqByArray } from '@ember/array'; import type { NativeArray } from '@ember/array'; diff --git a/packages/@ember/object/mixin.ts b/packages/@ember/object/mixin.ts index 65119179d00..0952f58a4fa 100644 --- a/packages/@ember/object/mixin.ts +++ b/packages/@ember/object/mixin.ts @@ -1,32 +1,19 @@ /** @module @ember/object/mixin */ -import { INIT_FACTORY } from '@ember/-internals/container'; -import type { Meta } from '@ember/-internals/meta'; -import { meta as metaFor, peekMeta } from '@ember/-internals/meta'; -import { observerListenerMetaFor, ROOT, wrap } from '@ember/-internals/utils'; +import { INIT_FACTORY } from '@ember/-internals/container/lib/container'; +import type { Meta } from '@ember/-internals/meta/lib/meta'; +import { meta as metaFor, peekMeta } from '@ember/-internals/meta/lib/meta'; +import { observerListenerMetaFor, ROOT, wrap } from '@ember/-internals/utils/lib/super'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import { - type ComputedDecorator, - type ComputedPropertyGetter, - type ComputedPropertyObj, - type ComputedPropertySetter, - type ComputedDescriptor, - isClassicDecorator, -} from '@ember/-internals/metal'; -import { - ComputedProperty, - descriptorForDecorator, - makeComputedDecorator, - nativeDescDecorator, - setUnprocessedMixins, - addObserver, - removeObserver, - revalidateObservers, - defineDecorator, - defineValue, -} from '@ember/-internals/metal'; +import type { ComputedDecorator, ComputedPropertyGetter, ComputedPropertyObj, ComputedPropertySetter } from '@ember/-internals/metal/lib/computed'; +import { type ComputedDescriptor, isClassicDecorator } from '@ember/-internals/metal/lib/decorator'; +import { ComputedProperty } from '@ember/-internals/metal/lib/computed'; +import { descriptorForDecorator, makeComputedDecorator, nativeDescDecorator } from '@ember/-internals/metal/lib/decorator'; +import { setUnprocessedMixins } from '@ember/-internals/metal/lib/namespace_search'; +import { addObserver, removeObserver, revalidateObservers } from '@ember/-internals/metal/lib/observer'; +import { defineDecorator, defineValue } from '@ember/-internals/metal/lib/properties'; import { addListener, removeListener } from '@ember/object/events'; const a_concat = Array.prototype.concat; diff --git a/packages/@ember/object/observable.ts b/packages/@ember/object/observable.ts index 05ba879bac8..8e280a94ffc 100644 --- a/packages/@ember/object/observable.ts +++ b/packages/@ember/object/observable.ts @@ -2,19 +2,14 @@ @module @ember/object/observable */ -import { peekMeta } from '@ember/-internals/meta'; -import { - hasListeners, - beginPropertyChanges, - notifyPropertyChange, - endPropertyChanges, - addObserver, - removeObserver, - get, - set, - getProperties, - setProperties, -} from '@ember/-internals/metal'; +import { peekMeta } from '@ember/-internals/meta/lib/meta'; +import { hasListeners } from '@ember/-internals/metal/lib/events'; +import { beginPropertyChanges, notifyPropertyChange, endPropertyChanges } from '@ember/-internals/metal/lib/property_events'; +import { addObserver, removeObserver } from '@ember/-internals/metal/lib/observer'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { set } from '@ember/-internals/metal/lib/property_set'; +import getProperties from '@ember/-internals/metal/lib/get_properties'; +import setProperties from '@ember/-internals/metal/lib/set_properties'; import Mixin from '@ember/object/mixin'; import { assert } from '@ember/debug'; diff --git a/packages/@ember/object/observers.ts b/packages/@ember/object/observers.ts index 6c2f616cdeb..595cec5fd1a 100644 --- a/packages/@ember/object/observers.ts +++ b/packages/@ember/object/observers.ts @@ -1 +1 @@ -export { addObserver, removeObserver } from '@ember/-internals/metal'; +export { addObserver, removeObserver } from '@ember/-internals/metal/lib/observer'; diff --git a/packages/@ember/object/promise-proxy-mixin.ts b/packages/@ember/object/promise-proxy-mixin.ts index eafe2a9522d..9571771a803 100644 --- a/packages/@ember/object/promise-proxy-mixin.ts +++ b/packages/@ember/object/promise-proxy-mixin.ts @@ -1,4 +1,6 @@ -import { get, setProperties, computed } from '@ember/object'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import setProperties from '@ember/-internals/metal/lib/set_properties'; +import computed from '@ember/-internals/metal/lib/computed'; import Mixin from '@ember/object/mixin'; import type { AnyFn, MethodNamesOf } from '@ember/-internals/utility-types'; import type RSVP from 'rsvp'; diff --git a/packages/@ember/object/proxy.ts b/packages/@ember/object/proxy.ts index 57b162b8924..d561d7777df 100644 --- a/packages/@ember/object/proxy.ts +++ b/packages/@ember/object/proxy.ts @@ -3,7 +3,7 @@ */ import { FrameworkObject } from '@ember/object/-internals'; -import { _ProxyMixin } from '@ember/-internals/runtime'; +import _ProxyMixin from '@ember/-internals/runtime/lib/mixins/-proxy'; /** `ObjectProxy` forwards all properties not defined by the proxy itself diff --git a/packages/@ember/reactive/collections.ts b/packages/@ember/reactive/collections.ts index b4c6eaaff8d..73205476ad2 100644 --- a/packages/@ember/reactive/collections.ts +++ b/packages/@ember/reactive/collections.ts @@ -46,7 +46,7 @@ * @returns {Array} A tracked array that updates reactively * @public */ -export { trackedArray } from '@glimmer/validator'; +export { trackedArray } from '@glimmer/validator/lib/collections/array'; /** * A utility for creating tracked objects, copying the original data so that @@ -89,7 +89,7 @@ export { trackedArray } from '@glimmer/validator'; * @returns {Object} A tracked object that updates reactively * @public */ -export { trackedObject } from '@glimmer/validator'; +export { trackedObject } from '@glimmer/validator/lib/collections/object'; /** * A utility for creating tracked sets, copying the original data so that @@ -133,7 +133,7 @@ export { trackedObject } from '@glimmer/validator'; * @returns {Set} A tracked Set that updates reactively * @public */ -export { trackedSet } from '@glimmer/validator'; +export { trackedSet } from '@glimmer/validator/lib/collections/set'; /** * A utility for creating tracked weak sets, copying the original data so that @@ -174,7 +174,7 @@ export { trackedSet } from '@glimmer/validator'; * @returns {WeakSet} A tracked WeakSet that updates reactively * @public */ -export { trackedWeakSet } from '@glimmer/validator'; +export { trackedWeakSet } from '@glimmer/validator/lib/collections/weak-set'; /** * A utility for creating tracked maps, copying the original data so that @@ -218,7 +218,7 @@ export { trackedWeakSet } from '@glimmer/validator'; * @returns {Map} A tracked Map that updates reactively * @public */ -export { trackedMap } from '@glimmer/validator'; +export { trackedMap } from '@glimmer/validator/lib/collections/map'; /** * A utility for creating tracked weak maps, copying the original data so that @@ -259,4 +259,4 @@ export { trackedMap } from '@glimmer/validator'; * @returns {WeakMap} A tracked WeakMap that updates reactively * @public */ -export { trackedWeakMap } from '@glimmer/validator'; +export { trackedWeakMap } from '@glimmer/validator/lib/collections/weak-map'; diff --git a/packages/@ember/renderer/index.ts b/packages/@ember/renderer/index.ts index 870e0508e02..a8c5366ba5a 100644 --- a/packages/@ember/renderer/index.ts +++ b/packages/@ember/renderer/index.ts @@ -61,7 +61,7 @@ @public */ -export { renderSettled } from '@ember/-internals/glimmer'; +export { renderSettled } from '@ember/-internals/glimmer/lib/renderer'; /** * Render a component into a DOM element. @@ -79,4 +79,4 @@ export { renderSettled } from '@ember/-internals/glimmer'; * @param {Object} [options.args] Optionally pass args in to the component. These may be reactive as long as it is an object or object-like * @public */ -export { renderComponent } from '@ember/-internals/glimmer'; +export { renderComponent } from '@ember/-internals/glimmer/lib/renderer'; diff --git a/packages/@ember/routing/index.ts b/packages/@ember/routing/index.ts index 474d8b90c17..be0dd6e698f 100644 --- a/packages/@ember/routing/index.ts +++ b/packages/@ember/routing/index.ts @@ -1 +1 @@ -export { LinkTo } from '@ember/-internals/glimmer'; +export { default as LinkTo } from '@ember/-internals/glimmer/lib/components/link-to'; diff --git a/packages/@ember/routing/lib/controller_for.ts b/packages/@ember/routing/lib/controller_for.ts index e8e0ddcec5f..1ab76835b69 100644 --- a/packages/@ember/routing/lib/controller_for.ts +++ b/packages/@ember/routing/lib/controller_for.ts @@ -1,6 +1,6 @@ -import type { Container } from '@ember/-internals/container'; +import type Container from '@ember/-internals/container/lib/container'; import type { FactoryClass, InternalFactory } from '@ember/-internals/owner'; -import type { RegisterOptions } from '@ember/owner'; +import type { RegisterOptions } from '@ember/-internals/owner'; /** @module @ember/routing diff --git a/packages/@ember/routing/lib/generate_controller.ts b/packages/@ember/routing/lib/generate_controller.ts index 59da394330d..13576758301 100644 --- a/packages/@ember/routing/lib/generate_controller.ts +++ b/packages/@ember/routing/lib/generate_controller.ts @@ -1,4 +1,4 @@ -import { get } from '@ember/-internals/metal'; +import { get } from '@ember/-internals/metal/lib/property_get'; import type { InternalFactory, default as Owner } from '@ember/-internals/owner'; import Controller from '@ember/controller'; import { assert, info } from '@ember/debug'; diff --git a/packages/@ember/routing/lib/utils.ts b/packages/@ember/routing/lib/utils.ts index 67351d00310..6f01ef3aab2 100644 --- a/packages/@ember/routing/lib/utils.ts +++ b/packages/@ember/routing/lib/utils.ts @@ -1,4 +1,4 @@ -import { get } from '@ember/-internals/metal'; +import { get } from '@ember/-internals/metal/lib/property_get'; import { getOwner } from '@ember/-internals/owner'; import type { ControllerQueryParam, ControllerQueryParamType } from '@ember/controller'; import { assert } from '@ember/debug'; diff --git a/packages/@ember/routing/route.ts b/packages/@ember/routing/route.ts index 7b4a8f24eac..ae3b59a1a59 100644 --- a/packages/@ember/routing/route.ts +++ b/packages/@ember/routing/route.ts @@ -1,29 +1,33 @@ -import { privatize as P } from '@ember/-internals/container'; -import { - addObserver, - defineProperty, - descriptorForProperty, - flushAsyncObservers, -} from '@ember/-internals/metal'; +import { privatize as P } from '@ember/-internals/container/lib/registry'; +import { addObserver, flushAsyncObservers } from '@ember/-internals/metal/lib/observer'; +import { defineProperty } from '@ember/-internals/metal/lib/properties'; +import { descriptorForProperty } from '@ember/-internals/metal/lib/decorator'; import type Owner from '@ember/owner'; import { getOwner } from '@ember/-internals/owner'; import type { default as BucketCache } from './lib/cache'; -import EmberObject, { computed, get, set, getProperties, setProperties } from '@ember/object'; +import computed from '@ember/-internals/metal/lib/computed'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { set } from '@ember/-internals/metal/lib/property_set'; +import getProperties from '@ember/-internals/metal/lib/get_properties'; +import setProperties from '@ember/-internals/metal/lib/set_properties'; +import EmberObject from '@ember/object'; import Evented from '@ember/object/evented'; import { A as emberA } from '@ember/array'; -import { ActionHandler } from '@ember/-internals/runtime'; -import { typeOf } from '@ember/utils'; -import { isProxy, lookupDescriptor } from '@ember/-internals/utils'; +import ActionHandler from '@ember/-internals/runtime/lib/mixins/action_handler'; +import typeOf from '@ember/utils/lib/type-of'; +import { isProxy } from '@ember/-internals/utils/lib/is_proxy'; +import lookupDescriptor from '@ember/-internals/utils/lib/lookup-descriptor'; import type { AnyFn } from '@ember/-internals/utility-types'; import Controller from '@ember/controller'; import type { ControllerQueryParamType } from '@ember/controller'; -import { assert, info, isTesting } from '@ember/debug'; +import { isTesting } from '@ember/debug/lib/testing'; +import { assert, info } from '@ember/debug'; import EngineInstance from '@ember/engine/instance'; import { dependentKeyCompat } from '@ember/object/compat'; import { once } from '@ember/runloop'; import { DEBUG } from '@glimmer/env'; -import { hasInternalComponentManager } from '@glimmer/manager'; -import type { RenderState } from '@ember/-internals/glimmer'; +import { hasInternalComponentManager } from '@glimmer/manager/lib/internal/api'; +import type { RenderState } from '@ember/-internals/glimmer/lib/utils/outlet'; import type { TemplateFactory } from '@glimmer/interfaces'; import type { InternalRouteInfo, Route as IRoute, Transition, TransitionState } from 'router_js'; import { PARAMS_SYMBOL, STATE_SYMBOL } from 'router_js'; diff --git a/packages/@ember/routing/router-service.ts b/packages/@ember/routing/router-service.ts index 936e7539d1c..b703e47abb7 100644 --- a/packages/@ember/routing/router-service.ts +++ b/packages/@ember/routing/router-service.ts @@ -6,7 +6,8 @@ import Evented from '@ember/object/evented'; import { assert } from '@ember/debug'; import { readOnly } from '@ember/object/computed'; import Service from '@ember/service'; -import { consumeTag, tagFor } from '@glimmer/validator'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; +import { tagFor } from '@glimmer/validator/lib/meta'; import type { ModelFor, Transition } from 'router_js'; import type Route from '@ember/routing/route'; import EmberRouter from '@ember/routing/router'; diff --git a/packages/@ember/routing/router.ts b/packages/@ember/routing/router.ts index 114c398476e..be40c1401ca 100644 --- a/packages/@ember/routing/router.ts +++ b/packages/@ember/routing/router.ts @@ -1,7 +1,11 @@ -import { privatize as P } from '@ember/-internals/container'; -import type { BootEnvironment, OutletState, OutletView } from '@ember/-internals/glimmer'; -import { computed, get, set } from '@ember/object'; -import type { default as Owner, FactoryManager } from '@ember/owner'; +import { privatize as P } from '@ember/-internals/container/lib/registry'; +import type { BootEnvironment, default as OutletView } from '@ember/-internals/glimmer/lib/views/outlet'; +import type { OutletState } from '@ember/-internals/glimmer/lib/utils/outlet'; +import computed from '@ember/-internals/metal/lib/computed'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { set } from '@ember/-internals/metal/lib/property_set'; +import type { FactoryManager } from '@ember/-internals/owner'; +import type Owner from '@ember/owner'; import { getOwner } from '@ember/owner'; import { default as BucketCache } from './lib/cache'; import { default as DSL, type DSLCallback } from './lib/dsl'; @@ -21,7 +25,7 @@ import type { import type RouterService from '@ember/routing/router-service'; import EmberObject from '@ember/object'; import { A as emberA } from '@ember/array'; -import { typeOf } from '@ember/utils'; +import typeOf from '@ember/utils/lib/type-of'; import Evented from '@ember/object/evented'; import { assert, info } from '@ember/debug'; import { cancel, once, run, scheduleOnce } from '@ember/runloop'; diff --git a/packages/@ember/runloop/index.ts b/packages/@ember/runloop/index.ts index bac83b17287..db079ea25b2 100644 --- a/packages/@ember/runloop/index.ts +++ b/packages/@ember/runloop/index.ts @@ -1,6 +1,6 @@ import { assert } from '@ember/debug'; import { onErrorTarget } from '@ember/-internals/error-handling'; -import { flushAsyncObservers } from '@ember/-internals/metal'; +import { flushAsyncObservers } from '@ember/-internals/metal/lib/observer'; import Backburner, { type Timer, type DeferredActionQueues } from 'backburner.js'; import type { AnyFn } from '@ember/-internals/utility-types'; diff --git a/packages/@ember/service/index.ts b/packages/@ember/service/index.ts index c42f498bb37..6b1cdc84050 100644 --- a/packages/@ember/service/index.ts +++ b/packages/@ember/service/index.ts @@ -1,7 +1,7 @@ import { FrameworkObject } from '@ember/object/-internals'; import { DEPRECATIONS, deprecateUntil } from '@ember/-internals/deprecations'; -import type { DecoratorPropertyDescriptor, ElementDescriptor } from '@ember/-internals/metal'; -import { inject as metalInject } from '@ember/-internals/metal'; +import type { DecoratorPropertyDescriptor, ElementDescriptor } from '@ember/-internals/metal/lib/decorator'; +import metalInject from '@ember/-internals/metal/lib/injected_property'; /** @module @ember/service diff --git a/packages/@ember/template-compiler/lib/compile-options.ts b/packages/@ember/template-compiler/lib/compile-options.ts index 10fb8e0bf1a..9cc0471a381 100644 --- a/packages/@ember/template-compiler/lib/compile-options.ts +++ b/packages/@ember/template-compiler/lib/compile-options.ts @@ -1,5 +1,5 @@ import { array, eq, fn, hash, neq } from '@ember/helper'; -import { on } from '@ember/modifier'; +import { on } from '@ember/modifier/on'; import { assert } from '@ember/debug'; import { RESOLUTION_MODE_TRANSFORMS, diff --git a/packages/@ember/template-compiler/lib/dasherize-component-name.ts b/packages/@ember/template-compiler/lib/dasherize-component-name.ts index 52bdda1329b..27c8d36e3bd 100644 --- a/packages/@ember/template-compiler/lib/dasherize-component-name.ts +++ b/packages/@ember/template-compiler/lib/dasherize-component-name.ts @@ -1,4 +1,4 @@ -import { Cache } from '@ember/-internals/utils'; +import Cache from '@ember/-internals/utils/lib/cache'; /* This diverges from `Ember.String.dasherize` so that`` can resolve to `x-foo`. diff --git a/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.ts b/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.ts index 481e1a6839f..7a6a6091507 100644 --- a/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.ts +++ b/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.ts @@ -1,5 +1,6 @@ import { assert, deprecate } from '@ember/debug'; -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import calculateLocationDisplay from '../system/calculate-location-display'; import type { EmberASTPluginEnvironment } from '../types'; import { trackLocals } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.ts b/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.ts index da7931acfca..ea902e25dc7 100644 --- a/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.ts +++ b/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.ts @@ -1,5 +1,6 @@ import { assert } from '@ember/debug'; -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import calculateLocationDisplay from '../system/calculate-location-display'; import type { EmberASTPluginEnvironment } from '../types'; import { trackLocals } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.ts b/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.ts index 9164bd92286..2f74e9766bc 100644 --- a/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.ts +++ b/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.ts @@ -1,5 +1,6 @@ import { assert } from '@ember/debug'; -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import calculateLocationDisplay from '../system/calculate-location-display'; import type { EmberASTPluginEnvironment } from '../types'; import { isPath, trackLocals } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.ts b/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.ts index b769ba64b1b..3d009b60d09 100644 --- a/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.ts +++ b/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.ts @@ -1,5 +1,6 @@ import { assert } from '@ember/debug'; -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import calculateLocationDisplay from '../system/calculate-location-display'; import type { EmberASTPluginEnvironment } from '../types'; diff --git a/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.ts b/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.ts index bf3ee5b993d..0ef3f5a6740 100644 --- a/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.ts +++ b/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.ts @@ -1,4 +1,5 @@ -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import type { EmberASTPluginEnvironment } from '../types'; import { isPath, trackLocals } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/transform-action-syntax.ts b/packages/@ember/template-compiler/lib/plugins/transform-action-syntax.ts index d606378f2ec..6598fa17ffc 100644 --- a/packages/@ember/template-compiler/lib/plugins/transform-action-syntax.ts +++ b/packages/@ember/template-compiler/lib/plugins/transform-action-syntax.ts @@ -1,4 +1,5 @@ -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import type { Builders, EmberASTPluginEnvironment } from '../types'; import { isPath, trackLocals } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/transform-each-in-into-each.ts b/packages/@ember/template-compiler/lib/plugins/transform-each-in-into-each.ts index 895721210f2..7660b0cba0d 100644 --- a/packages/@ember/template-compiler/lib/plugins/transform-each-in-into-each.ts +++ b/packages/@ember/template-compiler/lib/plugins/transform-each-in-into-each.ts @@ -1,4 +1,5 @@ -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import type { EmberASTPluginEnvironment } from '../types'; import { isPath } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.ts b/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.ts index 6465a1c33c8..5e235be19ee 100644 --- a/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.ts +++ b/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.ts @@ -1,4 +1,5 @@ -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import { assert } from '@ember/debug'; import type { EmberASTPluginEnvironment } from '../types'; import { isPath, trackLocals } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/transform-in-element.ts b/packages/@ember/template-compiler/lib/plugins/transform-in-element.ts index 2adeb1c12c8..87c739728f5 100644 --- a/packages/@ember/template-compiler/lib/plugins/transform-in-element.ts +++ b/packages/@ember/template-compiler/lib/plugins/transform-in-element.ts @@ -1,5 +1,6 @@ import { assert } from '@ember/debug'; -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import type { EmberASTPluginEnvironment } from '../types'; import { isPath } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.ts b/packages/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.ts index d576592a37c..09aa6f3cd2b 100644 --- a/packages/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.ts +++ b/packages/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.ts @@ -1,4 +1,5 @@ -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; export default function transformQuotedBindingsIntoJustBindings(/* env */): ASTPlugin { return { diff --git a/packages/@ember/template-compiler/lib/plugins/transform-resolutions.ts b/packages/@ember/template-compiler/lib/plugins/transform-resolutions.ts index 311a485d0e0..b8876271d06 100644 --- a/packages/@ember/template-compiler/lib/plugins/transform-resolutions.ts +++ b/packages/@ember/template-compiler/lib/plugins/transform-resolutions.ts @@ -1,7 +1,8 @@ import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import type { AST, ASTPlugin } from '@glimmer/syntax'; -import { print } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; +import print from '@glimmer/syntax/lib/generation/print'; import calculateLocationDisplay from '../system/calculate-location-display'; import type { EmberASTPluginEnvironment } from '../types'; import { isPath, isStringLiteral, trackLocals } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.ts b/packages/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.ts index 9a9f45b4a47..ac9bf4bd17a 100644 --- a/packages/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.ts +++ b/packages/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.ts @@ -1,4 +1,5 @@ -import type { AST, ASTPlugin } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; +import type { ASTPlugin } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import type { EmberASTPluginEnvironment } from '../types'; import { isPath, trackLocals } from './utils'; diff --git a/packages/@ember/template-compiler/lib/plugins/utils.ts b/packages/@ember/template-compiler/lib/plugins/utils.ts index 1a36792df41..2ae11def02c 100644 --- a/packages/@ember/template-compiler/lib/plugins/utils.ts +++ b/packages/@ember/template-compiler/lib/plugins/utils.ts @@ -1,4 +1,4 @@ -import type { AST } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; import type { EmberASTPluginEnvironment } from '../types'; export function isPath(node: AST.Node): node is AST.PathExpression { diff --git a/packages/@ember/template-compiler/lib/system/calculate-location-display.ts b/packages/@ember/template-compiler/lib/system/calculate-location-display.ts index 70d240cb729..8c247a90abe 100644 --- a/packages/@ember/template-compiler/lib/system/calculate-location-display.ts +++ b/packages/@ember/template-compiler/lib/system/calculate-location-display.ts @@ -1,4 +1,4 @@ -import type { AST } from '@glimmer/syntax'; +import type * as AST from '@glimmer/syntax/lib/v1/api'; export default function calculateLocationDisplay( moduleName: string | undefined, diff --git a/packages/@ember/template-compiler/lib/template.ts b/packages/@ember/template-compiler/lib/template.ts index c0304a8432f..425f00d6a56 100644 --- a/packages/@ember/template-compiler/lib/template.ts +++ b/packages/@ember/template-compiler/lib/template.ts @@ -1,8 +1,8 @@ import templateOnly, { type TemplateOnlyComponent } from '@ember/component/template-only'; -import { precompile as glimmerPrecompile } from '@glimmer/compiler'; +import { precompile as glimmerPrecompile } from '@glimmer/compiler/lib/compiler'; import type { SerializedTemplateWithLazyBlock } from '@glimmer/interfaces'; -import { setComponentTemplate } from '@glimmer/manager'; -import { templateFactory } from '@glimmer/opcode-compiler'; +import { setComponentTemplate } from '@glimmer/manager/lib/public/template'; +import templateFactory from '@glimmer/opcode-compiler/lib/template'; import compileOptions, { keywords, RUNTIME_KEYWORDS_NAME } from './compile-options'; import type { EmberPrecompileOptions } from './types'; diff --git a/packages/@ember/template-compiler/lib/types.ts b/packages/@ember/template-compiler/lib/types.ts index 10309ac8ab9..846e777da5e 100644 --- a/packages/@ember/template-compiler/lib/types.ts +++ b/packages/@ember/template-compiler/lib/types.ts @@ -1,10 +1,5 @@ -import type { - ASTPluginBuilder, - ASTPluginEnvironment, - builders, - PrecompileOptions, - PrecompileOptionsWithLexicalScope, -} from '@glimmer/syntax'; +import type { ASTPluginBuilder, ASTPluginEnvironment, PrecompileOptions, PrecompileOptionsWithLexicalScope } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; +import type builders from '@glimmer/syntax/lib/v1/public-builders'; export type Builders = typeof builders; diff --git a/packages/@ember/template-factory/index.ts b/packages/@ember/template-factory/index.ts index e05f7f33cf2..db5d30c6353 100644 --- a/packages/@ember/template-factory/index.ts +++ b/packages/@ember/template-factory/index.ts @@ -1 +1 @@ -export { templateFactory as createTemplateFactory } from '@glimmer/opcode-compiler'; +export { default as createTemplateFactory } from '@glimmer/opcode-compiler/lib/template'; diff --git a/packages/@ember/template/index.ts b/packages/@ember/template/index.ts index a177015c07b..5e1e7411e40 100644 --- a/packages/@ember/template/index.ts +++ b/packages/@ember/template/index.ts @@ -1,10 +1,3 @@ // NOTE: this intentionally *only* exports the *type* `SafeString`, not its // value, since it should not be constructed by users. -export { - isTrustedHTML, - trustHTML, - htmlSafe, - isHTMLSafe, - type SafeString, - type TrustedHTML, -} from '@ember/-internals/glimmer'; +export { isTrustedHTML, trustHTML, htmlSafe, isHTMLSafe, type SafeString, type TrustedHTML } from '@ember/-internals/glimmer/lib/utils/string'; diff --git a/packages/@ember/utils/lib/compare.ts b/packages/@ember/utils/lib/compare.ts index ed070317f29..26dae8d10ea 100644 --- a/packages/@ember/utils/lib/compare.ts +++ b/packages/@ember/utils/lib/compare.ts @@ -1,6 +1,6 @@ import type { TypeName } from './type-of'; import typeOf from './type-of'; -import { Comparable } from '@ember/-internals/runtime'; +import Comparable from '@ember/-internals/runtime/lib/mixins/comparable'; import { assert } from '@ember/debug'; const TYPE_ORDER: Record = { diff --git a/packages/@ember/utils/lib/is_empty.ts b/packages/@ember/utils/lib/is_empty.ts index 9bc46e82c08..bf58995e70b 100644 --- a/packages/@ember/utils/lib/is_empty.ts +++ b/packages/@ember/utils/lib/is_empty.ts @@ -1,5 +1,5 @@ -import { get } from '@ember/object'; -import { hasUnknownProperty } from '@ember/-internals/metal'; +import { get } from '@ember/-internals/metal/lib/property_get'; +import { hasUnknownProperty } from '@ember/-internals/metal/lib/property_get'; /** @module @ember/utils */ diff --git a/packages/@glimmer/compiler/lib/builder/builder-interface.ts b/packages/@glimmer/compiler/lib/builder/builder-interface.ts index 46180e61a1b..566d719ed77 100644 --- a/packages/@glimmer/compiler/lib/builder/builder-interface.ts +++ b/packages/@glimmer/compiler/lib/builder/builder-interface.ts @@ -1,41 +1,10 @@ -import type { VariableKind } from '@glimmer/constants'; +import type { VariableKind } from '@glimmer/constants/lib/builder-constants'; import type { Dict, DictValue, Nullable, PresentArray } from '@glimmer/interfaces'; -import { - APPEND_EXPR_HEAD, - APPEND_PATH_HEAD, - ARG_VAR, - BLOCK_HEAD, - BLOCK_VAR, - BUILDER_APPEND, - BUILDER_COMMENT, - BUILDER_CONCAT, - BUILDER_DYNAMIC_COMPONENT, - BUILDER_GET, - BUILDER_HAS_BLOCK, - BUILDER_HAS_BLOCK_PARAMS, - BUILDER_LITERAL, - BUILDER_MODIFIER, - CALL_EXPR, - CALL_HEAD, - COMMENT_HEAD, - CONCAT_EXPR, - DYNAMIC_COMPONENT_HEAD, - ELEMENT_HEAD, - FREE_VAR, - GET_PATH_EXPR, - GET_VAR_EXPR, - HAS_BLOCK_EXPR, - HAS_BLOCK_PARAMS_EXPR, - KEYWORD_HEAD, - LITERAL_EXPR, - LITERAL_HEAD, - LOCAL_VAR, - MODIFIER_HEAD, - SPLAT_HEAD, - THIS_VAR, -} from '@glimmer/constants'; -import { expect, isPresentArray } from '@glimmer/debug-util'; -import { assertNever, dict } from '@glimmer/util'; +import { APPEND_EXPR_HEAD, APPEND_PATH_HEAD, ARG_VAR, BLOCK_HEAD, BLOCK_VAR, BUILDER_APPEND, BUILDER_COMMENT, BUILDER_CONCAT, BUILDER_DYNAMIC_COMPONENT, BUILDER_GET, BUILDER_HAS_BLOCK, BUILDER_HAS_BLOCK_PARAMS, BUILDER_LITERAL, BUILDER_MODIFIER, CALL_EXPR, CALL_HEAD, COMMENT_HEAD, CONCAT_EXPR, DYNAMIC_COMPONENT_HEAD, ELEMENT_HEAD, FREE_VAR, GET_PATH_EXPR, GET_VAR_EXPR, HAS_BLOCK_EXPR, HAS_BLOCK_PARAMS_EXPR, KEYWORD_HEAD, LITERAL_EXPR, LITERAL_HEAD, LOCAL_VAR, MODIFIER_HEAD, SPLAT_HEAD, THIS_VAR } from '@glimmer/constants/lib/builder-constants'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import { isPresentArray } from '@glimmer/debug-util/lib/present'; +import { dict } from '@glimmer/util/lib/collections'; +import { assertNever } from '@glimmer/util'; export type BuilderParams = BuilderExpression[]; export type BuilderHash = Nullable>; diff --git a/packages/@glimmer/compiler/lib/builder/builder.ts b/packages/@glimmer/compiler/lib/builder/builder.ts index 2eb32c0cf60..98fc937c043 100644 --- a/packages/@glimmer/compiler/lib/builder/builder.ts +++ b/packages/@glimmer/compiler/lib/builder/builder.ts @@ -1,4 +1,4 @@ -import type { VariableKind } from '@glimmer/constants'; +import type { VariableKind } from '@glimmer/constants/lib/builder-constants'; import type { AttrNamespace, Dict, @@ -8,39 +8,16 @@ import type { PresentArray, WireFormat, } from '@glimmer/interfaces'; -import { - APPEND_EXPR_HEAD, - APPEND_PATH_HEAD, - ARG_VAR, - BLOCK_HEAD, - BLOCK_VAR, - BUILDER_COMMENT, - BUILDER_LITERAL, - CALL_EXPR, - CALL_HEAD, - COMMENT_HEAD, - CONCAT_EXPR, - DYNAMIC_COMPONENT_HEAD, - ELEMENT_HEAD, - FREE_VAR, - GET_PATH_EXPR, - GET_VAR_EXPR, - HAS_BLOCK_EXPR, - HAS_BLOCK_PARAMS_EXPR, - KEYWORD_HEAD, - LITERAL_EXPR, - LITERAL_HEAD, - LOCAL_VAR, - MODIFIER_HEAD, - NS_XLINK, - NS_XML, - NS_XMLNS, - SPLAT_HEAD, - THIS_VAR, -} from '@glimmer/constants'; -import { exhausted, expect, isPresentArray, assert } from '@glimmer/debug-util'; -import { assertNever, dict, values } from '@glimmer/util'; -import { SexpOpcodes as Op, VariableResolutionContext } from '@glimmer/wire-format'; +import { APPEND_EXPR_HEAD, APPEND_PATH_HEAD, ARG_VAR, BLOCK_HEAD, BLOCK_VAR, BUILDER_COMMENT, BUILDER_LITERAL, CALL_EXPR, CALL_HEAD, COMMENT_HEAD, CONCAT_EXPR, DYNAMIC_COMPONENT_HEAD, ELEMENT_HEAD, FREE_VAR, GET_PATH_EXPR, GET_VAR_EXPR, HAS_BLOCK_EXPR, HAS_BLOCK_PARAMS_EXPR, KEYWORD_HEAD, LITERAL_EXPR, LITERAL_HEAD, LOCAL_VAR, MODIFIER_HEAD, SPLAT_HEAD, THIS_VAR } from '@glimmer/constants/lib/builder-constants'; +import { NS_XLINK, NS_XML, NS_XMLNS } from '@glimmer/constants/lib/dom'; +import { exhausted, expect } from '@glimmer/debug-util/lib/platform-utils'; +import { isPresentArray } from '@glimmer/debug-util/lib/present'; +import assert from '@glimmer/debug-util/lib/assert'; +import { dict } from '@glimmer/util/lib/collections'; +import { values } from '@glimmer/util/lib/object-utils'; +import { assertNever } from '@glimmer/util'; +import { opcodes as Op } from '@glimmer/wire-format/lib/opcodes'; +import { resolution as VariableResolutionContext } from '@glimmer/wire-format/lib/resolution'; import type { BuilderComment, diff --git a/packages/@glimmer/compiler/lib/compiler.ts b/packages/@glimmer/compiler/lib/compiler.ts index 8fbe1f95285..06609751bc4 100644 --- a/packages/@glimmer/compiler/lib/compiler.ts +++ b/packages/@glimmer/compiler/lib/compiler.ts @@ -4,13 +4,10 @@ import type { SerializedTemplateWithLazyBlock, TemplateJavascript, } from '@glimmer/interfaces'; -import type { - PrecompileOptions, - PrecompileOptionsWithLexicalScope, - TemplateIdFn, -} from '@glimmer/syntax'; +import type { PrecompileOptions, PrecompileOptionsWithLexicalScope, TemplateIdFn } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import { LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; -import { normalize, src } from '@glimmer/syntax'; +import * as src from '@glimmer/syntax/lib/source/api'; +import { normalize } from '@glimmer/syntax/lib/v2/normalize'; import { LOCAL_LOGGER } from '@glimmer/util'; import pass0 from './passes/1-normalization/index'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/context.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/context.ts index 8bf73e83944..3cfe0c6ebd5 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/context.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/context.ts @@ -1,4 +1,5 @@ -import type { ASTv2, SymbolTable } from '@glimmer/syntax'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import type { SymbolTable } from '@glimmer/syntax/lib/symbol-table'; import type { OptionalList } from '../../shared/list'; import type { Result } from '../../shared/result'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/index.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/index.ts index 820942ddced..395bcbe8143 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/index.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/index.ts @@ -1,5 +1,9 @@ -import type { ASTv2, src } from '@glimmer/syntax'; -import { DebugLogger, frag, fragment, valueFragment } from '@glimmer/debug'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import type * as src from '@glimmer/syntax/lib/source/api'; +import * as fragment from '@glimmer/debug/lib/render/combinators'; +import { DebugLogger } from '@glimmer/debug/lib/render/logger'; +import { frag } from '@glimmer/debug/lib/render/fragment'; +import { value as valueFragment } from '@glimmer/debug/lib/render/basic'; import { LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; import { LOCAL_LOGGER } from '@glimmer/util'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/append.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/append.ts index 14023c4a624..5c3b33ea21a 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/append.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/append.ts @@ -1,5 +1,7 @@ -import { CURRIED_COMPONENT, CURRIED_HELPER } from '@glimmer/constants'; -import { ASTv2, generateSyntaxError, src } from '@glimmer/syntax'; +import { CURRIED_COMPONENT, CURRIED_HELPER } from '@glimmer/constants/lib/curried'; +import * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import * as src from '@glimmer/syntax/lib/source/api'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; import type { NormalizationState } from '../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/block.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/block.ts index fabb323dd70..7f0c1b5c12d 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/block.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/block.ts @@ -1,6 +1,6 @@ -import type { ASTv2 } from '@glimmer/syntax'; -import { CURRIED_COMPONENT } from '@glimmer/constants'; -import { generateSyntaxError } from '@glimmer/syntax'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import { CURRIED_COMPONENT } from '@glimmer/constants/lib/curried'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; import type { NormalizationState } from '../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/call.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/call.ts index 9681c5ab292..e7b9c9a9b67 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/call.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/call.ts @@ -1,4 +1,4 @@ -import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants'; +import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; import { keywords } from './impl'; import { curryKeyword } from './utils/curry'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.ts index 327d613aa8c..a469aa034d5 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.ts @@ -1,6 +1,8 @@ -import type { ASTv2, KeywordType } from '@glimmer/syntax'; -import { exhausted } from '@glimmer/debug-util'; -import { generateSyntaxError, isKeyword, KEYWORDS_TYPES } from '@glimmer/syntax'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import type { KeywordType } from '@glimmer/syntax/lib/keywords'; +import { exhausted } from '@glimmer/debug-util/lib/platform-utils'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; +import { isKeyword, KEYWORDS_TYPES } from '@glimmer/syntax/lib/keywords'; import type { Result } from '../../../shared/result'; import type { NormalizationState } from '../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.ts index be04b72cea2..7dfec72d327 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.ts @@ -1,6 +1,7 @@ import type { CurriedType } from '@glimmer/interfaces'; -import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants'; -import { ASTv2, generateSyntaxError } from '@glimmer/syntax'; +import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; +import * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; import type { NormalizationState } from '../../context'; import type { KeywordDelegate } from '../impl'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.ts index bcc4ac37871..375e25c4bf3 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.ts @@ -1,5 +1,5 @@ -import type { ASTv2 } from '@glimmer/syntax'; -import { generateSyntaxError } from '@glimmer/syntax'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; import type { Result } from '../../../../shared/result'; import type { NormalizationState } from '../../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.ts index 1146e10a5a8..6d416daf61e 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.ts @@ -1,4 +1,6 @@ -import { ASTv2, generateSyntaxError, SourceSlice } from '@glimmer/syntax'; +import * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; +import { SourceSlice } from '@glimmer/syntax/lib/source/slice'; import type { Result } from '../../../../shared/result'; import type { NormalizationState } from '../../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.ts index 756d554cebe..7c4122db97e 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.ts @@ -1,5 +1,5 @@ -import type { ASTv2 } from '@glimmer/syntax'; -import { generateSyntaxError } from '@glimmer/syntax'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; import type { NormalizationState } from '../../context'; import type { KeywordDelegate } from '../impl'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.ts index 40b0a480f35..021e5ce01db 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.ts @@ -1,5 +1,5 @@ -import type { ASTv2 } from '@glimmer/syntax'; -import { generateSyntaxError } from '@glimmer/syntax'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; import type { Result } from '../../../../shared/result'; import type { NormalizationState } from '../../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.ts index 9baa4b9113c..0d9aebab384 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.ts @@ -1,4 +1,6 @@ -import { ASTv2, maybeLoc, src } from '@glimmer/syntax'; +import * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import * as src from '@glimmer/syntax/lib/source/api'; +import { maybeLoc } from '@glimmer/syntax/lib/source/span-list'; import type { NormalizationState } from '../../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.ts index 1bfdcdeb934..c774413859c 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.ts @@ -1,4 +1,4 @@ -import type { ASTv2 } from '@glimmer/syntax'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; import type { Result } from '../../../../shared/result'; import type { NormalizationState } from '../../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.ts index 35d7455d134..0987b12a1d6 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.ts @@ -1,5 +1,6 @@ -import type { ASTv2, SourceSlice } from '@glimmer/syntax'; -import { generateSyntaxError } from '@glimmer/syntax'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import type { SourceSlice } from '@glimmer/syntax/lib/source/slice'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; import type { Result } from '../../../../shared/result'; import type { Classified, ClassifiedElement, PreparedArgs } from './classified'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.ts index 3ba59f0d641..665ebd590ca 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.ts @@ -1,6 +1,7 @@ import type { PresentArray } from '@glimmer/interfaces'; -import { getLast, isPresentArray } from '@glimmer/debug-util'; -import { ASTv2, KEYWORDS_TYPES } from '@glimmer/syntax'; +import { getLast, isPresentArray } from '@glimmer/debug-util/lib/present'; +import * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import { KEYWORDS_TYPES } from '@glimmer/syntax/lib/keywords'; import type { AnyOptionalList, PresentList } from '../../../shared/list'; import type { NormalizationState } from '../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.ts index 4968eec669b..1660cacf315 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.ts @@ -1,4 +1,4 @@ -import { ASTv2 } from '@glimmer/syntax'; +import * as ASTv2 from '@glimmer/syntax/lib/v2/api'; import type { NormalizationState } from '../context'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.ts index 2aa68ff2ded..2d30ed042c6 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.ts @@ -1,6 +1,7 @@ -import type { HasSourceSpan } from '@glimmer/syntax'; -import { CURRIED_COMPONENT, CURRIED_HELPER } from '@glimmer/constants'; -import { generateSyntaxError, loc } from '@glimmer/syntax'; +import type { HasSourceSpan } from '@glimmer/syntax/lib/source/span-list'; +import { CURRIED_COMPONENT, CURRIED_HELPER } from '@glimmer/constants/lib/curried'; +import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; +import { loc } from '@glimmer/syntax/lib/source/span-list'; import type { Result } from '../../../shared/result'; import type * as mir from '../../2-encoding/mir'; diff --git a/packages/@glimmer/compiler/lib/passes/2-encoding/content.ts b/packages/@glimmer/compiler/lib/passes/2-encoding/content.ts index eeb970bcb16..cdd4c6ad0d1 100644 --- a/packages/@glimmer/compiler/lib/passes/2-encoding/content.ts +++ b/packages/@glimmer/compiler/lib/passes/2-encoding/content.ts @@ -9,10 +9,10 @@ import type { WellKnownAttrName, WireFormat, } from '@glimmer/interfaces'; -import { exhausted } from '@glimmer/debug-util'; +import { exhausted } from '@glimmer/debug-util/lib/platform-utils'; import { LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; import { LOCAL_LOGGER } from '@glimmer/util'; -import { SexpOpcodes } from '@glimmer/wire-format'; +import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; import type { OptionalList } from '../../shared/list'; import type * as mir from './mir'; diff --git a/packages/@glimmer/compiler/lib/passes/2-encoding/expressions.ts b/packages/@glimmer/compiler/lib/passes/2-encoding/expressions.ts index ccd22ff78d8..fc1e8f80bf2 100644 --- a/packages/@glimmer/compiler/lib/passes/2-encoding/expressions.ts +++ b/packages/@glimmer/compiler/lib/passes/2-encoding/expressions.ts @@ -1,7 +1,8 @@ import type { PresentArray, WireFormat } from '@glimmer/interfaces'; -import type { ASTv2 } from '@glimmer/syntax'; -import { assertPresentArray, isPresentArray, assert, mapPresentArray } from '@glimmer/debug-util'; -import { SexpOpcodes } from '@glimmer/wire-format'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import { assertPresentArray, isPresentArray, mapPresentArray } from '@glimmer/debug-util/lib/present'; +import assert from '@glimmer/debug-util/lib/assert'; +import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; import type * as mir from './mir'; diff --git a/packages/@glimmer/compiler/lib/passes/2-encoding/mir.ts b/packages/@glimmer/compiler/lib/passes/2-encoding/mir.ts index cb10e013e8b..085a35a945d 100644 --- a/packages/@glimmer/compiler/lib/passes/2-encoding/mir.ts +++ b/packages/@glimmer/compiler/lib/passes/2-encoding/mir.ts @@ -1,12 +1,8 @@ import type { CurriedType, PresentArray } from '@glimmer/interfaces'; -import type { - ASTv2, - BlockSymbolTable, - ProgramSymbolTable, - SourceSlice, - SymbolTable, -} from '@glimmer/syntax'; -import { node } from '@glimmer/syntax'; +import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; +import type { BlockSymbolTable, ProgramSymbolTable, SymbolTable } from '@glimmer/syntax/lib/symbol-table'; +import type { SourceSlice } from '@glimmer/syntax/lib/source/slice'; +import { node } from '@glimmer/syntax/lib/v2/objects/node'; import type { AnyOptionalList, OptionalList, PresentList } from '../../shared/list'; diff --git a/packages/@glimmer/compiler/lib/shared/list.ts b/packages/@glimmer/compiler/lib/shared/list.ts index 15b48a2aaf0..75e1fe03e60 100644 --- a/packages/@glimmer/compiler/lib/shared/list.ts +++ b/packages/@glimmer/compiler/lib/shared/list.ts @@ -1,5 +1,5 @@ import type { Nullable, PresentArray } from '@glimmer/interfaces'; -import { isPresentArray, mapPresentArray } from '@glimmer/debug-util'; +import { isPresentArray, mapPresentArray } from '@glimmer/debug-util/lib/present'; export interface OptionalList { map(callback: (input: T) => U): MapList>; diff --git a/packages/@glimmer/compiler/lib/shared/result.ts b/packages/@glimmer/compiler/lib/shared/result.ts index bd551ae3764..cd4134d80e0 100644 --- a/packages/@glimmer/compiler/lib/shared/result.ts +++ b/packages/@glimmer/compiler/lib/shared/result.ts @@ -1,4 +1,4 @@ -import type { GlimmerSyntaxError } from '@glimmer/syntax'; +import type { GlimmerSyntaxError } from '@glimmer/syntax/lib/syntax-error'; import type { AnyOptionalList } from './list'; diff --git a/packages/@glimmer/compiler/lib/utils.ts b/packages/@glimmer/compiler/lib/utils.ts index 425cd0dd548..ff3be5b3b0f 100644 --- a/packages/@glimmer/compiler/lib/utils.ts +++ b/packages/@glimmer/compiler/lib/utils.ts @@ -1,5 +1,5 @@ import type { Dict, WellKnownAttrName, WellKnownTagName } from '@glimmer/interfaces'; -import { WellKnownAttrNames, WellKnownTagNames } from '@glimmer/wire-format'; +import { WellKnownAttrNames, WellKnownTagNames } from '@glimmer/wire-format/lib/well-known'; // There is a small whitelist of namespaced attributes specially // enumerated in diff --git a/packages/@glimmer/compiler/lib/wire-format-debug.ts b/packages/@glimmer/compiler/lib/wire-format-debug.ts index ddd02880ca7..442a89199b9 100644 --- a/packages/@glimmer/compiler/lib/wire-format-debug.ts +++ b/packages/@glimmer/compiler/lib/wire-format-debug.ts @@ -5,10 +5,10 @@ import type { SerializedTemplateBlock, WireFormat, } from '@glimmer/interfaces'; -import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants'; -import { exhausted } from '@glimmer/debug-util'; -import { dict } from '@glimmer/util'; -import { SexpOpcodes as Op } from '@glimmer/wire-format'; +import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; +import { exhausted } from '@glimmer/debug-util/lib/platform-utils'; +import { dict } from '@glimmer/util/lib/collections'; +import { opcodes as Op } from '@glimmer/wire-format/lib/opcodes'; import { inflateAttrName, inflateTagName } from './utils'; diff --git a/packages/@glimmer/constants/lib/immediate.ts b/packages/@glimmer/constants/lib/immediate.ts index e45a3e9aae0..1c582973210 100644 --- a/packages/@glimmer/constants/lib/immediate.ts +++ b/packages/@glimmer/constants/lib/immediate.ts @@ -1,4 +1,4 @@ -import { assert } from '@glimmer/debug-util'; +import assert from '@glimmer/debug-util/lib/assert'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; /* diff --git a/packages/@glimmer/debug/lib/debug.ts b/packages/@glimmer/debug/lib/debug.ts index 2956a721990..b30423f8fc1 100644 --- a/packages/@glimmer/debug/lib/debug.ts +++ b/packages/@glimmer/debug/lib/debug.ts @@ -7,9 +7,10 @@ import type { Program, RuntimeOp, } from '@glimmer/interfaces'; -import { exhausted, expect, unreachable } from '@glimmer/debug-util'; +import { exhausted, expect, unreachable } from '@glimmer/debug-util/lib/platform-utils'; import { LOCAL_DEBUG, LOCAL_SUBTLE_LOGGING, LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; -import { enumerate, LOCAL_LOGGER } from '@glimmer/util'; +import { enumerate } from '@glimmer/util/lib/array-utils'; +import { LOCAL_LOGGER } from '@glimmer/util'; import type { Primitive, RegisterName } from './dism/dism'; import type { NormalizedOperand, OperandType, ShorthandOperand } from './dism/operand-types'; diff --git a/packages/@glimmer/debug/lib/decoders.ts b/packages/@glimmer/debug/lib/decoders.ts index 1bbe9d0a9b2..c6449a15222 100644 --- a/packages/@glimmer/debug/lib/decoders.ts +++ b/packages/@glimmer/debug/lib/decoders.ts @@ -1,12 +1,7 @@ import type { ProgramConstants } from '@glimmer/interfaces'; -import { - CURRIED_COMPONENT, - CURRIED_HELPER, - CURRIED_MODIFIER, - decodeHandle, - decodeImmediate, -} from '@glimmer/constants'; -import { $fp, $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0 } from '@glimmer/vm'; +import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; +import { decodeHandle, decodeImmediate } from '@glimmer/constants/lib/immediate'; +import { $fp, $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0 } from '@glimmer/vm/lib/registers'; import type { Primitive, RegisterName } from './dism/dism'; diff --git a/packages/@glimmer/debug/lib/dism/opcode.ts b/packages/@glimmer/debug/lib/dism/opcode.ts index bcffde758d0..0d1f678fd1d 100644 --- a/packages/@glimmer/debug/lib/dism/opcode.ts +++ b/packages/@glimmer/debug/lib/dism/opcode.ts @@ -1,4 +1,4 @@ -import type { ClassifiedLocalDebug, ClassifiedLocalDebugFor } from '@glimmer/debug-util'; +import type { ClassifiedLocalDebug, ClassifiedLocalDebugFor } from '@glimmer/debug-util/lib/debug-brand'; import type { AppendingBlock, BlockSymbolNames, @@ -8,8 +8,9 @@ import type { PositionalArguments, VMArguments, } from '@glimmer/interfaces'; -import { dev, exhausted, getLocalDebugType } from '@glimmer/debug-util'; -import { isIndexable } from '@glimmer/util'; +import { dev, exhausted } from '@glimmer/debug-util/lib/platform-utils'; +import { getLocalDebugType } from '@glimmer/debug-util/lib/debug-brand'; +import { isIndexable } from '@glimmer/util/lib/collections'; import type { DisassembledOperand } from '../debug'; import type { ValueRefOptions } from '../render/basic'; diff --git a/packages/@glimmer/debug/lib/dism/operands.ts b/packages/@glimmer/debug/lib/dism/operands.ts index 1f0a3b651cf..9d7a3c6e4cb 100644 --- a/packages/@glimmer/debug/lib/dism/operands.ts +++ b/packages/@glimmer/debug/lib/dism/operands.ts @@ -1,5 +1,5 @@ import type { BlockMetadata, ProgramConstants, ProgramHeap } from '@glimmer/interfaces'; -import { decodeHandle } from '@glimmer/constants'; +import { decodeHandle } from '@glimmer/constants/lib/immediate'; import type { RawDisassembledOperand } from '../debug'; import type { diff --git a/packages/@glimmer/debug/lib/opcode-metadata.ts b/packages/@glimmer/debug/lib/opcode-metadata.ts index deeb0ff6bee..8d54a3bd55f 100644 --- a/packages/@glimmer/debug/lib/opcode-metadata.ts +++ b/packages/@glimmer/debug/lib/opcode-metadata.ts @@ -1,105 +1,8 @@ /* This file is generated by build/debug.js */ import type { Nullable, VmMachineOp, VmOp } from '@glimmer/interfaces'; -import { - isMachineOp, - VM_APPEND_DOCUMENT_FRAGMENT_OP, - VM_APPEND_HTML_OP, - VM_APPEND_NODE_OP, - VM_APPEND_SAFE_HTML_OP, - VM_APPEND_TEXT_OP, - VM_ASSERT_SAME_OP, - VM_BEGIN_COMPONENT_TRANSACTION_OP, - VM_BIND_DYNAMIC_SCOPE_OP, - VM_CAPTURE_ARGS_OP, - VM_CHILD_SCOPE_OP, - VM_CLOSE_ELEMENT_OP, - VM_COMMENT_OP, - VM_COMMIT_COMPONENT_TRANSACTION_OP, - VM_COMPILE_BLOCK_OP, - VM_COMPONENT_ATTR_OP, - VM_CONCAT_OP, - VM_CONSTANT_OP, - VM_CONSTANT_REFERENCE_OP, - VM_CONTENT_TYPE_OP, - VM_CREATE_COMPONENT_OP, - VM_CURRY_OP, - VM_DEBUGGER_OP, - VM_DID_CREATE_ELEMENT_OP, - VM_DID_RENDER_LAYOUT_OP, - VM_DUP_OP, - VM_DYNAMIC_ATTR_OP, - VM_DYNAMIC_CONTENT_TYPE_OP, - VM_DYNAMIC_HELPER_OP, - VM_ENTER_LIST_OP, - VM_ENTER_OP, - VM_EXIT_LIST_OP, - VM_EXIT_OP, - VM_FETCH_OP, - VM_FLUSH_ELEMENT_OP, - VM_GET_BLOCK_OP, - VM_GET_COMPONENT_LAYOUT_OP, - VM_GET_COMPONENT_SELF_OP, - VM_GET_COMPONENT_TAG_NAME_OP, - VM_GET_PROPERTY_OP, - VM_GET_VARIABLE_OP, - VM_HAS_BLOCK_OP, - VM_HAS_BLOCK_PARAMS_OP, - VM_HELPER_OP, - VM_IF_INLINE_OP, - VM_INVOKE_COMPONENT_LAYOUT_OP, - VM_INVOKE_STATIC_OP, - VM_INVOKE_VIRTUAL_OP, - VM_INVOKE_YIELD_OP, - VM_ITERATE_OP, - VM_JUMP_EQ_OP, - VM_JUMP_IF_OP, - VM_JUMP_OP, - VM_JUMP_UNLESS_OP, - VM_LOAD_OP, - VM_MACHINE_SIZE, - VM_MAIN_OP, - VM_MODIFIER_OP, - VM_NOT_OP, - VM_OPEN_DYNAMIC_ELEMENT_OP, - VM_OPEN_ELEMENT_OP, - VM_POP_ARGS_OP, - VM_POP_DYNAMIC_SCOPE_OP, - VM_POP_FRAME_OP, - VM_POP_OP, - VM_POP_REMOTE_ELEMENT_OP, - VM_POP_SCOPE_OP, - VM_POPULATE_LAYOUT_OP, - VM_PREPARE_ARGS_OP, - VM_PRIMITIVE_OP, - VM_PRIMITIVE_REFERENCE_OP, - VM_PUSH_ARGS_OP, - VM_PUSH_BLOCK_SCOPE_OP, - VM_PUSH_COMPONENT_DEFINITION_OP, - VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, - VM_PUSH_DYNAMIC_SCOPE_OP, - VM_PUSH_EMPTY_ARGS_OP, - VM_PUSH_FRAME_OP, - VM_PUSH_REMOTE_ELEMENT_OP, - VM_PUSH_SYMBOL_TABLE_OP, - VM_PUT_COMPONENT_OPERATIONS_OP, - VM_REGISTER_COMPONENT_DESTRUCTOR_OP, - VM_REIFY_U32_OP, - VM_RESOLVE_DYNAMIC_COMPONENT_OP, - VM_RETURN_OP, - VM_RETURN_TO_OP, - VM_ROOT_SCOPE_OP, - VM_SET_BLOCK_OP, - VM_SET_BLOCKS_OP, - VM_SET_NAMED_VARIABLES_OP, - VM_SET_VARIABLE_OP, - VM_SPREAD_BLOCK_OP, - VM_STATIC_ATTR_OP, - VM_SYSCALL_SIZE, - VM_TEXT_OP, - VM_TO_BOOLEAN_OP, - VM_VIRTUAL_ROOT_SCOPE_OP, -} from '@glimmer/constants'; +import { isMachineOp, VM_INVOKE_STATIC_OP, VM_INVOKE_VIRTUAL_OP, VM_JUMP_OP, VM_MACHINE_SIZE, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP, VM_RETURN_OP, VM_RETURN_TO_OP } from '@glimmer/constants/lib/vm-ops'; +import { VM_APPEND_DOCUMENT_FRAGMENT_OP, VM_APPEND_HTML_OP, VM_APPEND_NODE_OP, VM_APPEND_SAFE_HTML_OP, VM_APPEND_TEXT_OP, VM_ASSERT_SAME_OP, VM_BEGIN_COMPONENT_TRANSACTION_OP, VM_BIND_DYNAMIC_SCOPE_OP, VM_CAPTURE_ARGS_OP, VM_CHILD_SCOPE_OP, VM_CLOSE_ELEMENT_OP, VM_COMMENT_OP, VM_COMMIT_COMPONENT_TRANSACTION_OP, VM_COMPILE_BLOCK_OP, VM_COMPONENT_ATTR_OP, VM_CONCAT_OP, VM_CONSTANT_OP, VM_CONSTANT_REFERENCE_OP, VM_CONTENT_TYPE_OP, VM_CREATE_COMPONENT_OP, VM_CURRY_OP, VM_DEBUGGER_OP, VM_DID_CREATE_ELEMENT_OP, VM_DID_RENDER_LAYOUT_OP, VM_DUP_OP, VM_DYNAMIC_ATTR_OP, VM_DYNAMIC_CONTENT_TYPE_OP, VM_DYNAMIC_HELPER_OP, VM_ENTER_LIST_OP, VM_ENTER_OP, VM_EXIT_LIST_OP, VM_EXIT_OP, VM_FETCH_OP, VM_FLUSH_ELEMENT_OP, VM_GET_BLOCK_OP, VM_GET_COMPONENT_LAYOUT_OP, VM_GET_COMPONENT_SELF_OP, VM_GET_COMPONENT_TAG_NAME_OP, VM_GET_PROPERTY_OP, VM_GET_VARIABLE_OP, VM_HAS_BLOCK_OP, VM_HAS_BLOCK_PARAMS_OP, VM_HELPER_OP, VM_IF_INLINE_OP, VM_INVOKE_COMPONENT_LAYOUT_OP, VM_INVOKE_YIELD_OP, VM_ITERATE_OP, VM_JUMP_EQ_OP, VM_JUMP_IF_OP, VM_JUMP_UNLESS_OP, VM_LOAD_OP, VM_MAIN_OP, VM_MODIFIER_OP, VM_NOT_OP, VM_OPEN_DYNAMIC_ELEMENT_OP, VM_OPEN_ELEMENT_OP, VM_POP_ARGS_OP, VM_POP_DYNAMIC_SCOPE_OP, VM_POP_OP, VM_POP_REMOTE_ELEMENT_OP, VM_POP_SCOPE_OP, VM_POPULATE_LAYOUT_OP, VM_PREPARE_ARGS_OP, VM_PRIMITIVE_OP, VM_PRIMITIVE_REFERENCE_OP, VM_PUSH_ARGS_OP, VM_PUSH_BLOCK_SCOPE_OP, VM_PUSH_COMPONENT_DEFINITION_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_PUSH_DYNAMIC_SCOPE_OP, VM_PUSH_EMPTY_ARGS_OP, VM_PUSH_REMOTE_ELEMENT_OP, VM_PUSH_SYMBOL_TABLE_OP, VM_PUT_COMPONENT_OPERATIONS_OP, VM_REGISTER_COMPONENT_DESTRUCTOR_OP, VM_REIFY_U32_OP, VM_RESOLVE_DYNAMIC_COMPONENT_OP, VM_ROOT_SCOPE_OP, VM_SET_BLOCK_OP, VM_SET_BLOCKS_OP, VM_SET_NAMED_VARIABLES_OP, VM_SET_VARIABLE_OP, VM_SPREAD_BLOCK_OP, VM_STATIC_ATTR_OP, VM_SYSCALL_SIZE, VM_TEXT_OP, VM_TO_BOOLEAN_OP, VM_VIRTUAL_ROOT_SCOPE_OP } from '@glimmer/constants/lib/syscall-ops'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; import type { NormalizedMetadata } from './metadata'; diff --git a/packages/@glimmer/debug/lib/render/basic.ts b/packages/@glimmer/debug/lib/render/basic.ts index 68d75020c44..545d09dfab1 100644 --- a/packages/@glimmer/debug/lib/render/basic.ts +++ b/packages/@glimmer/debug/lib/render/basic.ts @@ -1,7 +1,7 @@ import type { CompilableTemplate, Optional, Reference, SimpleNode } from '@glimmer/interfaces'; -import { IS_COMPILABLE_TEMPLATE } from '@glimmer/constants'; -import { REFERENCE } from '@glimmer/reference'; -import { isIndexable } from '@glimmer/util'; +import type { IS_COMPILABLE_TEMPLATE } from '@glimmer/constants/lib/brand'; +import { REFERENCE } from '@glimmer/reference/lib/reference'; +import { isIndexable } from '@glimmer/util/lib/collections'; import type { IntoFragment } from './fragment'; import type { LeafFragment, ValueFragment } from './fragment-type'; diff --git a/packages/@glimmer/debug/lib/render/fragment.ts b/packages/@glimmer/debug/lib/render/fragment.ts index b7f3271b5b4..48428455241 100644 --- a/packages/@glimmer/debug/lib/render/fragment.ts +++ b/packages/@glimmer/debug/lib/render/fragment.ts @@ -1,5 +1,5 @@ import type { AnyFn, SimpleNode } from '@glimmer/interfaces'; -import { assertNever } from '@glimmer/debug-util'; +import { assertNever } from '@glimmer/debug-util/lib/assert'; import type { Loggable } from './entry'; import type { IntoFormat } from './format'; diff --git a/packages/@glimmer/debug/lib/render/ref.ts b/packages/@glimmer/debug/lib/render/ref.ts index 54dec98ca69..d70ec922f0a 100644 --- a/packages/@glimmer/debug/lib/render/ref.ts +++ b/packages/@glimmer/debug/lib/render/ref.ts @@ -1,5 +1,5 @@ import type { Reference } from '@glimmer/interfaces'; -import { valueForRef } from '@glimmer/reference'; +import { valueForRef } from '@glimmer/reference/lib/reference'; import type { Fragment } from './fragment'; diff --git a/packages/@glimmer/debug/lib/stack-check.ts b/packages/@glimmer/debug/lib/stack-check.ts index 7c51343907b..8889b951c66 100644 --- a/packages/@glimmer/debug/lib/stack-check.ts +++ b/packages/@glimmer/debug/lib/stack-check.ts @@ -9,9 +9,9 @@ import type { SimpleElement, SimpleNode, } from '@glimmer/interfaces'; -import type { MachineRegister, Register, SyscallRegister } from '@glimmer/vm'; +import type { MachineRegister, Register, SyscallRegister } from '@glimmer/vm/lib/registers'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; -import { $fp, $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0 } from '@glimmer/vm'; +import { $fp, $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0 } from '@glimmer/vm/lib/registers'; import type { Primitive } from './dism/dism'; diff --git a/packages/@glimmer/debug/lib/vm/snapshot.ts b/packages/@glimmer/debug/lib/vm/snapshot.ts index 0f446709066..715ed5ad42c 100644 --- a/packages/@glimmer/debug/lib/vm/snapshot.ts +++ b/packages/@glimmer/debug/lib/vm/snapshot.ts @@ -8,10 +8,10 @@ import type { VmMachineOp, VmOp, } from '@glimmer/interfaces'; -import { exhausted } from '@glimmer/debug-util'; +import { exhausted } from '@glimmer/debug-util/lib/platform-utils'; import { LOCAL_SUBTLE_LOGGING } from '@glimmer/local-debug-flags'; -import { zipArrays, zipTuples } from '@glimmer/util'; -import { $fp, $pc } from '@glimmer/vm'; +import { zipArrays, zipTuples } from '@glimmer/util/lib/array-utils'; +import { $fp, $pc } from '@glimmer/vm/lib/registers'; import type { Fragment } from '../render/fragment'; diff --git a/packages/@glimmer/destroyable/index.ts b/packages/@glimmer/destroyable/index.ts index 5f9c6293614..53f8493c016 100644 --- a/packages/@glimmer/destroyable/index.ts +++ b/packages/@glimmer/destroyable/index.ts @@ -1,6 +1,6 @@ import { DEBUG } from '@glimmer/env'; import type { Destroyable, Destructor } from '@glimmer/interfaces'; -import { debugToString } from '@glimmer/debug-util'; +import debugToString from '@glimmer/debug-util/lib/debug-to-string'; import { scheduleDestroy, scheduleDestroyed } from '@glimmer/global-context'; const LIVE_STATE = 0; diff --git a/packages/@glimmer/encoder/lib/encoder.ts b/packages/@glimmer/encoder/lib/encoder.ts index ce9d19be6eb..6f0d948f959 100644 --- a/packages/@glimmer/encoder/lib/encoder.ts +++ b/packages/@glimmer/encoder/lib/encoder.ts @@ -8,7 +8,7 @@ import type { VmMachineOp, VmOp, } from '@glimmer/interfaces'; -import { ARG_SHIFT, MAX_SIZE, TYPE_SIZE } from '@glimmer/vm'; +import { ARG_SHIFT, MAX_SIZE, TYPE_SIZE } from '@glimmer/vm/lib/flags'; export class InstructionEncoderImpl implements InstructionEncoder { constructor(readonly buffer: CompilerBuffer) {} diff --git a/packages/@glimmer/manager/lib/internal/api.ts b/packages/@glimmer/manager/lib/internal/api.ts index 96a1daa7703..c5b5135e1ae 100644 --- a/packages/@glimmer/manager/lib/internal/api.ts +++ b/packages/@glimmer/manager/lib/internal/api.ts @@ -5,7 +5,7 @@ import type { InternalModifierManager, Owner, } from '@glimmer/interfaces'; -import { debugToString } from '@glimmer/debug-util'; +import debugToString from '@glimmer/debug-util/lib/debug-to-string'; import { debugAssert } from '@glimmer/global-context'; import { CustomHelperManager } from '../public/helper'; diff --git a/packages/@glimmer/manager/lib/public/component.ts b/packages/@glimmer/manager/lib/public/component.ts index f8f9be9b7a7..9ab0635c3dc 100644 --- a/packages/@glimmer/manager/lib/public/component.ts +++ b/packages/@glimmer/manager/lib/public/component.ts @@ -16,9 +16,9 @@ import type { Owner, VMArguments, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; import { registerDestructor } from '@glimmer/destroyable'; -import { createConstRef } from '@glimmer/reference'; +import { createConstRef } from '@glimmer/reference/lib/reference'; import type { ManagerFactory } from './api'; diff --git a/packages/@glimmer/manager/lib/public/helper.ts b/packages/@glimmer/manager/lib/public/helper.ts index 5413ce473bc..e94e75a87a8 100644 --- a/packages/@glimmer/manager/lib/public/helper.ts +++ b/packages/@glimmer/manager/lib/public/helper.ts @@ -12,7 +12,7 @@ import type { } from '@glimmer/interfaces'; import { associateDestroyableChild } from '@glimmer/destroyable'; import { debugAssert } from '@glimmer/global-context'; -import { createComputeRef, createConstRef, UNDEFINED_REFERENCE } from '@glimmer/reference'; +import { createComputeRef, createConstRef, UNDEFINED_REFERENCE } from '@glimmer/reference/lib/reference'; import type { ManagerFactory } from './index'; diff --git a/packages/@glimmer/manager/lib/public/modifier.ts b/packages/@glimmer/manager/lib/public/modifier.ts index ef5b74b5b08..84af7f9ee32 100644 --- a/packages/@glimmer/manager/lib/public/modifier.ts +++ b/packages/@glimmer/manager/lib/public/modifier.ts @@ -10,12 +10,13 @@ import type { SimpleElement, UpdatableTag, } from '@glimmer/interfaces'; -import { castToBrowser } from '@glimmer/debug-util'; +import { castToBrowser } from '@glimmer/debug-util/lib/simple-cast'; import { registerDestructor } from '@glimmer/destroyable'; import { debugAssert } from '@glimmer/global-context'; -import { valueForRef } from '@glimmer/reference'; -import { dict } from '@glimmer/util'; -import { createUpdatableTag, untrack } from '@glimmer/validator'; +import { valueForRef } from '@glimmer/reference/lib/reference'; +import { dict } from '@glimmer/util/lib/collections'; +import { createUpdatableTag } from '@glimmer/validator/lib/validators'; +import { untrack } from '@glimmer/validator/lib/tracking'; import type { ManagerFactory } from '.'; diff --git a/packages/@glimmer/manager/lib/public/template.ts b/packages/@glimmer/manager/lib/public/template.ts index 883a0f99b28..6b587264435 100644 --- a/packages/@glimmer/manager/lib/public/template.ts +++ b/packages/@glimmer/manager/lib/public/template.ts @@ -1,6 +1,6 @@ import { DEBUG } from '@glimmer/env'; import type { TemplateFactory } from '@glimmer/interfaces'; -import { debugToString } from '@glimmer/debug-util'; +import debugToString from '@glimmer/debug-util/lib/debug-to-string'; const TEMPLATES: WeakMap = new WeakMap(); diff --git a/packages/@glimmer/manager/lib/util/args-proxy.ts b/packages/@glimmer/manager/lib/util/args-proxy.ts index 06c600d1707..88ec478855c 100644 --- a/packages/@glimmer/manager/lib/util/args-proxy.ts +++ b/packages/@glimmer/manager/lib/util/args-proxy.ts @@ -5,9 +5,9 @@ import type { CapturedNamedArguments, CapturedPositionalArguments, } from '@glimmer/interfaces'; -import type { Tag } from '@glimmer/validator'; -import { valueForRef } from '@glimmer/reference'; -import { track } from '@glimmer/validator'; +import type { Tag } from '@glimmer/interfaces'; +import { valueForRef } from '@glimmer/reference/lib/reference'; +import { track } from '@glimmer/validator/lib/tracking'; const CUSTOM_TAG_FOR = new WeakMap Tag>(); diff --git a/packages/@glimmer/manager/lib/util/capabilities.ts b/packages/@glimmer/manager/lib/util/capabilities.ts index 7254e129804..9ec370a32df 100644 --- a/packages/@glimmer/manager/lib/util/capabilities.ts +++ b/packages/@glimmer/manager/lib/util/capabilities.ts @@ -24,8 +24,8 @@ import type { WithUpdateHook, WrappedCapability, } from '@glimmer/interfaces'; -import { check, CheckNumber } from '@glimmer/debug'; -import { InternalComponentCapabilities } from '@glimmer/vm'; +import { check, CheckNumber } from '@glimmer/debug/lib/stack-check'; +import { InternalComponentCapabilities } from '@glimmer/vm/lib/flags'; export const FROM_CAPABILITIES = DEBUG ? new WeakSet() : undefined; diff --git a/packages/@glimmer/node/lib/node-dom-helper.ts b/packages/@glimmer/node/lib/node-dom-helper.ts index 6b65e00a664..611026dce41 100644 --- a/packages/@glimmer/node/lib/node-dom-helper.ts +++ b/packages/@glimmer/node/lib/node-dom-helper.ts @@ -5,7 +5,8 @@ import type { SimpleElement, SimpleNode, } from '@glimmer/interfaces'; -import { ConcreteBounds, DOMTreeConstruction } from '@glimmer/runtime'; +import { ConcreteBounds } from '@glimmer/runtime/lib/bounds'; +import { DOMTreeConstruction } from '@glimmer/runtime/lib/dom/api'; import createHTMLDocument from '@simple-dom/document'; export default class NodeDOMTreeConstruction extends DOMTreeConstruction { diff --git a/packages/@glimmer/node/lib/serialize-builder.ts b/packages/@glimmer/node/lib/serialize-builder.ts index 43a68363b75..b75499cb299 100644 --- a/packages/@glimmer/node/lib/serialize-builder.ts +++ b/packages/@glimmer/node/lib/serialize-builder.ts @@ -10,8 +10,9 @@ import type { SimpleText, TreeBuilder, } from '@glimmer/interfaces'; -import type { RemoteBlock } from '@glimmer/runtime'; -import { ConcreteBounds, NewTreeBuilder } from '@glimmer/runtime'; +import type { RemoteBlock } from '@glimmer/runtime/lib/vm/element-builder'; +import { ConcreteBounds } from '@glimmer/runtime/lib/bounds'; +import { NewTreeBuilder } from '@glimmer/runtime/lib/vm/element-builder'; const TEXT_NODE = 3; diff --git a/packages/@glimmer/opcode-compiler/lib/compilable-template.ts b/packages/@glimmer/opcode-compiler/lib/compilable-template.ts index 42cdc89737f..fe237925b79 100644 --- a/packages/@glimmer/opcode-compiler/lib/compilable-template.ts +++ b/packages/@glimmer/opcode-compiler/lib/compilable-template.ts @@ -15,9 +15,9 @@ import type { SymbolTable, WireFormat, } from '@glimmer/interfaces'; -import { IS_COMPILABLE_TEMPLATE } from '@glimmer/constants'; +import type { IS_COMPILABLE_TEMPLATE } from '@glimmer/constants/lib/brand'; import { LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; -import { EMPTY_ARRAY } from '@glimmer/util'; +import { EMPTY_ARRAY } from '@glimmer/util/lib/array-utils'; import type { HighLevelStatementOp } from './syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/compiler.ts b/packages/@glimmer/opcode-compiler/lib/compiler.ts index cb799e6d5f0..4114d0e23bd 100644 --- a/packages/@glimmer/opcode-compiler/lib/compiler.ts +++ b/packages/@glimmer/opcode-compiler/lib/compiler.ts @@ -1,6 +1,6 @@ import type { CompilationContext, HandleResult } from '@glimmer/interfaces'; -import { logOpcodeSlice } from '@glimmer/debug'; -import { extractHandle } from '@glimmer/debug-util'; +import { logOpcodeSlice } from '@glimmer/debug/lib/debug'; +import { extractHandle } from '@glimmer/debug-util/lib/template'; import { LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; export let debugCompiler: (context: CompilationContext, handle: HandleResult) => void; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/encoder.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/encoder.ts index 48140a01d46..7a10b4afb88 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/encoder.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/encoder.ts @@ -16,11 +16,15 @@ import type { SingleBuilderOperand, STDLib, } from '@glimmer/interfaces'; -import { encodeHandle, isMachineOp, VM_PRIMITIVE_OP, VM_RETURN_OP } from '@glimmer/constants'; -import { expect, isPresentArray, assert } from '@glimmer/debug-util'; -import { InstructionEncoderImpl } from '@glimmer/encoder'; -import { dict, Stack } from '@glimmer/util'; -import { ARG_SHIFT, MACHINE_MASK, TYPE_SIZE } from '@glimmer/vm'; +import { encodeHandle } from '@glimmer/constants/lib/immediate'; +import { isMachineOp, VM_RETURN_OP } from '@glimmer/constants/lib/vm-ops'; +import { VM_PRIMITIVE_OP } from '@glimmer/constants/lib/syscall-ops'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import { isPresentArray } from '@glimmer/debug-util/lib/present'; +import assert from '@glimmer/debug-util/lib/assert'; +import { InstructionEncoderImpl } from '@glimmer/encoder/lib/encoder'; +import { dict, StackImpl as Stack } from '@glimmer/util/lib/collections'; +import { ARG_SHIFT, MACHINE_MASK, TYPE_SIZE } from '@glimmer/vm/lib/flags'; import { compilableBlock } from '../compilable-template'; import { diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/blocks.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/blocks.ts index 95c2d5d96eb..c189abb1742 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/blocks.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/blocks.ts @@ -1,21 +1,7 @@ import type { Nullable, WireFormat } from '@glimmer/interfaces'; -import { - VM_CHILD_SCOPE_OP, - VM_COMPILE_BLOCK_OP, - VM_CONSTANT_OP, - VM_DUP_OP, - VM_GET_BLOCK_OP, - VM_INVOKE_VIRTUAL_OP, - VM_INVOKE_YIELD_OP, - VM_POP_FRAME_OP, - VM_POP_SCOPE_OP, - VM_PUSH_BLOCK_SCOPE_OP, - VM_PUSH_FRAME_OP, - VM_PUSH_SYMBOL_TABLE_OP, - VM_SET_VARIABLE_OP, - VM_SPREAD_BLOCK_OP, -} from '@glimmer/constants'; -import { $fp } from '@glimmer/vm'; +import { VM_CHILD_SCOPE_OP, VM_COMPILE_BLOCK_OP, VM_CONSTANT_OP, VM_DUP_OP, VM_GET_BLOCK_OP, VM_INVOKE_YIELD_OP, VM_POP_SCOPE_OP, VM_PUSH_BLOCK_SCOPE_OP, VM_PUSH_SYMBOL_TABLE_OP, VM_SET_VARIABLE_OP, VM_SPREAD_BLOCK_OP } from '@glimmer/constants/lib/syscall-ops'; +import { VM_INVOKE_VIRTUAL_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP } from '@glimmer/constants/lib/vm-ops'; +import { $fp } from '@glimmer/vm/lib/registers'; import type { PushExpressionOp, PushStatementOp } from '../../syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.ts index 3339e3540ff..de32316fd1f 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.ts @@ -7,56 +7,14 @@ import type { Nullable, WireFormat, } from '@glimmer/interfaces'; -import type { SavedRegister } from '@glimmer/vm'; -import { - VM_BEGIN_COMPONENT_TRANSACTION_OP, - VM_CLOSE_ELEMENT_OP, - VM_COMMIT_COMPONENT_TRANSACTION_OP, - VM_COMPILE_BLOCK_OP, - VM_CONSTANT_OP, - VM_CREATE_COMPONENT_OP, - VM_DID_CREATE_ELEMENT_OP, - VM_DID_RENDER_LAYOUT_OP, - VM_DUP_OP, - VM_FETCH_OP, - VM_FLUSH_ELEMENT_OP, - VM_GET_COMPONENT_LAYOUT_OP, - VM_GET_COMPONENT_SELF_OP, - VM_GET_COMPONENT_TAG_NAME_OP, - VM_INVOKE_COMPONENT_LAYOUT_OP, - VM_INVOKE_VIRTUAL_OP, - VM_JUMP_UNLESS_OP, - VM_LOAD_OP, - VM_OPEN_DYNAMIC_ELEMENT_OP, - VM_POP_DYNAMIC_SCOPE_OP, - VM_POP_FRAME_OP, - VM_POP_OP, - VM_POP_SCOPE_OP, - VM_POPULATE_LAYOUT_OP, - VM_PREPARE_ARGS_OP, - VM_PRIMITIVE_REFERENCE_OP, - VM_PUSH_ARGS_OP, - VM_PUSH_COMPONENT_DEFINITION_OP, - VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, - VM_PUSH_DYNAMIC_SCOPE_OP, - VM_PUSH_EMPTY_ARGS_OP, - VM_PUSH_FRAME_OP, - VM_PUSH_SYMBOL_TABLE_OP, - VM_PUT_COMPONENT_OPERATIONS_OP, - VM_REGISTER_COMPONENT_DESTRUCTOR_OP, - VM_RESOLVE_CURRIED_COMPONENT_OP, - VM_RESOLVE_DYNAMIC_COMPONENT_OP, - VM_ROOT_SCOPE_OP, - VM_SET_BLOCK_OP, - VM_SET_BLOCKS_OP, - VM_SET_NAMED_VARIABLES_OP, - VM_SET_VARIABLE_OP, - VM_VIRTUAL_ROOT_SCOPE_OP, -} from '@glimmer/constants'; -import { unwrap } from '@glimmer/debug-util'; -import { hasCapability } from '@glimmer/manager'; -import { EMPTY_STRING_ARRAY, reverse } from '@glimmer/util'; -import { $s0, $s1, $sp, InternalComponentCapabilities } from '@glimmer/vm'; +import type { SavedRegister } from '@glimmer/vm/lib/registers'; +import { VM_BEGIN_COMPONENT_TRANSACTION_OP, VM_CLOSE_ELEMENT_OP, VM_COMMIT_COMPONENT_TRANSACTION_OP, VM_COMPILE_BLOCK_OP, VM_CONSTANT_OP, VM_CREATE_COMPONENT_OP, VM_DID_CREATE_ELEMENT_OP, VM_DID_RENDER_LAYOUT_OP, VM_DUP_OP, VM_FETCH_OP, VM_FLUSH_ELEMENT_OP, VM_GET_COMPONENT_LAYOUT_OP, VM_GET_COMPONENT_SELF_OP, VM_GET_COMPONENT_TAG_NAME_OP, VM_INVOKE_COMPONENT_LAYOUT_OP, VM_JUMP_UNLESS_OP, VM_LOAD_OP, VM_OPEN_DYNAMIC_ELEMENT_OP, VM_POP_DYNAMIC_SCOPE_OP, VM_POP_OP, VM_POP_SCOPE_OP, VM_POPULATE_LAYOUT_OP, VM_PREPARE_ARGS_OP, VM_PRIMITIVE_REFERENCE_OP, VM_PUSH_ARGS_OP, VM_PUSH_COMPONENT_DEFINITION_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_PUSH_DYNAMIC_SCOPE_OP, VM_PUSH_EMPTY_ARGS_OP, VM_PUSH_SYMBOL_TABLE_OP, VM_PUT_COMPONENT_OPERATIONS_OP, VM_REGISTER_COMPONENT_DESTRUCTOR_OP, VM_RESOLVE_CURRIED_COMPONENT_OP, VM_RESOLVE_DYNAMIC_COMPONENT_OP, VM_ROOT_SCOPE_OP, VM_SET_BLOCK_OP, VM_SET_BLOCKS_OP, VM_SET_NAMED_VARIABLES_OP, VM_SET_VARIABLE_OP, VM_VIRTUAL_ROOT_SCOPE_OP } from '@glimmer/constants/lib/syscall-ops'; +import { VM_INVOKE_VIRTUAL_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP } from '@glimmer/constants/lib/vm-ops'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import { hasCapability } from '@glimmer/manager/lib/util/capabilities'; +import { EMPTY_STRING_ARRAY, reverse } from '@glimmer/util/lib/array-utils'; +import { $s0, $s1, $sp } from '@glimmer/vm/lib/registers'; +import { InternalComponentCapabilities } from '@glimmer/vm/lib/flags'; import type { PushExpressionOp, PushStatementOp } from '../../syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/conditional.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/conditional.ts index 72c4cefcdf3..02e244fdb73 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/conditional.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/conditional.ts @@ -1,16 +1,6 @@ -import { - VM_ENTER_OP, - VM_EXIT_OP, - VM_JUMP_EQ_OP, - VM_JUMP_OP, - VM_JUMP_UNLESS_OP, - VM_POP_FRAME_OP, - VM_POP_OP, - VM_PUSH_FRAME_OP, - VM_RETURN_OP, - VM_RETURN_TO_OP, -} from '@glimmer/constants'; -import { unwrap } from '@glimmer/debug-util'; +import { VM_ENTER_OP, VM_EXIT_OP, VM_JUMP_EQ_OP, VM_JUMP_UNLESS_OP, VM_POP_OP } from '@glimmer/constants/lib/syscall-ops'; +import { VM_JUMP_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP, VM_RETURN_OP, VM_RETURN_TO_OP } from '@glimmer/constants/lib/vm-ops'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; import type { PushStatementOp } from '../../syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/expr.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/expr.ts index 53a689ebb97..2ebad5b30a1 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/expr.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/expr.ts @@ -1,5 +1,5 @@ import type { WireFormat } from '@glimmer/interfaces'; -import { VM_PRIMITIVE_REFERENCE_OP } from '@glimmer/constants'; +import { VM_PRIMITIVE_REFERENCE_OP } from '@glimmer/constants/lib/syscall-ops'; import type { PushExpressionOp } from '../../syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/resolution.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/resolution.ts index e9aadb6898a..cf85463b62f 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/resolution.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/resolution.ts @@ -15,8 +15,10 @@ import type { ResolveOptionalComponentOrHelperOp, SexpOpcode, } from '@glimmer/interfaces'; -import { debugToString, expect, assert, unwrap } from '@glimmer/debug-util'; -import { SexpOpcodes } from '@glimmer/wire-format'; +import debugToString from '@glimmer/debug-util/lib/debug-to-string'; +import { expect, unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; +import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; function isGetLikeTuple(opcode: Expressions.Expression): opcode is Expressions.TupleExpression { return Array.isArray(opcode) && opcode.length === 2; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/shared.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/shared.ts index 8dfd69af7bd..838bdc8440a 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/shared.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/shared.ts @@ -5,8 +5,8 @@ import type { Nullable, WireFormat, } from '@glimmer/interfaces'; -import { VM_PUSH_ARGS_OP, VM_PUSH_EMPTY_ARGS_OP } from '@glimmer/constants'; -import { EMPTY_ARRAY, EMPTY_STRING_ARRAY } from '@glimmer/util'; +import { VM_PUSH_ARGS_OP, VM_PUSH_EMPTY_ARGS_OP } from '@glimmer/constants/lib/syscall-ops'; +import { EMPTY_ARRAY, EMPTY_STRING_ARRAY } from '@glimmer/util/lib/array-utils'; import type { PushExpressionOp, PushStatementOp } from '../../syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/stdlib.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/stdlib.ts index 1f9ee02ecc1..825d2ec71d6 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/stdlib.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/stdlib.ts @@ -1,18 +1,8 @@ import type { BlockMetadata, BuilderOp, EvaluationContext, HighLevelOp } from '@glimmer/interfaces'; -import { - VM_APPEND_DOCUMENT_FRAGMENT_OP, - VM_APPEND_HTML_OP, - VM_APPEND_NODE_OP, - VM_APPEND_SAFE_HTML_OP, - VM_APPEND_TEXT_OP, - VM_ASSERT_SAME_OP, - VM_CONTENT_TYPE_OP, - VM_INVOKE_STATIC_OP, - VM_MAIN_OP, - VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, - VM_RESOLVE_CURRIED_COMPONENT_OP, -} from '@glimmer/constants'; -import { $s0, ContentType } from '@glimmer/vm'; +import { VM_APPEND_DOCUMENT_FRAGMENT_OP, VM_APPEND_HTML_OP, VM_APPEND_NODE_OP, VM_APPEND_SAFE_HTML_OP, VM_APPEND_TEXT_OP, VM_ASSERT_SAME_OP, VM_CONTENT_TYPE_OP, VM_MAIN_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_RESOLVE_CURRIED_COMPONENT_OP } from '@glimmer/constants/lib/syscall-ops'; +import { VM_INVOKE_STATIC_OP } from '@glimmer/constants/lib/vm-ops'; +import { $s0 } from '@glimmer/vm/lib/registers'; +import { ContentType } from '@glimmer/vm/lib/content'; import type { HighLevelStatementOp, PushStatementOp } from '../../syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/vm.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/vm.ts index 652481fa5a8..d319a87d232 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/vm.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/vm.ts @@ -1,23 +1,8 @@ import type { CurriedType, NonSmallIntOperand, Nullable, WireFormat } from '@glimmer/interfaces'; -import { - encodeImmediate, - isSmallInt, - VM_BIND_DYNAMIC_SCOPE_OP, - VM_CAPTURE_ARGS_OP, - VM_CURRY_OP, - VM_DUP_OP, - VM_DYNAMIC_HELPER_OP, - VM_FETCH_OP, - VM_HELPER_OP, - VM_POP_DYNAMIC_SCOPE_OP, - VM_POP_FRAME_OP, - VM_POP_OP, - VM_PRIMITIVE_OP, - VM_PRIMITIVE_REFERENCE_OP, - VM_PUSH_DYNAMIC_SCOPE_OP, - VM_PUSH_FRAME_OP, -} from '@glimmer/constants'; -import { $fp, $v0 } from '@glimmer/vm'; +import { encodeImmediate, isSmallInt } from '@glimmer/constants/lib/immediate'; +import { VM_BIND_DYNAMIC_SCOPE_OP, VM_CAPTURE_ARGS_OP, VM_CURRY_OP, VM_DUP_OP, VM_DYNAMIC_HELPER_OP, VM_FETCH_OP, VM_HELPER_OP, VM_POP_DYNAMIC_SCOPE_OP, VM_POP_OP, VM_PRIMITIVE_OP, VM_PRIMITIVE_REFERENCE_OP, VM_PUSH_DYNAMIC_SCOPE_OP } from '@glimmer/constants/lib/syscall-ops'; +import { VM_POP_FRAME_OP, VM_PUSH_FRAME_OP } from '@glimmer/constants/lib/vm-ops'; +import { $fp, $v0 } from '@glimmer/vm/lib/registers'; import type { PushExpressionOp, PushStatementOp } from '../../syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/operands.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/operands.ts index 4abfabf53b1..bee3ced3f72 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/operands.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/operands.ts @@ -20,8 +20,8 @@ import type { SymbolTableOperand, SymbolTableOperandType, } from '@glimmer/interfaces'; -import { isSmallInt } from '@glimmer/constants'; -import { assert } from '@glimmer/debug-util'; +import { isSmallInt } from '@glimmer/constants/lib/immediate'; +import assert from '@glimmer/debug-util/lib/assert'; export const HighLevelOperands = { Label: 1 satisfies LabelOperandType, diff --git a/packages/@glimmer/opcode-compiler/lib/syntax/compilers.ts b/packages/@glimmer/opcode-compiler/lib/syntax/compilers.ts index 3b571ce56c0..b22e30be04b 100644 --- a/packages/@glimmer/opcode-compiler/lib/syntax/compilers.ts +++ b/packages/@glimmer/opcode-compiler/lib/syntax/compilers.ts @@ -1,5 +1,6 @@ import type { BuilderOp, HighLevelOp, SexpOpcode, SexpOpcodeMap } from '@glimmer/interfaces'; -import { assert, unwrap } from '@glimmer/debug-util'; +import assert from '@glimmer/debug-util/lib/assert'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; export type PushExpressionOp = (...op: BuilderOp | HighLevelOp) => void; diff --git a/packages/@glimmer/opcode-compiler/lib/syntax/expressions.ts b/packages/@glimmer/opcode-compiler/lib/syntax/expressions.ts index 3841d39b891..314193d73e6 100644 --- a/packages/@glimmer/opcode-compiler/lib/syntax/expressions.ts +++ b/packages/@glimmer/opcode-compiler/lib/syntax/expressions.ts @@ -1,23 +1,8 @@ import type { ExpressionSexpOpcode } from '@glimmer/interfaces'; -import { - VM_COMPILE_BLOCK_OP, - VM_CONCAT_OP, - VM_CONSTANT_REFERENCE_OP, - VM_FETCH_OP, - VM_GET_DYNAMIC_VAR_OP, - VM_GET_PROPERTY_OP, - VM_GET_VARIABLE_OP, - VM_HAS_BLOCK_OP, - VM_HAS_BLOCK_PARAMS_OP, - VM_IF_INLINE_OP, - VM_LOG_OP, - VM_NOT_OP, - VM_POP_FRAME_OP, - VM_PUSH_FRAME_OP, - VM_SPREAD_BLOCK_OP, -} from '@glimmer/constants'; -import { $v0 } from '@glimmer/vm'; -import { SexpOpcodes } from '@glimmer/wire-format'; +import { VM_COMPILE_BLOCK_OP, VM_CONCAT_OP, VM_CONSTANT_REFERENCE_OP, VM_FETCH_OP, VM_GET_DYNAMIC_VAR_OP, VM_GET_PROPERTY_OP, VM_GET_VARIABLE_OP, VM_HAS_BLOCK_OP, VM_HAS_BLOCK_PARAMS_OP, VM_IF_INLINE_OP, VM_LOG_OP, VM_NOT_OP, VM_SPREAD_BLOCK_OP } from '@glimmer/constants/lib/syscall-ops'; +import { VM_POP_FRAME_OP, VM_PUSH_FRAME_OP } from '@glimmer/constants/lib/vm-ops'; +import { $v0 } from '@glimmer/vm/lib/registers'; +import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; import type { PushExpressionOp } from './compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/syntax/statements.ts b/packages/@glimmer/opcode-compiler/lib/syntax/statements.ts index 300fd5bf363..abb09614878 100644 --- a/packages/@glimmer/opcode-compiler/lib/syntax/statements.ts +++ b/packages/@glimmer/opcode-compiler/lib/syntax/statements.ts @@ -5,40 +5,11 @@ import type { WellKnownTagName, WireFormat, } from '@glimmer/interfaces'; -import { - VM_CLOSE_ELEMENT_OP, - VM_COMMENT_OP, - VM_COMPONENT_ATTR_OP, - VM_CONSTANT_REFERENCE_OP, - VM_DEBUGGER_OP, - VM_DUP_OP, - VM_DYNAMIC_ATTR_OP, - VM_DYNAMIC_CONTENT_TYPE_OP, - VM_DYNAMIC_MODIFIER_OP, - VM_ENTER_LIST_OP, - VM_EXIT_LIST_OP, - VM_FLUSH_ELEMENT_OP, - VM_INVOKE_STATIC_OP, - VM_ITERATE_OP, - VM_JUMP_OP, - VM_MODIFIER_OP, - VM_OPEN_ELEMENT_OP, - VM_POP_FRAME_OP, - VM_POP_OP, - VM_POP_REMOTE_ELEMENT_OP, - VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, - VM_PUSH_FRAME_OP, - VM_PUSH_REMOTE_ELEMENT_OP, - VM_PUT_COMPONENT_OPERATIONS_OP, - VM_RESOLVE_CURRIED_COMPONENT_OP, - VM_RETURN_TO_OP, - VM_STATIC_ATTR_OP, - VM_STATIC_COMPONENT_ATTR_OP, - VM_TEXT_OP, - VM_TO_BOOLEAN_OP, -} from '@glimmer/constants'; -import { $fp, $sp, ContentType } from '@glimmer/vm'; -import { SexpOpcodes } from '@glimmer/wire-format'; +import { VM_CLOSE_ELEMENT_OP, VM_COMMENT_OP, VM_COMPONENT_ATTR_OP, VM_CONSTANT_REFERENCE_OP, VM_DEBUGGER_OP, VM_DUP_OP, VM_DYNAMIC_ATTR_OP, VM_DYNAMIC_CONTENT_TYPE_OP, VM_DYNAMIC_MODIFIER_OP, VM_ENTER_LIST_OP, VM_EXIT_LIST_OP, VM_FLUSH_ELEMENT_OP, VM_ITERATE_OP, VM_MODIFIER_OP, VM_OPEN_ELEMENT_OP, VM_POP_OP, VM_POP_REMOTE_ELEMENT_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_PUSH_REMOTE_ELEMENT_OP, VM_PUT_COMPONENT_OPERATIONS_OP, VM_RESOLVE_CURRIED_COMPONENT_OP, VM_STATIC_ATTR_OP, VM_STATIC_COMPONENT_ATTR_OP, VM_TEXT_OP, VM_TO_BOOLEAN_OP } from '@glimmer/constants/lib/syscall-ops'; +import { VM_INVOKE_STATIC_OP, VM_JUMP_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP, VM_RETURN_TO_OP } from '@glimmer/constants/lib/vm-ops'; +import { $fp, $sp } from '@glimmer/vm/lib/registers'; +import { ContentType } from '@glimmer/vm/lib/content'; +import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; import type { PushStatementOp } from './compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/template.ts b/packages/@glimmer/opcode-compiler/lib/template.ts index 4471e315517..3cb2f3ff9b4 100644 --- a/packages/@glimmer/opcode-compiler/lib/template.ts +++ b/packages/@glimmer/opcode-compiler/lib/template.ts @@ -10,7 +10,7 @@ import type { TemplateFactory, TemplateOk, } from '@glimmer/interfaces'; -import { assign } from '@glimmer/util'; +import { assign } from '@glimmer/util/lib/object-utils'; import { compilable } from './compilable-template'; import { WrappedBuilder } from './wrapped-component'; diff --git a/packages/@glimmer/opcode-compiler/lib/utils.ts b/packages/@glimmer/opcode-compiler/lib/utils.ts index c4db145d92e..26bdb7880b3 100644 --- a/packages/@glimmer/opcode-compiler/lib/utils.ts +++ b/packages/@glimmer/opcode-compiler/lib/utils.ts @@ -1,6 +1,8 @@ import type { NamedBlocks, Nullable, SerializedInlineBlock, WireFormat } from '@glimmer/interfaces'; -import { unwrap } from '@glimmer/debug-util'; -import { assign, dict, enumerate } from '@glimmer/util'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import { assign } from '@glimmer/util/lib/object-utils'; +import { dict } from '@glimmer/util/lib/collections'; +import { enumerate } from '@glimmer/util/lib/array-utils'; interface NamedBlocksDict { [key: string]: Nullable; diff --git a/packages/@glimmer/program/lib/constants.ts b/packages/@glimmer/program/lib/constants.ts index d8a5a7dbb12..22f04bef34a 100644 --- a/packages/@glimmer/program/lib/constants.ts +++ b/packages/@glimmer/program/lib/constants.ts @@ -9,19 +9,16 @@ import type { ResolvedComponentDefinition, Template, } from '@glimmer/interfaces'; -import { constants } from '@glimmer/constants'; -import { expect, assert, unwrapTemplate } from '@glimmer/debug-util'; -import { - capabilityFlagsFrom, - getComponentTemplate, - getInternalComponentManager, - getInternalHelperManager, - getInternalModifierManager, - managerHasCapability, -} from '@glimmer/manager'; -import { templateFactory } from '@glimmer/opcode-compiler'; -import { enumerate } from '@glimmer/util'; -import { InternalComponentCapabilities } from '@glimmer/vm'; +import { constants } from '@glimmer/constants/lib/immediate'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; +import { unwrapTemplate } from '@glimmer/debug-util/lib/template'; +import { capabilityFlagsFrom, managerHasCapability } from '@glimmer/manager/lib/util/capabilities'; +import { getComponentTemplate } from '@glimmer/manager/lib/public/template'; +import { getInternalComponentManager, getInternalHelperManager, getInternalModifierManager } from '@glimmer/manager/lib/internal/api'; +import templateFactory from '@glimmer/opcode-compiler/lib/template'; +import { enumerate } from '@glimmer/util/lib/array-utils'; +import { InternalComponentCapabilities } from '@glimmer/vm/lib/flags'; import { DEFAULT_TEMPLATE } from './util/default-template'; diff --git a/packages/@glimmer/program/lib/opcode.ts b/packages/@glimmer/program/lib/opcode.ts index c7c9a4736ed..d866ae849f1 100644 --- a/packages/@glimmer/program/lib/opcode.ts +++ b/packages/@glimmer/program/lib/opcode.ts @@ -1,5 +1,5 @@ import type { ProgramHeap, RuntimeOp, SomeVmOp } from '@glimmer/interfaces'; -import { ARG_SHIFT, MACHINE_MASK, OPERAND_LEN_MASK, TYPE_MASK } from '@glimmer/vm'; +import { ARG_SHIFT, MACHINE_MASK, OPERAND_LEN_MASK, TYPE_MASK } from '@glimmer/vm/lib/flags'; export class RuntimeOpImpl implements RuntimeOp { public offset = 0; diff --git a/packages/@glimmer/program/lib/program.ts b/packages/@glimmer/program/lib/program.ts index 672d5be15aa..82fc0fe613c 100644 --- a/packages/@glimmer/program/lib/program.ts +++ b/packages/@glimmer/program/lib/program.ts @@ -1,7 +1,7 @@ import type { Program, ProgramConstants, ProgramHeap, StdLibOperand } from '@glimmer/interfaces'; -import { unwrap } from '@glimmer/debug-util'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; -import { MACHINE_MASK } from '@glimmer/vm'; +import { MACHINE_MASK } from '@glimmer/vm/lib/flags'; import { RuntimeOpImpl } from './opcode'; diff --git a/packages/@glimmer/program/lib/util/default-template.ts b/packages/@glimmer/program/lib/util/default-template.ts index 2539b52f87a..74908f1050a 100644 --- a/packages/@glimmer/program/lib/util/default-template.ts +++ b/packages/@glimmer/program/lib/util/default-template.ts @@ -1,5 +1,5 @@ import type { SerializedTemplateBlock, SerializedTemplateWithLazyBlock } from '@glimmer/interfaces'; -import { SexpOpcodes as op } from '@glimmer/wire-format'; +import { opcodes as op } from '@glimmer/wire-format/lib/opcodes'; /** * Default component template, which is a plain yield diff --git a/packages/@glimmer/reference/lib/iterable.ts b/packages/@glimmer/reference/lib/iterable.ts index 4fd2135659a..75c4c63a8b1 100644 --- a/packages/@glimmer/reference/lib/iterable.ts +++ b/packages/@glimmer/reference/lib/iterable.ts @@ -1,8 +1,10 @@ import { DEBUG } from '@glimmer/env'; import type { Dict, Nullable } from '@glimmer/interfaces'; import { getPath, toIterator } from '@glimmer/global-context'; -import { EMPTY_ARRAY, isIndexable } from '@glimmer/util'; -import { consumeTag, createTag, dirtyTag } from '@glimmer/validator'; +import { EMPTY_ARRAY } from '@glimmer/util/lib/array-utils'; +import { isIndexable } from '@glimmer/util/lib/collections'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; +import { createTag, DIRTY_TAG as dirtyTag } from '@glimmer/validator/lib/validators'; import type { Reference, ReferenceEnvironment } from './reference'; diff --git a/packages/@glimmer/reference/lib/reference.ts b/packages/@glimmer/reference/lib/reference.ts index e58fb46cf8a..c7232d0469a 100644 --- a/packages/@glimmer/reference/lib/reference.ts +++ b/packages/@glimmer/reference/lib/reference.ts @@ -9,18 +9,13 @@ import type { ReferenceType, UnboundReference, } from '@glimmer/interfaces'; -import type { Revision, Tag } from '@glimmer/validator'; -import { expect } from '@glimmer/debug-util'; +import type { Revision } from '@glimmer/validator/lib/validators'; +import type { Tag } from '@glimmer/interfaces'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; import { getProp, setProp } from '@glimmer/global-context'; -import { isDict } from '@glimmer/util'; -import { - CONSTANT_TAG, - consumeTag, - INITIAL, - track, - validateTag, - valueForTag, -} from '@glimmer/validator'; +import { isDict } from '@glimmer/util/lib/collections'; +import { CONSTANT_TAG, INITIAL, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; +import { consumeTag, track } from '@glimmer/validator/lib/tracking'; export const REFERENCE: ReferenceSymbol = Symbol('REFERENCE') as ReferenceSymbol; diff --git a/packages/@glimmer/runtime/lib/bounds.ts b/packages/@glimmer/runtime/lib/bounds.ts index 784ed5ca890..224a45cb067 100644 --- a/packages/@glimmer/runtime/lib/bounds.ts +++ b/packages/@glimmer/runtime/lib/bounds.ts @@ -1,5 +1,6 @@ import type { Bounds, Cursor, Nullable, SimpleElement, SimpleNode } from '@glimmer/interfaces'; -import { expect, setLocalDebugType } from '@glimmer/debug-util'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import { setLocalDebugType } from '@glimmer/debug-util/lib/debug-brand'; export class CursorImpl implements Cursor { constructor( diff --git a/packages/@glimmer/runtime/lib/compiled/expressions/concat.ts b/packages/@glimmer/runtime/lib/compiled/expressions/concat.ts index 02b22847193..29f34806454 100644 --- a/packages/@glimmer/runtime/lib/compiled/expressions/concat.ts +++ b/packages/@glimmer/runtime/lib/compiled/expressions/concat.ts @@ -1,5 +1,5 @@ -import type { Reference } from '@glimmer/reference'; -import { createComputeRef, valueForRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createComputeRef, valueForRef } from '@glimmer/reference/lib/reference'; export function createConcatRef(partsRefs: Reference[]) { return createComputeRef(() => { diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.ts index 49e041df998..973f1d68b14 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.ts @@ -1,4 +1,4 @@ -import type { Checker } from '@glimmer/debug'; +import type { Checker } from '@glimmer/debug/lib/stack-check'; import type { CapabilityMask, CapturedArguments, @@ -14,27 +14,12 @@ import type { Scope, ScopeBlock, } from '@glimmer/interfaces'; -import type { OpaqueIterator, Reference } from '@glimmer/reference'; -import type { Tag } from '@glimmer/validator'; -import { - CheckArray, - CheckBlockSymbolTable, - CheckDict, - CheckFunction, - CheckHandle, - CheckInstanceof, - CheckInterface, - CheckNullable, - CheckNumber, - CheckObject, - CheckOr, - CheckProgramSymbolTable, - CheckString, - CheckUnknown, - wrap, -} from '@glimmer/debug'; -import { REFERENCE, UNDEFINED_REFERENCE } from '@glimmer/reference'; -import { COMPUTE } from '@glimmer/validator'; +import type { OpaqueIterator } from '@glimmer/reference/lib/iterable'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import type { Tag } from '@glimmer/interfaces'; +import { CheckArray, CheckBlockSymbolTable, CheckDict, CheckFunction, CheckHandle, CheckInstanceof, CheckInterface, CheckNullable, CheckNumber, CheckObject, CheckOr, CheckProgramSymbolTable, CheckString, CheckUnknown, wrap } from '@glimmer/debug/lib/stack-check'; +import { REFERENCE, UNDEFINED_REFERENCE } from '@glimmer/reference/lib/reference'; +import { COMPUTE } from '@glimmer/validator/lib/validators'; import { ScopeImpl } from '../../scope'; import { VMArgumentsImpl } from '../../vm/arguments'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts index 7903011421d..94230c55f05 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts @@ -25,54 +25,22 @@ import type { WithElementHook, WithUpdateHook, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { - CURRIED_COMPONENT, - VM_BEGIN_COMPONENT_TRANSACTION_OP, - VM_CAPTURE_ARGS_OP, - VM_COMMIT_COMPONENT_TRANSACTION_OP, - VM_COMPONENT_ATTR_OP, - VM_CREATE_COMPONENT_OP, - VM_DID_CREATE_ELEMENT_OP, - VM_DID_RENDER_LAYOUT_OP, - VM_GET_COMPONENT_LAYOUT_OP, - VM_GET_COMPONENT_SELF_OP, - VM_GET_COMPONENT_TAG_NAME_OP, - VM_INVOKE_COMPONENT_LAYOUT_OP, - VM_MAIN_OP, - VM_POPULATE_LAYOUT_OP, - VM_PREPARE_ARGS_OP, - VM_PUSH_ARGS_OP, - VM_PUSH_COMPONENT_DEFINITION_OP, - VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, - VM_PUSH_EMPTY_ARGS_OP, - VM_PUT_COMPONENT_OPERATIONS_OP, - VM_REGISTER_COMPONENT_DESTRUCTOR_OP, - VM_RESOLVE_CURRIED_COMPONENT_OP, - VM_RESOLVE_DYNAMIC_COMPONENT_OP, - VM_SET_BLOCKS_OP, - VM_SET_NAMED_VARIABLES_OP, - VM_STATIC_COMPONENT_ATTR_OP, - VM_VIRTUAL_ROOT_SCOPE_OP, -} from '@glimmer/constants'; -import { - check, - CheckFunction, - CheckHandle, - CheckInstanceof, - CheckInterface, - CheckOr, - CheckProgramSymbolTable, - CheckRegister, - CheckString, - CheckSyscallRegister, -} from '@glimmer/debug'; -import { debugToString, expect, assert, unwrap, unwrapTemplate } from '@glimmer/debug-util'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { CURRIED_COMPONENT } from '@glimmer/constants/lib/curried'; +import { VM_BEGIN_COMPONENT_TRANSACTION_OP, VM_CAPTURE_ARGS_OP, VM_COMMIT_COMPONENT_TRANSACTION_OP, VM_COMPONENT_ATTR_OP, VM_CREATE_COMPONENT_OP, VM_DID_CREATE_ELEMENT_OP, VM_DID_RENDER_LAYOUT_OP, VM_GET_COMPONENT_LAYOUT_OP, VM_GET_COMPONENT_SELF_OP, VM_GET_COMPONENT_TAG_NAME_OP, VM_INVOKE_COMPONENT_LAYOUT_OP, VM_MAIN_OP, VM_POPULATE_LAYOUT_OP, VM_PREPARE_ARGS_OP, VM_PUSH_ARGS_OP, VM_PUSH_COMPONENT_DEFINITION_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_PUSH_EMPTY_ARGS_OP, VM_PUT_COMPONENT_OPERATIONS_OP, VM_REGISTER_COMPONENT_DESTRUCTOR_OP, VM_RESOLVE_CURRIED_COMPONENT_OP, VM_RESOLVE_DYNAMIC_COMPONENT_OP, VM_SET_BLOCKS_OP, VM_SET_NAMED_VARIABLES_OP, VM_STATIC_COMPONENT_ATTR_OP, VM_VIRTUAL_ROOT_SCOPE_OP } from '@glimmer/constants/lib/syscall-ops'; +import { check, CheckFunction, CheckHandle, CheckInstanceof, CheckInterface, CheckOr, CheckProgramSymbolTable, CheckRegister, CheckString, CheckSyscallRegister } from '@glimmer/debug/lib/stack-check'; +import debugToString from '@glimmer/debug-util/lib/debug-to-string'; +import { expect, unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; +import { unwrapTemplate } from '@glimmer/debug-util/lib/template'; import { registerDestructor } from '@glimmer/destroyable'; -import { managerHasCapability } from '@glimmer/manager'; -import { isConstRef, valueForRef } from '@glimmer/reference'; -import { assign, dict, EMPTY_STRING_ARRAY, enumerate } from '@glimmer/util'; -import { $s0, $t0, $t1, InternalComponentCapabilities } from '@glimmer/vm'; +import { managerHasCapability } from '@glimmer/manager/lib/util/capabilities'; +import { isConstRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { assign } from '@glimmer/util/lib/object-utils'; +import { dict } from '@glimmer/util/lib/collections'; +import { EMPTY_STRING_ARRAY, enumerate } from '@glimmer/util/lib/array-utils'; +import { $s0, $t0, $t1 } from '@glimmer/vm/lib/registers'; +import { InternalComponentCapabilities } from '@glimmer/vm/lib/flags'; import type { CurriedValue } from '../../curried-value'; import type { UpdatingVM } from '../../vm'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/content.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/content.ts index a24a65e9077..ee35cd3149a 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/content.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/content.ts @@ -1,26 +1,11 @@ import { DEBUG } from '@glimmer/env'; -import { - CURRIED_COMPONENT, - CURRIED_HELPER, - VM_APPEND_DOCUMENT_FRAGMENT_OP, - VM_APPEND_HTML_OP, - VM_APPEND_NODE_OP, - VM_APPEND_SAFE_HTML_OP, - VM_APPEND_TEXT_OP, - VM_CONTENT_TYPE_OP, - VM_DYNAMIC_CONTENT_TYPE_OP, -} from '@glimmer/constants'; -import { - check, - CheckDocumentFragment, - CheckNode, - CheckSafeString, - CheckString, -} from '@glimmer/debug'; -import { hasInternalComponentManager, hasInternalHelperManager } from '@glimmer/manager'; -import { isConstRef, valueForRef } from '@glimmer/reference'; -import { isIndexable } from '@glimmer/util'; -import { ContentType } from '@glimmer/vm'; +import { CURRIED_COMPONENT, CURRIED_HELPER } from '@glimmer/constants/lib/curried'; +import { VM_APPEND_DOCUMENT_FRAGMENT_OP, VM_APPEND_HTML_OP, VM_APPEND_NODE_OP, VM_APPEND_SAFE_HTML_OP, VM_APPEND_TEXT_OP, VM_CONTENT_TYPE_OP, VM_DYNAMIC_CONTENT_TYPE_OP } from '@glimmer/constants/lib/syscall-ops'; +import { check, CheckDocumentFragment, CheckNode, CheckSafeString, CheckString } from '@glimmer/debug/lib/stack-check'; +import { hasInternalComponentManager, hasInternalHelperManager } from '@glimmer/manager/lib/internal/api'; +import { isConstRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { isIndexable } from '@glimmer/util/lib/collections'; +import { ContentType } from '@glimmer/vm/lib/content'; import { isCurriedType } from '../../curried-value'; import { isEmpty, isFragment, isNode, isSafeString, shouldCoerce } from '../../dom/normalize'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/debugger.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/debugger.ts index 22b735ffb42..7d1c46ce3c6 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/debugger.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/debugger.ts @@ -1,10 +1,11 @@ // Allow the contents of `debugCallback` without extra annotations /* eslint-disable @typescript-eslint/no-unused-expressions */ import type { DebuggerInfo, Scope } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { decodeHandle, VM_DEBUGGER_OP } from '@glimmer/constants'; -import { unwrap } from '@glimmer/debug-util'; -import { childRefFor, valueForRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { decodeHandle } from '@glimmer/constants/lib/immediate'; +import { VM_DEBUGGER_OP } from '@glimmer/constants/lib/syscall-ops'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import { childRefFor, valueForRef } from '@glimmer/reference/lib/reference'; import { APPEND_OPCODES } from '../../opcodes'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts index 9c0d378b123..3f148233a54 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts @@ -10,38 +10,21 @@ import type { UpdatingOpcode, UpdatingVM, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import type { Revision, Tag } from '@glimmer/validator'; -import { - CURRIED_MODIFIER, - VM_CLOSE_ELEMENT_OP, - VM_COMMENT_OP, - VM_DYNAMIC_ATTR_OP, - VM_DYNAMIC_MODIFIER_OP, - VM_FLUSH_ELEMENT_OP, - VM_MODIFIER_OP, - VM_OPEN_DYNAMIC_ELEMENT_OP, - VM_OPEN_ELEMENT_OP, - VM_POP_REMOTE_ELEMENT_OP, - VM_PUSH_REMOTE_ELEMENT_OP, - VM_STATIC_ATTR_OP, - VM_TEXT_OP, -} from '@glimmer/constants'; -import { - check, - CheckElement, - CheckMaybe, - CheckNode, - CheckNullable, - CheckString, -} from '@glimmer/debug'; -import { debugToString, expect } from '@glimmer/debug-util'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import type { Revision } from '@glimmer/validator/lib/validators'; +import type { Tag } from '@glimmer/interfaces'; +import { CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; +import { VM_CLOSE_ELEMENT_OP, VM_COMMENT_OP, VM_DYNAMIC_ATTR_OP, VM_DYNAMIC_MODIFIER_OP, VM_FLUSH_ELEMENT_OP, VM_MODIFIER_OP, VM_OPEN_DYNAMIC_ELEMENT_OP, VM_OPEN_ELEMENT_OP, VM_POP_REMOTE_ELEMENT_OP, VM_PUSH_REMOTE_ELEMENT_OP, VM_STATIC_ATTR_OP, VM_TEXT_OP } from '@glimmer/constants/lib/syscall-ops'; +import { check, CheckElement, CheckMaybe, CheckNode, CheckNullable, CheckString } from '@glimmer/debug/lib/stack-check'; +import debugToString from '@glimmer/debug-util/lib/debug-to-string'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; import { associateDestroyableChild, destroy, registerDestructor } from '@glimmer/destroyable'; -import { getInternalModifierManager } from '@glimmer/manager'; -import { createComputeRef, isConstRef, valueForRef } from '@glimmer/reference'; -import { isIndexable } from '@glimmer/util'; -import { consumeTag, CURRENT_TAG, validateTag, valueForTag } from '@glimmer/validator'; -import { $t0 } from '@glimmer/vm'; +import { getInternalModifierManager } from '@glimmer/manager/lib/internal/api'; +import { createComputeRef, isConstRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { isIndexable } from '@glimmer/util/lib/collections'; +import { consumeTag } from '@glimmer/validator/lib/tracking'; +import { CURRENT_TAG, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; +import { $t0 } from '@glimmer/vm/lib/registers'; import type { CurriedValue } from '../../curried-value'; import type { DynamicAttribute } from '../../vm/attributes/dynamic'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/expressions.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/expressions.ts index bac07c70aba..dfae19e74cd 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/expressions.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/expressions.ts @@ -7,50 +7,20 @@ import type { Initializable, ScopeBlock, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { - CURRIED_HELPER, - decodeHandle, - VM_CONCAT_OP, - VM_CURRY_OP, - VM_DYNAMIC_HELPER_OP, - VM_GET_BLOCK_OP, - VM_GET_DYNAMIC_VAR_OP, - VM_GET_PROPERTY_OP, - VM_GET_VARIABLE_OP, - VM_HAS_BLOCK_OP, - VM_HAS_BLOCK_PARAMS_OP, - VM_HELPER_OP, - VM_IF_INLINE_OP, - VM_LOG_OP, - VM_NOT_OP, - VM_ROOT_SCOPE_OP, - VM_SET_BLOCK_OP, - VM_SET_VARIABLE_OP, - VM_SPREAD_BLOCK_OP, -} from '@glimmer/constants'; -import { - check, - CheckBlockSymbolTable, - CheckHandle, - CheckMaybe, - CheckNullable, - CheckOr, -} from '@glimmer/debug'; -import { debugToString, assert } from '@glimmer/debug-util'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { CURRIED_HELPER } from '@glimmer/constants/lib/curried'; +import { decodeHandle } from '@glimmer/constants/lib/immediate'; +import { VM_CONCAT_OP, VM_CURRY_OP, VM_DYNAMIC_HELPER_OP, VM_GET_BLOCK_OP, VM_GET_DYNAMIC_VAR_OP, VM_GET_PROPERTY_OP, VM_GET_VARIABLE_OP, VM_HAS_BLOCK_OP, VM_HAS_BLOCK_PARAMS_OP, VM_HELPER_OP, VM_IF_INLINE_OP, VM_LOG_OP, VM_NOT_OP, VM_ROOT_SCOPE_OP, VM_SET_BLOCK_OP, VM_SET_VARIABLE_OP, VM_SPREAD_BLOCK_OP } from '@glimmer/constants/lib/syscall-ops'; +import { check, CheckBlockSymbolTable, CheckHandle, CheckMaybe, CheckNullable, CheckOr } from '@glimmer/debug/lib/stack-check'; +import debugToString from '@glimmer/debug-util/lib/debug-to-string'; +import assert from '@glimmer/debug-util/lib/assert'; import { _hasDestroyableChildren, associateDestroyableChild, destroy } from '@glimmer/destroyable'; import { debugAssert, toBool } from '@glimmer/global-context'; -import { getInternalHelperManager } from '@glimmer/manager'; -import { - childRefFor, - createComputeRef, - FALSE_REFERENCE, - TRUE_REFERENCE, - UNDEFINED_REFERENCE, - valueForRef, -} from '@glimmer/reference'; -import { assign, isIndexable } from '@glimmer/util'; -import { $v0 } from '@glimmer/vm'; +import { getInternalHelperManager } from '@glimmer/manager/lib/internal/api'; +import { childRefFor, createComputeRef, FALSE_REFERENCE, TRUE_REFERENCE, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import { assign } from '@glimmer/util/lib/object-utils'; +import { isIndexable } from '@glimmer/util/lib/collections'; +import { $v0 } from '@glimmer/vm/lib/registers'; import { isCurriedType, resolveCurriedValue } from '../../curried-value'; import { APPEND_OPCODES } from '../../opcodes'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/lists.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/lists.ts index c4c87ab21fc..31b69f5286c 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/lists.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/lists.ts @@ -1,6 +1,7 @@ -import { VM_ENTER_LIST_OP, VM_EXIT_LIST_OP, VM_ITERATE_OP } from '@glimmer/constants'; -import { check } from '@glimmer/debug'; -import { createIteratorRef, valueForRef } from '@glimmer/reference'; +import { VM_ENTER_LIST_OP, VM_EXIT_LIST_OP, VM_ITERATE_OP } from '@glimmer/constants/lib/syscall-ops'; +import { check } from '@glimmer/debug/lib/stack-check'; +import { createIteratorRef } from '@glimmer/reference/lib/iterable'; +import { valueForRef } from '@glimmer/reference/lib/reference'; import { APPEND_OPCODES } from '../../opcodes'; import { CheckIterator, CheckReference } from './-debug-strip'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/vm.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/vm.ts index c020d26dae7..2260e86dae6 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/vm.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/vm.ts @@ -1,68 +1,16 @@ import type { CompilableTemplate, Nullable, UpdatingOpcode } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import type { Revision, Tag } from '@glimmer/validator'; -import { - decodeHandle, - decodeImmediate, - isHandle, - VM_ASSERT_SAME_OP, - VM_BIND_DYNAMIC_SCOPE_OP, - VM_CHILD_SCOPE_OP, - VM_COMPILE_BLOCK_OP, - VM_CONSTANT_OP, - VM_CONSTANT_REFERENCE_OP, - VM_DUP_OP, - VM_ENTER_OP, - VM_EXIT_OP, - VM_FETCH_OP, - VM_INVOKE_YIELD_OP, - VM_JUMP_EQ_OP, - VM_JUMP_IF_OP, - VM_JUMP_UNLESS_OP, - VM_LOAD_OP, - VM_POP_DYNAMIC_SCOPE_OP, - VM_POP_OP, - VM_POP_SCOPE_OP, - VM_PRIMITIVE_OP, - VM_PRIMITIVE_REFERENCE_OP, - VM_PUSH_BLOCK_SCOPE_OP, - VM_PUSH_DYNAMIC_SCOPE_OP, - VM_PUSH_SYMBOL_TABLE_OP, - VM_TO_BOOLEAN_OP, -} from '@glimmer/constants'; -import { - check, - CheckBlockSymbolTable, - CheckHandle, - CheckInstanceof, - CheckNullable, - CheckNumber, - CheckPrimitive, - CheckRegister, - CheckSyscallRegister, -} from '@glimmer/debug'; -import { expect, assert, unwrap } from '@glimmer/debug-util'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import type { Revision } from '@glimmer/validator/lib/validators'; +import type { Tag } from '@glimmer/interfaces'; +import { decodeHandle, decodeImmediate, isHandle } from '@glimmer/constants/lib/immediate'; +import { VM_ASSERT_SAME_OP, VM_BIND_DYNAMIC_SCOPE_OP, VM_CHILD_SCOPE_OP, VM_COMPILE_BLOCK_OP, VM_CONSTANT_OP, VM_CONSTANT_REFERENCE_OP, VM_DUP_OP, VM_ENTER_OP, VM_EXIT_OP, VM_FETCH_OP, VM_INVOKE_YIELD_OP, VM_JUMP_EQ_OP, VM_JUMP_IF_OP, VM_JUMP_UNLESS_OP, VM_LOAD_OP, VM_POP_DYNAMIC_SCOPE_OP, VM_POP_OP, VM_POP_SCOPE_OP, VM_PRIMITIVE_OP, VM_PRIMITIVE_REFERENCE_OP, VM_PUSH_BLOCK_SCOPE_OP, VM_PUSH_DYNAMIC_SCOPE_OP, VM_PUSH_SYMBOL_TABLE_OP, VM_TO_BOOLEAN_OP } from '@glimmer/constants/lib/syscall-ops'; +import { check, CheckBlockSymbolTable, CheckHandle, CheckInstanceof, CheckNullable, CheckNumber, CheckPrimitive, CheckRegister, CheckSyscallRegister } from '@glimmer/debug/lib/stack-check'; +import { expect, unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; import { toBool } from '@glimmer/global-context'; -import { - createComputeRef, - createConstRef, - createPrimitiveRef, - FALSE_REFERENCE, - isConstRef, - NULL_REFERENCE, - TRUE_REFERENCE, - UNDEFINED_REFERENCE, - valueForRef, -} from '@glimmer/reference'; -import { - beginTrackFrame, - CONSTANT_TAG, - consumeTag, - endTrackFrame, - INITIAL, - validateTag, - valueForTag, -} from '@glimmer/validator'; +import { createComputeRef, createConstRef, createPrimitiveRef, FALSE_REFERENCE, isConstRef, NULL_REFERENCE, TRUE_REFERENCE, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import { beginTrackFrame, consumeTag, endTrackFrame } from '@glimmer/validator/lib/tracking'; +import { CONSTANT_TAG, INITIAL, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; import type { UpdatingVM } from '../../vm'; import type { VM } from '../../vm/append'; diff --git a/packages/@glimmer/runtime/lib/component/resolve.ts b/packages/@glimmer/runtime/lib/component/resolve.ts index 5287d0bdfa7..cc97187c207 100644 --- a/packages/@glimmer/runtime/lib/component/resolve.ts +++ b/packages/@glimmer/runtime/lib/component/resolve.ts @@ -6,7 +6,7 @@ import type { Owner, ResolutionTimeConstants, } from '@glimmer/interfaces'; -import { expect } from '@glimmer/debug-util'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; export function resolveComponent( resolver: Nullable, diff --git a/packages/@glimmer/runtime/lib/component/template-only.ts b/packages/@glimmer/runtime/lib/component/template-only.ts index ba3ee9720f3..71eb3f8dafc 100644 --- a/packages/@glimmer/runtime/lib/component/template-only.ts +++ b/packages/@glimmer/runtime/lib/component/template-only.ts @@ -1,7 +1,7 @@ import type { InternalComponentCapabilities, InternalComponentManager } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { setInternalComponentManager } from '@glimmer/manager'; -import { NULL_REFERENCE } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { setInternalComponentManager } from '@glimmer/manager/lib/internal/api'; +import { NULL_REFERENCE } from '@glimmer/reference/lib/reference'; const CAPABILITIES: InternalComponentCapabilities = { dynamicLayout: false, diff --git a/packages/@glimmer/runtime/lib/curried-value.ts b/packages/@glimmer/runtime/lib/curried-value.ts index 9663cbc2098..d6f942d0123 100644 --- a/packages/@glimmer/runtime/lib/curried-value.ts +++ b/packages/@glimmer/runtime/lib/curried-value.ts @@ -6,7 +6,7 @@ import type { CurriedType, Owner, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; const TYPE: unique symbol = Symbol('TYPE'); const INNER: unique symbol = Symbol('INNER'); diff --git a/packages/@glimmer/runtime/lib/debug-render-tree.ts b/packages/@glimmer/runtime/lib/debug-render-tree.ts index 187e9fabab3..8b09ce748d6 100644 --- a/packages/@glimmer/runtime/lib/debug-render-tree.ts +++ b/packages/@glimmer/runtime/lib/debug-render-tree.ts @@ -7,8 +7,9 @@ import type { Nullable, RenderNode, } from '@glimmer/interfaces'; -import { expect } from '@glimmer/debug-util'; -import { assign, Stack } from '@glimmer/util'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import { assign } from '@glimmer/util/lib/object-utils'; +import { StackImpl as Stack } from '@glimmer/util/lib/collections'; import { reifyArgsDebug } from './vm/arguments'; diff --git a/packages/@glimmer/runtime/lib/dom/operations.ts b/packages/@glimmer/runtime/lib/dom/operations.ts index 779ff30b502..8b9f002d9c5 100644 --- a/packages/@glimmer/runtime/lib/dom/operations.ts +++ b/packages/@glimmer/runtime/lib/dom/operations.ts @@ -9,8 +9,8 @@ import type { SimpleNode, SimpleText, } from '@glimmer/interfaces'; -import { INSERT_BEFORE_BEGIN, INSERT_BEFORE_END, NS_MATHML, NS_SVG } from '@glimmer/constants'; -import { expect } from '@glimmer/debug-util'; +import { INSERT_BEFORE_BEGIN, INSERT_BEFORE_END, NS_MATHML, NS_SVG } from '@glimmer/constants/lib/dom'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; import { ConcreteBounds } from '../bounds'; diff --git a/packages/@glimmer/runtime/lib/environment.ts b/packages/@glimmer/runtime/lib/environment.ts index 9adfe360b61..bafbefe2f82 100644 --- a/packages/@glimmer/runtime/lib/environment.ts +++ b/packages/@glimmer/runtime/lib/environment.ts @@ -13,9 +13,11 @@ import type { Transaction, TransactionSymbol, } from '@glimmer/interfaces'; -import { expect, assert } from '@glimmer/debug-util'; -import { ProgramImpl } from '@glimmer/program'; -import { track, updateTag } from '@glimmer/validator'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; +import { ProgramImpl } from '@glimmer/program/lib/program'; +import { track } from '@glimmer/validator/lib/tracking'; +import { UPDATE_TAG as updateTag } from '@glimmer/validator/lib/validators'; import DebugRenderTree from './debug-render-tree'; import { DOMChangesImpl, DOMTreeConstruction } from './dom/helper'; diff --git a/packages/@glimmer/runtime/lib/helpers/array.ts b/packages/@glimmer/runtime/lib/helpers/array.ts index c4b3f32b830..dd987298931 100644 --- a/packages/@glimmer/runtime/lib/helpers/array.ts +++ b/packages/@glimmer/runtime/lib/helpers/array.ts @@ -1,6 +1,6 @@ import type { CapturedArguments } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { createComputeRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createComputeRef } from '@glimmer/reference/lib/reference'; import { reifyPositional } from '../vm/arguments'; import { internalHelper } from './internal-helper'; diff --git a/packages/@glimmer/runtime/lib/helpers/concat.ts b/packages/@glimmer/runtime/lib/helpers/concat.ts index ea73624f3fb..2b42206d3ff 100644 --- a/packages/@glimmer/runtime/lib/helpers/concat.ts +++ b/packages/@glimmer/runtime/lib/helpers/concat.ts @@ -1,5 +1,5 @@ import type { CapturedArguments } from '@glimmer/interfaces'; -import { createComputeRef } from '@glimmer/reference'; +import { createComputeRef } from '@glimmer/reference/lib/reference'; import { reifyPositional } from '../vm/arguments'; import { internalHelper } from './internal-helper'; diff --git a/packages/@glimmer/runtime/lib/helpers/fn.ts b/packages/@glimmer/runtime/lib/helpers/fn.ts index 1fbf2b89305..9c33c782b8f 100644 --- a/packages/@glimmer/runtime/lib/helpers/fn.ts +++ b/packages/@glimmer/runtime/lib/helpers/fn.ts @@ -1,9 +1,9 @@ import { DEBUG } from '@glimmer/env'; import type { AnyFn, CapturedArguments } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { check } from '@glimmer/debug'; -import { buildUntouchableThis } from '@glimmer/debug-util'; -import { createComputeRef, isInvokableRef, updateRef, valueForRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { check } from '@glimmer/debug/lib/stack-check'; +import buildUntouchableThis from '@glimmer/debug-util/lib/untouchable-this'; +import { createComputeRef, isInvokableRef, updateRef, valueForRef } from '@glimmer/reference/lib/reference'; import { reifyPositional } from '../vm/arguments'; import { internalHelper } from './internal-helper'; diff --git a/packages/@glimmer/runtime/lib/helpers/get.ts b/packages/@glimmer/runtime/lib/helpers/get.ts index 99fd8d30793..18c2932c6ec 100644 --- a/packages/@glimmer/runtime/lib/helpers/get.ts +++ b/packages/@glimmer/runtime/lib/helpers/get.ts @@ -1,7 +1,7 @@ import type { CapturedArguments } from '@glimmer/interfaces'; import { getPath, setPath } from '@glimmer/global-context'; -import { createComputeRef, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference'; -import { isDict } from '@glimmer/util'; +import { createComputeRef, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import { isDict } from '@glimmer/util/lib/collections'; import { internalHelper } from './internal-helper'; diff --git a/packages/@glimmer/runtime/lib/helpers/hash.ts b/packages/@glimmer/runtime/lib/helpers/hash.ts index 3c482a025d2..d71cc77c86e 100644 --- a/packages/@glimmer/runtime/lib/helpers/hash.ts +++ b/packages/@glimmer/runtime/lib/helpers/hash.ts @@ -1,6 +1,6 @@ import type { CapturedArguments, Dict } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { createComputeRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createComputeRef } from '@glimmer/reference/lib/reference'; import { reifyNamed } from '../vm/arguments'; import { internalHelper } from './internal-helper'; diff --git a/packages/@glimmer/runtime/lib/helpers/internal-helper.ts b/packages/@glimmer/runtime/lib/helpers/internal-helper.ts index a95b2999033..a5bc752e73c 100644 --- a/packages/@glimmer/runtime/lib/helpers/internal-helper.ts +++ b/packages/@glimmer/runtime/lib/helpers/internal-helper.ts @@ -1,5 +1,5 @@ import type { Helper, HelperDefinitionState } from '@glimmer/interfaces'; -import { setInternalHelperManager } from '@glimmer/manager'; +import { setInternalHelperManager } from '@glimmer/manager/lib/internal/api'; export function internalHelper(helper: Helper): HelperDefinitionState { return setInternalHelperManager(helper, {}); diff --git a/packages/@glimmer/runtime/lib/helpers/invoke.ts b/packages/@glimmer/runtime/lib/helpers/invoke.ts index e32ab87979b..e82e44e28c3 100644 --- a/packages/@glimmer/runtime/lib/helpers/invoke.ts +++ b/packages/@glimmer/runtime/lib/helpers/invoke.ts @@ -1,10 +1,11 @@ import { DEBUG } from '@glimmer/env'; import type { Arguments, InternalHelperManager } from '@glimmer/interfaces'; -import type { Cache } from '@glimmer/validator'; +import type { Cache } from '@glimmer/validator/lib/tracking'; import { associateDestroyableChild, isDestroyed, isDestroying } from '@glimmer/destroyable'; -import { getInternalHelperManager, hasDestroyable, hasValue } from '@glimmer/manager'; +import { getInternalHelperManager } from '@glimmer/manager/lib/internal/api'; +import { hasDestroyable, hasValue } from '@glimmer/manager/lib/public/helper'; import { getOwner } from '@glimmer/owner'; -import { createCache, getValue } from '@glimmer/validator'; +import { createCache, getValue } from '@glimmer/validator/lib/tracking'; import { EMPTY_ARGS, EMPTY_NAMED, EMPTY_POSITIONAL } from '../vm/arguments'; diff --git a/packages/@glimmer/runtime/lib/modifiers/on.ts b/packages/@glimmer/runtime/lib/modifiers/on.ts index 787e21e74aa..1b75f534402 100644 --- a/packages/@glimmer/runtime/lib/modifiers/on.ts +++ b/packages/@glimmer/runtime/lib/modifiers/on.ts @@ -6,19 +6,12 @@ import type { SimpleElement, UpdatableTag, } from '@glimmer/interfaces'; -import { - check, - CheckBoolean, - CheckFunction, - CheckOr, - CheckString, - CheckUndefined, -} from '@glimmer/debug'; -import { buildUntouchableThis } from '@glimmer/debug-util'; +import { check, CheckBoolean, CheckFunction, CheckOr, CheckString, CheckUndefined } from '@glimmer/debug/lib/stack-check'; +import buildUntouchableThis from '@glimmer/debug-util/lib/untouchable-this'; import { registerDestructor } from '@glimmer/destroyable'; -import { setInternalModifierManager } from '@glimmer/manager'; -import { valueForRef } from '@glimmer/reference'; -import { createUpdatableTag } from '@glimmer/validator'; +import { setInternalModifierManager } from '@glimmer/manager/lib/internal/api'; +import { valueForRef } from '@glimmer/reference/lib/reference'; +import { createUpdatableTag } from '@glimmer/validator/lib/validators'; import { reifyNamed } from '../vm/arguments'; diff --git a/packages/@glimmer/runtime/lib/opcodes.ts b/packages/@glimmer/runtime/lib/opcodes.ts index 247597dda93..2a9228097ed 100644 --- a/packages/@glimmer/runtime/lib/opcodes.ts +++ b/packages/@glimmer/runtime/lib/opcodes.ts @@ -1,4 +1,4 @@ -import type { DebugOp, SomeDisassembledOperand } from '@glimmer/debug'; +import type { DebugOp, SomeDisassembledOperand } from '@glimmer/debug/lib/debug'; import type { DebugVmSnapshot, Dict, @@ -10,21 +10,18 @@ import type { VmMachineOp, VmOp, } from '@glimmer/interfaces'; -import { VM_SYSCALL_SIZE } from '@glimmer/constants'; -import { - DebugLogger, - debugOp, - describeOp, - describeOpcode, - frag, - opcodeMetadata, - recordStackSize, - VmSnapshot, -} from '@glimmer/debug'; -import { dev, assert, unwrap } from '@glimmer/debug-util'; +import { VM_SYSCALL_SIZE } from '@glimmer/constants/lib/syscall-ops'; +import { DebugLogger } from '@glimmer/debug/lib/render/logger'; +import { debugOp, describeOp, describeOpcode } from '@glimmer/debug/lib/debug'; +import { frag } from '@glimmer/debug/lib/render/fragment'; +import { opcodeMetadata } from '@glimmer/debug/lib/opcode-metadata'; +import { recordStackSize } from '@glimmer/debug/lib/stack-check'; +import { VmSnapshot } from '@glimmer/debug/lib/vm/snapshot'; +import { dev, unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; import { LOCAL_DEBUG, LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; import { LOCAL_LOGGER } from '@glimmer/util'; -import { $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0 } from '@glimmer/vm'; +import { $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0 } from '@glimmer/vm/lib/registers'; import type { LowLevelVM, VM } from './vm'; import type { Externs } from './vm/low-level'; diff --git a/packages/@glimmer/runtime/lib/references/class-list.ts b/packages/@glimmer/runtime/lib/references/class-list.ts index ad039374926..6860eb03d69 100644 --- a/packages/@glimmer/runtime/lib/references/class-list.ts +++ b/packages/@glimmer/runtime/lib/references/class-list.ts @@ -1,5 +1,5 @@ -import type { Reference } from '@glimmer/reference'; -import { createComputeRef, valueForRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { createComputeRef, valueForRef } from '@glimmer/reference/lib/reference'; import { normalizeStringValue } from '../dom/normalize'; diff --git a/packages/@glimmer/runtime/lib/references/curry-value.ts b/packages/@glimmer/runtime/lib/references/curry-value.ts index ab1e01433e8..2c092e0e5f3 100644 --- a/packages/@glimmer/runtime/lib/references/curry-value.ts +++ b/packages/@glimmer/runtime/lib/references/curry-value.ts @@ -8,11 +8,11 @@ import type { Nullable, Owner, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { CURRIED_COMPONENT } from '@glimmer/constants'; -import { expect } from '@glimmer/debug-util'; -import { createComputeRef, valueForRef } from '@glimmer/reference'; -import { isIndexable } from '@glimmer/util'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { CURRIED_COMPONENT } from '@glimmer/constants/lib/curried'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import { createComputeRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { isIndexable } from '@glimmer/util/lib/collections'; import { curry, isCurriedType } from '../curried-value'; diff --git a/packages/@glimmer/runtime/lib/render.ts b/packages/@glimmer/runtime/lib/render.ts index ea375633868..7061473ebe7 100644 --- a/packages/@glimmer/runtime/lib/render.ts +++ b/packages/@glimmer/runtime/lib/render.ts @@ -11,11 +11,12 @@ import type { TemplateIterator, TreeBuilder, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { dev, expect, unwrapHandle } from '@glimmer/debug-util'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { dev, expect } from '@glimmer/debug-util/lib/platform-utils'; +import { unwrapHandle } from '@glimmer/debug-util/lib/template'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; -import { childRefFor, createConstRef } from '@glimmer/reference'; -import { debug } from '@glimmer/validator'; +import { childRefFor, createConstRef } from '@glimmer/reference/lib/reference'; +import { debug } from '@glimmer/validator/lib/debug'; import { inTransaction } from './environment'; import { DynamicScopeImpl } from './scope'; diff --git a/packages/@glimmer/runtime/lib/scope.ts b/packages/@glimmer/runtime/lib/scope.ts index 853c0c5357e..035f950f742 100644 --- a/packages/@glimmer/runtime/lib/scope.ts +++ b/packages/@glimmer/runtime/lib/scope.ts @@ -7,10 +7,10 @@ import type { ScopeBlock, ScopeSlot, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { unwrap } from '@glimmer/debug-util'; -import { UNDEFINED_REFERENCE } from '@glimmer/reference'; -import { assign } from '@glimmer/util'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import { UNDEFINED_REFERENCE } from '@glimmer/reference/lib/reference'; +import { assign } from '@glimmer/util/lib/object-utils'; export class DynamicScopeImpl implements DynamicScope { private bucket: Dict; diff --git a/packages/@glimmer/runtime/lib/vm/append.ts b/packages/@glimmer/runtime/lib/vm/append.ts index 5d43072ccf5..d6f1613e89f 100644 --- a/packages/@glimmer/runtime/lib/vm/append.ts +++ b/packages/@glimmer/runtime/lib/vm/append.ts @@ -20,16 +20,21 @@ import type { TreeBuilder, UpdatingOpcode, } from '@glimmer/interfaces'; -import type { OpaqueIterationItem, OpaqueIterator, Reference } from '@glimmer/reference'; -import type { MachineRegister, Register, SyscallRegister } from '@glimmer/vm'; -import { dev, expect, unwrapHandle } from '@glimmer/debug-util'; +import type { OpaqueIterationItem, OpaqueIterator } from '@glimmer/reference/lib/iterable'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import type { MachineRegister, Register, SyscallRegister } from '@glimmer/vm/lib/registers'; +import { dev, expect } from '@glimmer/debug-util/lib/platform-utils'; +import { unwrapHandle } from '@glimmer/debug-util/lib/template'; import { associateDestroyableChild } from '@glimmer/destroyable'; import { assertGlobalContextWasSet } from '@glimmer/global-context'; import { LOCAL_DEBUG, LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; -import { createIteratorItemRef, UNDEFINED_REFERENCE } from '@glimmer/reference'; -import { LOCAL_LOGGER, reverse, Stack } from '@glimmer/util'; -import { beginTrackFrame, endTrackFrame, resetTracking } from '@glimmer/validator'; -import { $pc, isLowLevelRegister } from '@glimmer/vm'; +import { createIteratorItemRef } from '@glimmer/reference/lib/iterable'; +import { UNDEFINED_REFERENCE } from '@glimmer/reference/lib/reference'; +import { reverse } from '@glimmer/util/lib/array-utils'; +import { StackImpl as Stack } from '@glimmer/util/lib/collections'; +import { LOCAL_LOGGER } from '@glimmer/util'; +import { beginTrackFrame, endTrackFrame, resetTracking } from '@glimmer/validator/lib/tracking'; +import { $pc, isLowLevelRegister } from '@glimmer/vm/lib/registers'; import type { ScopeOptions } from '../scope'; import type { AppendingBlockList } from './element-builder'; diff --git a/packages/@glimmer/runtime/lib/vm/arguments.ts b/packages/@glimmer/runtime/lib/vm/arguments.ts index 02ad9ab9af1..770d940b96b 100644 --- a/packages/@glimmer/runtime/lib/vm/arguments.ts +++ b/packages/@glimmer/runtime/lib/vm/arguments.ts @@ -17,14 +17,16 @@ import type { ScopeBlock, VMArguments, } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import type { Tag } from '@glimmer/validator'; -import { check, CheckBlockSymbolTable, CheckHandle, CheckNullable, CheckOr } from '@glimmer/debug'; -import { setLocalDebugType, unwrap } from '@glimmer/debug-util'; -import { createDebugAliasRef, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference'; -import { dict, EMPTY_STRING_ARRAY, emptyArray, enumerate } from '@glimmer/util'; -import { CONSTANT_TAG } from '@glimmer/validator'; -import { $sp } from '@glimmer/vm'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import type { Tag } from '@glimmer/interfaces'; +import { check, CheckBlockSymbolTable, CheckHandle, CheckNullable, CheckOr } from '@glimmer/debug/lib/stack-check'; +import { setLocalDebugType } from '@glimmer/debug-util/lib/debug-brand'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import { createDebugAliasRef, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import { dict } from '@glimmer/util/lib/collections'; +import { EMPTY_STRING_ARRAY, emptyArray, enumerate } from '@glimmer/util/lib/array-utils'; +import { CONSTANT_TAG } from '@glimmer/validator/lib/validators'; +import { $sp } from '@glimmer/vm/lib/registers'; import type { EvaluationStack } from './stack'; diff --git a/packages/@glimmer/runtime/lib/vm/attributes/dynamic.ts b/packages/@glimmer/runtime/lib/vm/attributes/dynamic.ts index 2771ad973d3..8625d050450 100644 --- a/packages/@glimmer/runtime/lib/vm/attributes/dynamic.ts +++ b/packages/@glimmer/runtime/lib/vm/attributes/dynamic.ts @@ -9,8 +9,8 @@ import type { SimpleElement, TreeBuilder, } from '@glimmer/interfaces'; -import { NS_SVG } from '@glimmer/constants'; -import { castToBrowser } from '@glimmer/debug-util'; +import { NS_SVG } from '@glimmer/constants/lib/dom'; +import { castToBrowser } from '@glimmer/debug-util/lib/simple-cast'; import { warnIfStyleNotTrusted } from '@glimmer/global-context'; import type { MutableKey } from '../element-builder'; diff --git a/packages/@glimmer/runtime/lib/vm/content/text.ts b/packages/@glimmer/runtime/lib/vm/content/text.ts index 1cec5a5a681..fa5658abf81 100644 --- a/packages/@glimmer/runtime/lib/vm/content/text.ts +++ b/packages/@glimmer/runtime/lib/vm/content/text.ts @@ -1,6 +1,6 @@ import type { SimpleText, UpdatingOpcode } from '@glimmer/interfaces'; -import type { Reference } from '@glimmer/reference'; -import { valueForRef } from '@glimmer/reference'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { valueForRef } from '@glimmer/reference/lib/reference'; import { isEmpty, isString } from '../../dom/normalize'; diff --git a/packages/@glimmer/runtime/lib/vm/element-builder.ts b/packages/@glimmer/runtime/lib/vm/element-builder.ts index cfda7902ba2..1e3a21359bc 100644 --- a/packages/@glimmer/runtime/lib/vm/element-builder.ts +++ b/packages/@glimmer/runtime/lib/vm/element-builder.ts @@ -18,10 +18,12 @@ import type { SimpleText, TreeBuilder, } from '@glimmer/interfaces'; -import { expect, assert, setLocalDebugType } from '@glimmer/debug-util'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; +import { setLocalDebugType } from '@glimmer/debug-util/lib/debug-brand'; import { destroy, registerDestructor } from '@glimmer/destroyable'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; -import { Stack } from '@glimmer/util'; +import { StackImpl as Stack } from '@glimmer/util/lib/collections'; import type { DynamicAttribute } from './attributes/dynamic'; diff --git a/packages/@glimmer/runtime/lib/vm/low-level.ts b/packages/@glimmer/runtime/lib/vm/low-level.ts index f30c99c1304..bb68f80a906 100644 --- a/packages/@glimmer/runtime/lib/vm/low-level.ts +++ b/packages/@glimmer/runtime/lib/vm/low-level.ts @@ -1,17 +1,9 @@ import type { EvaluationContext, Nullable, RuntimeOp } from '@glimmer/interfaces'; -import type { MachineRegister } from '@glimmer/vm'; -import { - VM_INVOKE_STATIC_OP, - VM_INVOKE_VIRTUAL_OP, - VM_JUMP_OP, - VM_POP_FRAME_OP, - VM_PUSH_FRAME_OP, - VM_RETURN_OP, - VM_RETURN_TO_OP, -} from '@glimmer/constants'; -import { assert } from '@glimmer/debug-util'; +import type { MachineRegister } from '@glimmer/vm/lib/registers'; +import { VM_INVOKE_STATIC_OP, VM_INVOKE_VIRTUAL_OP, VM_JUMP_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP, VM_RETURN_OP, VM_RETURN_TO_OP } from '@glimmer/constants/lib/vm-ops'; +import assert from '@glimmer/debug-util/lib/assert'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; -import { $fp, $pc, $ra, $sp } from '@glimmer/vm'; +import { $fp, $pc, $ra, $sp } from '@glimmer/vm/lib/registers'; import type { DebugState } from '../opcodes'; import type { VM } from './append'; diff --git a/packages/@glimmer/runtime/lib/vm/rehydrate-builder.ts b/packages/@glimmer/runtime/lib/vm/rehydrate-builder.ts index 0028ae54637..ac6ab04ae8d 100644 --- a/packages/@glimmer/runtime/lib/vm/rehydrate-builder.ts +++ b/packages/@glimmer/runtime/lib/vm/rehydrate-builder.ts @@ -11,9 +11,11 @@ import type { SimpleText, TreeBuilder, } from '@glimmer/interfaces'; -import type { Stack } from '@glimmer/util'; -import { COMMENT_NODE, ELEMENT_NODE, NS_SVG, TEXT_NODE } from '@glimmer/constants'; -import { castToBrowser, castToSimple, expect, assert } from '@glimmer/debug-util'; +import type { StackImpl as Stack } from '@glimmer/util/lib/collections'; +import { COMMENT_NODE, ELEMENT_NODE, NS_SVG, TEXT_NODE } from '@glimmer/constants/lib/dom'; +import { castToBrowser, castToSimple } from '@glimmer/debug-util/lib/simple-cast'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; import { ConcreteBounds, CursorImpl } from '../bounds'; import { NewTreeBuilder, RemoteBlock } from './element-builder'; diff --git a/packages/@glimmer/runtime/lib/vm/render-result.ts b/packages/@glimmer/runtime/lib/vm/render-result.ts index bb2129ddfa7..32dbca888d0 100644 --- a/packages/@glimmer/runtime/lib/vm/render-result.ts +++ b/packages/@glimmer/runtime/lib/vm/render-result.ts @@ -6,7 +6,7 @@ import type { SimpleNode, UpdatingOpcode, } from '@glimmer/interfaces'; -import { unreachable } from '@glimmer/debug-util'; +import { unreachable } from '@glimmer/debug-util/lib/platform-utils'; import { associateDestroyableChild, registerDestructor } from '@glimmer/destroyable'; import { clear } from '../bounds'; diff --git a/packages/@glimmer/runtime/lib/vm/stack.ts b/packages/@glimmer/runtime/lib/vm/stack.ts index b89cc8fbf32..9d736c28a64 100644 --- a/packages/@glimmer/runtime/lib/vm/stack.ts +++ b/packages/@glimmer/runtime/lib/vm/stack.ts @@ -1,6 +1,6 @@ -import { assert } from '@glimmer/debug-util'; +import assert from '@glimmer/debug-util/lib/assert'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; -import { $fp, $pc, $sp } from '@glimmer/vm'; +import { $fp, $pc, $sp } from '@glimmer/vm/lib/registers'; import type { LowLevelRegisters } from './low-level'; diff --git a/packages/@glimmer/runtime/lib/vm/update.ts b/packages/@glimmer/runtime/lib/vm/update.ts index 06386416da2..92981cc0531 100644 --- a/packages/@glimmer/runtime/lib/vm/update.ts +++ b/packages/@glimmer/runtime/lib/vm/update.ts @@ -14,13 +14,16 @@ import type { UpdatingOpcode, UpdatingVM as IUpdatingVM, } from '@glimmer/interfaces'; -import type { OpaqueIterationItem, OpaqueIterator, Reference } from '@glimmer/reference'; -import { expect, unwrap } from '@glimmer/debug-util'; +import type { OpaqueIterationItem, OpaqueIterator } from '@glimmer/reference/lib/iterable'; +import type { Reference } from '@glimmer/reference/lib/reference'; +import { expect, unwrap } from '@glimmer/debug-util/lib/platform-utils'; import { associateDestroyableChild, destroy, destroyChildren } from '@glimmer/destroyable'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; -import { updateRef, valueForRef } from '@glimmer/reference'; -import { logStep, Stack } from '@glimmer/util'; -import { debug, resetTracking } from '@glimmer/validator'; +import { updateRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { logStep } from '@glimmer/util/lib/debug-steps'; +import { StackImpl as Stack } from '@glimmer/util/lib/collections'; +import { debug } from '@glimmer/validator/lib/debug'; +import { resetTracking } from '@glimmer/validator/lib/tracking'; import type { Closure } from './append'; import type { AppendingBlockList } from './element-builder'; diff --git a/packages/@glimmer/syntax/lib/parser.ts b/packages/@glimmer/syntax/lib/parser.ts index 1f2164f2ff7..7b16e7cba85 100644 --- a/packages/@glimmer/syntax/lib/parser.ts +++ b/packages/@glimmer/syntax/lib/parser.ts @@ -1,6 +1,8 @@ import type { Nullable } from '@glimmer/interfaces'; -import { asPresentArray, expect, getLast, assert, unwrap } from '@glimmer/debug-util'; -import { assign } from '@glimmer/util'; +import { asPresentArray, getLast } from '@glimmer/debug-util/lib/present'; +import { expect, unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; +import { assign } from '@glimmer/util/lib/object-utils'; import { EntityParser, EventedTokenizer, diff --git a/packages/@glimmer/syntax/lib/parser/handlebars-node-visitors.ts b/packages/@glimmer/syntax/lib/parser/handlebars-node-visitors.ts index 3c568b70fe7..d074656f662 100644 --- a/packages/@glimmer/syntax/lib/parser/handlebars-node-visitors.ts +++ b/packages/@glimmer/syntax/lib/parser/handlebars-node-visitors.ts @@ -1,7 +1,9 @@ /* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */ import type { Nullable, Recast } from '@glimmer/interfaces'; import type { TokenizerState } from 'simple-html-tokenizer'; -import { getLast, isPresentArray, assert, unwrap } from '@glimmer/debug-util'; +import { getLast, isPresentArray } from '@glimmer/debug-util/lib/present'; +import assert from '@glimmer/debug-util/lib/assert'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; import type { ParserNodeBuilder, StartTag } from '../parser'; import type * as src from '../source/api'; diff --git a/packages/@glimmer/syntax/lib/parser/tokenizer-event-handlers.ts b/packages/@glimmer/syntax/lib/parser/tokenizer-event-handlers.ts index 1e0efff0155..71d1897d730 100644 --- a/packages/@glimmer/syntax/lib/parser/tokenizer-event-handlers.ts +++ b/packages/@glimmer/syntax/lib/parser/tokenizer-event-handlers.ts @@ -1,14 +1,8 @@ import type { Nullable } from '@glimmer/interfaces'; import type { TokenizerState } from 'simple-html-tokenizer'; -import { - asPresentArray, - assertPresentArray, - getFirst, - getLast, - isPresentArray, - assert, -} from '@glimmer/debug-util'; -import { assign } from '@glimmer/util'; +import { asPresentArray, assertPresentArray, getFirst, getLast, isPresentArray } from '@glimmer/debug-util/lib/present'; +import assert from '@glimmer/debug-util/lib/assert'; +import { assign } from '@glimmer/util/lib/object-utils'; import { parse, parseWithoutProcessing } from '@handlebars/parser'; import { EntityParser } from 'simple-html-tokenizer'; diff --git a/packages/@glimmer/syntax/lib/source/loc/match.ts b/packages/@glimmer/syntax/lib/source/loc/match.ts index 07a7dc6b8f2..1f26a035298 100644 --- a/packages/@glimmer/syntax/lib/source/loc/match.ts +++ b/packages/@glimmer/syntax/lib/source/loc/match.ts @@ -1,4 +1,5 @@ -import { isPresentArray, assert } from '@glimmer/debug-util'; +import { isPresentArray } from '@glimmer/debug-util/lib/present'; +import assert from '@glimmer/debug-util/lib/assert'; import type { CharOffsetKind, HbsPositionKind, OffsetKind } from './kinds'; import type { CharPosition, HbsPosition, InvisiblePosition, PositionData } from './offset'; diff --git a/packages/@glimmer/syntax/lib/source/loc/span.ts b/packages/@glimmer/syntax/lib/source/loc/span.ts index 6168c1231bd..3beff4c394e 100644 --- a/packages/@glimmer/syntax/lib/source/loc/span.ts +++ b/packages/@glimmer/syntax/lib/source/loc/span.ts @@ -1,4 +1,4 @@ -import { assert } from '@glimmer/debug-util'; +import assert from '@glimmer/debug-util/lib/assert'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; import { assertNever } from '@glimmer/util'; diff --git a/packages/@glimmer/syntax/lib/source/location.ts b/packages/@glimmer/syntax/lib/source/location.ts index 1e2bc3129fc..9adaa277536 100644 --- a/packages/@glimmer/syntax/lib/source/location.ts +++ b/packages/@glimmer/syntax/lib/source/location.ts @@ -1,5 +1,5 @@ import type { PresentArray } from '@glimmer/interfaces'; -import { isPresentArray } from '@glimmer/debug-util'; +import { isPresentArray } from '@glimmer/debug-util/lib/present'; import type { SourceSpan } from './span'; diff --git a/packages/@glimmer/syntax/lib/source/source.ts b/packages/@glimmer/syntax/lib/source/source.ts index 822dcccf2cc..68db73bfd39 100644 --- a/packages/@glimmer/syntax/lib/source/source.ts +++ b/packages/@glimmer/syntax/lib/source/source.ts @@ -1,6 +1,7 @@ import { DEBUG } from '@glimmer/env'; import type { Nullable } from '@glimmer/interfaces'; -import { assert, setLocalDebugType } from '@glimmer/debug-util'; +import assert from '@glimmer/debug-util/lib/assert'; +import { setLocalDebugType } from '@glimmer/debug-util/lib/debug-brand'; import type { PrecompileOptions } from '../parser/tokenizer-event-handlers'; import type { SourceLocation, SourcePosition } from './location'; diff --git a/packages/@glimmer/syntax/lib/source/span-list.ts b/packages/@glimmer/syntax/lib/source/span-list.ts index fb50c6c5f83..adc0e21e428 100644 --- a/packages/@glimmer/syntax/lib/source/span-list.ts +++ b/packages/@glimmer/syntax/lib/source/span-list.ts @@ -1,5 +1,5 @@ import type { PresentArray } from '@glimmer/interfaces'; -import { getFirst, getLast, isPresentArray } from '@glimmer/debug-util'; +import { getFirst, getLast, isPresentArray } from '@glimmer/debug-util/lib/present'; import type { LocatedWithOptionalSpan, LocatedWithSpan } from './location'; import type { SourceOffset } from './span'; diff --git a/packages/@glimmer/syntax/lib/symbol-table.ts b/packages/@glimmer/syntax/lib/symbol-table.ts index 84515e2194b..6f44e9b2160 100644 --- a/packages/@glimmer/syntax/lib/symbol-table.ts +++ b/packages/@glimmer/syntax/lib/symbol-table.ts @@ -1,7 +1,8 @@ import type { Core, Dict } from '@glimmer/interfaces'; -import { setLocalDebugType, unwrap } from '@glimmer/debug-util'; -import { dict } from '@glimmer/util'; -import { SexpOpcodes } from '@glimmer/wire-format'; +import { setLocalDebugType } from '@glimmer/debug-util/lib/debug-brand'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import { dict } from '@glimmer/util/lib/collections'; +import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; import * as ASTv2 from './v2/api'; diff --git a/packages/@glimmer/syntax/lib/traversal/traverse.ts b/packages/@glimmer/syntax/lib/traversal/traverse.ts index cc91b3d3218..980139b1b74 100644 --- a/packages/@glimmer/syntax/lib/traversal/traverse.ts +++ b/packages/@glimmer/syntax/lib/traversal/traverse.ts @@ -1,4 +1,5 @@ -import { deprecate, unwrap } from '@glimmer/debug-util'; +import { deprecate } from '@glimmer/debug-util/lib/assert'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; import type * as ASTv1 from '../v1/api'; import type { VisitorKey, VisitorKeys } from '../v1/visitor-keys'; diff --git a/packages/@glimmer/syntax/lib/v1/legacy-interop.ts b/packages/@glimmer/syntax/lib/v1/legacy-interop.ts index 27225acfc62..f2b51181562 100644 --- a/packages/@glimmer/syntax/lib/v1/legacy-interop.ts +++ b/packages/@glimmer/syntax/lib/v1/legacy-interop.ts @@ -1,5 +1,6 @@ import type { PresentArray } from '@glimmer/interfaces'; -import { asPresentArray, deprecate } from '@glimmer/debug-util'; +import { asPresentArray } from '@glimmer/debug-util/lib/present'; +import { deprecate } from '@glimmer/debug-util/lib/assert'; import type * as ASTv1 from './nodes-v1'; diff --git a/packages/@glimmer/syntax/lib/v1/parser-builders.ts b/packages/@glimmer/syntax/lib/v1/parser-builders.ts index be683407c3d..b63e817b8c6 100644 --- a/packages/@glimmer/syntax/lib/v1/parser-builders.ts +++ b/packages/@glimmer/syntax/lib/v1/parser-builders.ts @@ -1,5 +1,5 @@ import type { Nullable, Optional, PresentArray } from '@glimmer/interfaces'; -import { assert } from '@glimmer/debug-util'; +import assert from '@glimmer/debug-util/lib/assert'; import type * as ASTv1 from './api'; diff --git a/packages/@glimmer/syntax/lib/v1/public-builders.ts b/packages/@glimmer/syntax/lib/v1/public-builders.ts index 931b4f9301b..b91b75e0de6 100644 --- a/packages/@glimmer/syntax/lib/v1/public-builders.ts +++ b/packages/@glimmer/syntax/lib/v1/public-builders.ts @@ -1,5 +1,6 @@ import type { Dict, Maybe, Nullable } from '@glimmer/interfaces'; -import { asPresentArray, deprecate, isPresentArray, assert } from '@glimmer/debug-util'; +import { asPresentArray, isPresentArray } from '@glimmer/debug-util/lib/present'; +import { deprecate, default as assert } from '@glimmer/debug-util/lib/assert'; import type { SourceLocation, SourcePosition } from '../source/location'; import type * as ASTv1 from './api'; diff --git a/packages/@glimmer/syntax/lib/v2/builders.ts b/packages/@glimmer/syntax/lib/v2/builders.ts index 0b31cab5fb6..609a3b1cda2 100644 --- a/packages/@glimmer/syntax/lib/v2/builders.ts +++ b/packages/@glimmer/syntax/lib/v2/builders.ts @@ -1,6 +1,7 @@ import type { PresentArray } from '@glimmer/interfaces'; -import { assertPresentArray, assert } from '@glimmer/debug-util'; -import { assign } from '@glimmer/util'; +import { assertPresentArray } from '@glimmer/debug-util/lib/present'; +import assert from '@glimmer/debug-util/lib/assert'; +import { assign } from '@glimmer/util/lib/object-utils'; import type { SourceSpan } from '../source/span'; import type { BlockSymbolTable, ProgramSymbolTable, SymbolTable } from '../symbol-table'; diff --git a/packages/@glimmer/syntax/lib/v2/normalize.ts b/packages/@glimmer/syntax/lib/v2/normalize.ts index a8f8d795a0e..0b24ecaecc2 100644 --- a/packages/@glimmer/syntax/lib/v2/normalize.ts +++ b/packages/@glimmer/syntax/lib/v2/normalize.ts @@ -1,6 +1,7 @@ import type { PresentArray } from '@glimmer/interfaces'; -import { asPresentArray, isPresentArray, assert } from '@glimmer/debug-util'; -import { assign } from '@glimmer/util'; +import { asPresentArray, isPresentArray } from '@glimmer/debug-util/lib/present'; +import assert from '@glimmer/debug-util/lib/assert'; +import { assign } from '@glimmer/util/lib/object-utils'; import type { PrecompileOptions, diff --git a/packages/@glimmer/syntax/lib/v2/objects/node.ts b/packages/@glimmer/syntax/lib/v2/objects/node.ts index b5596015b4a..862ae3fc1cb 100644 --- a/packages/@glimmer/syntax/lib/v2/objects/node.ts +++ b/packages/@glimmer/syntax/lib/v2/objects/node.ts @@ -1,5 +1,5 @@ -import { setLocalDebugType } from '@glimmer/debug-util'; -import { assign } from '@glimmer/util'; +import { setLocalDebugType } from '@glimmer/debug-util/lib/debug-brand'; +import { assign } from '@glimmer/util/lib/object-utils'; import type { SourceSpan } from '../../source/span'; diff --git a/packages/@glimmer/syntax/lib/v2/objects/resolution.ts b/packages/@glimmer/syntax/lib/v2/objects/resolution.ts index 6be6345ddd3..c1e344dab0d 100644 --- a/packages/@glimmer/syntax/lib/v2/objects/resolution.ts +++ b/packages/@glimmer/syntax/lib/v2/objects/resolution.ts @@ -6,7 +6,7 @@ */ import type { GetContextualFreeOpcode } from '@glimmer/interfaces'; -import { SexpOpcodes } from '@glimmer/wire-format'; +import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; import type { FreeVarNamespace } from './constants'; diff --git a/packages/@glimmer/tracking/index.ts b/packages/@glimmer/tracking/index.ts index 629afe60472..8663169165b 100644 --- a/packages/@glimmer/tracking/index.ts +++ b/packages/@glimmer/tracking/index.ts @@ -1,4 +1,5 @@ -export { tracked, cached } from '@ember/-internals/metal'; +export { tracked } from '@ember/-internals/metal/lib/tracked'; +export { cached } from '@ember/-internals/metal/lib/cached'; /** In order to tell Ember a value might change, we need to mark it as trackable. diff --git a/packages/@glimmer/tracking/primitives/cache.ts b/packages/@glimmer/tracking/primitives/cache.ts index 29d6d20a0a5..772099baf8d 100644 --- a/packages/@glimmer/tracking/primitives/cache.ts +++ b/packages/@glimmer/tracking/primitives/cache.ts @@ -1 +1 @@ -export { createCache, getValue, isConst } from '@ember/-internals/metal'; +export { createCache, getValue, isConst } from '@glimmer/validator/lib/tracking'; diff --git a/packages/@glimmer/util/lib/collections.ts b/packages/@glimmer/util/lib/collections.ts index 4a77ea3f1b4..f083c7f70e6 100644 --- a/packages/@glimmer/util/lib/collections.ts +++ b/packages/@glimmer/util/lib/collections.ts @@ -1,5 +1,6 @@ import type { Dict, Nullable, Stack } from '@glimmer/interfaces'; -import { getLast, unwrap } from '@glimmer/debug-util'; +import { getLast } from '@glimmer/debug-util/lib/present'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; export function dict(): Dict { return Object.create(null) as Dict; diff --git a/packages/@glimmer/util/lib/debug-steps.ts b/packages/@glimmer/util/lib/debug-steps.ts index e3798887f0c..b0d29420f36 100644 --- a/packages/@glimmer/util/lib/debug-steps.ts +++ b/packages/@glimmer/util/lib/debug-steps.ts @@ -1,6 +1,7 @@ /// -import { expect, assert } from '@glimmer/debug-util'; +import { expect } from '@glimmer/debug-util/lib/platform-utils'; +import assert from '@glimmer/debug-util/lib/assert'; import { LOCAL_DEBUG, LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; import { LOCAL_LOGGER } from './local-logger'; diff --git a/packages/@glimmer/util/lib/string.ts b/packages/@glimmer/util/lib/string.ts index aae096250de..8de6c22c751 100644 --- a/packages/@glimmer/util/lib/string.ts +++ b/packages/@glimmer/util/lib/string.ts @@ -1,4 +1,4 @@ -import { getFirst, getLast, isPresentArray } from '@glimmer/debug-util'; +import { getFirst, getLast, isPresentArray } from '@glimmer/debug-util/lib/present'; import { enumerate } from './array-utils'; diff --git a/packages/@glimmer/validator/lib/debug.ts b/packages/@glimmer/validator/lib/debug.ts index 3578a060562..154acaee33a 100644 --- a/packages/@glimmer/validator/lib/debug.ts +++ b/packages/@glimmer/validator/lib/debug.ts @@ -1,7 +1,7 @@ import { DEBUG } from '@glimmer/env'; /* eslint-disable @typescript-eslint/no-non-null-assertion -- @fixme */ import type { Tag } from '@glimmer/interfaces'; -import { asPresentArray, getLast } from '@glimmer/debug-util'; +import { asPresentArray, getLast } from '@glimmer/debug-util/lib/present'; import { assert } from '@glimmer/global-context'; interface DebugTransaction { From a3750d63459cdc7ee4b562b9909700aa2df58b73 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 01:21:57 -0400 Subject: [PATCH 09/15] lint:fix --- eslint-rules/index.js | 2 + eslint-rules/no-barrel-imports.js | 59 +++++++--- eslint.config.mjs | 5 +- .../glimmer/lib/component-managers/curly.ts | 21 +++- .../-internals/glimmer/lib/component.ts | 6 +- .../glimmer/lib/components/abstract-input.ts | 7 +- .../@ember/-internals/glimmer/lib/resolver.ts | 10 +- .../-internals/glimmer/lib/syntax/outlet.ts | 8 +- .../-internals/glimmer/lib/utils/bindings.ts | 8 +- .../lib/utils/curly-component-state-bucket.ts | 6 +- packages/@ember/-internals/metal/lib/alias.ts | 6 +- .../@ember/-internals/metal/lib/chain-tags.ts | 7 +- .../@ember/-internals/metal/lib/computed.ts | 7 +- packages/@ember/application/namespace.ts | 12 +- packages/@ember/array/index.ts | 5 +- packages/@ember/array/proxy.ts | 12 +- packages/@ember/component/helper.ts | 7 +- packages/@ember/controller/index.ts | 5 +- packages/@ember/object/compat.ts | 11 +- packages/@ember/object/evented.ts | 7 +- packages/@ember/object/index.ts | 5 +- packages/@ember/object/mixin.ts | 19 +++- packages/@ember/object/observable.ts | 6 +- packages/@ember/routing/router.ts | 5 +- packages/@ember/service/index.ts | 5 +- .../@ember/template-compiler/lib/types.ts | 7 +- packages/@ember/template/index.ts | 9 +- .../compiler/lib/builder/builder-interface.ts | 35 +++++- .../@glimmer/compiler/lib/builder/builder.ts | 28 ++++- packages/@glimmer/compiler/lib/compiler.ts | 6 +- .../passes/1-normalization/keywords/call.ts | 6 +- .../1-normalization/keywords/utils/curry.ts | 6 +- .../lib/passes/2-encoding/expressions.ts | 6 +- .../compiler/lib/passes/2-encoding/mir.ts | 6 +- .../compiler/lib/wire-format-debug.ts | 6 +- packages/@glimmer/debug/lib/decoders.ts | 6 +- packages/@glimmer/debug/lib/dism/opcode.ts | 5 +- .../@glimmer/debug/lib/opcode-metadata.ts | 103 +++++++++++++++++- .../@glimmer/manager/lib/public/helper.ts | 6 +- .../lib/opcode-builder/helpers/blocks.ts | 20 +++- .../lib/opcode-builder/helpers/components.ts | 49 ++++++++- .../lib/opcode-builder/helpers/conditional.ts | 16 ++- .../lib/opcode-builder/helpers/stdlib.ts | 13 ++- .../lib/opcode-builder/helpers/vm.ts | 15 ++- .../opcode-compiler/lib/syntax/expressions.ts | 16 ++- .../opcode-compiler/lib/syntax/statements.ts | 36 +++++- packages/@glimmer/program/lib/constants.ts | 6 +- .../lib/compiled/opcodes/-debug-strip.ts | 18 ++- .../runtime/lib/compiled/opcodes/component.ts | 42 ++++++- .../runtime/lib/compiled/opcodes/content.ts | 23 +++- .../runtime/lib/compiled/opcodes/dom.ts | 24 +++- .../lib/compiled/opcodes/expressions.ts | 38 ++++++- .../runtime/lib/compiled/opcodes/lists.ts | 6 +- .../runtime/lib/compiled/opcodes/vm.ts | 51 ++++++++- .../@glimmer/runtime/lib/dom/operations.ts | 7 +- packages/@glimmer/runtime/lib/helpers/fn.ts | 7 +- packages/@glimmer/runtime/lib/helpers/get.ts | 6 +- packages/@glimmer/runtime/lib/modifiers/on.ts | 9 +- packages/@glimmer/runtime/lib/vm/arguments.ts | 14 ++- packages/@glimmer/runtime/lib/vm/low-level.ts | 10 +- .../lib/parser/tokenizer-event-handlers.ts | 8 +- 61 files changed, 819 insertions(+), 101 deletions(-) diff --git a/eslint-rules/index.js b/eslint-rules/index.js index 721e6f6ac40..436f5be5af9 100644 --- a/eslint-rules/index.js +++ b/eslint-rules/index.js @@ -1,3 +1,5 @@ +/* eslint-disable no-undef */ + 'use strict'; module.exports = { diff --git a/eslint-rules/no-barrel-imports.js b/eslint-rules/no-barrel-imports.js index 0f6fdd12e05..910dbe2b041 100644 --- a/eslint-rules/no-barrel-imports.js +++ b/eslint-rules/no-barrel-imports.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ 'use strict'; const fs = require('node:fs'); @@ -32,7 +33,13 @@ function resolveBarrelPath(specifier) { function resolveImportSource(spec, fromFile) { if (!spec.startsWith('.')) return resolveBarrelPath(spec); const base = path.resolve(path.dirname(fromFile), spec); - for (const c of [base, base + '.ts', base + '.js', path.join(base, 'index.ts'), path.join(base, 'index.js')]) { + for (const c of [ + base, + base + '.ts', + base + '.js', + path.join(base, 'index.ts'), + path.join(base, 'index.js'), + ]) { if (fs.existsSync(c)) return c; } return null; @@ -75,9 +82,15 @@ function getModuleExports(filepath, stack = new Set()) { const exports = new Map(); for (const stmt of ast.body) { if (stmt.type === 'ExportNamedDeclaration') collectNamedExports(stmt, exports, filepath, stack); - else if (stmt.type === 'ExportAllDeclaration') collectStarExports(stmt, exports, filepath, stack); + else if (stmt.type === 'ExportAllDeclaration') + collectStarExports(stmt, exports, filepath, stack); else if (stmt.type === 'ExportDefaultDeclaration') { - exports.set('default', { source: filepath, localName: 'default', isType: false, kind: 'local' }); + exports.set('default', { + source: filepath, + localName: 'default', + isType: false, + kind: 'local', + }); } } @@ -91,7 +104,12 @@ function collectNamedExports(stmt, exports, filepath, stack) { if (stmt.declaration) { for (const { name, isType } of declarationNames(stmt.declaration)) { - exports.set(name, { source: filepath, localName: name, isType: isType || stmtIsType, kind: 'local' }); + exports.set(name, { + source: filepath, + localName: name, + isType: isType || stmtIsType, + kind: 'local', + }); } return; } @@ -134,7 +152,13 @@ function collectNamedExports(stmt, exports, filepath, stack) { } } - exports.set(idOrStr(spec.exported), { source, bareSource, localName: local, isType, kind: 'named' }); + exports.set(idOrStr(spec.exported), { + source, + bareSource, + localName: local, + isType, + kind: 'named', + }); } } @@ -163,14 +187,11 @@ const SCOPE_PREFIXES = [ path.join(PACKAGES_ROOT, '@ember') + path.sep, path.join(PACKAGES_ROOT, '@glimmer') + path.sep, ]; -const EXCLUDED_FILE_PREFIXES = [ - path.join(PACKAGES_ROOT, '@glimmer/component') + path.sep, -]; +const EXCLUDED_FILE_PREFIXES = [path.join(PACKAGES_ROOT, '@glimmer/component') + path.sep]; const TEST_DIR_RE = /[\\/](?:test|tests)[\\/]/; const isInScope = (filename) => SCOPE_PREFIXES.some((p) => filename.startsWith(p)); -const isExcludedFile = (filename) => - EXCLUDED_FILE_PREFIXES.some((p) => filename.startsWith(p)); +const isExcludedFile = (filename) => EXCLUDED_FILE_PREFIXES.some((p) => filename.startsWith(p)); const isInTestFile = (filename) => TEST_DIR_RE.test(filename) || filename.includes(`${path.sep}internal-test-helpers${path.sep}`); @@ -211,9 +232,7 @@ function packageHasWildcardSourceExports(packageRoot) { const matches = (v) => v === './*.ts'; allowed = matches(wildcard) || - (wildcard && - typeof wildcard === 'object' && - Object.values(wildcard).some(matches)); + (wildcard && typeof wildcard === 'object' && Object.values(wildcard).some(matches)); } catch { /* ignore */ } @@ -384,8 +403,10 @@ module.exports = { return; } - if (node.type === 'ImportDeclaration') return handleImport(node, moduleExports, spec, barrelPath); - if (node.type === 'ExportNamedDeclaration') return handleExportNamed(node, moduleExports, spec, barrelPath); + if (node.type === 'ImportDeclaration') + return handleImport(node, moduleExports, spec, barrelPath); + if (node.type === 'ExportNamedDeclaration') + return handleExportNamed(node, moduleExports, spec, barrelPath); if (node.type === 'ExportAllDeclaration') reportUnresolved(node, spec, ['*']); } @@ -404,9 +425,11 @@ module.exports = { continue; } const importedName = - sp.type === 'ImportDefaultSpecifier' ? 'default' - : sp.type === 'ImportSpecifier' ? idOrStr(sp.imported) - : null; + sp.type === 'ImportDefaultSpecifier' + ? 'default' + : sp.type === 'ImportSpecifier' + ? idOrStr(sp.imported) + : null; if (importedName === null) continue; const local = sp.local.name; diff --git a/eslint.config.mjs b/eslint.config.mjs index 2708364d659..02c10e37b82 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -521,10 +521,7 @@ export default [ }, { files: ['packages/@ember/**/*.{ts,js}', 'packages/@glimmer/**/*.{ts,js}'], - ignores: [ - 'packages/@ember/**/tests/**', - 'packages/@glimmer/**/test/**', - ], + ignores: ['packages/@ember/**/tests/**', 'packages/@glimmer/**/test/**'], rules: { 'ember-local/no-barrel-imports': 'error', }, diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts index f075d39487c..585a9b8d63d 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts @@ -5,7 +5,11 @@ import { setOwner, } from '@ember/-internals/owner'; import { guidFor } from '@ember/-internals/utils/lib/guid'; -import { addChildView, setElementView, setViewElement } from '@ember/-internals/views/lib/system/utils'; +import { + addChildView, + setElementView, + setViewElement, +} from '@ember/-internals/views/lib/system/utils'; import type { Nullable } from '@ember/-internals/utility-types'; import { assert, debugFreeze } from '@ember/debug'; import { _instrumentStart } from '@ember/instrumentation'; @@ -26,11 +30,22 @@ import type { WithDynamicTagName, } from '@glimmer/interfaces'; import type { Reference } from '@glimmer/reference/lib/reference'; -import { childRefFor, createComputeRef, createPrimitiveRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { + childRefFor, + createComputeRef, + createPrimitiveRef, + valueForRef, +} from '@glimmer/reference/lib/reference'; import { reifyPositional } from '@glimmer/runtime/lib/vm/arguments'; import { EMPTY_ARRAY } from '@glimmer/util/lib/array-utils'; import { unwrapTemplate } from './unwrap-template'; -import { beginTrackFrame, beginUntrackFrame, consumeTag, endTrackFrame, endUntrackFrame } from '@glimmer/validator/lib/tracking'; +import { + beginTrackFrame, + beginUntrackFrame, + consumeTag, + endTrackFrame, + endUntrackFrame, +} from '@glimmer/validator/lib/tracking'; import { validateTag, valueForTag } from '@glimmer/validator/lib/validators'; import type Component from '../component'; import type { DynamicScope } from '../renderer'; diff --git a/packages/@ember/-internals/glimmer/lib/component.ts b/packages/@ember/-internals/glimmer/lib/component.ts index 0a15ea1a687..f61e446f829 100644 --- a/packages/@ember/-internals/glimmer/lib/component.ts +++ b/packages/@ember/-internals/glimmer/lib/component.ts @@ -7,7 +7,11 @@ import { getOwner } from '@ember/-internals/owner'; import TargetActionSupport from '@ember/-internals/runtime/lib/mixins/target_action_support'; import type ViewStates from '@ember/-internals/views/lib/views/states'; import ActionSupport from '@ember/-internals/views/lib/mixins/action_support'; -import { addChildView, getChildViews, getViewElement } from '@ember/-internals/views/lib/system/utils'; +import { + addChildView, + getChildViews, + getViewElement, +} from '@ember/-internals/views/lib/system/utils'; import CoreView from '@ember/-internals/views/lib/views/core_view'; import EventDispatcher from '@ember/-internals/views/lib/system/event_dispatcher'; import { guidFor } from '@ember/-internals/utils/lib/guid'; diff --git a/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts b/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts index 1d6fc181c94..0c63b2793ac 100644 --- a/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts +++ b/packages/@ember/-internals/glimmer/lib/components/abstract-input.ts @@ -2,7 +2,12 @@ import { tracked } from '@ember/-internals/metal/lib/tracked'; import { assert } from '@ember/debug'; import { action } from '@ember/object'; import type { Reference } from '@glimmer/reference/lib/reference'; -import { isConstRef, isUpdatableRef, updateRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { + isConstRef, + isUpdatableRef, + updateRef, + valueForRef, +} from '@glimmer/reference/lib/reference'; import type { EventListener } from './internal'; import InternalComponent from './internal'; diff --git a/packages/@ember/-internals/glimmer/lib/resolver.ts b/packages/@ember/-internals/glimmer/lib/resolver.ts index 466fbbea772..43c2ce19ecf 100644 --- a/packages/@ember/-internals/glimmer/lib/resolver.ts +++ b/packages/@ember/-internals/glimmer/lib/resolver.ts @@ -13,14 +13,20 @@ import type { } from '@glimmer/interfaces'; import type { Nullable } from '@ember/-internals/utility-types'; import { getComponentTemplate } from '@glimmer/manager/lib/public/template'; -import { getInternalComponentManager, setInternalHelperManager } from '@glimmer/manager/lib/internal/api'; +import { + getInternalComponentManager, + setInternalHelperManager, +} from '@glimmer/manager/lib/internal/api'; import { array } from '@glimmer/runtime/lib/helpers/array'; import { concat } from '@glimmer/runtime/lib/helpers/concat'; import { fn } from '@glimmer/runtime/lib/helpers/fn'; import { get } from '@glimmer/runtime/lib/helpers/get'; import { hash } from '@glimmer/runtime/lib/helpers/hash'; import { on } from '@glimmer/runtime/lib/modifiers/on'; -import { templateOnlyComponent, TEMPLATE_ONLY_COMPONENT_MANAGER } from '@glimmer/runtime/lib/component/template-only'; +import { + templateOnlyComponent, + TEMPLATE_ONLY_COMPONENT_MANAGER, +} from '@glimmer/runtime/lib/component/template-only'; import { isCurlyManager } from './component-managers/curly'; import { CLASSIC_HELPER_MANAGER, isClassicHelper } from './helper'; import { default as disallowDynamicResolution } from './helpers/-disallow-dynamic-resolution'; diff --git a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts index 5e5190330ab..d0027f2339e 100644 --- a/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/syntax/outlet.ts @@ -8,7 +8,13 @@ import type { Template, } from '@glimmer/interfaces'; import type { Reference } from '@glimmer/reference/lib/reference'; -import { childRefFromParts, createComputeRef, createConstRef, createDebugAliasRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { + childRefFromParts, + createComputeRef, + createConstRef, + createDebugAliasRef, + valueForRef, +} from '@glimmer/reference/lib/reference'; import type { CurriedValue } from '@glimmer/runtime/lib/curried-value'; import { createCapturedArgs, EMPTY_POSITIONAL } from '@glimmer/runtime/lib/vm/arguments'; import { curry } from '@glimmer/runtime/lib/curried-value'; diff --git a/packages/@ember/-internals/glimmer/lib/utils/bindings.ts b/packages/@ember/-internals/glimmer/lib/utils/bindings.ts index b742897bef8..e540201c5a1 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/bindings.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/bindings.ts @@ -3,7 +3,13 @@ import { assert } from '@ember/debug'; import { dasherize } from '@ember/-internals/string'; import type { ElementOperations } from '@glimmer/interfaces'; import type { Reference } from '@glimmer/reference/lib/reference'; -import { childRefFor, childRefFromParts, createComputeRef, createPrimitiveRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { + childRefFor, + childRefFromParts, + createComputeRef, + createPrimitiveRef, + valueForRef, +} from '@glimmer/reference/lib/reference'; import type Component from '../component'; function referenceForParts(rootRef: Reference, parts: string[]): Reference { diff --git a/packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts b/packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts index ad1805c9522..49907136c01 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts @@ -1,4 +1,8 @@ -import { clearElementView, clearViewElement, getViewElement } from '@ember/-internals/views/lib/system/utils'; +import { + clearElementView, + clearViewElement, + getViewElement, +} from '@ember/-internals/views/lib/system/utils'; import { registerDestructor } from '@glimmer/destroyable'; import type { CapturedNamedArguments } from '@glimmer/interfaces'; import type { Reference } from '@glimmer/reference/lib/reference'; diff --git a/packages/@ember/-internals/metal/lib/alias.ts b/packages/@ember/-internals/metal/lib/alias.ts index 6554c56ea38..76687936880 100644 --- a/packages/@ember/-internals/metal/lib/alias.ts +++ b/packages/@ember/-internals/metal/lib/alias.ts @@ -5,7 +5,11 @@ import { assert } from '@ember/debug'; import type { UpdatableTag } from '@glimmer/interfaces'; import { consumeTag, untrack } from '@glimmer/validator/lib/tracking'; import { tagFor, tagMetaFor } from '@glimmer/validator/lib/meta'; -import { UPDATE_TAG as updateTag, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; +import { + UPDATE_TAG as updateTag, + validateTag, + valueForTag, +} from '@glimmer/validator/lib/validators'; import { CHAIN_PASS_THROUGH, finishLazyChains, getChainTagsForKey } from './chain-tags'; import type { ExtendedMethodDecorator } from './decorator'; import { diff --git a/packages/@ember/-internals/metal/lib/chain-tags.ts b/packages/@ember/-internals/metal/lib/chain-tags.ts index 461330e0db3..9827cf1cf6b 100644 --- a/packages/@ember/-internals/metal/lib/chain-tags.ts +++ b/packages/@ember/-internals/metal/lib/chain-tags.ts @@ -4,7 +4,12 @@ import { isObject } from '@ember/-internals/utils/lib/spec'; import { assert } from '@ember/debug'; import type { Tag } from '@glimmer/interfaces'; import type { TagMeta } from '@glimmer/validator/lib/meta'; -import { combine, createUpdatableTag, UPDATE_TAG as updateTag, validateTag } from '@glimmer/validator/lib/validators'; +import { + combine, + createUpdatableTag, + UPDATE_TAG as updateTag, + validateTag, +} from '@glimmer/validator/lib/validators'; import { tagMetaFor } from '@glimmer/validator/lib/meta'; import { objectAt } from './object-at'; import { tagForProperty } from './tags'; diff --git a/packages/@ember/-internals/metal/lib/computed.ts b/packages/@ember/-internals/metal/lib/computed.ts index 60d3b78a6fe..aa164cb4ba5 100644 --- a/packages/@ember/-internals/metal/lib/computed.ts +++ b/packages/@ember/-internals/metal/lib/computed.ts @@ -6,7 +6,12 @@ import { assert } from '@ember/debug'; import { isDestroyed } from '@glimmer/destroyable'; import { DEBUG } from '@glimmer/env'; import type { UpdatableTag } from '@glimmer/interfaces'; -import { ALLOW_CYCLES, UPDATE_TAG as updateTag, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; +import { + ALLOW_CYCLES, + UPDATE_TAG as updateTag, + validateTag, + valueForTag, +} from '@glimmer/validator/lib/validators'; import { consumeTag, track, untrack } from '@glimmer/validator/lib/tracking'; import { tagFor, tagMetaFor } from '@glimmer/validator/lib/meta'; import { finishLazyChains, getChainTagsForKeys } from './chain-tags'; diff --git a/packages/@ember/application/namespace.ts b/packages/@ember/application/namespace.ts index 57c86f15b62..6b3277f24be 100644 --- a/packages/@ember/application/namespace.ts +++ b/packages/@ember/application/namespace.ts @@ -2,7 +2,17 @@ @module @ember/application/namespace */ -import { NAMESPACES, NAMESPACES_BY_ID, addNamespace, findNamespace, findNamespaces, processNamespace, processAllNamespaces, removeNamespace, type Namespace as MetalNamespace } from '@ember/-internals/metal/lib/namespace_search'; // Preloaded into namespaces +import { + NAMESPACES, + NAMESPACES_BY_ID, + addNamespace, + findNamespace, + findNamespaces, + processNamespace, + processAllNamespaces, + removeNamespace, + type Namespace as MetalNamespace, +} from '@ember/-internals/metal/lib/namespace_search'; // Preloaded into namespaces import { get } from '@ember/-internals/metal/lib/property_get'; import { getName, setName } from '@ember/-internals/utils/lib/name'; import { guidFor } from '@ember/-internals/utils/lib/guid'; diff --git a/packages/@ember/array/index.ts b/packages/@ember/array/index.ts index a7a7a8241f1..48e0c1b5b1e 100644 --- a/packages/@ember/array/index.ts +++ b/packages/@ember/array/index.ts @@ -6,7 +6,10 @@ import { PROXY_CONTENT } from '@ember/-internals/metal/lib/property_get'; import { objectAt } from '@ember/-internals/metal/lib/object-at'; import { replaceInNativeArray, replace } from '@ember/-internals/metal/lib/array'; import computed from '@ember/-internals/metal/lib/computed'; -import { beginPropertyChanges, endPropertyChanges } from '@ember/-internals/metal/lib/property_events'; +import { + beginPropertyChanges, + endPropertyChanges, +} from '@ember/-internals/metal/lib/property_events'; import { get } from '@ember/-internals/metal/lib/property_get'; import { set } from '@ember/-internals/metal/lib/property_set'; import Mixin from '@ember/object/mixin'; diff --git a/packages/@ember/array/proxy.ts b/packages/@ember/array/proxy.ts index 6f944cce9ff..d4a9907c2ff 100644 --- a/packages/@ember/array/proxy.ts +++ b/packages/@ember/array/proxy.ts @@ -6,7 +6,10 @@ import { objectAt } from '@ember/-internals/metal/lib/object-at'; import alias from '@ember/-internals/metal/lib/alias'; import { PROPERTY_DID_CHANGE } from '@ember/-internals/metal/lib/property_events'; import { addArrayObserver, removeArrayObserver, replace } from '@ember/-internals/metal/lib/array'; -import { arrayContentDidChange, arrayContentWillChange } from '@ember/-internals/metal/lib/array_events'; +import { + arrayContentDidChange, + arrayContentWillChange, +} from '@ember/-internals/metal/lib/array_events'; import { tagForProperty } from '@ember/-internals/metal/lib/tags'; import { get } from '@ember/-internals/metal/lib/property_get'; import type { PropertyDidChange } from '@ember/-internals/metal/lib/property_events'; @@ -16,7 +19,12 @@ import EmberArray, { type NativeArray } from '@ember/array'; import MutableArray from '@ember/array/mutable'; import { assert } from '@ember/debug'; import { setCustomTagFor } from '@glimmer/manager/lib/util/args-proxy'; -import { combine, validateTag, valueForTag, type Revision } from '@glimmer/validator/lib/validators'; +import { + combine, + validateTag, + valueForTag, + type Revision, +} from '@glimmer/validator/lib/validators'; import { consumeTag } from '@glimmer/validator/lib/tracking'; import { tagFor } from '@glimmer/validator/lib/meta'; import type { Tag } from '@glimmer/interfaces'; diff --git a/packages/@ember/component/helper.ts b/packages/@ember/component/helper.ts index 1a158309af1..85b8a435196 100644 --- a/packages/@ember/component/helper.ts +++ b/packages/@ember/component/helper.ts @@ -1 +1,6 @@ -export { default, helper, type FunctionBasedHelper, type FunctionBasedHelperInstance } from '@ember/-internals/glimmer/lib/helper'; +export { + default, + helper, + type FunctionBasedHelper, + type FunctionBasedHelperInstance, +} from '@ember/-internals/glimmer/lib/helper'; diff --git a/packages/@ember/controller/index.ts b/packages/@ember/controller/index.ts index b8a336f2d87..a65d5dd8d3e 100644 --- a/packages/@ember/controller/index.ts +++ b/packages/@ember/controller/index.ts @@ -3,7 +3,10 @@ import computed from '@ember/-internals/metal/lib/computed'; import { get } from '@ember/-internals/metal/lib/property_get'; import { FrameworkObject } from '@ember/object/-internals'; import metalInject from '@ember/-internals/metal/lib/injected_property'; -import type { DecoratorPropertyDescriptor, ElementDescriptor } from '@ember/-internals/metal/lib/decorator'; +import type { + DecoratorPropertyDescriptor, + ElementDescriptor, +} from '@ember/-internals/metal/lib/decorator'; import Mixin from '@ember/object/mixin'; import type { RouteArgs } from '@ember/routing/-internals'; import ActionHandler from '@ember/-internals/runtime/lib/mixins/action_handler'; diff --git a/packages/@ember/object/compat.ts b/packages/@ember/object/compat.ts index 7a839a56d75..e7df59b091f 100644 --- a/packages/@ember/object/compat.ts +++ b/packages/@ember/object/compat.ts @@ -1,6 +1,13 @@ import type { Meta } from '@ember/-internals/meta/lib/meta'; -import type { ExtendedMethodDecorator, DecoratorPropertyDescriptor } from '@ember/-internals/metal/lib/decorator'; -import { descriptorForProperty, isElementDescriptor, setClassicDecorator } from '@ember/-internals/metal/lib/decorator'; +import type { + ExtendedMethodDecorator, + DecoratorPropertyDescriptor, +} from '@ember/-internals/metal/lib/decorator'; +import { + descriptorForProperty, + isElementDescriptor, + setClassicDecorator, +} from '@ember/-internals/metal/lib/decorator'; import type { ElementDescriptor } from '@ember/-internals/metal/lib/decorator'; import { assert } from '@ember/debug'; import type { UpdatableTag } from '@glimmer/interfaces'; diff --git a/packages/@ember/object/evented.ts b/packages/@ember/object/evented.ts index e062f2bfe6e..097d274d4bf 100644 --- a/packages/@ember/object/evented.ts +++ b/packages/@ember/object/evented.ts @@ -1,4 +1,9 @@ -import { addListener, removeListener, hasListeners, sendEvent } from '@ember/-internals/metal/lib/events'; +import { + addListener, + removeListener, + hasListeners, + sendEvent, +} from '@ember/-internals/metal/lib/events'; import Mixin from '@ember/object/mixin'; export { on } from '@ember/-internals/metal/lib/events'; diff --git a/packages/@ember/object/index.ts b/packages/@ember/object/index.ts index 677158f91ab..f664c95ef0b 100644 --- a/packages/@ember/object/index.ts +++ b/packages/@ember/object/index.ts @@ -1,6 +1,9 @@ import { assert } from '@ember/debug'; import { ENV } from '@ember/-internals/environment/lib/env'; -import type { ElementDescriptor, ExtendedMethodDecorator } from '@ember/-internals/metal/lib/decorator'; +import type { + ElementDescriptor, + ExtendedMethodDecorator, +} from '@ember/-internals/metal/lib/decorator'; import { isElementDescriptor, setClassicDecorator } from '@ember/-internals/metal/lib/decorator'; import expandProperties from '@ember/-internals/metal/lib/expand_properties'; import { getFactoryFor } from '@ember/-internals/container/lib/container'; diff --git a/packages/@ember/object/mixin.ts b/packages/@ember/object/mixin.ts index 0952f58a4fa..c76b57f7dbe 100644 --- a/packages/@ember/object/mixin.ts +++ b/packages/@ember/object/mixin.ts @@ -7,12 +7,25 @@ import { meta as metaFor, peekMeta } from '@ember/-internals/meta/lib/meta'; import { observerListenerMetaFor, ROOT, wrap } from '@ember/-internals/utils/lib/super'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import type { ComputedDecorator, ComputedPropertyGetter, ComputedPropertyObj, ComputedPropertySetter } from '@ember/-internals/metal/lib/computed'; +import type { + ComputedDecorator, + ComputedPropertyGetter, + ComputedPropertyObj, + ComputedPropertySetter, +} from '@ember/-internals/metal/lib/computed'; import { type ComputedDescriptor, isClassicDecorator } from '@ember/-internals/metal/lib/decorator'; import { ComputedProperty } from '@ember/-internals/metal/lib/computed'; -import { descriptorForDecorator, makeComputedDecorator, nativeDescDecorator } from '@ember/-internals/metal/lib/decorator'; +import { + descriptorForDecorator, + makeComputedDecorator, + nativeDescDecorator, +} from '@ember/-internals/metal/lib/decorator'; import { setUnprocessedMixins } from '@ember/-internals/metal/lib/namespace_search'; -import { addObserver, removeObserver, revalidateObservers } from '@ember/-internals/metal/lib/observer'; +import { + addObserver, + removeObserver, + revalidateObservers, +} from '@ember/-internals/metal/lib/observer'; import { defineDecorator, defineValue } from '@ember/-internals/metal/lib/properties'; import { addListener, removeListener } from '@ember/object/events'; diff --git a/packages/@ember/object/observable.ts b/packages/@ember/object/observable.ts index 8e280a94ffc..ae4a5aad9d3 100644 --- a/packages/@ember/object/observable.ts +++ b/packages/@ember/object/observable.ts @@ -4,7 +4,11 @@ import { peekMeta } from '@ember/-internals/meta/lib/meta'; import { hasListeners } from '@ember/-internals/metal/lib/events'; -import { beginPropertyChanges, notifyPropertyChange, endPropertyChanges } from '@ember/-internals/metal/lib/property_events'; +import { + beginPropertyChanges, + notifyPropertyChange, + endPropertyChanges, +} from '@ember/-internals/metal/lib/property_events'; import { addObserver, removeObserver } from '@ember/-internals/metal/lib/observer'; import { get } from '@ember/-internals/metal/lib/property_get'; import { set } from '@ember/-internals/metal/lib/property_set'; diff --git a/packages/@ember/routing/router.ts b/packages/@ember/routing/router.ts index be40c1401ca..7f6d760dd9d 100644 --- a/packages/@ember/routing/router.ts +++ b/packages/@ember/routing/router.ts @@ -1,5 +1,8 @@ import { privatize as P } from '@ember/-internals/container/lib/registry'; -import type { BootEnvironment, default as OutletView } from '@ember/-internals/glimmer/lib/views/outlet'; +import type { + BootEnvironment, + default as OutletView, +} from '@ember/-internals/glimmer/lib/views/outlet'; import type { OutletState } from '@ember/-internals/glimmer/lib/utils/outlet'; import computed from '@ember/-internals/metal/lib/computed'; import { get } from '@ember/-internals/metal/lib/property_get'; diff --git a/packages/@ember/service/index.ts b/packages/@ember/service/index.ts index 6b1cdc84050..85f69d04b12 100644 --- a/packages/@ember/service/index.ts +++ b/packages/@ember/service/index.ts @@ -1,6 +1,9 @@ import { FrameworkObject } from '@ember/object/-internals'; import { DEPRECATIONS, deprecateUntil } from '@ember/-internals/deprecations'; -import type { DecoratorPropertyDescriptor, ElementDescriptor } from '@ember/-internals/metal/lib/decorator'; +import type { + DecoratorPropertyDescriptor, + ElementDescriptor, +} from '@ember/-internals/metal/lib/decorator'; import metalInject from '@ember/-internals/metal/lib/injected_property'; /** diff --git a/packages/@ember/template-compiler/lib/types.ts b/packages/@ember/template-compiler/lib/types.ts index 846e777da5e..934c3de87aa 100644 --- a/packages/@ember/template-compiler/lib/types.ts +++ b/packages/@ember/template-compiler/lib/types.ts @@ -1,4 +1,9 @@ -import type { ASTPluginBuilder, ASTPluginEnvironment, PrecompileOptions, PrecompileOptionsWithLexicalScope } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; +import type { + ASTPluginBuilder, + ASTPluginEnvironment, + PrecompileOptions, + PrecompileOptionsWithLexicalScope, +} from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import type builders from '@glimmer/syntax/lib/v1/public-builders'; export type Builders = typeof builders; diff --git a/packages/@ember/template/index.ts b/packages/@ember/template/index.ts index 5e1e7411e40..e1095169d01 100644 --- a/packages/@ember/template/index.ts +++ b/packages/@ember/template/index.ts @@ -1,3 +1,10 @@ // NOTE: this intentionally *only* exports the *type* `SafeString`, not its // value, since it should not be constructed by users. -export { isTrustedHTML, trustHTML, htmlSafe, isHTMLSafe, type SafeString, type TrustedHTML } from '@ember/-internals/glimmer/lib/utils/string'; +export { + isTrustedHTML, + trustHTML, + htmlSafe, + isHTMLSafe, + type SafeString, + type TrustedHTML, +} from '@ember/-internals/glimmer/lib/utils/string'; diff --git a/packages/@glimmer/compiler/lib/builder/builder-interface.ts b/packages/@glimmer/compiler/lib/builder/builder-interface.ts index 566d719ed77..b6de8b6ed08 100644 --- a/packages/@glimmer/compiler/lib/builder/builder-interface.ts +++ b/packages/@glimmer/compiler/lib/builder/builder-interface.ts @@ -1,6 +1,39 @@ import type { VariableKind } from '@glimmer/constants/lib/builder-constants'; import type { Dict, DictValue, Nullable, PresentArray } from '@glimmer/interfaces'; -import { APPEND_EXPR_HEAD, APPEND_PATH_HEAD, ARG_VAR, BLOCK_HEAD, BLOCK_VAR, BUILDER_APPEND, BUILDER_COMMENT, BUILDER_CONCAT, BUILDER_DYNAMIC_COMPONENT, BUILDER_GET, BUILDER_HAS_BLOCK, BUILDER_HAS_BLOCK_PARAMS, BUILDER_LITERAL, BUILDER_MODIFIER, CALL_EXPR, CALL_HEAD, COMMENT_HEAD, CONCAT_EXPR, DYNAMIC_COMPONENT_HEAD, ELEMENT_HEAD, FREE_VAR, GET_PATH_EXPR, GET_VAR_EXPR, HAS_BLOCK_EXPR, HAS_BLOCK_PARAMS_EXPR, KEYWORD_HEAD, LITERAL_EXPR, LITERAL_HEAD, LOCAL_VAR, MODIFIER_HEAD, SPLAT_HEAD, THIS_VAR } from '@glimmer/constants/lib/builder-constants'; +import { + APPEND_EXPR_HEAD, + APPEND_PATH_HEAD, + ARG_VAR, + BLOCK_HEAD, + BLOCK_VAR, + BUILDER_APPEND, + BUILDER_COMMENT, + BUILDER_CONCAT, + BUILDER_DYNAMIC_COMPONENT, + BUILDER_GET, + BUILDER_HAS_BLOCK, + BUILDER_HAS_BLOCK_PARAMS, + BUILDER_LITERAL, + BUILDER_MODIFIER, + CALL_EXPR, + CALL_HEAD, + COMMENT_HEAD, + CONCAT_EXPR, + DYNAMIC_COMPONENT_HEAD, + ELEMENT_HEAD, + FREE_VAR, + GET_PATH_EXPR, + GET_VAR_EXPR, + HAS_BLOCK_EXPR, + HAS_BLOCK_PARAMS_EXPR, + KEYWORD_HEAD, + LITERAL_EXPR, + LITERAL_HEAD, + LOCAL_VAR, + MODIFIER_HEAD, + SPLAT_HEAD, + THIS_VAR, +} from '@glimmer/constants/lib/builder-constants'; import { expect } from '@glimmer/debug-util/lib/platform-utils'; import { isPresentArray } from '@glimmer/debug-util/lib/present'; import { dict } from '@glimmer/util/lib/collections'; diff --git a/packages/@glimmer/compiler/lib/builder/builder.ts b/packages/@glimmer/compiler/lib/builder/builder.ts index 98fc937c043..be4db75a3c9 100644 --- a/packages/@glimmer/compiler/lib/builder/builder.ts +++ b/packages/@glimmer/compiler/lib/builder/builder.ts @@ -8,7 +8,33 @@ import type { PresentArray, WireFormat, } from '@glimmer/interfaces'; -import { APPEND_EXPR_HEAD, APPEND_PATH_HEAD, ARG_VAR, BLOCK_HEAD, BLOCK_VAR, BUILDER_COMMENT, BUILDER_LITERAL, CALL_EXPR, CALL_HEAD, COMMENT_HEAD, CONCAT_EXPR, DYNAMIC_COMPONENT_HEAD, ELEMENT_HEAD, FREE_VAR, GET_PATH_EXPR, GET_VAR_EXPR, HAS_BLOCK_EXPR, HAS_BLOCK_PARAMS_EXPR, KEYWORD_HEAD, LITERAL_EXPR, LITERAL_HEAD, LOCAL_VAR, MODIFIER_HEAD, SPLAT_HEAD, THIS_VAR } from '@glimmer/constants/lib/builder-constants'; +import { + APPEND_EXPR_HEAD, + APPEND_PATH_HEAD, + ARG_VAR, + BLOCK_HEAD, + BLOCK_VAR, + BUILDER_COMMENT, + BUILDER_LITERAL, + CALL_EXPR, + CALL_HEAD, + COMMENT_HEAD, + CONCAT_EXPR, + DYNAMIC_COMPONENT_HEAD, + ELEMENT_HEAD, + FREE_VAR, + GET_PATH_EXPR, + GET_VAR_EXPR, + HAS_BLOCK_EXPR, + HAS_BLOCK_PARAMS_EXPR, + KEYWORD_HEAD, + LITERAL_EXPR, + LITERAL_HEAD, + LOCAL_VAR, + MODIFIER_HEAD, + SPLAT_HEAD, + THIS_VAR, +} from '@glimmer/constants/lib/builder-constants'; import { NS_XLINK, NS_XML, NS_XMLNS } from '@glimmer/constants/lib/dom'; import { exhausted, expect } from '@glimmer/debug-util/lib/platform-utils'; import { isPresentArray } from '@glimmer/debug-util/lib/present'; diff --git a/packages/@glimmer/compiler/lib/compiler.ts b/packages/@glimmer/compiler/lib/compiler.ts index 06609751bc4..324be429eee 100644 --- a/packages/@glimmer/compiler/lib/compiler.ts +++ b/packages/@glimmer/compiler/lib/compiler.ts @@ -4,7 +4,11 @@ import type { SerializedTemplateWithLazyBlock, TemplateJavascript, } from '@glimmer/interfaces'; -import type { PrecompileOptions, PrecompileOptionsWithLexicalScope, TemplateIdFn } from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; +import type { + PrecompileOptions, + PrecompileOptionsWithLexicalScope, + TemplateIdFn, +} from '@glimmer/syntax/lib/parser/tokenizer-event-handlers'; import { LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; import * as src from '@glimmer/syntax/lib/source/api'; import { normalize } from '@glimmer/syntax/lib/v2/normalize'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/call.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/call.ts index e7b9c9a9b67..8202b7d98da 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/call.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/call.ts @@ -1,4 +1,8 @@ -import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; +import { + CURRIED_COMPONENT, + CURRIED_HELPER, + CURRIED_MODIFIER, +} from '@glimmer/constants/lib/curried'; import { keywords } from './impl'; import { curryKeyword } from './utils/curry'; diff --git a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.ts b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.ts index 7dfec72d327..4abd1384d64 100644 --- a/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.ts +++ b/packages/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.ts @@ -1,5 +1,9 @@ import type { CurriedType } from '@glimmer/interfaces'; -import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; +import { + CURRIED_COMPONENT, + CURRIED_HELPER, + CURRIED_MODIFIER, +} from '@glimmer/constants/lib/curried'; import * as ASTv2 from '@glimmer/syntax/lib/v2/api'; import { generateSyntaxError } from '@glimmer/syntax/lib/syntax-error'; diff --git a/packages/@glimmer/compiler/lib/passes/2-encoding/expressions.ts b/packages/@glimmer/compiler/lib/passes/2-encoding/expressions.ts index fc1e8f80bf2..220ce54d059 100644 --- a/packages/@glimmer/compiler/lib/passes/2-encoding/expressions.ts +++ b/packages/@glimmer/compiler/lib/passes/2-encoding/expressions.ts @@ -1,6 +1,10 @@ import type { PresentArray, WireFormat } from '@glimmer/interfaces'; import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; -import { assertPresentArray, isPresentArray, mapPresentArray } from '@glimmer/debug-util/lib/present'; +import { + assertPresentArray, + isPresentArray, + mapPresentArray, +} from '@glimmer/debug-util/lib/present'; import assert from '@glimmer/debug-util/lib/assert'; import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; diff --git a/packages/@glimmer/compiler/lib/passes/2-encoding/mir.ts b/packages/@glimmer/compiler/lib/passes/2-encoding/mir.ts index 085a35a945d..d1d9cf69ce7 100644 --- a/packages/@glimmer/compiler/lib/passes/2-encoding/mir.ts +++ b/packages/@glimmer/compiler/lib/passes/2-encoding/mir.ts @@ -1,6 +1,10 @@ import type { CurriedType, PresentArray } from '@glimmer/interfaces'; import type * as ASTv2 from '@glimmer/syntax/lib/v2/api'; -import type { BlockSymbolTable, ProgramSymbolTable, SymbolTable } from '@glimmer/syntax/lib/symbol-table'; +import type { + BlockSymbolTable, + ProgramSymbolTable, + SymbolTable, +} from '@glimmer/syntax/lib/symbol-table'; import type { SourceSlice } from '@glimmer/syntax/lib/source/slice'; import { node } from '@glimmer/syntax/lib/v2/objects/node'; diff --git a/packages/@glimmer/compiler/lib/wire-format-debug.ts b/packages/@glimmer/compiler/lib/wire-format-debug.ts index 442a89199b9..423570d60f1 100644 --- a/packages/@glimmer/compiler/lib/wire-format-debug.ts +++ b/packages/@glimmer/compiler/lib/wire-format-debug.ts @@ -5,7 +5,11 @@ import type { SerializedTemplateBlock, WireFormat, } from '@glimmer/interfaces'; -import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; +import { + CURRIED_COMPONENT, + CURRIED_HELPER, + CURRIED_MODIFIER, +} from '@glimmer/constants/lib/curried'; import { exhausted } from '@glimmer/debug-util/lib/platform-utils'; import { dict } from '@glimmer/util/lib/collections'; import { opcodes as Op } from '@glimmer/wire-format/lib/opcodes'; diff --git a/packages/@glimmer/debug/lib/decoders.ts b/packages/@glimmer/debug/lib/decoders.ts index c6449a15222..f21e83c24fb 100644 --- a/packages/@glimmer/debug/lib/decoders.ts +++ b/packages/@glimmer/debug/lib/decoders.ts @@ -1,5 +1,9 @@ import type { ProgramConstants } from '@glimmer/interfaces'; -import { CURRIED_COMPONENT, CURRIED_HELPER, CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; +import { + CURRIED_COMPONENT, + CURRIED_HELPER, + CURRIED_MODIFIER, +} from '@glimmer/constants/lib/curried'; import { decodeHandle, decodeImmediate } from '@glimmer/constants/lib/immediate'; import { $fp, $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0 } from '@glimmer/vm/lib/registers'; diff --git a/packages/@glimmer/debug/lib/dism/opcode.ts b/packages/@glimmer/debug/lib/dism/opcode.ts index 0d1f678fd1d..e102cd960e7 100644 --- a/packages/@glimmer/debug/lib/dism/opcode.ts +++ b/packages/@glimmer/debug/lib/dism/opcode.ts @@ -1,4 +1,7 @@ -import type { ClassifiedLocalDebug, ClassifiedLocalDebugFor } from '@glimmer/debug-util/lib/debug-brand'; +import type { + ClassifiedLocalDebug, + ClassifiedLocalDebugFor, +} from '@glimmer/debug-util/lib/debug-brand'; import type { AppendingBlock, BlockSymbolNames, diff --git a/packages/@glimmer/debug/lib/opcode-metadata.ts b/packages/@glimmer/debug/lib/opcode-metadata.ts index 8d54a3bd55f..b710b81ce6e 100644 --- a/packages/@glimmer/debug/lib/opcode-metadata.ts +++ b/packages/@glimmer/debug/lib/opcode-metadata.ts @@ -1,8 +1,107 @@ /* This file is generated by build/debug.js */ import type { Nullable, VmMachineOp, VmOp } from '@glimmer/interfaces'; -import { isMachineOp, VM_INVOKE_STATIC_OP, VM_INVOKE_VIRTUAL_OP, VM_JUMP_OP, VM_MACHINE_SIZE, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP, VM_RETURN_OP, VM_RETURN_TO_OP } from '@glimmer/constants/lib/vm-ops'; -import { VM_APPEND_DOCUMENT_FRAGMENT_OP, VM_APPEND_HTML_OP, VM_APPEND_NODE_OP, VM_APPEND_SAFE_HTML_OP, VM_APPEND_TEXT_OP, VM_ASSERT_SAME_OP, VM_BEGIN_COMPONENT_TRANSACTION_OP, VM_BIND_DYNAMIC_SCOPE_OP, VM_CAPTURE_ARGS_OP, VM_CHILD_SCOPE_OP, VM_CLOSE_ELEMENT_OP, VM_COMMENT_OP, VM_COMMIT_COMPONENT_TRANSACTION_OP, VM_COMPILE_BLOCK_OP, VM_COMPONENT_ATTR_OP, VM_CONCAT_OP, VM_CONSTANT_OP, VM_CONSTANT_REFERENCE_OP, VM_CONTENT_TYPE_OP, VM_CREATE_COMPONENT_OP, VM_CURRY_OP, VM_DEBUGGER_OP, VM_DID_CREATE_ELEMENT_OP, VM_DID_RENDER_LAYOUT_OP, VM_DUP_OP, VM_DYNAMIC_ATTR_OP, VM_DYNAMIC_CONTENT_TYPE_OP, VM_DYNAMIC_HELPER_OP, VM_ENTER_LIST_OP, VM_ENTER_OP, VM_EXIT_LIST_OP, VM_EXIT_OP, VM_FETCH_OP, VM_FLUSH_ELEMENT_OP, VM_GET_BLOCK_OP, VM_GET_COMPONENT_LAYOUT_OP, VM_GET_COMPONENT_SELF_OP, VM_GET_COMPONENT_TAG_NAME_OP, VM_GET_PROPERTY_OP, VM_GET_VARIABLE_OP, VM_HAS_BLOCK_OP, VM_HAS_BLOCK_PARAMS_OP, VM_HELPER_OP, VM_IF_INLINE_OP, VM_INVOKE_COMPONENT_LAYOUT_OP, VM_INVOKE_YIELD_OP, VM_ITERATE_OP, VM_JUMP_EQ_OP, VM_JUMP_IF_OP, VM_JUMP_UNLESS_OP, VM_LOAD_OP, VM_MAIN_OP, VM_MODIFIER_OP, VM_NOT_OP, VM_OPEN_DYNAMIC_ELEMENT_OP, VM_OPEN_ELEMENT_OP, VM_POP_ARGS_OP, VM_POP_DYNAMIC_SCOPE_OP, VM_POP_OP, VM_POP_REMOTE_ELEMENT_OP, VM_POP_SCOPE_OP, VM_POPULATE_LAYOUT_OP, VM_PREPARE_ARGS_OP, VM_PRIMITIVE_OP, VM_PRIMITIVE_REFERENCE_OP, VM_PUSH_ARGS_OP, VM_PUSH_BLOCK_SCOPE_OP, VM_PUSH_COMPONENT_DEFINITION_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_PUSH_DYNAMIC_SCOPE_OP, VM_PUSH_EMPTY_ARGS_OP, VM_PUSH_REMOTE_ELEMENT_OP, VM_PUSH_SYMBOL_TABLE_OP, VM_PUT_COMPONENT_OPERATIONS_OP, VM_REGISTER_COMPONENT_DESTRUCTOR_OP, VM_REIFY_U32_OP, VM_RESOLVE_DYNAMIC_COMPONENT_OP, VM_ROOT_SCOPE_OP, VM_SET_BLOCK_OP, VM_SET_BLOCKS_OP, VM_SET_NAMED_VARIABLES_OP, VM_SET_VARIABLE_OP, VM_SPREAD_BLOCK_OP, VM_STATIC_ATTR_OP, VM_SYSCALL_SIZE, VM_TEXT_OP, VM_TO_BOOLEAN_OP, VM_VIRTUAL_ROOT_SCOPE_OP } from '@glimmer/constants/lib/syscall-ops'; +import { + isMachineOp, + VM_INVOKE_STATIC_OP, + VM_INVOKE_VIRTUAL_OP, + VM_JUMP_OP, + VM_MACHINE_SIZE, + VM_POP_FRAME_OP, + VM_PUSH_FRAME_OP, + VM_RETURN_OP, + VM_RETURN_TO_OP, +} from '@glimmer/constants/lib/vm-ops'; +import { + VM_APPEND_DOCUMENT_FRAGMENT_OP, + VM_APPEND_HTML_OP, + VM_APPEND_NODE_OP, + VM_APPEND_SAFE_HTML_OP, + VM_APPEND_TEXT_OP, + VM_ASSERT_SAME_OP, + VM_BEGIN_COMPONENT_TRANSACTION_OP, + VM_BIND_DYNAMIC_SCOPE_OP, + VM_CAPTURE_ARGS_OP, + VM_CHILD_SCOPE_OP, + VM_CLOSE_ELEMENT_OP, + VM_COMMENT_OP, + VM_COMMIT_COMPONENT_TRANSACTION_OP, + VM_COMPILE_BLOCK_OP, + VM_COMPONENT_ATTR_OP, + VM_CONCAT_OP, + VM_CONSTANT_OP, + VM_CONSTANT_REFERENCE_OP, + VM_CONTENT_TYPE_OP, + VM_CREATE_COMPONENT_OP, + VM_CURRY_OP, + VM_DEBUGGER_OP, + VM_DID_CREATE_ELEMENT_OP, + VM_DID_RENDER_LAYOUT_OP, + VM_DUP_OP, + VM_DYNAMIC_ATTR_OP, + VM_DYNAMIC_CONTENT_TYPE_OP, + VM_DYNAMIC_HELPER_OP, + VM_ENTER_LIST_OP, + VM_ENTER_OP, + VM_EXIT_LIST_OP, + VM_EXIT_OP, + VM_FETCH_OP, + VM_FLUSH_ELEMENT_OP, + VM_GET_BLOCK_OP, + VM_GET_COMPONENT_LAYOUT_OP, + VM_GET_COMPONENT_SELF_OP, + VM_GET_COMPONENT_TAG_NAME_OP, + VM_GET_PROPERTY_OP, + VM_GET_VARIABLE_OP, + VM_HAS_BLOCK_OP, + VM_HAS_BLOCK_PARAMS_OP, + VM_HELPER_OP, + VM_IF_INLINE_OP, + VM_INVOKE_COMPONENT_LAYOUT_OP, + VM_INVOKE_YIELD_OP, + VM_ITERATE_OP, + VM_JUMP_EQ_OP, + VM_JUMP_IF_OP, + VM_JUMP_UNLESS_OP, + VM_LOAD_OP, + VM_MAIN_OP, + VM_MODIFIER_OP, + VM_NOT_OP, + VM_OPEN_DYNAMIC_ELEMENT_OP, + VM_OPEN_ELEMENT_OP, + VM_POP_ARGS_OP, + VM_POP_DYNAMIC_SCOPE_OP, + VM_POP_OP, + VM_POP_REMOTE_ELEMENT_OP, + VM_POP_SCOPE_OP, + VM_POPULATE_LAYOUT_OP, + VM_PREPARE_ARGS_OP, + VM_PRIMITIVE_OP, + VM_PRIMITIVE_REFERENCE_OP, + VM_PUSH_ARGS_OP, + VM_PUSH_BLOCK_SCOPE_OP, + VM_PUSH_COMPONENT_DEFINITION_OP, + VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, + VM_PUSH_DYNAMIC_SCOPE_OP, + VM_PUSH_EMPTY_ARGS_OP, + VM_PUSH_REMOTE_ELEMENT_OP, + VM_PUSH_SYMBOL_TABLE_OP, + VM_PUT_COMPONENT_OPERATIONS_OP, + VM_REGISTER_COMPONENT_DESTRUCTOR_OP, + VM_REIFY_U32_OP, + VM_RESOLVE_DYNAMIC_COMPONENT_OP, + VM_ROOT_SCOPE_OP, + VM_SET_BLOCK_OP, + VM_SET_BLOCKS_OP, + VM_SET_NAMED_VARIABLES_OP, + VM_SET_VARIABLE_OP, + VM_SPREAD_BLOCK_OP, + VM_STATIC_ATTR_OP, + VM_SYSCALL_SIZE, + VM_TEXT_OP, + VM_TO_BOOLEAN_OP, + VM_VIRTUAL_ROOT_SCOPE_OP, +} from '@glimmer/constants/lib/syscall-ops'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; import type { NormalizedMetadata } from './metadata'; diff --git a/packages/@glimmer/manager/lib/public/helper.ts b/packages/@glimmer/manager/lib/public/helper.ts index e94e75a87a8..85fc1f68065 100644 --- a/packages/@glimmer/manager/lib/public/helper.ts +++ b/packages/@glimmer/manager/lib/public/helper.ts @@ -12,7 +12,11 @@ import type { } from '@glimmer/interfaces'; import { associateDestroyableChild } from '@glimmer/destroyable'; import { debugAssert } from '@glimmer/global-context'; -import { createComputeRef, createConstRef, UNDEFINED_REFERENCE } from '@glimmer/reference/lib/reference'; +import { + createComputeRef, + createConstRef, + UNDEFINED_REFERENCE, +} from '@glimmer/reference/lib/reference'; import type { ManagerFactory } from './index'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/blocks.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/blocks.ts index c189abb1742..b2862d83504 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/blocks.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/blocks.ts @@ -1,6 +1,22 @@ import type { Nullable, WireFormat } from '@glimmer/interfaces'; -import { VM_CHILD_SCOPE_OP, VM_COMPILE_BLOCK_OP, VM_CONSTANT_OP, VM_DUP_OP, VM_GET_BLOCK_OP, VM_INVOKE_YIELD_OP, VM_POP_SCOPE_OP, VM_PUSH_BLOCK_SCOPE_OP, VM_PUSH_SYMBOL_TABLE_OP, VM_SET_VARIABLE_OP, VM_SPREAD_BLOCK_OP } from '@glimmer/constants/lib/syscall-ops'; -import { VM_INVOKE_VIRTUAL_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP } from '@glimmer/constants/lib/vm-ops'; +import { + VM_CHILD_SCOPE_OP, + VM_COMPILE_BLOCK_OP, + VM_CONSTANT_OP, + VM_DUP_OP, + VM_GET_BLOCK_OP, + VM_INVOKE_YIELD_OP, + VM_POP_SCOPE_OP, + VM_PUSH_BLOCK_SCOPE_OP, + VM_PUSH_SYMBOL_TABLE_OP, + VM_SET_VARIABLE_OP, + VM_SPREAD_BLOCK_OP, +} from '@glimmer/constants/lib/syscall-ops'; +import { + VM_INVOKE_VIRTUAL_OP, + VM_POP_FRAME_OP, + VM_PUSH_FRAME_OP, +} from '@glimmer/constants/lib/vm-ops'; import { $fp } from '@glimmer/vm/lib/registers'; import type { PushExpressionOp, PushStatementOp } from '../../syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.ts index de32316fd1f..4bbfe09b09d 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.ts @@ -8,8 +8,53 @@ import type { WireFormat, } from '@glimmer/interfaces'; import type { SavedRegister } from '@glimmer/vm/lib/registers'; -import { VM_BEGIN_COMPONENT_TRANSACTION_OP, VM_CLOSE_ELEMENT_OP, VM_COMMIT_COMPONENT_TRANSACTION_OP, VM_COMPILE_BLOCK_OP, VM_CONSTANT_OP, VM_CREATE_COMPONENT_OP, VM_DID_CREATE_ELEMENT_OP, VM_DID_RENDER_LAYOUT_OP, VM_DUP_OP, VM_FETCH_OP, VM_FLUSH_ELEMENT_OP, VM_GET_COMPONENT_LAYOUT_OP, VM_GET_COMPONENT_SELF_OP, VM_GET_COMPONENT_TAG_NAME_OP, VM_INVOKE_COMPONENT_LAYOUT_OP, VM_JUMP_UNLESS_OP, VM_LOAD_OP, VM_OPEN_DYNAMIC_ELEMENT_OP, VM_POP_DYNAMIC_SCOPE_OP, VM_POP_OP, VM_POP_SCOPE_OP, VM_POPULATE_LAYOUT_OP, VM_PREPARE_ARGS_OP, VM_PRIMITIVE_REFERENCE_OP, VM_PUSH_ARGS_OP, VM_PUSH_COMPONENT_DEFINITION_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_PUSH_DYNAMIC_SCOPE_OP, VM_PUSH_EMPTY_ARGS_OP, VM_PUSH_SYMBOL_TABLE_OP, VM_PUT_COMPONENT_OPERATIONS_OP, VM_REGISTER_COMPONENT_DESTRUCTOR_OP, VM_RESOLVE_CURRIED_COMPONENT_OP, VM_RESOLVE_DYNAMIC_COMPONENT_OP, VM_ROOT_SCOPE_OP, VM_SET_BLOCK_OP, VM_SET_BLOCKS_OP, VM_SET_NAMED_VARIABLES_OP, VM_SET_VARIABLE_OP, VM_VIRTUAL_ROOT_SCOPE_OP } from '@glimmer/constants/lib/syscall-ops'; -import { VM_INVOKE_VIRTUAL_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP } from '@glimmer/constants/lib/vm-ops'; +import { + VM_BEGIN_COMPONENT_TRANSACTION_OP, + VM_CLOSE_ELEMENT_OP, + VM_COMMIT_COMPONENT_TRANSACTION_OP, + VM_COMPILE_BLOCK_OP, + VM_CONSTANT_OP, + VM_CREATE_COMPONENT_OP, + VM_DID_CREATE_ELEMENT_OP, + VM_DID_RENDER_LAYOUT_OP, + VM_DUP_OP, + VM_FETCH_OP, + VM_FLUSH_ELEMENT_OP, + VM_GET_COMPONENT_LAYOUT_OP, + VM_GET_COMPONENT_SELF_OP, + VM_GET_COMPONENT_TAG_NAME_OP, + VM_INVOKE_COMPONENT_LAYOUT_OP, + VM_JUMP_UNLESS_OP, + VM_LOAD_OP, + VM_OPEN_DYNAMIC_ELEMENT_OP, + VM_POP_DYNAMIC_SCOPE_OP, + VM_POP_OP, + VM_POP_SCOPE_OP, + VM_POPULATE_LAYOUT_OP, + VM_PREPARE_ARGS_OP, + VM_PRIMITIVE_REFERENCE_OP, + VM_PUSH_ARGS_OP, + VM_PUSH_COMPONENT_DEFINITION_OP, + VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, + VM_PUSH_DYNAMIC_SCOPE_OP, + VM_PUSH_EMPTY_ARGS_OP, + VM_PUSH_SYMBOL_TABLE_OP, + VM_PUT_COMPONENT_OPERATIONS_OP, + VM_REGISTER_COMPONENT_DESTRUCTOR_OP, + VM_RESOLVE_CURRIED_COMPONENT_OP, + VM_RESOLVE_DYNAMIC_COMPONENT_OP, + VM_ROOT_SCOPE_OP, + VM_SET_BLOCK_OP, + VM_SET_BLOCKS_OP, + VM_SET_NAMED_VARIABLES_OP, + VM_SET_VARIABLE_OP, + VM_VIRTUAL_ROOT_SCOPE_OP, +} from '@glimmer/constants/lib/syscall-ops'; +import { + VM_INVOKE_VIRTUAL_OP, + VM_POP_FRAME_OP, + VM_PUSH_FRAME_OP, +} from '@glimmer/constants/lib/vm-ops'; import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; import { hasCapability } from '@glimmer/manager/lib/util/capabilities'; import { EMPTY_STRING_ARRAY, reverse } from '@glimmer/util/lib/array-utils'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/conditional.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/conditional.ts index 02e244fdb73..f609cef37d0 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/conditional.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/conditional.ts @@ -1,5 +1,17 @@ -import { VM_ENTER_OP, VM_EXIT_OP, VM_JUMP_EQ_OP, VM_JUMP_UNLESS_OP, VM_POP_OP } from '@glimmer/constants/lib/syscall-ops'; -import { VM_JUMP_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP, VM_RETURN_OP, VM_RETURN_TO_OP } from '@glimmer/constants/lib/vm-ops'; +import { + VM_ENTER_OP, + VM_EXIT_OP, + VM_JUMP_EQ_OP, + VM_JUMP_UNLESS_OP, + VM_POP_OP, +} from '@glimmer/constants/lib/syscall-ops'; +import { + VM_JUMP_OP, + VM_POP_FRAME_OP, + VM_PUSH_FRAME_OP, + VM_RETURN_OP, + VM_RETURN_TO_OP, +} from '@glimmer/constants/lib/vm-ops'; import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; import type { PushStatementOp } from '../../syntax/compilers'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/stdlib.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/stdlib.ts index 825d2ec71d6..466add49cc9 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/stdlib.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/stdlib.ts @@ -1,5 +1,16 @@ import type { BlockMetadata, BuilderOp, EvaluationContext, HighLevelOp } from '@glimmer/interfaces'; -import { VM_APPEND_DOCUMENT_FRAGMENT_OP, VM_APPEND_HTML_OP, VM_APPEND_NODE_OP, VM_APPEND_SAFE_HTML_OP, VM_APPEND_TEXT_OP, VM_ASSERT_SAME_OP, VM_CONTENT_TYPE_OP, VM_MAIN_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_RESOLVE_CURRIED_COMPONENT_OP } from '@glimmer/constants/lib/syscall-ops'; +import { + VM_APPEND_DOCUMENT_FRAGMENT_OP, + VM_APPEND_HTML_OP, + VM_APPEND_NODE_OP, + VM_APPEND_SAFE_HTML_OP, + VM_APPEND_TEXT_OP, + VM_ASSERT_SAME_OP, + VM_CONTENT_TYPE_OP, + VM_MAIN_OP, + VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, + VM_RESOLVE_CURRIED_COMPONENT_OP, +} from '@glimmer/constants/lib/syscall-ops'; import { VM_INVOKE_STATIC_OP } from '@glimmer/constants/lib/vm-ops'; import { $s0 } from '@glimmer/vm/lib/registers'; import { ContentType } from '@glimmer/vm/lib/content'; diff --git a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/vm.ts b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/vm.ts index d319a87d232..f2ef561eda3 100644 --- a/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/vm.ts +++ b/packages/@glimmer/opcode-compiler/lib/opcode-builder/helpers/vm.ts @@ -1,6 +1,19 @@ import type { CurriedType, NonSmallIntOperand, Nullable, WireFormat } from '@glimmer/interfaces'; import { encodeImmediate, isSmallInt } from '@glimmer/constants/lib/immediate'; -import { VM_BIND_DYNAMIC_SCOPE_OP, VM_CAPTURE_ARGS_OP, VM_CURRY_OP, VM_DUP_OP, VM_DYNAMIC_HELPER_OP, VM_FETCH_OP, VM_HELPER_OP, VM_POP_DYNAMIC_SCOPE_OP, VM_POP_OP, VM_PRIMITIVE_OP, VM_PRIMITIVE_REFERENCE_OP, VM_PUSH_DYNAMIC_SCOPE_OP } from '@glimmer/constants/lib/syscall-ops'; +import { + VM_BIND_DYNAMIC_SCOPE_OP, + VM_CAPTURE_ARGS_OP, + VM_CURRY_OP, + VM_DUP_OP, + VM_DYNAMIC_HELPER_OP, + VM_FETCH_OP, + VM_HELPER_OP, + VM_POP_DYNAMIC_SCOPE_OP, + VM_POP_OP, + VM_PRIMITIVE_OP, + VM_PRIMITIVE_REFERENCE_OP, + VM_PUSH_DYNAMIC_SCOPE_OP, +} from '@glimmer/constants/lib/syscall-ops'; import { VM_POP_FRAME_OP, VM_PUSH_FRAME_OP } from '@glimmer/constants/lib/vm-ops'; import { $fp, $v0 } from '@glimmer/vm/lib/registers'; diff --git a/packages/@glimmer/opcode-compiler/lib/syntax/expressions.ts b/packages/@glimmer/opcode-compiler/lib/syntax/expressions.ts index 314193d73e6..1815ea34494 100644 --- a/packages/@glimmer/opcode-compiler/lib/syntax/expressions.ts +++ b/packages/@glimmer/opcode-compiler/lib/syntax/expressions.ts @@ -1,5 +1,19 @@ import type { ExpressionSexpOpcode } from '@glimmer/interfaces'; -import { VM_COMPILE_BLOCK_OP, VM_CONCAT_OP, VM_CONSTANT_REFERENCE_OP, VM_FETCH_OP, VM_GET_DYNAMIC_VAR_OP, VM_GET_PROPERTY_OP, VM_GET_VARIABLE_OP, VM_HAS_BLOCK_OP, VM_HAS_BLOCK_PARAMS_OP, VM_IF_INLINE_OP, VM_LOG_OP, VM_NOT_OP, VM_SPREAD_BLOCK_OP } from '@glimmer/constants/lib/syscall-ops'; +import { + VM_COMPILE_BLOCK_OP, + VM_CONCAT_OP, + VM_CONSTANT_REFERENCE_OP, + VM_FETCH_OP, + VM_GET_DYNAMIC_VAR_OP, + VM_GET_PROPERTY_OP, + VM_GET_VARIABLE_OP, + VM_HAS_BLOCK_OP, + VM_HAS_BLOCK_PARAMS_OP, + VM_IF_INLINE_OP, + VM_LOG_OP, + VM_NOT_OP, + VM_SPREAD_BLOCK_OP, +} from '@glimmer/constants/lib/syscall-ops'; import { VM_POP_FRAME_OP, VM_PUSH_FRAME_OP } from '@glimmer/constants/lib/vm-ops'; import { $v0 } from '@glimmer/vm/lib/registers'; import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; diff --git a/packages/@glimmer/opcode-compiler/lib/syntax/statements.ts b/packages/@glimmer/opcode-compiler/lib/syntax/statements.ts index abb09614878..4a57b28a48c 100644 --- a/packages/@glimmer/opcode-compiler/lib/syntax/statements.ts +++ b/packages/@glimmer/opcode-compiler/lib/syntax/statements.ts @@ -5,8 +5,40 @@ import type { WellKnownTagName, WireFormat, } from '@glimmer/interfaces'; -import { VM_CLOSE_ELEMENT_OP, VM_COMMENT_OP, VM_COMPONENT_ATTR_OP, VM_CONSTANT_REFERENCE_OP, VM_DEBUGGER_OP, VM_DUP_OP, VM_DYNAMIC_ATTR_OP, VM_DYNAMIC_CONTENT_TYPE_OP, VM_DYNAMIC_MODIFIER_OP, VM_ENTER_LIST_OP, VM_EXIT_LIST_OP, VM_FLUSH_ELEMENT_OP, VM_ITERATE_OP, VM_MODIFIER_OP, VM_OPEN_ELEMENT_OP, VM_POP_OP, VM_POP_REMOTE_ELEMENT_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_PUSH_REMOTE_ELEMENT_OP, VM_PUT_COMPONENT_OPERATIONS_OP, VM_RESOLVE_CURRIED_COMPONENT_OP, VM_STATIC_ATTR_OP, VM_STATIC_COMPONENT_ATTR_OP, VM_TEXT_OP, VM_TO_BOOLEAN_OP } from '@glimmer/constants/lib/syscall-ops'; -import { VM_INVOKE_STATIC_OP, VM_JUMP_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP, VM_RETURN_TO_OP } from '@glimmer/constants/lib/vm-ops'; +import { + VM_CLOSE_ELEMENT_OP, + VM_COMMENT_OP, + VM_COMPONENT_ATTR_OP, + VM_CONSTANT_REFERENCE_OP, + VM_DEBUGGER_OP, + VM_DUP_OP, + VM_DYNAMIC_ATTR_OP, + VM_DYNAMIC_CONTENT_TYPE_OP, + VM_DYNAMIC_MODIFIER_OP, + VM_ENTER_LIST_OP, + VM_EXIT_LIST_OP, + VM_FLUSH_ELEMENT_OP, + VM_ITERATE_OP, + VM_MODIFIER_OP, + VM_OPEN_ELEMENT_OP, + VM_POP_OP, + VM_POP_REMOTE_ELEMENT_OP, + VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, + VM_PUSH_REMOTE_ELEMENT_OP, + VM_PUT_COMPONENT_OPERATIONS_OP, + VM_RESOLVE_CURRIED_COMPONENT_OP, + VM_STATIC_ATTR_OP, + VM_STATIC_COMPONENT_ATTR_OP, + VM_TEXT_OP, + VM_TO_BOOLEAN_OP, +} from '@glimmer/constants/lib/syscall-ops'; +import { + VM_INVOKE_STATIC_OP, + VM_JUMP_OP, + VM_POP_FRAME_OP, + VM_PUSH_FRAME_OP, + VM_RETURN_TO_OP, +} from '@glimmer/constants/lib/vm-ops'; import { $fp, $sp } from '@glimmer/vm/lib/registers'; import { ContentType } from '@glimmer/vm/lib/content'; import { opcodes as SexpOpcodes } from '@glimmer/wire-format/lib/opcodes'; diff --git a/packages/@glimmer/program/lib/constants.ts b/packages/@glimmer/program/lib/constants.ts index 22f04bef34a..1041fbe8817 100644 --- a/packages/@glimmer/program/lib/constants.ts +++ b/packages/@glimmer/program/lib/constants.ts @@ -15,7 +15,11 @@ import assert from '@glimmer/debug-util/lib/assert'; import { unwrapTemplate } from '@glimmer/debug-util/lib/template'; import { capabilityFlagsFrom, managerHasCapability } from '@glimmer/manager/lib/util/capabilities'; import { getComponentTemplate } from '@glimmer/manager/lib/public/template'; -import { getInternalComponentManager, getInternalHelperManager, getInternalModifierManager } from '@glimmer/manager/lib/internal/api'; +import { + getInternalComponentManager, + getInternalHelperManager, + getInternalModifierManager, +} from '@glimmer/manager/lib/internal/api'; import templateFactory from '@glimmer/opcode-compiler/lib/template'; import { enumerate } from '@glimmer/util/lib/array-utils'; import { InternalComponentCapabilities } from '@glimmer/vm/lib/flags'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.ts index 973f1d68b14..0795d1c1507 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.ts @@ -17,7 +17,23 @@ import type { import type { OpaqueIterator } from '@glimmer/reference/lib/iterable'; import type { Reference } from '@glimmer/reference/lib/reference'; import type { Tag } from '@glimmer/interfaces'; -import { CheckArray, CheckBlockSymbolTable, CheckDict, CheckFunction, CheckHandle, CheckInstanceof, CheckInterface, CheckNullable, CheckNumber, CheckObject, CheckOr, CheckProgramSymbolTable, CheckString, CheckUnknown, wrap } from '@glimmer/debug/lib/stack-check'; +import { + CheckArray, + CheckBlockSymbolTable, + CheckDict, + CheckFunction, + CheckHandle, + CheckInstanceof, + CheckInterface, + CheckNullable, + CheckNumber, + CheckObject, + CheckOr, + CheckProgramSymbolTable, + CheckString, + CheckUnknown, + wrap, +} from '@glimmer/debug/lib/stack-check'; import { REFERENCE, UNDEFINED_REFERENCE } from '@glimmer/reference/lib/reference'; import { COMPUTE } from '@glimmer/validator/lib/validators'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts index 94230c55f05..ec5b2c206d1 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/component.ts @@ -27,8 +27,46 @@ import type { } from '@glimmer/interfaces'; import type { Reference } from '@glimmer/reference/lib/reference'; import { CURRIED_COMPONENT } from '@glimmer/constants/lib/curried'; -import { VM_BEGIN_COMPONENT_TRANSACTION_OP, VM_CAPTURE_ARGS_OP, VM_COMMIT_COMPONENT_TRANSACTION_OP, VM_COMPONENT_ATTR_OP, VM_CREATE_COMPONENT_OP, VM_DID_CREATE_ELEMENT_OP, VM_DID_RENDER_LAYOUT_OP, VM_GET_COMPONENT_LAYOUT_OP, VM_GET_COMPONENT_SELF_OP, VM_GET_COMPONENT_TAG_NAME_OP, VM_INVOKE_COMPONENT_LAYOUT_OP, VM_MAIN_OP, VM_POPULATE_LAYOUT_OP, VM_PREPARE_ARGS_OP, VM_PUSH_ARGS_OP, VM_PUSH_COMPONENT_DEFINITION_OP, VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, VM_PUSH_EMPTY_ARGS_OP, VM_PUT_COMPONENT_OPERATIONS_OP, VM_REGISTER_COMPONENT_DESTRUCTOR_OP, VM_RESOLVE_CURRIED_COMPONENT_OP, VM_RESOLVE_DYNAMIC_COMPONENT_OP, VM_SET_BLOCKS_OP, VM_SET_NAMED_VARIABLES_OP, VM_STATIC_COMPONENT_ATTR_OP, VM_VIRTUAL_ROOT_SCOPE_OP } from '@glimmer/constants/lib/syscall-ops'; -import { check, CheckFunction, CheckHandle, CheckInstanceof, CheckInterface, CheckOr, CheckProgramSymbolTable, CheckRegister, CheckString, CheckSyscallRegister } from '@glimmer/debug/lib/stack-check'; +import { + VM_BEGIN_COMPONENT_TRANSACTION_OP, + VM_CAPTURE_ARGS_OP, + VM_COMMIT_COMPONENT_TRANSACTION_OP, + VM_COMPONENT_ATTR_OP, + VM_CREATE_COMPONENT_OP, + VM_DID_CREATE_ELEMENT_OP, + VM_DID_RENDER_LAYOUT_OP, + VM_GET_COMPONENT_LAYOUT_OP, + VM_GET_COMPONENT_SELF_OP, + VM_GET_COMPONENT_TAG_NAME_OP, + VM_INVOKE_COMPONENT_LAYOUT_OP, + VM_MAIN_OP, + VM_POPULATE_LAYOUT_OP, + VM_PREPARE_ARGS_OP, + VM_PUSH_ARGS_OP, + VM_PUSH_COMPONENT_DEFINITION_OP, + VM_PUSH_DYNAMIC_COMPONENT_INSTANCE_OP, + VM_PUSH_EMPTY_ARGS_OP, + VM_PUT_COMPONENT_OPERATIONS_OP, + VM_REGISTER_COMPONENT_DESTRUCTOR_OP, + VM_RESOLVE_CURRIED_COMPONENT_OP, + VM_RESOLVE_DYNAMIC_COMPONENT_OP, + VM_SET_BLOCKS_OP, + VM_SET_NAMED_VARIABLES_OP, + VM_STATIC_COMPONENT_ATTR_OP, + VM_VIRTUAL_ROOT_SCOPE_OP, +} from '@glimmer/constants/lib/syscall-ops'; +import { + check, + CheckFunction, + CheckHandle, + CheckInstanceof, + CheckInterface, + CheckOr, + CheckProgramSymbolTable, + CheckRegister, + CheckString, + CheckSyscallRegister, +} from '@glimmer/debug/lib/stack-check'; import debugToString from '@glimmer/debug-util/lib/debug-to-string'; import { expect, unwrap } from '@glimmer/debug-util/lib/platform-utils'; import assert from '@glimmer/debug-util/lib/assert'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/content.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/content.ts index ee35cd3149a..ab8c668f170 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/content.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/content.ts @@ -1,8 +1,25 @@ import { DEBUG } from '@glimmer/env'; import { CURRIED_COMPONENT, CURRIED_HELPER } from '@glimmer/constants/lib/curried'; -import { VM_APPEND_DOCUMENT_FRAGMENT_OP, VM_APPEND_HTML_OP, VM_APPEND_NODE_OP, VM_APPEND_SAFE_HTML_OP, VM_APPEND_TEXT_OP, VM_CONTENT_TYPE_OP, VM_DYNAMIC_CONTENT_TYPE_OP } from '@glimmer/constants/lib/syscall-ops'; -import { check, CheckDocumentFragment, CheckNode, CheckSafeString, CheckString } from '@glimmer/debug/lib/stack-check'; -import { hasInternalComponentManager, hasInternalHelperManager } from '@glimmer/manager/lib/internal/api'; +import { + VM_APPEND_DOCUMENT_FRAGMENT_OP, + VM_APPEND_HTML_OP, + VM_APPEND_NODE_OP, + VM_APPEND_SAFE_HTML_OP, + VM_APPEND_TEXT_OP, + VM_CONTENT_TYPE_OP, + VM_DYNAMIC_CONTENT_TYPE_OP, +} from '@glimmer/constants/lib/syscall-ops'; +import { + check, + CheckDocumentFragment, + CheckNode, + CheckSafeString, + CheckString, +} from '@glimmer/debug/lib/stack-check'; +import { + hasInternalComponentManager, + hasInternalHelperManager, +} from '@glimmer/manager/lib/internal/api'; import { isConstRef, valueForRef } from '@glimmer/reference/lib/reference'; import { isIndexable } from '@glimmer/util/lib/collections'; import { ContentType } from '@glimmer/vm/lib/content'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts index 3f148233a54..e12d7f8fbfb 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/dom.ts @@ -14,8 +14,28 @@ import type { Reference } from '@glimmer/reference/lib/reference'; import type { Revision } from '@glimmer/validator/lib/validators'; import type { Tag } from '@glimmer/interfaces'; import { CURRIED_MODIFIER } from '@glimmer/constants/lib/curried'; -import { VM_CLOSE_ELEMENT_OP, VM_COMMENT_OP, VM_DYNAMIC_ATTR_OP, VM_DYNAMIC_MODIFIER_OP, VM_FLUSH_ELEMENT_OP, VM_MODIFIER_OP, VM_OPEN_DYNAMIC_ELEMENT_OP, VM_OPEN_ELEMENT_OP, VM_POP_REMOTE_ELEMENT_OP, VM_PUSH_REMOTE_ELEMENT_OP, VM_STATIC_ATTR_OP, VM_TEXT_OP } from '@glimmer/constants/lib/syscall-ops'; -import { check, CheckElement, CheckMaybe, CheckNode, CheckNullable, CheckString } from '@glimmer/debug/lib/stack-check'; +import { + VM_CLOSE_ELEMENT_OP, + VM_COMMENT_OP, + VM_DYNAMIC_ATTR_OP, + VM_DYNAMIC_MODIFIER_OP, + VM_FLUSH_ELEMENT_OP, + VM_MODIFIER_OP, + VM_OPEN_DYNAMIC_ELEMENT_OP, + VM_OPEN_ELEMENT_OP, + VM_POP_REMOTE_ELEMENT_OP, + VM_PUSH_REMOTE_ELEMENT_OP, + VM_STATIC_ATTR_OP, + VM_TEXT_OP, +} from '@glimmer/constants/lib/syscall-ops'; +import { + check, + CheckElement, + CheckMaybe, + CheckNode, + CheckNullable, + CheckString, +} from '@glimmer/debug/lib/stack-check'; import debugToString from '@glimmer/debug-util/lib/debug-to-string'; import { expect } from '@glimmer/debug-util/lib/platform-utils'; import { associateDestroyableChild, destroy, registerDestructor } from '@glimmer/destroyable'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/expressions.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/expressions.ts index dfae19e74cd..0e99c73c52f 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/expressions.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/expressions.ts @@ -10,14 +10,46 @@ import type { import type { Reference } from '@glimmer/reference/lib/reference'; import { CURRIED_HELPER } from '@glimmer/constants/lib/curried'; import { decodeHandle } from '@glimmer/constants/lib/immediate'; -import { VM_CONCAT_OP, VM_CURRY_OP, VM_DYNAMIC_HELPER_OP, VM_GET_BLOCK_OP, VM_GET_DYNAMIC_VAR_OP, VM_GET_PROPERTY_OP, VM_GET_VARIABLE_OP, VM_HAS_BLOCK_OP, VM_HAS_BLOCK_PARAMS_OP, VM_HELPER_OP, VM_IF_INLINE_OP, VM_LOG_OP, VM_NOT_OP, VM_ROOT_SCOPE_OP, VM_SET_BLOCK_OP, VM_SET_VARIABLE_OP, VM_SPREAD_BLOCK_OP } from '@glimmer/constants/lib/syscall-ops'; -import { check, CheckBlockSymbolTable, CheckHandle, CheckMaybe, CheckNullable, CheckOr } from '@glimmer/debug/lib/stack-check'; +import { + VM_CONCAT_OP, + VM_CURRY_OP, + VM_DYNAMIC_HELPER_OP, + VM_GET_BLOCK_OP, + VM_GET_DYNAMIC_VAR_OP, + VM_GET_PROPERTY_OP, + VM_GET_VARIABLE_OP, + VM_HAS_BLOCK_OP, + VM_HAS_BLOCK_PARAMS_OP, + VM_HELPER_OP, + VM_IF_INLINE_OP, + VM_LOG_OP, + VM_NOT_OP, + VM_ROOT_SCOPE_OP, + VM_SET_BLOCK_OP, + VM_SET_VARIABLE_OP, + VM_SPREAD_BLOCK_OP, +} from '@glimmer/constants/lib/syscall-ops'; +import { + check, + CheckBlockSymbolTable, + CheckHandle, + CheckMaybe, + CheckNullable, + CheckOr, +} from '@glimmer/debug/lib/stack-check'; import debugToString from '@glimmer/debug-util/lib/debug-to-string'; import assert from '@glimmer/debug-util/lib/assert'; import { _hasDestroyableChildren, associateDestroyableChild, destroy } from '@glimmer/destroyable'; import { debugAssert, toBool } from '@glimmer/global-context'; import { getInternalHelperManager } from '@glimmer/manager/lib/internal/api'; -import { childRefFor, createComputeRef, FALSE_REFERENCE, TRUE_REFERENCE, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import { + childRefFor, + createComputeRef, + FALSE_REFERENCE, + TRUE_REFERENCE, + UNDEFINED_REFERENCE, + valueForRef, +} from '@glimmer/reference/lib/reference'; import { assign } from '@glimmer/util/lib/object-utils'; import { isIndexable } from '@glimmer/util/lib/collections'; import { $v0 } from '@glimmer/vm/lib/registers'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/lists.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/lists.ts index 31b69f5286c..1dfae3891d1 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/lists.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/lists.ts @@ -1,4 +1,8 @@ -import { VM_ENTER_LIST_OP, VM_EXIT_LIST_OP, VM_ITERATE_OP } from '@glimmer/constants/lib/syscall-ops'; +import { + VM_ENTER_LIST_OP, + VM_EXIT_LIST_OP, + VM_ITERATE_OP, +} from '@glimmer/constants/lib/syscall-ops'; import { check } from '@glimmer/debug/lib/stack-check'; import { createIteratorRef } from '@glimmer/reference/lib/iterable'; import { valueForRef } from '@glimmer/reference/lib/reference'; diff --git a/packages/@glimmer/runtime/lib/compiled/opcodes/vm.ts b/packages/@glimmer/runtime/lib/compiled/opcodes/vm.ts index 2260e86dae6..f701eea5743 100644 --- a/packages/@glimmer/runtime/lib/compiled/opcodes/vm.ts +++ b/packages/@glimmer/runtime/lib/compiled/opcodes/vm.ts @@ -3,12 +3,57 @@ import type { Reference } from '@glimmer/reference/lib/reference'; import type { Revision } from '@glimmer/validator/lib/validators'; import type { Tag } from '@glimmer/interfaces'; import { decodeHandle, decodeImmediate, isHandle } from '@glimmer/constants/lib/immediate'; -import { VM_ASSERT_SAME_OP, VM_BIND_DYNAMIC_SCOPE_OP, VM_CHILD_SCOPE_OP, VM_COMPILE_BLOCK_OP, VM_CONSTANT_OP, VM_CONSTANT_REFERENCE_OP, VM_DUP_OP, VM_ENTER_OP, VM_EXIT_OP, VM_FETCH_OP, VM_INVOKE_YIELD_OP, VM_JUMP_EQ_OP, VM_JUMP_IF_OP, VM_JUMP_UNLESS_OP, VM_LOAD_OP, VM_POP_DYNAMIC_SCOPE_OP, VM_POP_OP, VM_POP_SCOPE_OP, VM_PRIMITIVE_OP, VM_PRIMITIVE_REFERENCE_OP, VM_PUSH_BLOCK_SCOPE_OP, VM_PUSH_DYNAMIC_SCOPE_OP, VM_PUSH_SYMBOL_TABLE_OP, VM_TO_BOOLEAN_OP } from '@glimmer/constants/lib/syscall-ops'; -import { check, CheckBlockSymbolTable, CheckHandle, CheckInstanceof, CheckNullable, CheckNumber, CheckPrimitive, CheckRegister, CheckSyscallRegister } from '@glimmer/debug/lib/stack-check'; +import { + VM_ASSERT_SAME_OP, + VM_BIND_DYNAMIC_SCOPE_OP, + VM_CHILD_SCOPE_OP, + VM_COMPILE_BLOCK_OP, + VM_CONSTANT_OP, + VM_CONSTANT_REFERENCE_OP, + VM_DUP_OP, + VM_ENTER_OP, + VM_EXIT_OP, + VM_FETCH_OP, + VM_INVOKE_YIELD_OP, + VM_JUMP_EQ_OP, + VM_JUMP_IF_OP, + VM_JUMP_UNLESS_OP, + VM_LOAD_OP, + VM_POP_DYNAMIC_SCOPE_OP, + VM_POP_OP, + VM_POP_SCOPE_OP, + VM_PRIMITIVE_OP, + VM_PRIMITIVE_REFERENCE_OP, + VM_PUSH_BLOCK_SCOPE_OP, + VM_PUSH_DYNAMIC_SCOPE_OP, + VM_PUSH_SYMBOL_TABLE_OP, + VM_TO_BOOLEAN_OP, +} from '@glimmer/constants/lib/syscall-ops'; +import { + check, + CheckBlockSymbolTable, + CheckHandle, + CheckInstanceof, + CheckNullable, + CheckNumber, + CheckPrimitive, + CheckRegister, + CheckSyscallRegister, +} from '@glimmer/debug/lib/stack-check'; import { expect, unwrap } from '@glimmer/debug-util/lib/platform-utils'; import assert from '@glimmer/debug-util/lib/assert'; import { toBool } from '@glimmer/global-context'; -import { createComputeRef, createConstRef, createPrimitiveRef, FALSE_REFERENCE, isConstRef, NULL_REFERENCE, TRUE_REFERENCE, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import { + createComputeRef, + createConstRef, + createPrimitiveRef, + FALSE_REFERENCE, + isConstRef, + NULL_REFERENCE, + TRUE_REFERENCE, + UNDEFINED_REFERENCE, + valueForRef, +} from '@glimmer/reference/lib/reference'; import { beginTrackFrame, consumeTag, endTrackFrame } from '@glimmer/validator/lib/tracking'; import { CONSTANT_TAG, INITIAL, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; diff --git a/packages/@glimmer/runtime/lib/dom/operations.ts b/packages/@glimmer/runtime/lib/dom/operations.ts index 8b9f002d9c5..5cbcc133921 100644 --- a/packages/@glimmer/runtime/lib/dom/operations.ts +++ b/packages/@glimmer/runtime/lib/dom/operations.ts @@ -9,7 +9,12 @@ import type { SimpleNode, SimpleText, } from '@glimmer/interfaces'; -import { INSERT_BEFORE_BEGIN, INSERT_BEFORE_END, NS_MATHML, NS_SVG } from '@glimmer/constants/lib/dom'; +import { + INSERT_BEFORE_BEGIN, + INSERT_BEFORE_END, + NS_MATHML, + NS_SVG, +} from '@glimmer/constants/lib/dom'; import { expect } from '@glimmer/debug-util/lib/platform-utils'; import { ConcreteBounds } from '../bounds'; diff --git a/packages/@glimmer/runtime/lib/helpers/fn.ts b/packages/@glimmer/runtime/lib/helpers/fn.ts index 9c33c782b8f..b8ce4196740 100644 --- a/packages/@glimmer/runtime/lib/helpers/fn.ts +++ b/packages/@glimmer/runtime/lib/helpers/fn.ts @@ -3,7 +3,12 @@ import type { AnyFn, CapturedArguments } from '@glimmer/interfaces'; import type { Reference } from '@glimmer/reference/lib/reference'; import { check } from '@glimmer/debug/lib/stack-check'; import buildUntouchableThis from '@glimmer/debug-util/lib/untouchable-this'; -import { createComputeRef, isInvokableRef, updateRef, valueForRef } from '@glimmer/reference/lib/reference'; +import { + createComputeRef, + isInvokableRef, + updateRef, + valueForRef, +} from '@glimmer/reference/lib/reference'; import { reifyPositional } from '../vm/arguments'; import { internalHelper } from './internal-helper'; diff --git a/packages/@glimmer/runtime/lib/helpers/get.ts b/packages/@glimmer/runtime/lib/helpers/get.ts index 18c2932c6ec..0e9fa4a3439 100644 --- a/packages/@glimmer/runtime/lib/helpers/get.ts +++ b/packages/@glimmer/runtime/lib/helpers/get.ts @@ -1,6 +1,10 @@ import type { CapturedArguments } from '@glimmer/interfaces'; import { getPath, setPath } from '@glimmer/global-context'; -import { createComputeRef, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import { + createComputeRef, + UNDEFINED_REFERENCE, + valueForRef, +} from '@glimmer/reference/lib/reference'; import { isDict } from '@glimmer/util/lib/collections'; import { internalHelper } from './internal-helper'; diff --git a/packages/@glimmer/runtime/lib/modifiers/on.ts b/packages/@glimmer/runtime/lib/modifiers/on.ts index 1b75f534402..35dfdc1c827 100644 --- a/packages/@glimmer/runtime/lib/modifiers/on.ts +++ b/packages/@glimmer/runtime/lib/modifiers/on.ts @@ -6,7 +6,14 @@ import type { SimpleElement, UpdatableTag, } from '@glimmer/interfaces'; -import { check, CheckBoolean, CheckFunction, CheckOr, CheckString, CheckUndefined } from '@glimmer/debug/lib/stack-check'; +import { + check, + CheckBoolean, + CheckFunction, + CheckOr, + CheckString, + CheckUndefined, +} from '@glimmer/debug/lib/stack-check'; import buildUntouchableThis from '@glimmer/debug-util/lib/untouchable-this'; import { registerDestructor } from '@glimmer/destroyable'; import { setInternalModifierManager } from '@glimmer/manager/lib/internal/api'; diff --git a/packages/@glimmer/runtime/lib/vm/arguments.ts b/packages/@glimmer/runtime/lib/vm/arguments.ts index 770d940b96b..f09b81c5ead 100644 --- a/packages/@glimmer/runtime/lib/vm/arguments.ts +++ b/packages/@glimmer/runtime/lib/vm/arguments.ts @@ -19,10 +19,20 @@ import type { } from '@glimmer/interfaces'; import type { Reference } from '@glimmer/reference/lib/reference'; import type { Tag } from '@glimmer/interfaces'; -import { check, CheckBlockSymbolTable, CheckHandle, CheckNullable, CheckOr } from '@glimmer/debug/lib/stack-check'; +import { + check, + CheckBlockSymbolTable, + CheckHandle, + CheckNullable, + CheckOr, +} from '@glimmer/debug/lib/stack-check'; import { setLocalDebugType } from '@glimmer/debug-util/lib/debug-brand'; import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; -import { createDebugAliasRef, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; +import { + createDebugAliasRef, + UNDEFINED_REFERENCE, + valueForRef, +} from '@glimmer/reference/lib/reference'; import { dict } from '@glimmer/util/lib/collections'; import { EMPTY_STRING_ARRAY, emptyArray, enumerate } from '@glimmer/util/lib/array-utils'; import { CONSTANT_TAG } from '@glimmer/validator/lib/validators'; diff --git a/packages/@glimmer/runtime/lib/vm/low-level.ts b/packages/@glimmer/runtime/lib/vm/low-level.ts index bb68f80a906..b1a9d269bbf 100644 --- a/packages/@glimmer/runtime/lib/vm/low-level.ts +++ b/packages/@glimmer/runtime/lib/vm/low-level.ts @@ -1,6 +1,14 @@ import type { EvaluationContext, Nullable, RuntimeOp } from '@glimmer/interfaces'; import type { MachineRegister } from '@glimmer/vm/lib/registers'; -import { VM_INVOKE_STATIC_OP, VM_INVOKE_VIRTUAL_OP, VM_JUMP_OP, VM_POP_FRAME_OP, VM_PUSH_FRAME_OP, VM_RETURN_OP, VM_RETURN_TO_OP } from '@glimmer/constants/lib/vm-ops'; +import { + VM_INVOKE_STATIC_OP, + VM_INVOKE_VIRTUAL_OP, + VM_JUMP_OP, + VM_POP_FRAME_OP, + VM_PUSH_FRAME_OP, + VM_RETURN_OP, + VM_RETURN_TO_OP, +} from '@glimmer/constants/lib/vm-ops'; import assert from '@glimmer/debug-util/lib/assert'; import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; import { $fp, $pc, $ra, $sp } from '@glimmer/vm/lib/registers'; diff --git a/packages/@glimmer/syntax/lib/parser/tokenizer-event-handlers.ts b/packages/@glimmer/syntax/lib/parser/tokenizer-event-handlers.ts index 71d1897d730..acb9299b8d6 100644 --- a/packages/@glimmer/syntax/lib/parser/tokenizer-event-handlers.ts +++ b/packages/@glimmer/syntax/lib/parser/tokenizer-event-handlers.ts @@ -1,6 +1,12 @@ import type { Nullable } from '@glimmer/interfaces'; import type { TokenizerState } from 'simple-html-tokenizer'; -import { asPresentArray, assertPresentArray, getFirst, getLast, isPresentArray } from '@glimmer/debug-util/lib/present'; +import { + asPresentArray, + assertPresentArray, + getFirst, + getLast, + isPresentArray, +} from '@glimmer/debug-util/lib/present'; import assert from '@glimmer/debug-util/lib/assert'; import { assign } from '@glimmer/util/lib/object-utils'; import { parse, parseWithoutProcessing } from '@handlebars/parser'; From 1832d42efe8c325ddf76fbf434cf7afec9e439dd Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 13:50:51 -0400 Subject: [PATCH 10/15] Lockfile --- pnpm-lock.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f876a0f7fd7..174fddc9a69 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2539,9 +2539,6 @@ importers: '@glimmer/manager': specifier: workspace:* version: link:../@glimmer/manager - '@glimmer/opcode-compiler': - specifier: workspace:* - version: link:../@glimmer/opcode-compiler '@glimmer/runtime': specifier: workspace:* version: link:../@glimmer/runtime From 753eba9f5251050bf40d0905b4b4630011e7f566 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 19:14:38 -0400 Subject: [PATCH 11/15] Fix --- eslint-rules/no-barrel-imports.js | 22 +++-- packages/@ember/array/package.json | 1 + packages/@ember/object/package.json | 1 + packages/@ember/reactive/package.json | 2 +- packages/@ember/template-factory/package.json | 2 +- packages/@glimmer/debug/lib/render/basic.ts | 2 +- .../lib/compilable-template.ts | 2 +- packages/@glimmer/tracking/package.json | 5 +- pnpm-lock.yaml | 88 +++---------------- 9 files changed, 39 insertions(+), 86 deletions(-) diff --git a/eslint-rules/no-barrel-imports.js b/eslint-rules/no-barrel-imports.js index 910dbe2b041..c9891282970 100644 --- a/eslint-rules/no-barrel-imports.js +++ b/eslint-rules/no-barrel-imports.js @@ -45,6 +45,18 @@ function resolveImportSource(spec, fromFile) { return null; } +// A name may be exported both as a value and as a type with the same identifier +// (e.g. `export const X = ...; export type X = typeof X`). When merging entries +// for the same name, treat the export as a value if any declaration is a value. +function setExport(exports, name, entry) { + const existing = exports.get(name); + if (existing) { + exports.set(name, { ...entry, isType: existing.isType && entry.isType }); + } else { + exports.set(name, entry); + } +} + function declarationNames(decl) { if (!decl) return []; switch (decl.type) { @@ -85,7 +97,7 @@ function getModuleExports(filepath, stack = new Set()) { else if (stmt.type === 'ExportAllDeclaration') collectStarExports(stmt, exports, filepath, stack); else if (stmt.type === 'ExportDefaultDeclaration') { - exports.set('default', { + setExport(exports, 'default', { source: filepath, localName: 'default', isType: false, @@ -104,7 +116,7 @@ function collectNamedExports(stmt, exports, filepath, stack) { if (stmt.declaration) { for (const { name, isType } of declarationNames(stmt.declaration)) { - exports.set(name, { + setExport(exports, name, { source: filepath, localName: name, isType: isType || stmtIsType, @@ -117,7 +129,7 @@ function collectNamedExports(stmt, exports, filepath, stack) { if (!stmt.source) { for (const spec of stmt.specifiers ?? []) { if (spec.type !== 'ExportSpecifier') continue; - exports.set(idOrStr(spec.exported), { + setExport(exports, idOrStr(spec.exported), { source: filepath, localName: idOrStr(spec.local), isType: stmtIsType || spec.exportKind === 'type', @@ -152,7 +164,7 @@ function collectNamedExports(stmt, exports, filepath, stack) { } } - exports.set(idOrStr(spec.exported), { + setExport(exports, idOrStr(spec.exported), { source, bareSource, localName: local, @@ -167,7 +179,7 @@ function collectStarExports(stmt, exports, filepath, stack) { const targetFile = resolveImportSource(stmt.source.value, filepath); if (stmt.exported) { - exports.set(idOrStr(stmt.exported), { + setExport(exports, idOrStr(stmt.exported), { source: targetFile, isType: stmtIsType, kind: 'namespace', diff --git a/packages/@ember/array/package.json b/packages/@ember/array/package.json index 19b45196287..8585c775652 100644 --- a/packages/@ember/array/package.json +++ b/packages/@ember/array/package.json @@ -20,6 +20,7 @@ "@ember/utils": "workspace:*", "@glimmer/destroyable": "workspace:*", "@glimmer/env": "workspace:*", + "@glimmer/interfaces": "workspace:*", "@glimmer/manager": "workspace:*", "@glimmer/owner": "workspace:*", "@glimmer/util": "workspace:*", diff --git a/packages/@ember/object/package.json b/packages/@ember/object/package.json index 93e35bf1cf9..e0c4ce1ff36 100644 --- a/packages/@ember/object/package.json +++ b/packages/@ember/object/package.json @@ -29,6 +29,7 @@ "@ember/utils": "workspace:*", "@glimmer/destroyable": "workspace:*", "@glimmer/env": "workspace:*", + "@glimmer/interfaces": "workspace:*", "@glimmer/manager": "workspace:*", "@glimmer/owner": "workspace:*", "@glimmer/util": "workspace:*", diff --git a/packages/@ember/reactive/package.json b/packages/@ember/reactive/package.json index 214b3509371..7a624600d98 100644 --- a/packages/@ember/reactive/package.json +++ b/packages/@ember/reactive/package.json @@ -8,6 +8,6 @@ "./*": "./*.ts" }, "dependencies": { - "@glimmer/validator": "0.95.0" + "@glimmer/validator": "workspace:*" } } diff --git a/packages/@ember/template-factory/package.json b/packages/@ember/template-factory/package.json index 3ac88e04c58..df3d5679182 100644 --- a/packages/@ember/template-factory/package.json +++ b/packages/@ember/template-factory/package.json @@ -7,6 +7,6 @@ "./*": "./*.ts" }, "dependencies": { - "@glimmer/opcode-compiler": "0.94.10" + "@glimmer/opcode-compiler": "workspace:*" } } diff --git a/packages/@glimmer/debug/lib/render/basic.ts b/packages/@glimmer/debug/lib/render/basic.ts index 545d09dfab1..6731d86a0b7 100644 --- a/packages/@glimmer/debug/lib/render/basic.ts +++ b/packages/@glimmer/debug/lib/render/basic.ts @@ -1,5 +1,5 @@ import type { CompilableTemplate, Optional, Reference, SimpleNode } from '@glimmer/interfaces'; -import type { IS_COMPILABLE_TEMPLATE } from '@glimmer/constants/lib/brand'; +import { IS_COMPILABLE_TEMPLATE } from '@glimmer/constants/lib/brand'; import { REFERENCE } from '@glimmer/reference/lib/reference'; import { isIndexable } from '@glimmer/util/lib/collections'; diff --git a/packages/@glimmer/opcode-compiler/lib/compilable-template.ts b/packages/@glimmer/opcode-compiler/lib/compilable-template.ts index fe237925b79..46d3ef49e85 100644 --- a/packages/@glimmer/opcode-compiler/lib/compilable-template.ts +++ b/packages/@glimmer/opcode-compiler/lib/compilable-template.ts @@ -15,7 +15,7 @@ import type { SymbolTable, WireFormat, } from '@glimmer/interfaces'; -import type { IS_COMPILABLE_TEMPLATE } from '@glimmer/constants/lib/brand'; +import { IS_COMPILABLE_TEMPLATE } from '@glimmer/constants/lib/brand'; import { LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; import { EMPTY_ARRAY } from '@glimmer/util/lib/array-utils'; diff --git a/packages/@glimmer/tracking/package.json b/packages/@glimmer/tracking/package.json index 52fd1f825f6..82d03c11687 100644 --- a/packages/@glimmer/tracking/package.json +++ b/packages/@glimmer/tracking/package.json @@ -8,6 +8,7 @@ "./*": "./*.ts" }, "dependencies": { - "@ember/-internals": "workspace:*" + "@ember/-internals": "workspace:*", + "@glimmer/validator": "workspace:*" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 174fddc9a69..810e2420ae3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -508,6 +508,9 @@ importers: '@glimmer/env': specifier: workspace:* version: link:../../@glimmer/env + '@glimmer/interfaces': + specifier: workspace:* + version: link:../../@glimmer/interfaces '@glimmer/manager': specifier: workspace:* version: link:../../@glimmer/manager @@ -884,6 +887,9 @@ importers: '@glimmer/env': specifier: workspace:* version: link:../../@glimmer/env + '@glimmer/interfaces': + specifier: workspace:* + version: link:../../@glimmer/interfaces '@glimmer/manager': specifier: workspace:* version: link:../../@glimmer/manager @@ -943,8 +949,8 @@ importers: packages/@ember/reactive: dependencies: '@glimmer/validator': - specifier: 0.95.0 - version: 0.95.0 + specifier: workspace:* + version: link:../../@glimmer/validator packages/@ember/renderer: dependencies: @@ -1185,8 +1191,8 @@ importers: packages/@ember/template-factory: dependencies: '@glimmer/opcode-compiler': - specifier: 0.94.10 - version: 0.94.10 + specifier: workspace:* + version: link:../../@glimmer/opcode-compiler packages/@ember/test: dependencies: @@ -2209,6 +2215,9 @@ importers: '@ember/-internals': specifier: workspace:* version: link:../../@ember/-internals + '@glimmer/validator': + specifier: workspace:* + version: link:../validator packages/@glimmer/util: dependencies: @@ -4234,39 +4243,21 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@glimmer/destroyable@0.94.8': - resolution: {integrity: sha512-IWNz34Q5IYnh20M/3xVv9jIdCATQyaO+8sdUSyUqiz1bAblW5vTXUNXn3uFzGF+CnP6ZSgPxHN/c1sNMAh+lAA==} - - '@glimmer/encoder@0.93.8': - resolution: {integrity: sha512-G7ZbC+T+rn7UliG8Y3cn7SIACh7K5HgCxgFhJxU15HtmTUObs52mVR1SyhUBsbs86JHlCqaGguKE1WqP1jt+2g==} - '@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==} - '@glimmer/global-context@0.93.4': - resolution: {integrity: sha512-Yw9xkDReAcC5oS/hY3PjGrFKRygYFA4pdO7tvuxReoVOyUtjoBOAwHJUileiElERDdMWIMfoLema8Td1mqkjhA==} - '@glimmer/interfaces@0.84.3': resolution: {integrity: sha512-dk32ykoNojt0mvEaIW6Vli5MGTbQo58uy3Epj7ahCgTHmWOKuw/0G83f2UmFprRwFx689YTXG38I/vbpltEjzg==} '@glimmer/interfaces@0.94.6': resolution: {integrity: sha512-sp/1WePvB/8O+jrcUHwjboNPTKrdGicuHKA9T/lh0vkYK2qM5Xz4i25lQMQ38tEMiw7KixrjHiTUiaXRld+IwA==} - '@glimmer/manager@0.94.10': - resolution: {integrity: sha512-Hqi92t6vtVg4nSRGWTvCJ+0Vg3iF1tiTG9RLzuUtZac7DIAzuQAxjhGbtu82miT+liCqU+MFmB3nkfNH0Zz74g==} - - '@glimmer/opcode-compiler@0.94.10': - resolution: {integrity: sha512-KYsaODjkgtpUzMR1chyI0IRcvo4ewnjW8Dy+5833+OIG7rx6INl7HvKtooLzjHv+uJOZ74fd/s/0XfaY6eNEww==} - '@glimmer/reference@0.84.3': resolution: {integrity: sha512-lV+p/aWPVC8vUjmlvYVU7WQJsLh319SdXuAWoX/SE3pq340BJlAJiEcAc6q52y9JNhT57gMwtjMX96W5Xcx/qw==} - '@glimmer/reference@0.94.9': - resolution: {integrity: sha512-qlgTYxgEOpgxuyb13u2qwqhibpfktlk08F+nfwuNxtuhodsItBi3YxjFMPrVP0zOjTnhUObR8OYtMsD5WFOddA==} - '@glimmer/syntax@0.84.3': resolution: {integrity: sha512-ioVbTic6ZisLxqTgRBL2PCjYZTFIwobifCustrozRU2xGDiYvVIL0vt25h2c1ioDsX59UgVlDkIK4YTAQQSd2A==} @@ -4288,12 +4279,6 @@ packages: '@glimmer/validator@0.84.3': resolution: {integrity: sha512-RTBV4TokUB0vI31UC7ikpV7lOYpWUlyqaKV//pRC4pexYMlmqnVhkFrdiimB/R1XyNdUOQUmnIAcdic39NkbhQ==} - '@glimmer/validator@0.95.0': - resolution: {integrity: sha512-xF3K5voKeRqhONztfMHDd2wHDYD6UUI9pFPd+RMGtW6DXYv31G0zUm2pGsOwQ9dyNeE6khaXy7e3FtNjDrSmvQ==} - - '@glimmer/vm@0.94.8': - resolution: {integrity: sha512-0E8BVNRE/1qlK9OQRUmGlQXwWmoco7vL3yIyLZpTWhbv22C1zEcM826wQT3ioaoUQSlvRsKKH6IEEUal2d3wxQ==} - '@glimmer/wire-format@0.94.8': resolution: {integrity: sha512-A+Cp5m6vZMAEu0Kg/YwU2dJZXyYxVJs2zI57d3CP6NctmX7FsT8WjViiRUmt5abVmMmRH5b8BUovqY6GSMAdrw==} @@ -13649,24 +13634,12 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@glimmer/destroyable@0.94.8': - dependencies: - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 - - '@glimmer/encoder@0.93.8': - dependencies: - '@glimmer/interfaces': 0.94.6 - '@glimmer/vm': 0.94.8 - '@glimmer/env@0.1.7': {} '@glimmer/global-context@0.84.3': dependencies: '@glimmer/env': 0.1.7 - '@glimmer/global-context@0.93.4': {} - '@glimmer/interfaces@0.84.3': dependencies: '@simple-dom/interface': 1.4.0 @@ -13676,25 +13649,6 @@ snapshots: '@simple-dom/interface': 1.4.0 type-fest: 4.41.0 - '@glimmer/manager@0.94.10': - dependencies: - '@glimmer/destroyable': 0.94.8 - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 - '@glimmer/reference': 0.94.9 - '@glimmer/util': 0.94.8 - '@glimmer/validator': 0.95.0 - '@glimmer/vm': 0.94.8 - - '@glimmer/opcode-compiler@0.94.10': - dependencies: - '@glimmer/encoder': 0.93.8 - '@glimmer/interfaces': 0.94.6 - '@glimmer/manager': 0.94.10 - '@glimmer/util': 0.94.8 - '@glimmer/vm': 0.94.8 - '@glimmer/wire-format': 0.94.8 - '@glimmer/reference@0.84.3': dependencies: '@glimmer/env': 0.1.7 @@ -13703,13 +13657,6 @@ snapshots: '@glimmer/util': 0.84.3 '@glimmer/validator': 0.84.3 - '@glimmer/reference@0.94.9': - dependencies: - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 - '@glimmer/util': 0.94.8 - '@glimmer/validator': 0.95.0 - '@glimmer/syntax@0.84.3': dependencies: '@glimmer/interfaces': 0.84.3 @@ -13747,15 +13694,6 @@ snapshots: '@glimmer/env': 0.1.7 '@glimmer/global-context': 0.84.3 - '@glimmer/validator@0.95.0': - dependencies: - '@glimmer/global-context': 0.93.4 - '@glimmer/interfaces': 0.94.6 - - '@glimmer/vm@0.94.8': - dependencies: - '@glimmer/interfaces': 0.94.6 - '@glimmer/wire-format@0.94.8': dependencies: '@glimmer/interfaces': 0.94.6 From fb0e583380a5580ab6c02c7aa5a917539e94e272 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Apr 2026 20:09:16 -0400 Subject: [PATCH 12/15] [BUGFIX] Trigger glimmer opcode bootstrap from the VM, not the barrel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The smoke tests on #21350 fail with "Cannot read properties of null (reading 'syscall')" in `AppendOpcodes.evaluate`. Cause: the lint autofix replaced barrel imports of `@glimmer/runtime` with deep paths (`@glimmer/runtime/lib/...`), so nothing pulled in the package index. The index's `import './lib/bootstrap';` was the only thing loading the opcode handler files (each `lib/compiled/opcodes/*.ts` registers via top-level `APPEND_OPCODES.add(...)`), so 28 of 90 handlers stayed unregistered. Fix: own the bootstrap from the file that actually consumes registered handlers — `lib/vm/low-level.ts`, where `evaluateSyscall` calls `APPEND_OPCODES.evaluate(...)`. Any deep-import path that uses the VM (directly or transitively) now triggers bootstrap; consumers that don't need the VM don't pay for opcode handlers in their bundle. Verified by counting top-level `APPEND_OPCODES.add(...)` calls in `dist/dev`: origin/main: 90 in a chunk loaded by everyone nvp/remove-barrel-imports: 62 loaded + 28 trapped in the unused `@glimmer/runtime/index.js` this commit: 90 reachable from `@ember/-internals/glimmer/index.js` Note for reviewers: the validator duplicate-package guard in `@glimmer/validator/index.ts` and the `class EmberObject extends CoreObject.extend(Observable)` extension in `@ember/object/index.ts` are also barrel-only side effects. EmberObject's case is handled naturally — `import EmberObject from '@ember/object'` is a default import, which the lint rule's `kept` mechanism preserves on the barrel. The validator guard becomes dormant under deep imports; if that's a concern, move the registration check into a shared leaf module (e.g. `lib/meta.ts`) in a follow-up. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/@glimmer/runtime/index.ts | 5 ----- packages/@glimmer/runtime/lib/vm/low-level.ts | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/@glimmer/runtime/index.ts b/packages/@glimmer/runtime/index.ts index 617edd8ae30..faf4dc34f35 100644 --- a/packages/@glimmer/runtime/index.ts +++ b/packages/@glimmer/runtime/index.ts @@ -1,8 +1,3 @@ -/** - * @deprecated use RichIteratorResult or TemplateIterator instead - */ -import './lib/bootstrap'; - import type { RichIteratorResult } from '@glimmer/interfaces'; export { clear, ConcreteBounds, CursorImpl } from './lib/bounds'; diff --git a/packages/@glimmer/runtime/lib/vm/low-level.ts b/packages/@glimmer/runtime/lib/vm/low-level.ts index b1a9d269bbf..a817f25548a 100644 --- a/packages/@glimmer/runtime/lib/vm/low-level.ts +++ b/packages/@glimmer/runtime/lib/vm/low-level.ts @@ -16,6 +16,11 @@ import { $fp, $pc, $ra, $sp } from '@glimmer/vm/lib/registers'; import type { DebugState } from '../opcodes'; import type { VM } from './append'; +// Loading the VM is what creates the demand for opcode handlers — its +// `evaluateSyscall` calls `APPEND_OPCODES.evaluate(...)`. Pull bootstrap in +// here (rather than at the package barrel) so consumers using deep imports +// still get every opcode handler registered before the VM runs. +import '../bootstrap'; import { APPEND_OPCODES } from '../opcodes'; export type LowLevelRegisters = [$pc: number, $ra: number, $sp: number, $fp: number]; From 1e7e9c62837e9784ef6e4309923268bdc934451d Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 1 May 2026 14:33:50 -0400 Subject: [PATCH 13/15] Let's make minimal true minimal --- build-metadata.json | 6 + package.json | 58 ++- .../@ember/-internals/glimmer/lib/renderer.ts | 336 +----------------- .../@ember/-internals/glimmer/lib/resolver.ts | 16 +- .../-internals/glimmer/lib/setup-registry.ts | 31 +- .../lib/syntax/register-routing-keywords.ts | 6 + packages/@ember/application/index.ts | 32 +- packages/@ember/application/instance.ts | 14 +- packages/@ember/engine/index.ts | 21 +- packages/@ember/engine/instance.ts | 2 +- rollup.config.mjs | 1 - 11 files changed, 119 insertions(+), 404 deletions(-) create mode 100644 build-metadata.json create mode 100644 packages/@ember/-internals/glimmer/lib/syntax/register-routing-keywords.ts diff --git a/build-metadata.json b/build-metadata.json new file mode 100644 index 00000000000..620356ede2e --- /dev/null +++ b/build-metadata.json @@ -0,0 +1,6 @@ +{ + "version": "7.1.0-alpha.1.nvp-remove-barrel-imports+cfe606e3", + "buildType": "nvp-remove-barrel-imports", + "SHA": "cfe606e3df990ee59a228a835d43609fd2204a1b", + "assetPath": "/nvp-remove-barrel-imports/shas/cfe606e3df990ee59a228a835d43609fd2204a1b.tgz" +} \ No newline at end of file diff --git a/package.json b/package.json index 008724da9c5..8969b13b86c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ember-source", - "version": "7.1.0-alpha.1", + "version": "7.1.0-alpha.1.nvp-remove-barrel-imports+cfe606e3", "description": "A JavaScript framework for creating ambitious web applications", "keywords": [ "ember-addon" @@ -177,6 +177,55 @@ "@ember/-internals/environment/index.js": "ember-source/@ember/-internals/environment/index.js", "@ember/-internals/error-handling/index.js": "ember-source/@ember/-internals/error-handling/index.js", "@ember/-internals/glimmer/index.js": "ember-source/@ember/-internals/glimmer/index.js", + "@ember/-internals/glimmer/lib/component-managers/curly.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/curly.js", + "@ember/-internals/glimmer/lib/component-managers/mount.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/mount.js", + "@ember/-internals/glimmer/lib/component-managers/outlet.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/outlet.js", + "@ember/-internals/glimmer/lib/component-managers/root.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/root.js", + "@ember/-internals/glimmer/lib/component-managers/route-template.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/route-template.js", + "@ember/-internals/glimmer/lib/component-managers/unwrap-template.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/unwrap-template.js", + "@ember/-internals/glimmer/lib/component.js": "ember-source/@ember/-internals/glimmer/lib/component.js", + "@ember/-internals/glimmer/lib/components/abstract-input.js": "ember-source/@ember/-internals/glimmer/lib/components/abstract-input.js", + "@ember/-internals/glimmer/lib/components/input.js": "ember-source/@ember/-internals/glimmer/lib/components/input.js", + "@ember/-internals/glimmer/lib/components/internal.js": "ember-source/@ember/-internals/glimmer/lib/components/internal.js", + "@ember/-internals/glimmer/lib/components/link-to.js": "ember-source/@ember/-internals/glimmer/lib/components/link-to.js", + "@ember/-internals/glimmer/lib/components/textarea.js": "ember-source/@ember/-internals/glimmer/lib/components/textarea.js", + "@ember/-internals/glimmer/lib/dom.js": "ember-source/@ember/-internals/glimmer/lib/dom.js", + "@ember/-internals/glimmer/lib/environment.js": "ember-source/@ember/-internals/glimmer/lib/environment.js", + "@ember/-internals/glimmer/lib/helper.js": "ember-source/@ember/-internals/glimmer/lib/helper.js", + "@ember/-internals/glimmer/lib/helpers/-disallow-dynamic-resolution.js": "ember-source/@ember/-internals/glimmer/lib/helpers/-disallow-dynamic-resolution.js", + "@ember/-internals/glimmer/lib/helpers/-in-element-null-check.js": "ember-source/@ember/-internals/glimmer/lib/helpers/-in-element-null-check.js", + "@ember/-internals/glimmer/lib/helpers/-normalize-class.js": "ember-source/@ember/-internals/glimmer/lib/helpers/-normalize-class.js", + "@ember/-internals/glimmer/lib/helpers/-resolve.js": "ember-source/@ember/-internals/glimmer/lib/helpers/-resolve.js", + "@ember/-internals/glimmer/lib/helpers/-track-array.js": "ember-source/@ember/-internals/glimmer/lib/helpers/-track-array.js", + "@ember/-internals/glimmer/lib/helpers/each-in.js": "ember-source/@ember/-internals/glimmer/lib/helpers/each-in.js", + "@ember/-internals/glimmer/lib/helpers/element.js": "ember-source/@ember/-internals/glimmer/lib/helpers/element.js", + "@ember/-internals/glimmer/lib/helpers/internal-helper.js": "ember-source/@ember/-internals/glimmer/lib/helpers/internal-helper.js", + "@ember/-internals/glimmer/lib/helpers/mut.js": "ember-source/@ember/-internals/glimmer/lib/helpers/mut.js", + "@ember/-internals/glimmer/lib/helpers/readonly.js": "ember-source/@ember/-internals/glimmer/lib/helpers/readonly.js", + "@ember/-internals/glimmer/lib/helpers/unbound.js": "ember-source/@ember/-internals/glimmer/lib/helpers/unbound.js", + "@ember/-internals/glimmer/lib/helpers/unique-id.js": "ember-source/@ember/-internals/glimmer/lib/helpers/unique-id.js", + "@ember/-internals/glimmer/lib/renderer.js": "ember-source/@ember/-internals/glimmer/lib/renderer.js", + "@ember/-internals/glimmer/lib/resolver.js": "ember-source/@ember/-internals/glimmer/lib/resolver.js", + "@ember/-internals/glimmer/lib/setup-registry.js": "ember-source/@ember/-internals/glimmer/lib/setup-registry.js", + "@ember/-internals/glimmer/lib/syntax/mount.js": "ember-source/@ember/-internals/glimmer/lib/syntax/mount.js", + "@ember/-internals/glimmer/lib/syntax/outlet.js": "ember-source/@ember/-internals/glimmer/lib/syntax/outlet.js", + "@ember/-internals/glimmer/lib/syntax/register-routing-keywords.js": "ember-source/@ember/-internals/glimmer/lib/syntax/register-routing-keywords.js", + "@ember/-internals/glimmer/lib/template.js": "ember-source/@ember/-internals/glimmer/lib/template.js", + "@ember/-internals/glimmer/lib/template_registry.js": "ember-source/@ember/-internals/glimmer/lib/template_registry.js", + "@ember/-internals/glimmer/lib/templates/input.js": "ember-source/@ember/-internals/glimmer/lib/templates/input.js", + "@ember/-internals/glimmer/lib/templates/link-to.js": "ember-source/@ember/-internals/glimmer/lib/templates/link-to.js", + "@ember/-internals/glimmer/lib/templates/outlet.js": "ember-source/@ember/-internals/glimmer/lib/templates/outlet.js", + "@ember/-internals/glimmer/lib/templates/root.js": "ember-source/@ember/-internals/glimmer/lib/templates/root.js", + "@ember/-internals/glimmer/lib/templates/textarea.js": "ember-source/@ember/-internals/glimmer/lib/templates/textarea.js", + "@ember/-internals/glimmer/lib/utils/bindings.js": "ember-source/@ember/-internals/glimmer/lib/utils/bindings.js", + "@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.js": "ember-source/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.js", + "@ember/-internals/glimmer/lib/utils/iterator.js": "ember-source/@ember/-internals/glimmer/lib/utils/iterator.js", + "@ember/-internals/glimmer/lib/utils/managers.js": "ember-source/@ember/-internals/glimmer/lib/utils/managers.js", + "@ember/-internals/glimmer/lib/utils/process-args.js": "ember-source/@ember/-internals/glimmer/lib/utils/process-args.js", + "@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.js": "ember-source/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.js", + "@ember/-internals/glimmer/lib/utils/string.js": "ember-source/@ember/-internals/glimmer/lib/utils/string.js", + "@ember/-internals/glimmer/lib/utils/to-bool.js": "ember-source/@ember/-internals/glimmer/lib/utils/to-bool.js", + "@ember/-internals/glimmer/lib/views/outlet.js": "ember-source/@ember/-internals/glimmer/lib/views/outlet.js", "@ember/-internals/meta/index.js": "ember-source/@ember/-internals/meta/index.js", "@ember/-internals/meta/lib/meta.js": "ember-source/@ember/-internals/meta/lib/meta.js", "@ember/-internals/metal/index.js": "ember-source/@ember/-internals/metal/index.js", @@ -360,5 +409,10 @@ ] } }, - "packageManager": "pnpm@10.30.3" + "packageManager": "pnpm@10.30.3", + "_originalVersion": "7.1.0-alpha.1", + "_versionPreviouslyCalculated": true, + "publishConfig": { + "tag": "old" + } } diff --git a/packages/@ember/-internals/glimmer/lib/renderer.ts b/packages/@ember/-internals/glimmer/lib/renderer.ts index bf90ff27c9e..eb637b501ab 100644 --- a/packages/@ember/-internals/glimmer/lib/renderer.ts +++ b/packages/@ember/-internals/glimmer/lib/renderer.ts @@ -1,9 +1,5 @@ -import { privatize as P } from '@ember/-internals/container/lib/registry'; import { ENV } from '@ember/-internals/environment/lib/env'; import type { InternalOwner } from '@ember/-internals/owner'; -import { getOwner } from '@ember/-internals/owner'; -import { guidFor } from '@ember/-internals/utils/lib/guid'; -import { getViewElement, getViewId } from '@ember/-internals/views/lib/system/utils'; import { assert } from '@ember/debug'; import { _backburner, _getCurrentRunLoop } from '@ember/runloop'; import { @@ -19,12 +15,8 @@ import type { Cursor, DebugRenderTree, Environment, - DynamicScope as GlimmerDynamicScope, RenderResult as GlimmerRenderResult, - Template, - TemplateFactory, EvaluationContext, - CurriedComponent, TreeBuilder, ClassicResolver, } from '@glimmer/interfaces'; @@ -32,30 +24,16 @@ import type { import type { Nullable } from '@ember/-internals/utility-types'; import { artifacts } from '@glimmer/program/lib/helpers'; import { RuntimeOpImpl } from '@glimmer/program/lib/opcode'; -import type { Reference } from '@glimmer/reference/lib/reference'; -import { createConstRef, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference/lib/reference'; -import type { CurriedValue } from '@glimmer/runtime/lib/curried-value'; import { clientBuilder } from '@glimmer/runtime/lib/vm/element-builder'; -import { createCapturedArgs, EMPTY_POSITIONAL } from '@glimmer/runtime/lib/vm/arguments'; -import { curry } from '@glimmer/runtime/lib/curried-value'; import { inTransaction, runtimeOptions } from '@glimmer/runtime/lib/environment'; -import { renderComponent as glimmerRenderComponent, renderMain } from '@glimmer/runtime/lib/render'; -import { dict } from '@glimmer/util/lib/collections'; -import { unwrapTemplate } from './component-managers/unwrap-template'; +import { renderComponent as glimmerRenderComponent } from '@glimmer/runtime/lib/render'; import { CURRENT_TAG, validateTag, valueForTag } from '@glimmer/validator/lib/validators'; -import type { SimpleDocument, SimpleElement, SimpleNode } from '@simple-dom/interface'; -import RSVP from 'rsvp'; -import type Component from './component'; +import type { SimpleDocument, SimpleElement } from '@simple-dom/interface'; import { hasDOM } from '../../browser-environment'; import type ClassicComponent from './component'; import { BOUNDS } from './component-managers/curly'; -import { createRootOutlet } from './component-managers/outlet'; -import { RootComponentDefinition } from './component-managers/root'; import { EmberEnvironmentDelegate } from './environment'; import ResolverImpl from './resolver'; -import type { OutletState } from './utils/outlet'; -import OutletView from './views/outlet'; -import { makeRouteTemplate } from './component-managers/route-template'; import { EvaluationContextImpl } from '@glimmer/opcode-compiler/lib/program-context'; export type IBuilder = (env: Environment, cursor: Cursor) => TreeBuilder; @@ -70,34 +48,6 @@ export interface View { [BOUNDS]: Bounds | null; } -export class DynamicScope implements GlimmerDynamicScope { - constructor( - public view: View | null, - public outletState: Reference - ) {} - - child() { - return new DynamicScope(this.view, this.outletState); - } - - get(key: 'outletState'): Reference { - assert( - `Using \`-get-dynamic-scope\` is only supported for \`outletState\` (you used \`${key}\`).`, - key === 'outletState' - ); - return this.outletState; - } - - set(key: 'outletState', value: Reference) { - assert( - `Using \`-with-dynamic-scope\` is only supported for \`outletState\` (you used \`${key}\`).`, - key === 'outletState' - ); - this.outletState = value; - return value; - } -} - const NO_OP = () => {}; // This wrapper logic prevents us from rerendering in case of a hard failure @@ -186,90 +136,6 @@ class ComponentRootState { } } -class ClassicRootState { - readonly type = 'classic'; - public id: string; - public result: GlimmerRenderResult | undefined; - public destroyed: boolean; - public render: () => void; - readonly env: Environment; - - constructor( - public root: Component | OutletView, - context: EvaluationContext, - owner: object, - template: Template, - self: Reference, - parentElement: SimpleElement, - dynamicScope: DynamicScope, - builder: IBuilder - ) { - assert( - `You cannot render \`${valueForRef(self)}\` without a template.`, - template !== undefined - ); - - this.id = root instanceof OutletView ? guidFor(root) : getViewId(root); - this.result = undefined; - this.destroyed = false; - this.env = context.env; - - this.render = errorLoopTransaction(() => { - let layout = unwrapTemplate(template).asLayout(); - - let iterator = renderMain( - context, - owner, - self, - builder(context.env, { element: parentElement, nextSibling: null }), - layout, - dynamicScope - ); - - let result = (this.result = iterator.sync()); - - associateDestroyableChild(this, result); - - this.render = errorLoopTransaction(() => { - if (isDestroying(result) || isDestroyed(result)) return; - - return result.rerender({ - alwaysRevalidate: false, - }); - }); - }); - } - - isFor(possibleRoot: unknown): boolean { - return this.root === possibleRoot; - } - - destroy() { - let { result, env } = this; - - this.destroyed = true; - - this.root = null as any; - this.result = undefined; - this.render = undefined as any; - - if (result !== undefined) { - /* - Handles these scenarios: - - * When roots are removed during standard rendering process, a transaction exists already - `.begin()` / `.commit()` are not needed. - * When roots are being destroyed manually (`component.append(); component.destroy() case), no - transaction exists already. - * When roots are being destroyed during `Renderer#destroy`, no transaction exists - - */ - - inTransaction(env, () => destroy(result!)); - } - } -} - const renderers: BaseRenderer[] = []; export function _resetRenderers() { @@ -293,7 +159,17 @@ function loopBegin(): void { } } -let renderSettledDeferred: RSVP.Deferred | null = null; +type Deferred = { promise: Promise; resolve: () => void }; + +function defer(): Deferred { + let resolve!: () => void; + const promise = new Promise((r) => { + resolve = r; + }); + return { promise, resolve }; +} + +let renderSettledDeferred: Deferred | null = null; /* Returns a promise which will resolve when rendering has settled. Settled in this context is defined as when all of the tags in use are "current" (e.g. @@ -305,7 +181,7 @@ let renderSettledDeferred: RSVP.Deferred | null = null; */ export function renderSettled() { if (renderSettledDeferred === null) { - renderSettledDeferred = RSVP.defer(); + renderSettledDeferred = defer(); // if there is no current runloop, the promise created above will not have // a chance to resolve (because its resolved in backburner's "end" event) if (!_getCurrentRunLoop()) { @@ -817,188 +693,4 @@ export class Renderer extends BaseRenderer { clientBuilder ); } - - private _rootTemplate: Template; - private _viewRegistry: ViewRegistry; - - static create(props: { _viewRegistry: any }): Renderer { - let { _viewRegistry } = props; - let owner = getOwner(props); - assert('Renderer is unexpectedly missing an owner', owner); - let document = owner.lookup('service:-document') as SimpleDocument; - let env = owner.lookup('-environment:main') as { - isInteractive: boolean; - hasDOM: boolean; - }; - let rootTemplate = owner.lookup(P`template:-root`) as TemplateFactory; - let builder = owner.lookup('service:-dom-builder') as IBuilder; - return new this(owner, document, env, rootTemplate, _viewRegistry, builder); - } - - constructor( - owner: InternalOwner, - document: SimpleDocument, - env: { isInteractive: boolean; hasDOM: boolean }, - rootTemplate: TemplateFactory, - viewRegistry: ViewRegistry, - builder = clientBuilder, - resolver = new ResolverImpl() - ) { - super(owner, env, document, resolver, builder); - this._rootTemplate = rootTemplate(owner); - this._viewRegistry = viewRegistry || owner.lookup('-view-registry:main'); - } - - // renderer HOOKS - - appendOutletView(view: OutletView, target: SimpleElement): void { - // TODO: This bypasses the {{outlet}} syntax so logically duplicates - // some of the set up code. Since this is all internal (or is it?), - // we can refactor this to do something more direct/less convoluted - // and with less setup, but get it working first - let outlet = createRootOutlet(view); - let { name, /* controller, */ template } = view.state; - - let named = dict(); - - named['Component'] = createConstRef( - makeRouteTemplate(view.owner, name, template as Template), - '@Component' - ); - - // TODO: is this guaranteed to be undefined? It seems to be the - // case in the `OutletView` class. Investigate how much that class - // exists as an internal implementation detail only, or if it was - // used outside of core. As far as I can tell, test-helpers uses - // it but only for `setOutletState`. - // named['controller'] = createConstRef(controller, '@controller'); - // Update: at least according to the debug render tree tests, we - // appear to always expect this to be undefined. Not a definitive - // source by any means, but is useful evidence - named['controller'] = UNDEFINED_REFERENCE; - named['model'] = UNDEFINED_REFERENCE; - - let args = createCapturedArgs(named, EMPTY_POSITIONAL); - - this._appendDefinition( - view, - curry(0 as CurriedComponent, outlet, view.owner, args, true), - target - ); - } - - appendTo(view: ClassicComponent, target: SimpleElement): void { - let definition = new RootComponentDefinition(view); - this._appendDefinition( - view, - curry(0 as CurriedComponent, definition, this.state.owner, null, true), - target - ); - } - - _appendDefinition( - root: OutletView | ClassicComponent, - definition: CurriedValue, - target: SimpleElement - ): void { - let self = createConstRef(definition, 'this'); - let dynamicScope = new DynamicScope(null, UNDEFINED_REFERENCE); - let rootState = new ClassicRootState( - root, - this.state.context, - this.state.owner, - this._rootTemplate, - self, - target, - dynamicScope, - this.state.builder - ); - this.state.renderRoot(rootState, this); - } - - cleanupRootFor(component: ClassicComponent): void { - // no need to cleanup roots if we have already been destroyed - if (isDestroyed(this)) { - return; - } - - let roots = this.state.roots; - - // traverse in reverse so we can remove items - // without mucking up the index - let i = roots.length; - while (i--) { - let root = roots[i]; - assert('has root', root); - if (root.type === 'classic' && root.isFor(component)) { - root.destroy(); - roots.splice(i, 1); - } - } - } - - remove(view: ClassicComponent): void { - view._transitionTo('destroying'); - - this.cleanupRootFor(view); - - if (this.state.isInteractive) { - view.trigger('didDestroyElement'); - } - } - - get _roots() { - return this.state.debug.roots; - } - - get _inRenderTransaction() { - return this.state.debug.inRenderTransaction; - } - - get _isInteractive() { - return this.state.debug.isInteractive; - } - - get _context() { - return this.state.context; - } - - register(view: any): void { - let id = getViewId(view); - assert( - 'Attempted to register a view with an id already in use: ' + id, - !this._viewRegistry[id] - ); - this._viewRegistry[id] = view; - } - - unregister(view: any): void { - delete this._viewRegistry[getViewId(view)]; - } - - getElement(component: View): Nullable { - if (this._isInteractive) { - return getViewElement(component); - } else { - throw new Error( - 'Accessing `this.element` is not allowed in non-interactive environments (such as FastBoot).' - ); - } - } - - getBounds(component: View): { - parentElement: SimpleElement; - firstNode: SimpleNode; - lastNode: SimpleNode; - } { - let bounds: Bounds | null = component[BOUNDS]; - - assert('object passed to getBounds must have the BOUNDS symbol as a property', bounds); - - let parentElement = bounds.parentElement(); - let firstNode = bounds.firstNode(); - let lastNode = bounds.lastNode(); - - return { parentElement, firstNode, lastNode }; - } } diff --git a/packages/@ember/-internals/glimmer/lib/resolver.ts b/packages/@ember/-internals/glimmer/lib/resolver.ts index 43c2ce19ecf..2f6f97338b4 100644 --- a/packages/@ember/-internals/glimmer/lib/resolver.ts +++ b/packages/@ember/-internals/glimmer/lib/resolver.ts @@ -40,9 +40,6 @@ import { default as readonly } from './helpers/readonly'; import { default as unbound } from './helpers/unbound'; import { default as uniqueId } from './helpers/unique-id'; -import { mountHelper } from './syntax/mount'; -import { outletHelper } from './syntax/outlet'; - function instrumentationPayload(name: string) { return { object: `component:${name}` }; } @@ -96,8 +93,6 @@ const BUILTIN_KEYWORD_HELPERS: Record = { '-normalize-class': normalizeClassHelper, '-resolve': resolve, '-track-array': trackArray, - '-mount': mountHelper, - '-outlet': outletHelper, '-in-el-null': inElementNullCheckHelper, }; @@ -111,6 +106,17 @@ const BUILTIN_HELPERS: Record = { 'unique-id': uniqueId, }; +/** + * Register an additional built-in keyword helper (e.g. `{{outlet}}`, + * `{{mount}}`). Kept separate so the renderer doesn't statically depend on + * routing/engine infrastructure — callers that need those helpers must opt + * in by importing the registration module. + */ +export function registerBuiltInKeywordHelper(name: string, helper: object): void { + BUILTIN_KEYWORD_HELPERS[name] = helper; + BUILTIN_HELPERS[name] = helper; +} + if (DEBUG) { BUILTIN_HELPERS['-disallow-dynamic-resolution'] = disallowDynamicResolution; } else { diff --git a/packages/@ember/-internals/glimmer/lib/setup-registry.ts b/packages/@ember/-internals/glimmer/lib/setup-registry.ts index 75fb2760855..af4381849c5 100644 --- a/packages/@ember/-internals/glimmer/lib/setup-registry.ts +++ b/packages/@ember/-internals/glimmer/lib/setup-registry.ts @@ -2,14 +2,13 @@ import type Registry from '@ember/-internals/container/lib/registry'; import { privatize as P } from '@ember/-internals/container/lib/registry'; import { getOwner } from '@ember/-internals/owner'; import { assert } from '@ember/debug'; -import Input from './components/input'; -import LinkTo from './components/link-to'; -import Textarea from './components/textarea'; import { clientBuilder, rehydrationBuilder, serializeBuilder } from './dom'; import { Renderer } from './renderer'; -import OutletTemplate from './templates/outlet'; import RootTemplate from './templates/root'; -import OutletView from './views/outlet'; +// Side-effect import: registers `-mount` and `-outlet` as built-in keyword +// helpers. Importing this here keeps the renderer free of routing/engine +// dependencies so apps that only use `renderComponent` don't pay for them. +import './syntax/register-routing-keywords'; export function setupApplicationRegistry(registry: Registry): void { // because we are using injections we can't use instantiate false @@ -40,15 +39,15 @@ export function setupApplicationRegistry(registry: Registry): void { } export function setupEngineRegistry(registry: Registry): void { - registry.optionsForType('template', { instantiate: false }); - - registry.register('view:-outlet', OutletView); - registry.register('template:-outlet', OutletTemplate as any); - - registry.optionsForType('helper', { instantiate: false }); - - registry.register('component:input', Input); - - registry.register('component:link-to', LinkTo); - registry.register('component:textarea', Textarea); + // registry.optionsForType('template', { instantiate: false }); + // + // registry.register('view:-outlet', OutletView); + // registry.register('template:-outlet', OutletTemplate as any); + // + // registry.optionsForType('helper', { instantiate: false }); + // + // registry.register('component:input', Input); + // + // registry.register('component:link-to', LinkTo); + // registry.register('component:textarea', Textarea); } diff --git a/packages/@ember/-internals/glimmer/lib/syntax/register-routing-keywords.ts b/packages/@ember/-internals/glimmer/lib/syntax/register-routing-keywords.ts new file mode 100644 index 00000000000..dc336be8a1e --- /dev/null +++ b/packages/@ember/-internals/glimmer/lib/syntax/register-routing-keywords.ts @@ -0,0 +1,6 @@ +import { registerBuiltInKeywordHelper } from '../resolver'; +import { mountHelper } from './mount'; +import { outletHelper } from './outlet'; + +registerBuiltInKeywordHelper('-mount', mountHelper); +registerBuiltInKeywordHelper('-outlet', outletHelper); diff --git a/packages/@ember/application/index.ts b/packages/@ember/application/index.ts index e4ac76f8de3..6e39f692f75 100644 --- a/packages/@ember/application/index.ts +++ b/packages/@ember/application/index.ts @@ -4,7 +4,6 @@ import { setOwner as actualSetOwner } from '@ember/-internals/owner'; import { getOwner as actualGetOwner } from '@ember/owner'; -import dictionary from '@ember/-internals/utils/lib/dictionary'; import { ENV } from '@ember/-internals/environment/lib/env'; import hasDOM from '@ember/-internals/browser-environment/lib/has-dom'; import { assert } from '@ember/debug'; @@ -13,20 +12,13 @@ import { join, once, run, schedule } from '@ember/runloop'; import libraries from '@ember/-internals/metal/lib/libraries'; import RSVP from '@ember/-internals/runtime/lib/ext/rsvp'; import EventDispatcher from '@ember/-internals/views/lib/system/event_dispatcher'; -import Route from '@ember/routing/route'; import Router from '@ember/routing/router'; -import HashLocation from '@ember/routing/hash-location'; -import HistoryLocation from '@ember/routing/history-location'; -import NoneLocation from '@ember/routing/none-location'; -import { BucketCache } from '@ember/routing/-internals'; import ApplicationInstance from '@ember/application/instance'; import Engine, { buildInitializerMethod } from '@ember/engine'; import type { BootOptions } from '@ember/engine/instance'; import type Container from '@ember/-internals/container/lib/container'; import type Registry from '@ember/-internals/container/lib/registry'; -import { privatize as P } from '@ember/-internals/container/lib/registry'; import { setupApplicationRegistry } from '@ember/-internals/glimmer/lib/setup-registry'; -import RouterService from '@ember/routing/router-service'; import type { EngineInstanceOptions } from '@ember/engine/instance'; import type { SimpleDocument, SimpleElement } from '@simple-dom/interface'; @@ -1109,28 +1101,6 @@ class Application extends Engine { } } -function commonSetupRegistry(registry: Registry) { - registry.register('router:main', Router); - registry.register('-view-registry:main', { - create() { - return dictionary(null); - }, - }); - - registry.register('route:basic', Route); - registry.register('event_dispatcher:main', EventDispatcher); - - registry.register('location:hash', HashLocation); - registry.register('location:history', HistoryLocation); - registry.register('location:none', NoneLocation); - - registry.register(P`-bucket-cache:main`, { - create() { - return new BucketCache(); - }, - }); - - registry.register('service:router', RouterService); -} +function commonSetupRegistry(registry: Registry) {} export { Application as default }; diff --git a/packages/@ember/application/instance.ts b/packages/@ember/application/instance.ts index 1bc600c172c..46f2cdd1ae6 100644 --- a/packages/@ember/application/instance.ts +++ b/packages/@ember/application/instance.ts @@ -75,7 +75,7 @@ class ApplicationInstance extends EngineInstance { // to notify us when it has created the root-most view. That view is then // appended to the rootElement, in the case of apps, to the fixture harness // in tests, or rendered to a string in the case of FastBoot. - this.register('-application-instance:main', this, { instantiate: false }); + // this.register('-application-instance:main', this, { instantiate: false }); } /** @@ -300,12 +300,12 @@ class ApplicationInstance extends EngineInstance { static setupRegistry(registry: Registry, options: BootOptions | _BootOptions = {}) { let coptions = options instanceof _BootOptions ? options : new _BootOptions(options); - registry.register('-environment:main', coptions.toEnvironment(), { - instantiate: false, - }); - registry.register('service:-document', coptions.document!, { - instantiate: false, - }); + // registry.register('-environment:main', coptions.toEnvironment(), { + // instantiate: false, + // }); + // registry.register('service:-document', coptions.document!, { + // instantiate: false, + // }); super.setupRegistry(registry, coptions); } diff --git a/packages/@ember/engine/index.ts b/packages/@ember/engine/index.ts index 593c52a2930..b2e56599513 100644 --- a/packages/@ember/engine/index.ts +++ b/packages/@ember/engine/index.ts @@ -315,7 +315,7 @@ class Engine extends Namespace.extend(RegistryProxyMixin) { registry.set = set; - registry.register('application:main', namespace, { instantiate: false }); + // registry.register('application:main', namespace, { instantiate: false }); commonSetupRegistry(registry); setupEngineRegistry(registry); @@ -505,23 +505,6 @@ export function buildInitializerMethod< }; } -function commonSetupRegistry(registry: Registry) { - registry.optionsForType('component', { singleton: false }); - registry.optionsForType('view', { singleton: false }); - - registry.register('controller:basic', Controller, { instantiate: false }); - - // Register the routing service... - registry.register('service:-routing', RoutingService); - - // DEBUGGING - registry.register('resolver-for-debugging:main', registry.resolver!, { - instantiate: false, - }); - - registry.register('container-debug-adapter:main', ContainerDebugAdapter); - - registry.register('component-lookup:main', ComponentLookup); -} +function commonSetupRegistry(registry: Registry) {} export default Engine; diff --git a/packages/@ember/engine/instance.ts b/packages/@ember/engine/instance.ts index 050d27eb3b8..2a9c2119057 100644 --- a/packages/@ember/engine/instance.ts +++ b/packages/@ember/engine/instance.ts @@ -235,7 +235,7 @@ class EngineInstance extends EmberObject.extend(RegistryProxyMixin, ContainerPro }); let env = parent.lookup('-environment:main') as Record; - this.register('-environment:main', env, { instantiate: false }); + // this.register('-environment:main', env, { instantiate: false }); // The type annotation forces TS to (a) validate that these match and (b) // *notice* that they match, e.g. below on the `singletons.push()`. diff --git a/rollup.config.mjs b/rollup.config.mjs index ceee7e37ab1..14208a299aa 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -238,7 +238,6 @@ function rolledUpPackages() { return [ '@ember/-internals/browser-environment', '@ember/-internals/environment', - '@ember/-internals/glimmer', '@ember/-internals/metal', '@ember/-internals/utils', '@ember/-internals/container', From 250c2f779c0f9f75bb27d76a09b585397b36e488 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 1 May 2026 18:30:20 -0400 Subject: [PATCH 14/15] Smaller --- build-metadata.json | 8 ++-- package.json | 38 ++++++++++++++++++- .../glimmer/lib/classic-helper-symbol.ts | 24 ++++++++++++ .../lib/component-managers/curly-symbols.ts | 16 ++++++++ .../glimmer/lib/component-managers/curly.ts | 21 ++++++---- .../@ember/-internals/glimmer/lib/helper.ts | 24 +++++++++--- .../-internals/glimmer/lib/helpers/each-in.ts | 2 +- .../@ember/-internals/glimmer/lib/renderer.ts | 2 +- .../@ember/-internals/glimmer/lib/resolver.ts | 36 ++++++++++++------ .../-internals/glimmer/lib/setup-registry.ts | 4 ++ .../-internals/glimmer/lib/utils/to-bool.ts | 13 ++++++- .../-internals/runtime/lib/mixins/-proxy.ts | 14 ++----- .../runtime/lib/mixins/content-for.ts | 18 +++++++++ 13 files changed, 175 insertions(+), 45 deletions(-) create mode 100644 packages/@ember/-internals/glimmer/lib/classic-helper-symbol.ts create mode 100644 packages/@ember/-internals/glimmer/lib/component-managers/curly-symbols.ts create mode 100644 packages/@ember/-internals/runtime/lib/mixins/content-for.ts diff --git a/build-metadata.json b/build-metadata.json index 620356ede2e..2432bd551ba 100644 --- a/build-metadata.json +++ b/build-metadata.json @@ -1,6 +1,6 @@ { - "version": "7.1.0-alpha.1.nvp-remove-barrel-imports+cfe606e3", - "buildType": "nvp-remove-barrel-imports", - "SHA": "cfe606e3df990ee59a228a835d43609fd2204a1b", - "assetPath": "/nvp-remove-barrel-imports/shas/cfe606e3df990ee59a228a835d43609fd2204a1b.tgz" + "version": "7.1.0-alpha.1.nvp-explore-true-minimal-app+1e7e9c62", + "buildType": "nvp-explore-true-minimal-app", + "SHA": "1e7e9c62837e9784ef6e4309923268bdc934451d", + "assetPath": "/nvp-explore-true-minimal-app/shas/1e7e9c62837e9784ef6e4309923268bdc934451d.tgz" } \ No newline at end of file diff --git a/package.json b/package.json index 8969b13b86c..02f063a42fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ember-source", - "version": "7.1.0-alpha.1.nvp-remove-barrel-imports+cfe606e3", + "version": "7.1.0-alpha.1.nvp-explore-true-minimal-app+1e7e9c62", "description": "A JavaScript framework for creating ambitious web applications", "keywords": [ "ember-addon" @@ -22,6 +22,39 @@ }, "license": "MIT", "main": "lib/index.js", + "sideEffects": [ + "./dist/*/packages/@ember/-internals/glimmer/lib/environment.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/renderer.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/setup-registry.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/syntax/register-routing-keywords.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/helper.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/component.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/components/*.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/component-managers/*.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/modifiers/*.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/helpers/component.js", + "./dist/*/packages/@ember/-internals/glimmer/lib/templates/*.js", + "./dist/*/packages/@ember/object/index.js", + "./dist/*/packages/@ember/object/core.js", + "./dist/*/packages/@ember/object/mixin.js", + "./dist/*/packages/@ember/object/proxy.js", + "./dist/*/packages/@ember/object/observable.js", + "./dist/*/packages/@ember/-internals/runtime/lib/mixins/*.js", + "./dist/*/packages/@ember/-internals/views/lib/views/*.js", + "./dist/*/packages/@ember/-internals/views/lib/mixins/*.js", + "./dist/*/packages/@ember/-internals/views/lib/system/event_dispatcher.js", + "./dist/*/packages/@ember/array/index.js", + "./dist/*/packages/@ember/array/proxy.js", + "./dist/*/packages/@ember/array/mutable.js", + "./dist/*/packages/@ember/enumerable/*.js", + "./dist/*/packages/@ember/controller/index.js", + "./dist/*/packages/@ember/service/index.js", + "./dist/*/packages/@ember/routing/**/*.js", + "./dist/*/packages/@ember/application/**/*.js", + "./dist/*/packages/@ember/engine/**/*.js", + "./dist/*/packages/ember/version.js", + "./dist/*/packages/ember-testing/**/*.js" + ], "files": [ "build-metadata.json", "blueprints", @@ -177,6 +210,8 @@ "@ember/-internals/environment/index.js": "ember-source/@ember/-internals/environment/index.js", "@ember/-internals/error-handling/index.js": "ember-source/@ember/-internals/error-handling/index.js", "@ember/-internals/glimmer/index.js": "ember-source/@ember/-internals/glimmer/index.js", + "@ember/-internals/glimmer/lib/classic-helper-symbol.js": "ember-source/@ember/-internals/glimmer/lib/classic-helper-symbol.js", + "@ember/-internals/glimmer/lib/component-managers/curly-symbols.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/curly-symbols.js", "@ember/-internals/glimmer/lib/component-managers/curly.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/curly.js", "@ember/-internals/glimmer/lib/component-managers/mount.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/mount.js", "@ember/-internals/glimmer/lib/component-managers/outlet.js": "ember-source/@ember/-internals/glimmer/lib/component-managers/outlet.js", @@ -237,6 +272,7 @@ "@ember/-internals/runtime/lib/mixins/action_handler.js": "ember-source/@ember/-internals/runtime/lib/mixins/action_handler.js", "@ember/-internals/runtime/lib/mixins/comparable.js": "ember-source/@ember/-internals/runtime/lib/mixins/comparable.js", "@ember/-internals/runtime/lib/mixins/container_proxy.js": "ember-source/@ember/-internals/runtime/lib/mixins/container_proxy.js", + "@ember/-internals/runtime/lib/mixins/content-for.js": "ember-source/@ember/-internals/runtime/lib/mixins/content-for.js", "@ember/-internals/runtime/lib/mixins/registry_proxy.js": "ember-source/@ember/-internals/runtime/lib/mixins/registry_proxy.js", "@ember/-internals/runtime/lib/mixins/target_action_support.js": "ember-source/@ember/-internals/runtime/lib/mixins/target_action_support.js", "@ember/-internals/string/index.js": "ember-source/@ember/-internals/string/index.js", diff --git a/packages/@ember/-internals/glimmer/lib/classic-helper-symbol.ts b/packages/@ember/-internals/glimmer/lib/classic-helper-symbol.ts new file mode 100644 index 00000000000..18ecd674dac --- /dev/null +++ b/packages/@ember/-internals/glimmer/lib/classic-helper-symbol.ts @@ -0,0 +1,24 @@ +// Leaf-level brand and registration hook for the classic class-based +// `Helper` system, factored out so the resolver doesn't statically depend on +// `./helper` (which extends `FrameworkObject` and pulls in the entire +// `EmberObject` / `Mixin` / `CoreObject` pyramid). +// +// `helper.ts` registers its `CLASSIC_HELPER_MANAGER` here on import. If the +// app never imports `@ember/component/helper`, classic helpers can't exist +// and the resolver short-circuits cleanly without dragging in any of it. + +export const IS_CLASSIC_HELPER: unique symbol = Symbol('IS_CLASSIC_HELPER'); + +export function isClassicHelper(obj: object): boolean { + return (obj as { [IS_CLASSIC_HELPER]?: boolean })[IS_CLASSIC_HELPER] === true; +} + +let classicHelperManager: object | null = null; + +export function registerClassicHelperManager(manager: object): void { + classicHelperManager = manager; +} + +export function getClassicHelperManager(): object | null { + return classicHelperManager; +} diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/curly-symbols.ts b/packages/@ember/-internals/glimmer/lib/component-managers/curly-symbols.ts new file mode 100644 index 00000000000..f757c933a5e --- /dev/null +++ b/packages/@ember/-internals/glimmer/lib/component-managers/curly-symbols.ts @@ -0,0 +1,16 @@ +// Leaf-level symbols and the curly-manager identity check, factored out so +// the renderer and resolver don't have to drag in the classic CurlyComponentManager +// (and through it the entire `@ember/component`/EmberObject pyramid). +// +// `curly.ts` marks its manager singleton with `IS_CURLY_MANAGER` so the check +// here works without the marker file knowing about the manager itself. + +export const BOUNDS = Symbol('BOUNDS'); +export const DIRTY_TAG = Symbol('DIRTY_TAG'); +export const IS_DISPATCHING_ATTRS = Symbol('IS_DISPATCHING_ATTRS'); + +export const IS_CURLY_MANAGER = Symbol('IS_CURLY_MANAGER'); + +export function isCurlyManager(manager: object): boolean { + return (manager as { [IS_CURLY_MANAGER]?: boolean })[IS_CURLY_MANAGER] === true; +} diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts index 585a9b8d63d..a899542b6ff 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts @@ -60,6 +60,15 @@ import { import ComponentStateBucket from '../utils/curly-component-state-bucket'; import { processComponentArgs } from '../utils/process-args'; +import { + BOUNDS, + DIRTY_TAG, + IS_CURLY_MANAGER, + IS_DISPATCHING_ATTRS, + isCurlyManager, +} from './curly-symbols'; + +export { BOUNDS, DIRTY_TAG, IS_DISPATCHING_ATTRS, isCurlyManager }; const COMPONENT_ARGS_MAP = new WeakMap(); @@ -69,10 +78,6 @@ export function getComponentCapturedArgs( return COMPONENT_ARGS_MAP.get(component); } -export const DIRTY_TAG = Symbol('DIRTY_TAG'); -export const IS_DISPATCHING_ATTRS = Symbol('IS_DISPATCHING_ATTRS'); -export const BOUNDS = Symbol('BOUNDS'); - const EMBER_VIEW_REF = createPrimitiveRef('ember-view'); function aliasIdToElementId(args: VMArguments, props: any) { @@ -139,6 +144,10 @@ export default class CurlyComponentManager WithDynamicLayout, WithDynamicTagName { + // marker so `isCurlyManager` can identify this manager without needing + // a reference to the singleton (which would re-pull this whole module). + [IS_CURLY_MANAGER] = true as const; + protected templateFor(component: Component): CompilableProgram | null { let { layout, layoutName } = component; let owner = getOwner(component); @@ -560,7 +569,3 @@ const CURLY_CAPABILITIES: InternalComponentCapabilities = { }; export const CURLY_COMPONENT_MANAGER = new CurlyComponentManager(); - -export function isCurlyManager(manager: object): boolean { - return manager === CURLY_COMPONENT_MANAGER; -} diff --git a/packages/@ember/-internals/glimmer/lib/helper.ts b/packages/@ember/-internals/glimmer/lib/helper.ts index 9f99e1d9829..a68ce2e408c 100644 --- a/packages/@ember/-internals/glimmer/lib/helper.ts +++ b/packages/@ember/-internals/glimmer/lib/helper.ts @@ -16,12 +16,26 @@ import { setHelperManager } from '@glimmer/manager/lib/public/api'; import type { DirtyableTag } from '@glimmer/interfaces'; import { consumeTag } from '@glimmer/validator/lib/tracking'; import { createTag, DIRTY_TAG as dirtyTag } from '@glimmer/validator/lib/validators'; +import { + IS_CLASSIC_HELPER, + isClassicHelper, + registerClassicHelperManager, +} from './classic-helper-symbol'; + +export { isClassicHelper }; const RECOMPUTE_TAG = Symbol('RECOMPUTE_TAG'); // Signature type utilities type GetOr = K extends keyof T ? T[K] : Else; +// `IS_CLASSIC_HELPER` was historically declared here; it's now defined in +// `./classic-helper-symbol` so the resolver can check the brand without +// pulling this whole module (and through it, EmberObject) into the renderer +// chunk. We keep the class-side brand assignment below to preserve runtime +// identity — `isClassicHelper(SomeHelperClass) === true` for `Helper` +// subclasses, exactly as before. + // eslint-disable-next-line @typescript-eslint/no-empty-object-type type Args = GetOr; @@ -44,8 +58,6 @@ export interface HelperInstance { [RECOMPUTE_TAG]: DirtyableTag; } -const IS_CLASSIC_HELPER: unique symbol = Symbol('IS_CLASSIC_HELPER'); - export interface SimpleHelper { compute: (positional: Positional, named: Named) => Return; } @@ -181,10 +193,6 @@ export default class Helper extends FrameworkObject { } /* eslint-enable import/export */ -export function isClassicHelper(obj: object): boolean { - return (obj as any)[IS_CLASSIC_HELPER] === true; -} - interface ClassicHelperStateBucket { instance: HelperInstance; args: Arguments; @@ -263,6 +271,10 @@ setHelperManager((owner: InternalOwner | undefined): ClassicHelperManager => { export const CLASSIC_HELPER_MANAGER = getInternalHelperManager(Helper); +// Register with the leaf-level lookup so the resolver can find the classic +// helper manager without statically importing this module. +registerClassicHelperManager(CLASSIC_HELPER_MANAGER as object); + /////////// class Wrapper implements HelperFactory> { diff --git a/packages/@ember/-internals/glimmer/lib/helpers/each-in.ts b/packages/@ember/-internals/glimmer/lib/helpers/each-in.ts index 1e4c51bc083..a591a16005f 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/each-in.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/each-in.ts @@ -2,7 +2,7 @@ @module ember */ import { tagForObject } from '@ember/-internals/metal/lib/tags'; -import { contentFor as _contentFor } from '@ember/-internals/runtime/lib/mixins/-proxy'; +import { contentFor as _contentFor } from '@ember/-internals/runtime/lib/mixins/content-for'; import { isProxy } from '@ember/-internals/utils/lib/is_proxy'; import { assert } from '@ember/debug'; import type { CapturedArguments } from '@glimmer/interfaces'; diff --git a/packages/@ember/-internals/glimmer/lib/renderer.ts b/packages/@ember/-internals/glimmer/lib/renderer.ts index eb637b501ab..8578c0ca20b 100644 --- a/packages/@ember/-internals/glimmer/lib/renderer.ts +++ b/packages/@ember/-internals/glimmer/lib/renderer.ts @@ -31,7 +31,7 @@ import { CURRENT_TAG, validateTag, valueForTag } from '@glimmer/validator/lib/va import type { SimpleDocument, SimpleElement } from '@simple-dom/interface'; import { hasDOM } from '../../browser-environment'; import type ClassicComponent from './component'; -import { BOUNDS } from './component-managers/curly'; +import { BOUNDS } from './component-managers/curly-symbols'; import { EmberEnvironmentDelegate } from './environment'; import ResolverImpl from './resolver'; import { EvaluationContextImpl } from '@glimmer/opcode-compiler/lib/program-context'; diff --git a/packages/@ember/-internals/glimmer/lib/resolver.ts b/packages/@ember/-internals/glimmer/lib/resolver.ts index 2f6f97338b4..e92cb8a5994 100644 --- a/packages/@ember/-internals/glimmer/lib/resolver.ts +++ b/packages/@ember/-internals/glimmer/lib/resolver.ts @@ -27,8 +27,8 @@ import { templateOnlyComponent, TEMPLATE_ONLY_COMPONENT_MANAGER, } from '@glimmer/runtime/lib/component/template-only'; -import { isCurlyManager } from './component-managers/curly'; -import { CLASSIC_HELPER_MANAGER, isClassicHelper } from './helper'; +import { isCurlyManager } from './component-managers/curly-symbols'; +import { getClassicHelperManager, isClassicHelper } from './classic-helper-symbol'; import { default as disallowDynamicResolution } from './helpers/-disallow-dynamic-resolution'; import { default as inElementNullCheckHelper } from './helpers/-in-element-null-check'; import { default as normalizeClassHelper } from './helpers/-normalize-class'; @@ -175,17 +175,29 @@ export default class ResolverImpl implements ClassicResolver { if (typeof definition === 'function' && isClassicHelper(definition)) { // For classic class based helpers, we need to pass the factoryFor result itself rather // than the raw value (`factoryFor(...).class`). This is because injections are already - // bound in the factoryFor result, including type-based injections - - if (DEBUG) { - // In DEBUG we need to only set the associated value once, otherwise - // we'll trigger an assertion - if (!CLASSIC_HELPER_MANAGER_ASSOCIATED.has(factory)) { - CLASSIC_HELPER_MANAGER_ASSOCIATED.add(factory); - setInternalHelperManager(CLASSIC_HELPER_MANAGER, factory); + // bound in the factoryFor result, including type-based injections. + // + // The manager is registered lazily by `./helper` on import, so apps that + // never load classic helpers don't pull that module (and EmberObject) + // into the bundle. If a classic-helper definition somehow shows up + // without the manager being registered, that's a user error — assert in + // DEBUG and fall through. + let manager = getClassicHelperManager(); + assert( + 'Encountered a classic helper definition but `@ember/component/helper` was never imported, so its manager has not been registered.', + manager !== null + ); + if (manager !== null) { + if (DEBUG) { + // In DEBUG we need to only set the associated value once, otherwise + // we'll trigger an assertion + if (!CLASSIC_HELPER_MANAGER_ASSOCIATED.has(factory)) { + CLASSIC_HELPER_MANAGER_ASSOCIATED.add(factory); + setInternalHelperManager(manager, factory); + } + } else { + setInternalHelperManager(manager, factory); } - } else { - setInternalHelperManager(CLASSIC_HELPER_MANAGER, factory); } return factory; diff --git a/packages/@ember/-internals/glimmer/lib/setup-registry.ts b/packages/@ember/-internals/glimmer/lib/setup-registry.ts index af4381849c5..e4ded5e0e21 100644 --- a/packages/@ember/-internals/glimmer/lib/setup-registry.ts +++ b/packages/@ember/-internals/glimmer/lib/setup-registry.ts @@ -9,6 +9,10 @@ import RootTemplate from './templates/root'; // helpers. Importing this here keeps the renderer free of routing/engine // dependencies so apps that only use `renderComponent` don't pay for them. import './syntax/register-routing-keywords'; +// Side-effect import: registers the classic-helper manager with the resolver. +// Apps that never use classic class-based helpers don't import this and so +// never pay for `Helper extends FrameworkObject` (and through it, EmberObject). +import './helper'; export function setupApplicationRegistry(registry: Registry): void { // because we are using injections we can't use instantiate false diff --git a/packages/@ember/-internals/glimmer/lib/utils/to-bool.ts b/packages/@ember/-internals/glimmer/lib/utils/to-bool.ts index 64933a3e22a..937321f8cd4 100644 --- a/packages/@ember/-internals/glimmer/lib/utils/to-bool.ts +++ b/packages/@ember/-internals/glimmer/lib/utils/to-bool.ts @@ -1,16 +1,25 @@ import { isHTMLSafe } from './string'; import { get } from '@ember/-internals/metal/lib/property_get'; import { tagForProperty } from '@ember/-internals/metal/lib/tags'; -import { isArray } from '@ember/array'; +import { isEmberArray } from '@ember/array/-internals'; import { isProxy } from '@ember/-internals/utils/lib/is_proxy'; import { consumeTag } from '@glimmer/validator/lib/tracking'; +// Inlined to avoid pulling `@ember/array` (and through it `@ember/object/mixin`, +// `typeOf` → `CoreObject`, `Enumerable`, etc.) into the renderer for what is +// just a truthiness check on `{{#if someArray}}`. We accept brand-marked +// EmberArrays via `isEmberArray` and native arrays via `Array.isArray` — +// the same two cases that matter in practice. +function isArrayish(obj: unknown): obj is ArrayLike { + return Array.isArray(obj) || isEmberArray(obj); +} + export default function toBool(predicate: unknown): boolean { if (isProxy(predicate)) { consumeTag(tagForProperty(predicate, 'content')); return Boolean(get(predicate, 'isTruthy')); - } else if (isArray(predicate)) { + } else if (isArrayish(predicate)) { consumeTag(tagForProperty(predicate as object, '[]')); return (predicate as { length: number }).length !== 0; diff --git a/packages/@ember/-internals/runtime/lib/mixins/-proxy.ts b/packages/@ember/-internals/runtime/lib/mixins/-proxy.ts index ddb31a6c18d..771ba24bf5b 100644 --- a/packages/@ember/-internals/runtime/lib/mixins/-proxy.ts +++ b/packages/@ember/-internals/runtime/lib/mixins/-proxy.ts @@ -15,18 +15,12 @@ import { isObject } from '@ember/-internals/utils/lib/spec'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; import { setCustomTagFor } from '@glimmer/manager/lib/util/args-proxy'; -import type { UpdatableTag, Tag } from '@glimmer/interfaces'; -import { combine, UPDATE_TAG as updateTag } from '@glimmer/validator/lib/validators'; +import type { Tag } from '@glimmer/interfaces'; +import { combine } from '@glimmer/validator/lib/validators'; import { tagFor, tagMetaFor } from '@glimmer/validator/lib/meta'; +import { contentFor } from './content-for'; -export function contentFor(proxy: ProxyMixin): T | null { - let content = get(proxy, 'content'); - // SAFETY: Ideally we'd assert instead of casting, but @glimmer/validator doesn't give us - // sufficient public types for this. Previously this code was .js and worked correctly so - // hopefully this is sufficiently reliable. - updateTag(tagForObject(proxy) as UpdatableTag, tagForObject(content)); - return content; -} +export { contentFor }; function customTagForProxy(proxy: object, key: string, addMandatorySetter?: boolean): Tag { assert('Expected a proxy', isProxy(proxy)); diff --git a/packages/@ember/-internals/runtime/lib/mixins/content-for.ts b/packages/@ember/-internals/runtime/lib/mixins/content-for.ts new file mode 100644 index 00000000000..0f3c45349c8 --- /dev/null +++ b/packages/@ember/-internals/runtime/lib/mixins/content-for.ts @@ -0,0 +1,18 @@ +import { get } from '@ember/-internals/metal/lib/property_get'; +import { tagForObject } from '@ember/-internals/metal/lib/tags'; +import type { UpdatableTag } from '@glimmer/interfaces'; +import { UPDATE_TAG as updateTag } from '@glimmer/validator/lib/validators'; +import type ProxyMixin from './-proxy'; + +// Extracted from `./-proxy` so that consumers (notably the `each-in` helper +// reachable from the renderer) don't have to drag in `@ember/object/mixin` +// and the `ProxyMixin = Mixin.create(...)` side effect — that's the entry +// point to the entire EmberObject/PrototypeMixin pyramid. + +export function contentFor(proxy: ProxyMixin): T | null { + let content = get(proxy, 'content'); + // SAFETY: matches the original cast in -proxy.ts; @glimmer/validator + // doesn't expose enough public types for an assertion here. + updateTag(tagForObject(proxy) as UpdatableTag, tagForObject(content)); + return content; +} From 08898963abea9cb55c89978aa2be881a5c4b2144 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 1 May 2026 21:10:00 -0400 Subject: [PATCH 15/15] Starting to get in to diminishing returns here --- package.json | 1 + .../@ember/-internals/glimmer/lib/resolver.ts | 2 +- packages/@ember/instrumentation/index.ts | 110 ++------------- .../lib/internal-instrument.ts | 116 ++++++++++++++++ packages/@glimmer/debug/lib/dism/operands.ts | 2 +- .../runtime/lib/debug-render-tree-register.ts | 13 ++ packages/@glimmer/runtime/lib/environment.ts | 18 ++- .../runtime/lib/opcodes-debug-setup.ts | 124 +++++++++++++++++ packages/@glimmer/runtime/lib/opcodes.ts | 125 +++--------------- 9 files changed, 302 insertions(+), 209 deletions(-) create mode 100644 packages/@ember/instrumentation/lib/internal-instrument.ts create mode 100644 packages/@glimmer/runtime/lib/debug-render-tree-register.ts create mode 100644 packages/@glimmer/runtime/lib/opcodes-debug-setup.ts diff --git a/package.json b/package.json index 02f063a42fe..fe85723b1e3 100644 --- a/package.json +++ b/package.json @@ -321,6 +321,7 @@ "@ember/enumerable/mutable.js": "ember-source/@ember/enumerable/mutable.js", "@ember/helper/index.js": "ember-source/@ember/helper/index.js", "@ember/instrumentation/index.js": "ember-source/@ember/instrumentation/index.js", + "@ember/instrumentation/lib/internal-instrument.js": "ember-source/@ember/instrumentation/lib/internal-instrument.js", "@ember/modifier/index.js": "ember-source/@ember/modifier/index.js", "@ember/modifier/on.js": "ember-source/@ember/modifier/on.js", "@ember/object/-internals.js": "ember-source/@ember/object/-internals.js", diff --git a/packages/@ember/-internals/glimmer/lib/resolver.ts b/packages/@ember/-internals/glimmer/lib/resolver.ts index e92cb8a5994..3aee7ff6f3c 100644 --- a/packages/@ember/-internals/glimmer/lib/resolver.ts +++ b/packages/@ember/-internals/glimmer/lib/resolver.ts @@ -1,7 +1,7 @@ import type { InternalFactory, InternalOwner } from '@ember/-internals/owner'; import { isFactory } from '@ember/-internals/owner'; import { assert } from '@ember/debug'; -import { _instrumentStart } from '@ember/instrumentation'; +import { _instrumentStart } from '@ember/instrumentation/lib/internal-instrument'; import { DEBUG } from '@glimmer/env'; import type { ClassicResolver, diff --git a/packages/@ember/instrumentation/index.ts b/packages/@ember/instrumentation/index.ts index f3fb35d4775..bd758b48b02 100644 --- a/packages/@ember/instrumentation/index.ts +++ b/packages/@ember/instrumentation/index.ts @@ -1,28 +1,21 @@ /* eslint no-console:off */ /* global console */ -import { ENV } from '@ember/-internals/environment/lib/env'; -import { assert } from '@ember/debug'; +import { + _instrumentStart, + NOOP, + resetCache, + subscribers, +} from './lib/internal-instrument'; +import type { Listener, StructuredProfilePayload, Subscriber } from './lib/internal-instrument'; -export interface Listener { - before: (name: string, timestamp: number, payload: object) => T; - after: (name: string, timestamp: number, payload: object, beforeValue: T) => void; -} - -export interface Subscriber { - pattern: string; - regex: RegExp; - object: Listener; -} +export type { Listener, StructuredProfilePayload, Subscriber }; +export { _instrumentStart }; export interface PayloadWithException { exception?: any; } -export interface StructuredProfilePayload { - object: string | object; -} - /** @module @ember/instrumentation @private @@ -78,23 +71,7 @@ export interface StructuredProfilePayload { @static @private */ -export let subscribers: Subscriber[] = []; -let cache: { [key: string]: Listener[] } = {}; - -function populateListeners(name: string) { - let listeners: Listener[] = []; - - for (let subscriber of subscribers) { - if (subscriber.regex.test(name)) { - listeners.push(subscriber.object); - } - } - - cache[name] = listeners; - return listeners; -} - -const time = (): number => performance.now(); +export { subscribers }; type InstrumentCallback = (this: Binding) => Result; @@ -196,67 +173,6 @@ function withFinalizer( } } -function NOOP() {} - -// private for now -export function _instrumentStart(name: string, payloadFunc: () => object): () => void; -export function _instrumentStart( - name: string, - payloadFunc: (arg: Arg) => object, - payloadArg: Arg -): () => void; -export function _instrumentStart( - name: string, - payloadFunc: ((arg: Arg) => object) | (() => object), - payloadArg?: Arg -): () => void { - if (subscribers.length === 0) { - return NOOP; - } - - let listeners = cache[name]; - - if (!listeners) { - listeners = populateListeners(name); - } - - if (listeners.length === 0) { - return NOOP; - } - - let payload = payloadFunc(payloadArg!); - - let STRUCTURED_PROFILE = ENV.STRUCTURED_PROFILE; - let timeName: string; - if (STRUCTURED_PROFILE) { - timeName = `${name}: ${(payload as StructuredProfilePayload).object}`; - console.time(timeName); - } - - let beforeValues: any[] = []; - let timestamp = time(); - for (let listener of listeners) { - beforeValues.push(listener.before(name, timestamp, payload)); - } - - const constListeners = listeners; - - return function _instrumentEnd(): void { - let timestamp = time(); - for (let i = 0; i < constListeners.length; i++) { - let listener = constListeners[i]; - assert('has listener', listener); // Iterating over values - if (typeof listener.after === 'function') { - listener.after(name, timestamp, payload, beforeValues[i]); - } - } - - if (STRUCTURED_PROFILE) { - console.timeEnd(timeName); - } - }; -} - /** Subscribes to a particular event or instrumented block of code. @@ -292,7 +208,7 @@ export function subscribe(pattern: string, object: Listener): Subscriber): void { } subscribers.splice(index, 1); - cache = {}; + resetCache(); } /** @@ -330,5 +246,5 @@ export function unsubscribe(subscriber: Subscriber): void { */ export function reset(): void { subscribers.length = 0; - cache = {}; + resetCache(); } diff --git a/packages/@ember/instrumentation/lib/internal-instrument.ts b/packages/@ember/instrumentation/lib/internal-instrument.ts new file mode 100644 index 00000000000..5cd9ef0d876 --- /dev/null +++ b/packages/@ember/instrumentation/lib/internal-instrument.ts @@ -0,0 +1,116 @@ +// Hot-path bits of `@ember/instrumentation`, factored out so internal +// callers (the resolver, component managers) don't have to drag in the +// full subscribe/unsubscribe/instrument machinery — most of which is dead +// code unless something actually subscribes (e.g. Ember Inspector). +// +// `subscribers` and `cache` live here; `index.ts` imports and mutates +// them via `subscribe`/`unsubscribe`/`reset`. + +import { ENV } from '@ember/-internals/environment/lib/env'; +import { assert } from '@ember/debug'; + +export interface Listener { + before: (name: string, timestamp: number, payload: object) => T; + after: (name: string, timestamp: number, payload: object, beforeValue: T) => void; +} + +export interface Subscriber { + pattern: string; + regex: RegExp; + object: Listener; +} + +export interface StructuredProfilePayload { + object: string | object; +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const subscribers: Subscriber[] = []; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const cache: { [key: string]: Listener[] } = {}; + +export function resetCache(): void { + for (const key of Object.keys(cache)) { + delete cache[key]; + } +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function populateListeners(name: string): Listener[] { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let listeners: Listener[] = []; + + for (let subscriber of subscribers) { + if (subscriber.regex.test(name)) { + listeners.push(subscriber.object); + } + } + + cache[name] = listeners; + return listeners; +} + +const time = (): number => performance.now(); + +export const NOOP = (): void => {}; + +export function _instrumentStart(name: string, payloadFunc: () => object): () => void; +export function _instrumentStart( + name: string, + payloadFunc: (arg: Arg) => object, + payloadArg: Arg +): () => void; +export function _instrumentStart( + name: string, + payloadFunc: ((arg: Arg) => object) | (() => object), + payloadArg?: Arg +): () => void { + if (subscribers.length === 0) { + return NOOP; + } + + let listeners = cache[name]; + + if (!listeners) { + listeners = populateListeners(name); + } + + if (listeners.length === 0) { + return NOOP; + } + + let payload = payloadFunc(payloadArg!); + + let STRUCTURED_PROFILE = ENV.STRUCTURED_PROFILE; + let timeName: string; + if (STRUCTURED_PROFILE) { + timeName = `${name}: ${(payload as StructuredProfilePayload).object}`; + // eslint-disable-next-line no-console + console.time(timeName); + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let beforeValues: any[] = []; + let timestamp = time(); + for (let listener of listeners) { + beforeValues.push(listener.before(name, timestamp, payload)); + } + + const constListeners = listeners; + + return function _instrumentEnd(): void { + let timestamp = time(); + for (let i = 0; i < constListeners.length; i++) { + let listener = constListeners[i]; + assert('has listener', listener); + if (typeof listener.after === 'function') { + listener.after(name, timestamp, payload, beforeValues[i]); + } + } + + if (STRUCTURED_PROFILE) { + // eslint-disable-next-line no-console + console.timeEnd(timeName); + } + }; +} diff --git a/packages/@glimmer/debug/lib/dism/operands.ts b/packages/@glimmer/debug/lib/dism/operands.ts index 9d7a3c6e4cb..eb4db05fd2e 100644 --- a/packages/@glimmer/debug/lib/dism/operands.ts +++ b/packages/@glimmer/debug/lib/dism/operands.ts @@ -68,7 +68,7 @@ class Disassembler { } } -export const OPERANDS = Disassembler.build((d) => { +export const OPERANDS = /*#__PURE__*/ Disassembler.build((d) => { return d .add(['imm/u32', 'imm/i32', 'imm/u32{todo}', 'imm/i32{todo}'], ({ value }) => ['number', value]) .add(['const/i32[]'], ({ value, constants }) => [ diff --git a/packages/@glimmer/runtime/lib/debug-render-tree-register.ts b/packages/@glimmer/runtime/lib/debug-render-tree-register.ts new file mode 100644 index 00000000000..2125fe0aa9c --- /dev/null +++ b/packages/@glimmer/runtime/lib/debug-render-tree-register.ts @@ -0,0 +1,13 @@ +// Side-effect-only module: registers `DebugRenderTreeImpl` as the factory +// used by `EnvironmentImpl` when `delegate.enableDebugTooling` is true. +// +// Importing this file pulls `./debug-render-tree` into the bundle. Apps +// that don't need render-tree introspection (anything not running the +// Ember Inspector) shouldn't import this module — `EnvironmentImpl`'s +// `debugRenderTree` will silently stay `undefined`, which is the same +// behavior you'd get with `enableDebugTooling: false`. + +import DebugRenderTreeImpl from './debug-render-tree'; +import { registerDebugRenderTreeFactory } from './environment'; + +registerDebugRenderTreeFactory(() => new DebugRenderTreeImpl()); diff --git a/packages/@glimmer/runtime/lib/environment.ts b/packages/@glimmer/runtime/lib/environment.ts index bafbefe2f82..dd5cb9b3c5a 100644 --- a/packages/@glimmer/runtime/lib/environment.ts +++ b/packages/@glimmer/runtime/lib/environment.ts @@ -2,6 +2,7 @@ import { DEBUG } from '@glimmer/env'; import type { ClassicResolver, ComponentInstanceWithCreate, + DebugRenderTree, Environment, EnvironmentOptions, GlimmerTreeChanges, @@ -19,10 +20,20 @@ import { ProgramImpl } from '@glimmer/program/lib/program'; import { track } from '@glimmer/validator/lib/tracking'; import { UPDATE_TAG as updateTag } from '@glimmer/validator/lib/validators'; -import DebugRenderTree from './debug-render-tree'; import { DOMChangesImpl, DOMTreeConstruction } from './dom/helper'; import { isArgumentError } from './vm/arguments'; +// Lazy registration: the DebugRenderTree implementation registers itself +// here on import. Apps that don't need it (e.g. anything that isn't running +// the Ember Inspector) won't pull `./debug-render-tree` into the bundle, +// since this module no longer references it statically. +type DebugRenderTreeFactory = () => DebugRenderTree; +let debugRenderTreeFactory: DebugRenderTreeFactory | null = null; + +export function registerDebugRenderTreeFactory(factory: DebugRenderTreeFactory): void { + debugRenderTreeFactory = factory; +} + export const TRANSACTION: TransactionSymbol = Symbol('TRANSACTION') as TransactionSymbol; class TransactionImpl implements Transaction { @@ -114,7 +125,10 @@ export class EnvironmentImpl implements Environment { private delegate: EnvironmentDelegate ) { this.isInteractive = delegate.isInteractive; - this.debugRenderTree = this.delegate.enableDebugTooling ? new DebugRenderTree() : undefined; + this.debugRenderTree = + this.delegate.enableDebugTooling && debugRenderTreeFactory + ? debugRenderTreeFactory() + : undefined; this.isArgumentCaptureError = this.delegate.enableDebugTooling ? isArgumentError : undefined; if (options.appendOperations) { this.appendOperations = options.appendOperations; diff --git a/packages/@glimmer/runtime/lib/opcodes-debug-setup.ts b/packages/@glimmer/runtime/lib/opcodes-debug-setup.ts new file mode 100644 index 00000000000..2c7dc9ffe21 --- /dev/null +++ b/packages/@glimmer/runtime/lib/opcodes-debug-setup.ts @@ -0,0 +1,124 @@ +// Side-effect-only module: when imported, registers the per-opcode debug +// hooks (`debugBefore` / `debugAfter`) on `AppendOpcodes`. These hooks are +// only ever called when `LOCAL_DEBUG` is true (via the constant from +// `@glimmer/local-debug-flags`), so they're useless in production. +// +// Pulling them into their own module means production bundles that don't +// import this file drop `@glimmer/debug/lib/debug` (and its `OPERANDS` +// disassembler), `DebugLogger`, `VmSnapshot`, `opcodeMetadata`, etc. — +// 1–3 KB gzip of pure dev-only code. + +import type { DebugOp, SomeDisassembledOperand } from '@glimmer/debug/lib/debug'; +import { DebugLogger } from '@glimmer/debug/lib/render/logger'; +import { debugOp, describeOp, describeOpcode } from '@glimmer/debug/lib/debug'; +import { frag } from '@glimmer/debug/lib/render/fragment'; +import { opcodeMetadata } from '@glimmer/debug/lib/opcode-metadata'; +import { recordStackSize } from '@glimmer/debug/lib/stack-check'; +import { VmSnapshot } from '@glimmer/debug/lib/vm/snapshot'; +import type { DebugVmSnapshot, Dict, Maybe, RuntimeOp } from '@glimmer/interfaces'; +import { unwrap } from '@glimmer/debug-util/lib/platform-utils'; +import { LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; +import { LOCAL_LOGGER } from '@glimmer/util'; +import { $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0 } from '@glimmer/vm/lib/registers'; + +import type { AppendOpcodes, DebugState } from './opcodes'; +import { registerDebugOpcodeSetup } from './opcodes'; + +registerDebugOpcodeSetup((opcodes: AppendOpcodes): void => { + opcodes.debugBefore = (debug: DebugVmSnapshot, opcode: RuntimeOp): DebugState => { + let opcodeSnapshot = { + type: opcode.type, + size: opcode.size, + isMachine: opcode.isMachine, + } as const; + + let snapshot = new VmSnapshot(opcodeSnapshot, debug); + let params: Maybe> = undefined; + let op: DebugOp | undefined = undefined; + let closeGroup: (() => void) | undefined; + + if (LOCAL_TRACE_LOGGING) { + const logger = DebugLogger.configured(); + + let pos = debug.registers[$pc] - opcode.size; + + op = debugOp(debug.context.program, opcode, debug.template); + + closeGroup = logger + .group(frag`${pos}. ${describeOp(opcode, debug.context.program, debug.template)}`) + .expanded(); + + let debugParams = []; + for (let [name, param] of Object.entries(op.params)) { + const value = param.value; + if (value !== null && (typeof value === 'object' || typeof value === 'function')) { + debugParams.push(name, '=', value); + } + } + LOCAL_LOGGER.debug(...debugParams); + } + + recordStackSize(debug.registers[$sp]); + return { + op, + closeGroup, + params, + opcode: opcodeSnapshot, + debug, + snapshot, + }; + }; + + opcodes.debugAfter = (postSnapshot: DebugVmSnapshot, pre: DebugState) => { + let post = new VmSnapshot(pre.opcode, postSnapshot); + let diff = pre.snapshot.diff(post); + let { + opcode: { type }, + } = pre; + + let sp = diff.registers[$sp]; + + let meta = opcodeMetadata(type); + let actualChange = sp.after - sp.before; + if ( + meta && + meta.check !== false && + typeof meta.stackChange! === 'number' && + meta.stackChange !== actualChange + ) { + throw new Error( + `Error in ${pre.op?.name}:\n\n${pre.debug.registers[$pc]}. ${ + pre.op ? describeOpcode(pre.op.name, pre.params) : unwrap(opcodeMetadata(type)).name + }\n\nStack changed by ${actualChange}, expected ${meta.stackChange}` + ); + } + + if (LOCAL_TRACE_LOGGING) { + const logger = DebugLogger.configured(); + + logger.log(diff.registers[$pc].describe()); + logger.log(diff.registers[$ra].describe()); + logger.log(diff.registers[$s0].describe()); + logger.log(diff.registers[$s1].describe()); + logger.log(diff.registers[$t0].describe()); + logger.log(diff.registers[$t1].describe()); + logger.log(diff.registers[$v0].describe()); + logger.log(diff.stack.describe()); + logger.log(diff.destructors.describe()); + logger.log(diff.scope.describe()); + + if (diff.constructing.didChange || diff.blocks.change) { + const done = logger.group(`tree construction`).expanded(); + try { + logger.log(diff.constructing.describe()); + logger.log(diff.blocks.describe()); + logger.log(diff.cursors.describe()); + } finally { + done(); + } + } + + pre.closeGroup?.(); + } + }; +}); diff --git a/packages/@glimmer/runtime/lib/opcodes.ts b/packages/@glimmer/runtime/lib/opcodes.ts index 2a9228097ed..c0e4a6affce 100644 --- a/packages/@glimmer/runtime/lib/opcodes.ts +++ b/packages/@glimmer/runtime/lib/opcodes.ts @@ -2,7 +2,6 @@ import type { DebugOp, SomeDisassembledOperand } from '@glimmer/debug/lib/debug' import type { DebugVmSnapshot, Dict, - Maybe, Nullable, Optional, RuntimeOp, @@ -11,21 +10,27 @@ import type { VmOp, } from '@glimmer/interfaces'; import { VM_SYSCALL_SIZE } from '@glimmer/constants/lib/syscall-ops'; -import { DebugLogger } from '@glimmer/debug/lib/render/logger'; -import { debugOp, describeOp, describeOpcode } from '@glimmer/debug/lib/debug'; -import { frag } from '@glimmer/debug/lib/render/fragment'; -import { opcodeMetadata } from '@glimmer/debug/lib/opcode-metadata'; -import { recordStackSize } from '@glimmer/debug/lib/stack-check'; -import { VmSnapshot } from '@glimmer/debug/lib/vm/snapshot'; +import type { VmSnapshot } from '@glimmer/debug/lib/vm/snapshot'; import { dev, unwrap } from '@glimmer/debug-util/lib/platform-utils'; import assert from '@glimmer/debug-util/lib/assert'; -import { LOCAL_DEBUG, LOCAL_TRACE_LOGGING } from '@glimmer/local-debug-flags'; -import { LOCAL_LOGGER } from '@glimmer/util'; -import { $pc, $ra, $s0, $s1, $sp, $t0, $t1, $v0 } from '@glimmer/vm/lib/registers'; +import { LOCAL_DEBUG } from '@glimmer/local-debug-flags'; import type { LowLevelVM, VM } from './vm'; import type { Externs } from './vm/low-level'; +// Lazy registration: when `./opcodes-debug-setup` is imported, it calls +// `registerDebugOpcodeSetup` to install the per-opcode tracing/snapshot +// hooks. Without that import, the heavy debug imports +// (`@glimmer/debug/lib/debug`, `DebugLogger`, `VmSnapshot`, +// `opcodeMetadata`, etc.) stay out of the bundle. Production builds with +// `LOCAL_DEBUG === false` never need these hooks. +type DebugOpcodeSetup = (opcodes: AppendOpcodes) => void; +let debugOpcodeSetup: DebugOpcodeSetup | null = null; + +export function registerDebugOpcodeSetup(setup: DebugOpcodeSetup): void { + debugOpcodeSetup = setup; +} + export interface OpcodeJSON { type: number | string; guid?: Nullable; @@ -69,104 +74,8 @@ export class AppendOpcodes { declare debugAfter?: (debug: DebugVmSnapshot, pre: DebugState) => void; constructor() { - if (LOCAL_DEBUG) { - this.debugBefore = (debug: DebugVmSnapshot, opcode: RuntimeOp): DebugState => { - let opcodeSnapshot = { - type: opcode.type, - size: opcode.size, - isMachine: opcode.isMachine, - } as const; - - let snapshot = new VmSnapshot(opcodeSnapshot, debug); - let params: Maybe> = undefined; - let op: DebugOp | undefined = undefined; - let closeGroup: (() => void) | undefined; - - if (LOCAL_TRACE_LOGGING) { - const logger = DebugLogger.configured(); - - let pos = debug.registers[$pc] - opcode.size; - - op = debugOp(debug.context.program, opcode, debug.template); - - closeGroup = logger - .group(frag`${pos}. ${describeOp(opcode, debug.context.program, debug.template)}`) - .expanded(); - - let debugParams = []; - for (let [name, param] of Object.entries(op.params)) { - const value = param.value; - if (value !== null && (typeof value === 'object' || typeof value === 'function')) { - debugParams.push(name, '=', value); - } - } - LOCAL_LOGGER.debug(...debugParams); - } - - recordStackSize(debug.registers[$sp]); - return { - op, - closeGroup, - params, - opcode: opcodeSnapshot, - debug, - snapshot, - }; - }; - - this.debugAfter = (postSnapshot: DebugVmSnapshot, pre: DebugState) => { - let post = new VmSnapshot(pre.opcode, postSnapshot); - let diff = pre.snapshot.diff(post); - let { - opcode: { type }, - } = pre; - - let sp = diff.registers[$sp]; - - let meta = opcodeMetadata(type); - let actualChange = sp.after - sp.before; - if ( - meta && - meta.check !== false && - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- @fixme - typeof meta.stackChange! === 'number' && - meta.stackChange !== actualChange - ) { - throw new Error( - `Error in ${pre.op?.name}:\n\n${pre.debug.registers[$pc]}. ${ - pre.op ? describeOpcode(pre.op.name, pre.params) : unwrap(opcodeMetadata(type)).name - }\n\nStack changed by ${actualChange}, expected ${meta.stackChange}` - ); - } - - if (LOCAL_TRACE_LOGGING) { - const logger = DebugLogger.configured(); - - logger.log(diff.registers[$pc].describe()); - logger.log(diff.registers[$ra].describe()); - logger.log(diff.registers[$s0].describe()); - logger.log(diff.registers[$s1].describe()); - logger.log(diff.registers[$t0].describe()); - logger.log(diff.registers[$t1].describe()); - logger.log(diff.registers[$v0].describe()); - logger.log(diff.stack.describe()); - logger.log(diff.destructors.describe()); - logger.log(diff.scope.describe()); - - if (diff.constructing.didChange || diff.blocks.change) { - const done = logger.group(`tree construction`).expanded(); - try { - logger.log(diff.constructing.describe()); - logger.log(diff.blocks.describe()); - logger.log(diff.cursors.describe()); - } finally { - done(); - } - } - - pre.closeGroup?.(); - } - }; + if (LOCAL_DEBUG && debugOpcodeSetup) { + debugOpcodeSetup(this); } }