mirror of
https://github.com/discourse/discourse.git
synced 2025-10-03 17:21:20 +08:00
DEV: Drop support for template overrides and mobile-specific templates (#33101)
https://meta.discourse.org/t/355668
This commit is contained in:
parent
1cde45c2b4
commit
cb6cc8dcd3
8 changed files with 92 additions and 694 deletions
|
@ -1,116 +0,0 @@
|
|||
import * as GlimmerManager from "@glimmer/manager";
|
||||
import ClassicComponent from "@ember/component";
|
||||
import deprecated from "discourse/lib/deprecated";
|
||||
import DiscourseTemplateMap from "discourse/lib/discourse-template-map";
|
||||
import { getThemeInfo } from "discourse/lib/source-identifier";
|
||||
|
||||
// We're using a patched version of Ember with a modified GlimmerManager to make the code below work.
|
||||
// This patch is not ideal, but Ember does not allow us to change a component template after initial association
|
||||
// https://github.com/glimmerjs/glimmer-vm/blob/03a4b55c03/packages/%40glimmer/manager/lib/public/template.ts#L14-L20
|
||||
|
||||
function sourceForModuleName(name) {
|
||||
const pluginMatch = name.match(/^discourse\/plugins\/([^\/]+)\//)?.[1];
|
||||
if (pluginMatch) {
|
||||
return {
|
||||
type: "plugin",
|
||||
name: pluginMatch,
|
||||
};
|
||||
}
|
||||
|
||||
const themeMatch = name.match(/^discourse\/theme-(\d+)\//)?.[1];
|
||||
if (themeMatch) {
|
||||
return {
|
||||
...getThemeInfo(parseInt(themeMatch, 10)),
|
||||
type: "theme",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
after: ["populate-template-map", "mobile"],
|
||||
|
||||
initialize(owner) {
|
||||
this.site = owner.lookup("service:site");
|
||||
|
||||
this.eachThemePluginTemplate((templateKey, moduleNames, mobile) => {
|
||||
if (!mobile && DiscourseTemplateMap.coreTemplates.has(templateKey)) {
|
||||
// It's a non-colocated core component. Template will be overridden at runtime.
|
||||
return;
|
||||
}
|
||||
|
||||
let componentName = templateKey;
|
||||
const finalOverrideModuleName = moduleNames.at(-1);
|
||||
|
||||
if (mobile) {
|
||||
deprecated(
|
||||
`Mobile-specific hbs templates are deprecated. Use responsive CSS or {{#if this.site.mobileView}} instead. [${templateKey}]`,
|
||||
{
|
||||
id: "discourse.mobile-templates",
|
||||
url: "https://meta.discourse.org/t/355668",
|
||||
source: sourceForModuleName(finalOverrideModuleName),
|
||||
}
|
||||
);
|
||||
if (this.site.mobileView) {
|
||||
componentName = componentName.slice("mobile/".length);
|
||||
}
|
||||
}
|
||||
|
||||
componentName = componentName.slice("components/".length);
|
||||
|
||||
const component = owner.resolveRegistration(`component:${componentName}`);
|
||||
|
||||
if (!component) {
|
||||
// Plugin/theme component template with no backing class.
|
||||
// Treat as classic component to emulate pre-template-only-glimmer-component behaviour.
|
||||
owner.register(`component:${componentName}`, ClassicComponent);
|
||||
return;
|
||||
}
|
||||
|
||||
// patched function: Ember's OG won't return overridden templates. This version will.
|
||||
// it's safe to call it original template here because the override wasn't set yet.
|
||||
const originalTemplate = GlimmerManager.getComponentTemplate(component);
|
||||
|
||||
if (originalTemplate) {
|
||||
deprecated(
|
||||
`Overriding component templates is deprecated, and will soon be disabled. Use plugin outlets, CSS, or other customization APIs instead. [${finalOverrideModuleName}]`,
|
||||
{
|
||||
id: "discourse.component-template-overrides",
|
||||
url: "https://meta.discourse.org/t/355668",
|
||||
source: sourceForModuleName(finalOverrideModuleName),
|
||||
}
|
||||
);
|
||||
|
||||
const overrideTemplate = require(finalOverrideModuleName).default;
|
||||
|
||||
// patched function: Ember's OG does not allow overriding a component template
|
||||
GlimmerManager.setComponentTemplate(overrideTemplate, component);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
eachThemePluginTemplate(cb) {
|
||||
const { coreTemplates, pluginTemplates, themeTemplates } =
|
||||
DiscourseTemplateMap;
|
||||
|
||||
const orderedOverrides = [
|
||||
[pluginTemplates, "components/", false],
|
||||
[themeTemplates, "components/", false],
|
||||
[coreTemplates, "mobile/components/", true],
|
||||
[pluginTemplates, "mobile/components/", true],
|
||||
[themeTemplates, "mobile/components/", true],
|
||||
];
|
||||
|
||||
for (const [map, prefix, mobile] of orderedOverrides) {
|
||||
for (const [key, value] of map) {
|
||||
if (key.startsWith(prefix)) {
|
||||
cb(key, value, mobile);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
teardown() {
|
||||
// patched function: doesn't exist on og GlimmerManager
|
||||
GlimmerManager.clearTemplateOverrides();
|
||||
},
|
||||
};
|
|
@ -1,14 +1,9 @@
|
|||
import deprecated from "./deprecated";
|
||||
import { isTesting } from "discourse/lib/environment";
|
||||
|
||||
const pluginRegex = /^discourse\/plugins\/([^\/]+)\/(.*)$/;
|
||||
const themeRegex = /^discourse\/theme-([^\/]+)\/(.*)$/;
|
||||
|
||||
function appendToCache(cache, key, value) {
|
||||
let cachedValue = cache.get(key);
|
||||
cachedValue ??= [];
|
||||
cachedValue.push(value);
|
||||
cache.set(key, cachedValue);
|
||||
}
|
||||
const pluginRegex =
|
||||
/^discourse\/plugins\/([^\/]+)\/(?:discourse\/templates\/)?(.*)$/;
|
||||
const themeRegex =
|
||||
/^discourse\/theme-([^\/]+)\/(?:discourse\/templates\/)?(.*)$/;
|
||||
|
||||
const NAMESPACES = ["discourse/", "admin/"];
|
||||
|
||||
|
@ -25,53 +20,65 @@ function isTemplate(moduleName) {
|
|||
return moduleName.includes("/templates/");
|
||||
}
|
||||
|
||||
function buildPrioritizedMaps(moduleNames) {
|
||||
const coreTemplates = new Map();
|
||||
const pluginTemplates = new Map();
|
||||
const themeTemplates = new Map();
|
||||
|
||||
for (const moduleName of moduleNames) {
|
||||
if (isInRecognisedNamespace(moduleName) && isTemplate(moduleName)) {
|
||||
let pluginMatch, themeMatch;
|
||||
if ((pluginMatch = moduleName.match(pluginRegex))) {
|
||||
pluginTemplates.set(pluginMatch[2], moduleName);
|
||||
} else if ((themeMatch = moduleName.match(themeRegex))) {
|
||||
themeTemplates.set(themeMatch[2], moduleName);
|
||||
} else {
|
||||
coreTemplates.set(
|
||||
moduleName.replace(/^discourse\/templates\//, ""),
|
||||
moduleName
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return [coreTemplates, pluginTemplates, themeTemplates];
|
||||
}
|
||||
|
||||
/**
|
||||
* This class provides takes set of core/plugin/theme modules, finds the template modules,
|
||||
* and makes an efficient lookup table for the resolver to use. It takes care of sourcing
|
||||
* component/route templates from themes/plugins, and also handles template overrides.
|
||||
* component/route templates from themes/plugins, and also warns about clashes
|
||||
*/
|
||||
class DiscourseTemplateMap {
|
||||
coreTemplates = new Map();
|
||||
pluginTemplates = new Map();
|
||||
themeTemplates = new Map();
|
||||
prioritizedCaches = [
|
||||
this.themeTemplates,
|
||||
this.pluginTemplates,
|
||||
this.coreTemplates,
|
||||
];
|
||||
templates = new Map();
|
||||
|
||||
/**
|
||||
* Reset the TemplateMap to use the supplied module names. It is expected that the list
|
||||
* will be generated using `Object.keys(requirejs.entries)`.
|
||||
*/
|
||||
setModuleNames(moduleNames) {
|
||||
this.coreTemplates.clear();
|
||||
this.pluginTemplates.clear();
|
||||
this.themeTemplates.clear();
|
||||
for (const moduleName of moduleNames) {
|
||||
if (isInRecognisedNamespace(moduleName) && isTemplate(moduleName)) {
|
||||
this.#add(moduleName);
|
||||
this.templates.clear();
|
||||
|
||||
for (const templateMap of buildPrioritizedMaps(moduleNames)) {
|
||||
for (const [path, moduleName] of templateMap) {
|
||||
this.#add(path, moduleName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#add(originalPath) {
|
||||
let path = originalPath;
|
||||
#add(path, moduleName) {
|
||||
if (this.templates.has(path)) {
|
||||
const msg = `Duplicate templates found for '${path}': '${moduleName}' clashes with '${this.templates.get(path)}'`;
|
||||
|
||||
let pluginMatch, themeMatch, cache;
|
||||
if ((pluginMatch = path.match(pluginRegex))) {
|
||||
path = pluginMatch[2];
|
||||
cache = this.pluginTemplates;
|
||||
} else if ((themeMatch = path.match(themeRegex))) {
|
||||
path = themeMatch[2];
|
||||
cache = this.themeTemplates;
|
||||
if (isTesting()) {
|
||||
throw new Error(msg);
|
||||
} else {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(msg);
|
||||
}
|
||||
} else {
|
||||
cache = this.coreTemplates;
|
||||
this.templates.set(path, moduleName);
|
||||
}
|
||||
|
||||
path = path.replace(/^discourse\/templates\//, "");
|
||||
|
||||
appendToCache(cache, path, originalPath);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -79,41 +86,7 @@ class DiscourseTemplateMap {
|
|||
* theme/plugin namespaces and overrides.
|
||||
*/
|
||||
resolve(name) {
|
||||
const [themeMatch, pluginMatch, coreMatch] = this.prioritizedCaches.map(
|
||||
(cache) => {
|
||||
const val = cache.get(name);
|
||||
if (val) {
|
||||
return val[val.length - 1];
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
if ((themeMatch || pluginMatch) && coreMatch) {
|
||||
deprecated(
|
||||
`[${
|
||||
themeMatch || pluginMatch
|
||||
}] Overriding templates is deprecated, and will soon be disabled. Use plugin outlets, CSS, or other customization APIs instead.`,
|
||||
{
|
||||
id: "discourse.resolver-template-overrides",
|
||||
url: "https://meta.discourse.org/t/247487",
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
return themeMatch || pluginMatch || coreMatch;
|
||||
}
|
||||
|
||||
/**
|
||||
* List all available template keys, after theme/plugin namespaces have
|
||||
* been stripped.
|
||||
*/
|
||||
keys() {
|
||||
const uniqueKeys = new Set([
|
||||
...this.coreTemplates.keys(),
|
||||
...this.pluginTemplates.keys(),
|
||||
...this.themeTemplates.keys(),
|
||||
]);
|
||||
return [...uniqueKeys];
|
||||
return this.templates.get(name);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -270,7 +270,6 @@ export function buildResolver(baseName) {
|
|||
|
||||
resolveTemplate(parsedName) {
|
||||
return (
|
||||
this.findMobileTemplate(parsedName) ||
|
||||
this.findTemplate(parsedName) ||
|
||||
this.findAdminTemplate(parsedName) ||
|
||||
this.findLoadingTemplate(parsedName) ||
|
||||
|
@ -296,21 +295,6 @@ export function buildResolver(baseName) {
|
|||
}
|
||||
}
|
||||
|
||||
findMobileTemplate(parsedName) {
|
||||
const result = this.findTemplate(parsedName, "mobile/");
|
||||
if (result) {
|
||||
deprecated(
|
||||
`Mobile-specific hbs templates are deprecated. Use responsive CSS or {{#if this.site.mobileView}} instead. [${parsedName}]`,
|
||||
{
|
||||
id: "discourse.mobile-templates",
|
||||
}
|
||||
);
|
||||
}
|
||||
if (_options.mobileView) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a template path, this function will return a template, taking into account
|
||||
* priority rules for theme and plugin overrides. See `lib/discourse-template-map.js`
|
||||
|
|
|
@ -27,10 +27,6 @@ export const CRITICAL_DEPRECATIONS = [
|
|||
"discourse.qunit.acceptance-function",
|
||||
"discourse.qunit.global-exists",
|
||||
"discourse.post-stream.trigger-new-post",
|
||||
"discourse.mobile-templates",
|
||||
"discourse.mobile-view",
|
||||
"discourse.mobile-templates",
|
||||
"discourse.component-template-overrides",
|
||||
"discourse.plugin-outlet-classic-args-clash",
|
||||
"discourse.decorate-plugin-outlet",
|
||||
];
|
||||
|
|
|
@ -1,316 +0,0 @@
|
|||
import Component from "@glimmer/component";
|
||||
import { setComponentTemplate } from "@glimmer/manager";
|
||||
import { render } from "@ember/test-helpers";
|
||||
import { hbs } from "ember-cli-htmlbars";
|
||||
import { module, test } from "qunit";
|
||||
import { withSilencedDeprecationsAsync } from "discourse/lib/deprecated";
|
||||
import { forceMobile } from "discourse/lib/mobile";
|
||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||
import { registerTemporaryModule } from "../helpers/temporary-module-helper";
|
||||
|
||||
function silenceMobileAndOverrideDeprecations(hooks) {
|
||||
let unsilenceCallback;
|
||||
hooks.beforeEach(() => {
|
||||
const promise = new Promise((resolve) => (unsilenceCallback = resolve));
|
||||
withSilencedDeprecationsAsync(
|
||||
[
|
||||
"component-template-resolving", // silence ember's template resolving deprecation
|
||||
"discourse.mobile-templates",
|
||||
"discourse.resolver-template-overrides",
|
||||
"discourse.component-template-overrides",
|
||||
],
|
||||
() => promise
|
||||
);
|
||||
});
|
||||
hooks.afterEach(() => unsilenceCallback());
|
||||
}
|
||||
|
||||
// eslint-disable-next-line ember/no-empty-glimmer-component-classes
|
||||
class MockColocatedComponent extends Component {}
|
||||
setComponentTemplate(hbs`Colocated Original`, MockColocatedComponent);
|
||||
|
||||
// eslint-disable-next-line ember/no-empty-glimmer-component-classes
|
||||
class MockResolvedComponent extends Component {}
|
||||
const MockResolvedComponentTemplate = hbs`Resolved Original`;
|
||||
|
||||
const TestTemplate = hbs`
|
||||
<div id='mock-colocated'><MockColocated /></div>
|
||||
<div id='mock-resolved'><MockResolved /></div>
|
||||
`;
|
||||
|
||||
function registerBaseComponents(namespace = "discourse") {
|
||||
registerTemporaryModule(
|
||||
`${namespace}/components/mock-colocated`,
|
||||
MockColocatedComponent
|
||||
);
|
||||
registerTemporaryModule(
|
||||
`${namespace}/templates/mobile/components/mock-colocated`,
|
||||
hbs`Core mobile template`
|
||||
);
|
||||
registerTemporaryModule(
|
||||
`${namespace}/components/mock-resolved`,
|
||||
MockResolvedComponent
|
||||
);
|
||||
registerTemporaryModule(
|
||||
`${namespace}/templates/components/mock-resolved`,
|
||||
MockResolvedComponentTemplate
|
||||
);
|
||||
registerTemporaryModule(
|
||||
`${namespace}/templates/mobile/components/mock-resolved`,
|
||||
hbs`Core resolved mobile`
|
||||
);
|
||||
}
|
||||
|
||||
function registerThemeOverrides() {
|
||||
registerTemporaryModule(
|
||||
"discourse/theme-12/discourse/templates/components/mock-colocated",
|
||||
hbs`Colocated Theme Override`
|
||||
);
|
||||
registerTemporaryModule(
|
||||
`discourse/theme-12/discourse/templates/mobile/components/mock-colocated`,
|
||||
hbs`Colocated Mobile Theme Override`
|
||||
);
|
||||
registerTemporaryModule(
|
||||
"discourse/theme-12/discourse/templates/components/mock-resolved",
|
||||
hbs`Resolved Theme Override`
|
||||
);
|
||||
registerTemporaryModule(
|
||||
"discourse/theme-12/discourse/templates/mobile/components/mock-resolved",
|
||||
hbs`Resolved Mobile Theme Override`
|
||||
);
|
||||
}
|
||||
|
||||
function registerPluginOverrides() {
|
||||
registerTemporaryModule(
|
||||
`discourse/plugins/some-plugin-name/discourse/templates/components/mock-colocated`,
|
||||
hbs`Colocated Plugin Override`
|
||||
);
|
||||
registerTemporaryModule(
|
||||
`discourse/plugins/some-plugin-name/discourse/templates/components/mock-resolved`,
|
||||
hbs`Resolved Plugin Override`
|
||||
);
|
||||
}
|
||||
|
||||
function registerOtherPluginOverrides() {
|
||||
registerTemporaryModule(
|
||||
`discourse/plugins/other-plugin-name/discourse/templates/components/mock-colocated`,
|
||||
hbs`Colocated Other Plugin Override`
|
||||
);
|
||||
registerTemporaryModule(
|
||||
`discourse/plugins/other-plugin-name/discourse/templates/components/mock-resolved`,
|
||||
hbs`Resolved Other Plugin Override`
|
||||
);
|
||||
}
|
||||
|
||||
function registerTemplateOnlyComponents() {
|
||||
registerTemporaryModule(
|
||||
`discourse/templates/components/core-template-only-definition`,
|
||||
hbs`glimmer template-only component`
|
||||
);
|
||||
|
||||
registerTemporaryModule(
|
||||
`discourse/plugins/some-plugin-name/discourse/templates/components/plugin-template-only-definition`,
|
||||
hbs`classic component`
|
||||
);
|
||||
}
|
||||
|
||||
module("Integration | Initializers | plugin-component-templates", function (h) {
|
||||
silenceMobileAndOverrideDeprecations(h);
|
||||
|
||||
module("template-only component definition behaviour", function (hooks) {
|
||||
hooks.beforeEach(() => registerTemplateOnlyComponents());
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("treats plugin template-only definition as classic component", async function (assert) {
|
||||
await render(hbs`<PluginTemplateOnlyDefinition class='test-class'/>`);
|
||||
assert
|
||||
.dom("div.test-class")
|
||||
.hasText("classic component", "renders as classic component");
|
||||
});
|
||||
|
||||
test("leaves core template-only definition as glimmer template-only component", async function (assert) {
|
||||
await render(hbs`<CoreTemplateOnlyDefinition class='test-class'/>`);
|
||||
assert
|
||||
.dom("div.test-class")
|
||||
.doesNotExist("no classic component rendered");
|
||||
assert.dom().hasText("glimmer template-only component");
|
||||
});
|
||||
});
|
||||
|
||||
module("with no overrides", function (hooks) {
|
||||
hooks.beforeEach(() => registerBaseComponents());
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("renders core templates when there are no overrides", async function (assert) {
|
||||
await render(TestTemplate);
|
||||
assert
|
||||
.dom("#mock-colocated")
|
||||
.hasText("Colocated Original", "colocated component correct");
|
||||
assert
|
||||
.dom("#mock-resolved")
|
||||
.hasText("Resolved Original", "resolved component correct");
|
||||
});
|
||||
});
|
||||
|
||||
module("with core mobile overrides", function (hooks) {
|
||||
hooks.beforeEach(() => {
|
||||
registerBaseComponents();
|
||||
forceMobile();
|
||||
});
|
||||
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("core mobile overrides are used", async function (assert) {
|
||||
await render(TestTemplate);
|
||||
assert
|
||||
.dom("#mock-colocated")
|
||||
.hasText("Core mobile template", "colocated component correct");
|
||||
assert
|
||||
.dom("#mock-resolved")
|
||||
.hasText("Core resolved mobile", "resolved component correct");
|
||||
});
|
||||
});
|
||||
|
||||
module("with theme overrides", function (hooks) {
|
||||
hooks.beforeEach(() => registerBaseComponents());
|
||||
hooks.beforeEach(registerThemeOverrides);
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("theme overrides are used", async function (assert) {
|
||||
await render(TestTemplate);
|
||||
assert
|
||||
.dom("#mock-colocated")
|
||||
.hasText("Colocated Theme Override", "colocated component correct");
|
||||
assert
|
||||
.dom("#mock-resolved")
|
||||
.hasText("Resolved Theme Override", "resolved component correct");
|
||||
});
|
||||
});
|
||||
|
||||
module("with mobile theme overrides", function (hooks) {
|
||||
hooks.beforeEach(() => {
|
||||
registerThemeOverrides();
|
||||
forceMobile();
|
||||
registerBaseComponents();
|
||||
});
|
||||
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("mobile theme overrides are used", async function (assert) {
|
||||
await render(TestTemplate);
|
||||
assert
|
||||
.dom("#mock-colocated")
|
||||
.hasText(
|
||||
"Colocated Mobile Theme Override",
|
||||
"colocated component correct"
|
||||
);
|
||||
assert
|
||||
.dom("#mock-resolved")
|
||||
.hasText(
|
||||
"Resolved Mobile Theme Override",
|
||||
"resolved component correct"
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
module("with plugin overrides", function (hooks) {
|
||||
hooks.beforeEach(() => registerBaseComponents());
|
||||
hooks.beforeEach(registerPluginOverrides);
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("plugin overrides are used", async function (assert) {
|
||||
await render(TestTemplate);
|
||||
assert
|
||||
.dom("#mock-colocated")
|
||||
.hasText("Colocated Plugin Override", "colocated component correct");
|
||||
assert
|
||||
.dom("#mock-resolved")
|
||||
.hasText("Resolved Plugin Override", "resolved component correct");
|
||||
});
|
||||
});
|
||||
|
||||
module("with theme and plugin overrides", function (hooks) {
|
||||
hooks.beforeEach(() => registerBaseComponents());
|
||||
hooks.beforeEach(registerPluginOverrides);
|
||||
hooks.beforeEach(registerThemeOverrides);
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("plugin overrides are used", async function (assert) {
|
||||
await render(TestTemplate);
|
||||
assert
|
||||
.dom("#mock-colocated")
|
||||
.hasText("Colocated Theme Override", "colocated component correct");
|
||||
assert
|
||||
.dom("#mock-resolved")
|
||||
.hasText("Resolved Theme Override", "resolved component correct");
|
||||
});
|
||||
});
|
||||
|
||||
module("with multiple plugin overrides", function (hooks) {
|
||||
hooks.beforeEach(() => registerBaseComponents());
|
||||
hooks.beforeEach(registerPluginOverrides);
|
||||
hooks.beforeEach(registerOtherPluginOverrides);
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("last-defined plugin overrides are used", async function (assert) {
|
||||
await render(TestTemplate);
|
||||
assert
|
||||
.dom("#mock-colocated")
|
||||
.hasText(
|
||||
"Colocated Other Plugin Override",
|
||||
"colocated component correct"
|
||||
);
|
||||
assert
|
||||
.dom("#mock-resolved")
|
||||
.hasText(
|
||||
"Resolved Other Plugin Override",
|
||||
"resolved component correct"
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
module("theme overriding plugin", function (hooks) {
|
||||
hooks.beforeEach(() =>
|
||||
registerBaseComponents("discourse/plugins/base-plugin/discourse")
|
||||
);
|
||||
hooks.beforeEach(registerThemeOverrides);
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("theme overrides plugin component", async function (assert) {
|
||||
await render(TestTemplate);
|
||||
assert
|
||||
.dom("#mock-colocated")
|
||||
.hasText("Colocated Theme Override", "colocated component correct");
|
||||
assert
|
||||
.dom("#mock-resolved")
|
||||
.hasText("Resolved Theme Override", "resolved component correct");
|
||||
});
|
||||
});
|
||||
|
||||
module("overriding gjs component", function (hooks) {
|
||||
hooks.beforeEach(() => {
|
||||
registerTemporaryModule(
|
||||
`discourse/components/mock-gjs-component`,
|
||||
class MyComponent extends Component {
|
||||
<template>
|
||||
<span class="greeting">Hello world</span>
|
||||
</template>
|
||||
}
|
||||
);
|
||||
|
||||
registerTemporaryModule(
|
||||
`discourse/plugins/my-plugin/discourse/templates/components/mock-gjs-component`,
|
||||
hbs`<span class="greeting">Overridden greeting</span>`
|
||||
);
|
||||
});
|
||||
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test("theme overrides plugin component", async function (assert) {
|
||||
await render(hbs`<MockGjsComponent />`);
|
||||
assert
|
||||
.dom(".greeting")
|
||||
.hasText("Overridden greeting", "it renders the overridden version");
|
||||
});
|
||||
});
|
||||
});
|
|
@ -2,7 +2,7 @@ import { setupTest } from "ember-qunit";
|
|||
import { module, test } from "qunit";
|
||||
import { withSilencedDeprecations } from "discourse/lib/deprecated";
|
||||
import DiscourseTemplateMap from "discourse/lib/discourse-template-map";
|
||||
import { buildResolver, setResolverOption } from "discourse/resolver";
|
||||
import { buildResolver } from "discourse/resolver";
|
||||
import { registerTemporaryModule } from "discourse/tests/helpers/temporary-module-helper";
|
||||
|
||||
let resolver;
|
||||
|
@ -238,55 +238,14 @@ module("Unit | Ember | resolver", function (hooks) {
|
|||
);
|
||||
});
|
||||
|
||||
test("resolves mobile templates to 'mobile/' namespace", function (assert) {
|
||||
setTemplates([
|
||||
"discourse/templates/mobile/foo",
|
||||
"discourse/templates/bar",
|
||||
"discourse/templates/mobile/bar",
|
||||
"discourse/templates/baz",
|
||||
]);
|
||||
|
||||
setResolverOption("mobileView", true);
|
||||
|
||||
withSilencedDeprecations("discourse.mobile-templates", () => {
|
||||
// Default with mobile/ added
|
||||
lookupTemplate(
|
||||
assert,
|
||||
"template:foo",
|
||||
"discourse/templates/mobile/foo",
|
||||
"finding mobile version even if normal one is not present"
|
||||
);
|
||||
|
||||
// Default with mobile preferred
|
||||
lookupTemplate(
|
||||
assert,
|
||||
"template:bar",
|
||||
"discourse/templates/mobile/bar",
|
||||
"preferring mobile version when both mobile and normal versions are present"
|
||||
);
|
||||
|
||||
// Default when mobile not present
|
||||
lookupTemplate(
|
||||
assert,
|
||||
"template:baz",
|
||||
"discourse/templates/baz",
|
||||
"falling back to a normal version when mobile version is not present"
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
test("resolves templates to plugin and theme namespaces", function (assert) {
|
||||
setTemplates([
|
||||
"discourse/plugins/my-plugin/discourse/templates/foo",
|
||||
"discourse/templates/bar",
|
||||
"discourse/plugins/my-plugin/discourse/templates/bar",
|
||||
"discourse/templates/baz",
|
||||
"discourse/plugins/my-plugin/discourse/templates/baz",
|
||||
"discourse/theme-12/discourse/templates/baz",
|
||||
"discourse/templates/qux",
|
||||
]);
|
||||
|
||||
// Defined in plugin only
|
||||
// Defined in plugin
|
||||
lookupTemplate(
|
||||
assert,
|
||||
"template:foo",
|
||||
|
@ -294,17 +253,7 @@ module("Unit | Ember | resolver", function (hooks) {
|
|||
"finding plugin version even if normal one is not present"
|
||||
);
|
||||
|
||||
// Defined in core and plugin
|
||||
withSilencedDeprecations("discourse.resolver-template-overrides", () => {
|
||||
lookupTemplate(
|
||||
assert,
|
||||
"template:bar",
|
||||
"discourse/plugins/my-plugin/discourse/templates/bar",
|
||||
"prefers plugin version over core"
|
||||
);
|
||||
});
|
||||
|
||||
// Defined in core and plugin and theme
|
||||
// Defined in theme
|
||||
withSilencedDeprecations("discourse.resolver-template-overrides", () => {
|
||||
lookupTemplate(
|
||||
assert,
|
||||
|
@ -314,7 +263,7 @@ module("Unit | Ember | resolver", function (hooks) {
|
|||
);
|
||||
});
|
||||
|
||||
// Defined in core only
|
||||
// Defined in core
|
||||
lookupTemplate(
|
||||
assert,
|
||||
"template:qux",
|
||||
|
@ -323,47 +272,6 @@ module("Unit | Ember | resolver", function (hooks) {
|
|||
);
|
||||
});
|
||||
|
||||
test("resolves plugin mobile templates", function (assert) {
|
||||
setTemplates([
|
||||
"discourse/plugins/my-plugin/discourse/templates/mobile/foo",
|
||||
"discourse/plugins/my-plugin/discourse/templates/mobile/bar",
|
||||
"discourse/plugins/my-plugin/discourse/templates/bar",
|
||||
"discourse/plugins/my-plugin/discourse/templates/mobile/baz",
|
||||
"discourse/templates/mobile/baz",
|
||||
]);
|
||||
|
||||
setResolverOption("mobileView", true);
|
||||
|
||||
withSilencedDeprecations(
|
||||
["discourse.mobile-templates", "discourse.resolver-template-overrides"],
|
||||
() => {
|
||||
// Default with plugin template override
|
||||
lookupTemplate(
|
||||
assert,
|
||||
"template:foo",
|
||||
"discourse/plugins/my-plugin/discourse/templates/mobile/foo",
|
||||
"finding plugin version even if normal one is not present"
|
||||
);
|
||||
|
||||
// Default with plugin mobile added, takes precedence over non-mobile
|
||||
lookupTemplate(
|
||||
assert,
|
||||
"template:bar",
|
||||
"discourse/plugins/my-plugin/discourse/templates/mobile/bar",
|
||||
"preferring plugin mobile version when both non-mobile plugin version is also present"
|
||||
);
|
||||
|
||||
// Default with when non-plugin mobile version is present
|
||||
lookupTemplate(
|
||||
assert,
|
||||
"template:baz",
|
||||
"discourse/plugins/my-plugin/discourse/templates/mobile/baz",
|
||||
"preferring plugin mobile version over non-plugin mobile version"
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
test("resolves templates with 'admin' prefix", function (assert) {
|
||||
setTemplates([
|
||||
"admin/templates/foo",
|
||||
|
|
|
@ -64,34 +64,3 @@ index cd68afe479229ed77b4e4c93759aa90913cdc49c..6e7d71bbeb28f18259fa8afb48ef7827
|
|||
registerHandler = function registerHandler(type, callback) {
|
||||
let nextHandler = HANDLERS[type] || (() => {});
|
||||
HANDLERS[type] = (message, options) => {
|
||||
diff --git a/dist/packages/@glimmer/manager/index.js b/dist/packages/@glimmer/manager/index.js
|
||||
index ca6ac88fe0fcc7ad335b19fafa039fb6c5ebd14a..462672f9c1cdcca76e9e6713606c1b8d8797eff3 100644
|
||||
--- a/dist/packages/@glimmer/manager/index.js
|
||||
+++ b/dist/packages/@glimmer/manager/index.js
|
||||
@@ -546,20 +546,23 @@ function setModifierManager(factory, obj) {
|
||||
function setHelperManager(factory, obj) {
|
||||
return setInternalHelperManager(new CustomHelperManager(factory), obj);
|
||||
}
|
||||
+let TEMPLATE_OVERRIDES = new WeakMap();
|
||||
const TEMPLATES = new WeakMap(),
|
||||
getPrototypeOf = Object.getPrototypeOf;
|
||||
function setComponentTemplate(factory, obj) {
|
||||
if (isDevelopingApp() && (null === obj || "object" != typeof obj && "function" != typeof obj)) throw new Error(`Cannot call \`setComponentTemplate\` on \`${debugToString$1(obj)}\``);
|
||||
- if (isDevelopingApp() && TEMPLATES.has(obj)) throw new Error(`Cannot call \`setComponentTemplate\` multiple times on the same class (\`${debugToString$1(obj)}\`)`);
|
||||
+ // if (isDevelopingApp() && TEMPLATES.has(obj)) throw new Error(`Cannot call \`setComponentTemplate\` multiple times on the same class (\`${debugToString$1(obj)}\`)`);
|
||||
+ if (TEMPLATES.has(obj)) return TEMPLATE_OVERRIDES.set(obj, factory), obj;
|
||||
return TEMPLATES.set(obj, factory), obj;
|
||||
}
|
||||
function getComponentTemplate(obj) {
|
||||
let pointer = obj;
|
||||
for (; null !== pointer;) {
|
||||
- let template = TEMPLATES.get(pointer);
|
||||
+ let template = TEMPLATE_OVERRIDES.get(pointer) ?? TEMPLATES.get(pointer);
|
||||
if (void 0 !== template) return template;
|
||||
pointer = getPrototypeOf(pointer);
|
||||
}
|
||||
}
|
||||
+function clearTemplateOverrides() { TEMPLATE_OVERRIDES = new WeakMap() };
|
||||
|
||||
-export { CustomComponentManager, CustomHelperManager, CustomModifierManager, capabilityFlagsFrom, componentCapabilities, getComponentTemplate, getCustomTagFor, getInternalComponentManager, getInternalHelperManager, getInternalModifierManager, hasCapability, hasDestroyable, hasInternalComponentManager, hasInternalHelperManager, hasInternalModifierManager, hasValue, helperCapabilities, managerHasCapability, modifierCapabilities, setComponentManager, setComponentTemplate, setCustomTagFor, setHelperManager, setInternalComponentManager, setInternalHelperManager, setInternalModifierManager, setModifierManager };
|
||||
+export { CustomComponentManager, CustomHelperManager, CustomModifierManager, capabilityFlagsFrom, componentCapabilities, getComponentTemplate, clearTemplateOverrides, getCustomTagFor, getInternalComponentManager, getInternalHelperManager, getInternalModifierManager, hasCapability, hasDestroyable, hasInternalComponentManager, hasInternalHelperManager, hasInternalModifierManager, hasValue, helperCapabilities, managerHasCapability, modifierCapabilities, setComponentManager, setComponentTemplate, setCustomTagFor, setHelperManager, setInternalComponentManager, setInternalHelperManager, setInternalModifierManager, setModifierManager };
|
||||
|
|
82
pnpm-lock.yaml
generated
82
pnpm-lock.yaml
generated
|
@ -12,7 +12,7 @@ patchedDependencies:
|
|||
hash: wki6cycbrrm5sscamn5w4cujby
|
||||
path: patches/babel-plugin-debug-macros@0.3.4.patch
|
||||
ember-source@5.12.0:
|
||||
hash: xx7mvsb7nmshqkkqhmf45r3hse
|
||||
hash: pqnuctuxbp6ekxyjszyhrgmysm
|
||||
path: patches/ember-source@5.12.0.patch
|
||||
ember-this-fallback@0.4.0:
|
||||
hash: znalyv6akdxlqfpmxunrdi3osa
|
||||
|
@ -184,13 +184,13 @@ importers:
|
|||
version: 1.1.3
|
||||
ember-load-initializers:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-resolver:
|
||||
specifier: ^13.1.1
|
||||
version: 13.1.1
|
||||
ember-source:
|
||||
specifier: ~5.12.0
|
||||
version: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
version: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source-channel-url:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0(encoding@0.1.13)
|
||||
|
@ -386,13 +386,13 @@ importers:
|
|||
version: 0.9.1(patch_hash=s67qh4jsmpbr3llstdi3a5zeze)
|
||||
'@ember/legacy-built-in-components':
|
||||
specifier: ^0.5.0
|
||||
version: 0.5.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 0.5.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
'@ember/optional-features':
|
||||
specifier: ^2.2.0
|
||||
version: 2.2.0
|
||||
'@ember/render-modifiers':
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 3.0.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
'@ember/string':
|
||||
specifier: ^4.0.1
|
||||
version: 4.0.1
|
||||
|
@ -506,19 +506,19 @@ importers:
|
|||
version: 2.1.1(@babel/core@7.27.4)
|
||||
ember-cached-decorator-polyfill:
|
||||
specifier: ^1.0.2
|
||||
version: 1.0.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 1.0.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-cli:
|
||||
specifier: ~6.4.0
|
||||
version: 6.4.0(handlebars@4.7.8)(underscore@1.13.7)
|
||||
ember-cli-app-version:
|
||||
specifier: ^7.0.0
|
||||
version: 7.0.0(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 7.0.0(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-cli-babel:
|
||||
specifier: ^8.2.0
|
||||
version: 8.2.0(@babel/core@7.27.4)
|
||||
ember-cli-deprecation-workflow:
|
||||
specifier: ^3.3.0
|
||||
version: 3.3.0(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 3.3.0(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-cli-htmlbars:
|
||||
specifier: ^6.3.0
|
||||
version: 6.3.0
|
||||
|
@ -539,10 +539,10 @@ importers:
|
|||
version: 6.1.1
|
||||
ember-exam:
|
||||
specifier: ^9.1.0
|
||||
version: 9.1.0(@glint/template@1.4.1-unstable.34c4510)(ember-qunit@9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510))(@glint/template@1.4.1-unstable.34c4510)(qunit@2.24.1))(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))(qunit@2.24.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
version: 9.1.0(@glint/template@1.4.1-unstable.34c4510)(ember-qunit@9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510))(@glint/template@1.4.1-unstable.34c4510)(qunit@2.24.1))(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))(qunit@2.24.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-load-initializers:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-modifier:
|
||||
specifier: ^4.2.2
|
||||
version: 4.2.2(@babel/core@7.27.4)
|
||||
|
@ -551,7 +551,7 @@ importers:
|
|||
version: 9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510))(@glint/template@1.4.1-unstable.34c4510)(qunit@2.24.1)
|
||||
ember-source:
|
||||
specifier: ~5.12.0
|
||||
version: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
version: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-template-imports:
|
||||
specifier: ^4.3.0
|
||||
version: 4.3.0
|
||||
|
@ -686,7 +686,7 @@ importers:
|
|||
version: 4.3.0
|
||||
ember-this-fallback:
|
||||
specifier: ^0.4.0
|
||||
version: 0.4.0(patch_hash=znalyv6akdxlqfpmxunrdi3osa)(ember-cli-htmlbars@6.3.0)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 0.4.0(patch_hash=znalyv6akdxlqfpmxunrdi3osa)(ember-cli-htmlbars@6.3.0)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
devDependencies:
|
||||
ember-cli:
|
||||
specifier: ~6.4.0
|
||||
|
@ -742,13 +742,13 @@ importers:
|
|||
version: 1.1.3
|
||||
ember-load-initializers:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-resolver:
|
||||
specifier: ^13.1.1
|
||||
version: 13.1.1
|
||||
ember-source:
|
||||
specifier: ~5.12.0
|
||||
version: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
version: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source-channel-url:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0(encoding@0.1.13)
|
||||
|
@ -768,7 +768,7 @@ importers:
|
|||
version: 7.27.4(supports-color@8.1.1)
|
||||
'@ember/render-modifiers':
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 3.0.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
'@floating-ui/dom':
|
||||
specifier: ^1.7.1
|
||||
version: 1.7.1
|
||||
|
@ -829,13 +829,13 @@ importers:
|
|||
version: 1.1.3
|
||||
ember-load-initializers:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-resolver:
|
||||
specifier: ^13.1.1
|
||||
version: 13.1.1
|
||||
ember-source:
|
||||
specifier: ~5.12.0
|
||||
version: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
version: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source-channel-url:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0(encoding@0.1.13)
|
||||
|
@ -905,13 +905,13 @@ importers:
|
|||
version: 1.1.3
|
||||
ember-load-initializers:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-resolver:
|
||||
specifier: ^13.1.1
|
||||
version: 13.1.1
|
||||
ember-source:
|
||||
specifier: ~5.12.0
|
||||
version: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
version: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source-channel-url:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0(encoding@0.1.13)
|
||||
|
@ -944,7 +944,7 @@ importers:
|
|||
version: 2.10.0(@glint/template@1.4.1-unstable.34c4510)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-cached-decorator-polyfill:
|
||||
specifier: ^1.0.2
|
||||
version: 1.0.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 1.0.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-cli-babel:
|
||||
specifier: ^8.2.0
|
||||
version: 8.2.0(@babel/core@7.27.4)
|
||||
|
@ -999,13 +999,13 @@ importers:
|
|||
version: 1.1.3
|
||||
ember-load-initializers:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 3.0.1(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
ember-resolver:
|
||||
specifier: ^13.1.1
|
||||
version: 13.1.1
|
||||
ember-source:
|
||||
specifier: ~5.12.0
|
||||
version: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
version: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source-channel-url:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0(encoding@0.1.13)
|
||||
|
@ -1050,10 +1050,10 @@ importers:
|
|||
version: 6.3.0
|
||||
ember-source:
|
||||
specifier: ~5.12.0
|
||||
version: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
version: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-this-fallback:
|
||||
specifier: ^0.4.0
|
||||
version: 0.4.0(patch_hash=znalyv6akdxlqfpmxunrdi3osa)(ember-cli-htmlbars@6.3.0)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
version: 0.4.0(patch_hash=znalyv6akdxlqfpmxunrdi3osa)(ember-cli-htmlbars@6.3.0)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))
|
||||
fastestsmallesttextencoderdecoder:
|
||||
specifier: ^1.0.22
|
||||
version: 1.0.22
|
||||
|
@ -9730,13 +9730,13 @@ snapshots:
|
|||
|
||||
'@ember/edition-utils@1.2.0': {}
|
||||
|
||||
'@ember/legacy-built-in-components@0.5.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))':
|
||||
'@ember/legacy-built-in-components@0.5.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))':
|
||||
dependencies:
|
||||
'@embroider/macros': 1.16.12(@glint/template@1.4.1-unstable.34c4510)
|
||||
ember-cli-babel: 7.26.11
|
||||
ember-cli-htmlbars: 5.7.2
|
||||
ember-cli-typescript: 4.2.1
|
||||
ember-source: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
transitivePeerDependencies:
|
||||
- '@glint/template'
|
||||
- supports-color
|
||||
|
@ -9752,13 +9752,13 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@ember/render-modifiers@3.0.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))':
|
||||
'@ember/render-modifiers@3.0.0(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))':
|
||||
dependencies:
|
||||
'@babel/core': 7.27.4(supports-color@8.1.1)
|
||||
'@embroider/macros': 1.16.12(@glint/template@1.4.1-unstable.34c4510)
|
||||
ember-cli-babel: 8.2.0(@babel/core@7.27.4)
|
||||
ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.27.4)
|
||||
ember-source: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
optionalDependencies:
|
||||
'@glint/template': 1.4.1-unstable.34c4510
|
||||
transitivePeerDependencies:
|
||||
|
@ -12755,7 +12755,7 @@ snapshots:
|
|||
- '@babel/core'
|
||||
- supports-color
|
||||
|
||||
ember-cached-decorator-polyfill@1.0.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
ember-cached-decorator-polyfill@1.0.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
dependencies:
|
||||
'@embroider/macros': 1.16.12(@glint/template@1.4.1-unstable.34c4510)
|
||||
'@glimmer/tracking': 1.1.2
|
||||
|
@ -12763,16 +12763,16 @@ snapshots:
|
|||
ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.27.4)
|
||||
ember-cli-babel: 7.26.11
|
||||
ember-cli-babel-plugin-helpers: 1.1.1
|
||||
ember-source: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- '@glint/template'
|
||||
- supports-color
|
||||
|
||||
ember-cli-app-version@7.0.0(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
ember-cli-app-version@7.0.0(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
dependencies:
|
||||
ember-cli-babel: 7.26.11
|
||||
ember-source: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
git-repo-info: 2.1.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
@ -12847,11 +12847,11 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
ember-cli-deprecation-workflow@3.3.0(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
ember-cli-deprecation-workflow@3.3.0(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
dependencies:
|
||||
'@babel/core': 7.27.4(supports-color@8.1.1)
|
||||
ember-cli-babel: 8.2.0(@babel/core@7.27.4)
|
||||
ember-source: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
@ -13196,7 +13196,7 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- eslint
|
||||
|
||||
ember-exam@9.1.0(@glint/template@1.4.1-unstable.34c4510)(ember-qunit@9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510))(@glint/template@1.4.1-unstable.34c4510)(qunit@2.24.1))(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))(qunit@2.24.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)):
|
||||
ember-exam@9.1.0(@glint/template@1.4.1-unstable.34c4510)(ember-qunit@9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510))(@glint/template@1.4.1-unstable.34c4510)(qunit@2.24.1))(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)))(qunit@2.24.1)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)):
|
||||
dependencies:
|
||||
'@babel/core': 7.27.4(supports-color@8.1.1)
|
||||
chalk: 5.4.1
|
||||
|
@ -13205,7 +13205,7 @@ snapshots:
|
|||
ember-auto-import: 2.10.0(@glint/template@1.4.1-unstable.34c4510)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-cli-babel: 8.2.0(@babel/core@7.27.4)
|
||||
ember-qunit: 9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.27.4)(@glint/template@1.4.1-unstable.34c4510))(@glint/template@1.4.1-unstable.34c4510)(qunit@2.24.1)
|
||||
ember-source: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
execa: 8.0.1
|
||||
fs-extra: 11.3.0
|
||||
js-yaml: 4.1.0
|
||||
|
@ -13219,9 +13219,9 @@ snapshots:
|
|||
- supports-color
|
||||
- webpack
|
||||
|
||||
ember-load-initializers@3.0.1(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
ember-load-initializers@3.0.1(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
dependencies:
|
||||
ember-source: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
|
||||
ember-modifier-manager-polyfill@1.2.0(@babel/core@7.27.4):
|
||||
dependencies:
|
||||
|
@ -13281,7 +13281,7 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- encoding
|
||||
|
||||
ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)):
|
||||
ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5)):
|
||||
dependencies:
|
||||
'@babel/core': 7.27.4(supports-color@8.1.1)
|
||||
'@ember/edition-utils': 1.2.0
|
||||
|
@ -13394,7 +13394,7 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
ember-this-fallback@0.4.0(patch_hash=znalyv6akdxlqfpmxunrdi3osa)(ember-cli-htmlbars@6.3.0)(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
ember-this-fallback@0.4.0(patch_hash=znalyv6akdxlqfpmxunrdi3osa)(ember-cli-htmlbars@6.3.0)(ember-source@5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))):
|
||||
dependencies:
|
||||
'@glimmer/syntax': 0.84.3
|
||||
babel-plugin-ember-template-compilation: 2.4.1
|
||||
|
@ -13402,7 +13402,7 @@ snapshots:
|
|||
ember-cli-babel: 7.26.11
|
||||
ember-cli-htmlbars: 6.3.0
|
||||
ember-cli-typescript: 5.3.0
|
||||
ember-source: 5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
ember-source: 5.12.0(patch_hash=pqnuctuxbp6ekxyjszyhrgmysm)(@glimmer/component@1.1.2(@babel/core@7.27.4))(@glint/template@1.4.1-unstable.34c4510)(rsvp@4.8.5)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
lodash: 4.17.21
|
||||
winston: 3.14.2
|
||||
zod: 3.25.48
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue