ember-vite-hmr 1.4.18 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/addon-main.cjs +0 -44
- package/dist/_app_/instance-initializers/setup-hmr-manager.js +1 -0
- package/dist/instance-initializers/setup-hmr-manager.js +82 -0
- package/dist/instance-initializers/setup-hmr-manager.js.map +1 -0
- package/dist/lib/babel-plugin.d.ts +1 -1
- package/dist/lib/babel-plugin.js +14 -6
- package/dist/lib/hmr.js +113 -9
- package/dist/services/vite-hot-reload.js +20 -32
- package/dist/services/vite-hot-reload.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -29,6 +29,19 @@ plugins: [
|
|
|
29
29
|
]
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
update you `babel.config.cjs`
|
|
33
|
+
|
|
34
|
+
```js
|
|
35
|
+
const { hotAstProcessor } = require('ember-vite-hmr/lib/babel-plugin');
|
|
36
|
+
plugins: [['ember-vite-hmr/lib/babel-plugin'], ...other];
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
and for `'babel-plugin-ember-template-compilation'`
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
transforms: [hotAstProcessor.transform, ...templateCompatSupport()],
|
|
43
|
+
```
|
|
44
|
+
|
|
32
45
|
## Contributing
|
|
33
46
|
|
|
34
47
|
See the [Contributing](CONTRIBUTING.md) guide for details.
|
package/addon-main.cjs
CHANGED
|
@@ -1,48 +1,4 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const { addonV1Shim } = require('@embroider/addon-shim');
|
|
4
|
-
const path = require('path');
|
|
5
4
|
module.exports = addonV1Shim(__dirname);
|
|
6
|
-
const included = module.exports.included;
|
|
7
|
-
|
|
8
|
-
Object.assign(module.exports, {
|
|
9
|
-
_getBabelOptions() {
|
|
10
|
-
const parentOptions = this.parent && this.parent.options;
|
|
11
|
-
const appOptions = this.app && this.app.options;
|
|
12
|
-
const addonOptions = parentOptions || appOptions || {};
|
|
13
|
-
|
|
14
|
-
addonOptions.babel = addonOptions.babel || {};
|
|
15
|
-
addonOptions.babel.plugins = addonOptions.babel.plugins || [];
|
|
16
|
-
return addonOptions.babel;
|
|
17
|
-
},
|
|
18
|
-
included(...args) {
|
|
19
|
-
this._getBabelOptions().plugins.push([
|
|
20
|
-
require.resolve('./dist/lib/babel-plugin.js'),
|
|
21
|
-
{ v: 4, appName: this.app.name },
|
|
22
|
-
]);
|
|
23
|
-
this._super.included; // need to access this somehow? otherwise it fails later on...
|
|
24
|
-
|
|
25
|
-
let astPlugin = this._buildPlugin();
|
|
26
|
-
astPlugin.parallelBabel = {
|
|
27
|
-
requireFile: __filename,
|
|
28
|
-
buildUsing: '_buildPlugin',
|
|
29
|
-
params: {},
|
|
30
|
-
};
|
|
31
|
-
const compatAppBuilder = require.resolve(
|
|
32
|
-
'@embroider/compat/src/compat-app-builder',
|
|
33
|
-
{ paths: [process.cwd()] },
|
|
34
|
-
);
|
|
35
|
-
const CompatAppBuilder = require(compatAppBuilder).CompatAppBuilder;
|
|
36
|
-
const etcOptions = CompatAppBuilder.prototype.etcOptions;
|
|
37
|
-
CompatAppBuilder.prototype.etcOptions = async function (...args) {
|
|
38
|
-
const opts = await etcOptions.call(this, ...args);
|
|
39
|
-
opts.transforms.push(astPlugin);
|
|
40
|
-
return opts;
|
|
41
|
-
};
|
|
42
|
-
included.call(this, ...args);
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
_buildPlugin() {
|
|
46
|
-
return require('./dist/lib/babel-plugin').hotAstProcessor.transform;
|
|
47
|
-
},
|
|
48
|
-
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-vite-hmr/instance-initializers/setup-hmr-manager";
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import Route from '@ember/routing/route';
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { getInternalComponentManager } from '@glimmer/manager';
|
|
4
|
+
import '@glimmer/tracking';
|
|
5
|
+
import '@glimmer/reference';
|
|
6
|
+
import '@glimmer/runtime';
|
|
7
|
+
|
|
8
|
+
function findPropertyDescriptor(component, key) {
|
|
9
|
+
let proto = component;
|
|
10
|
+
while (proto) {
|
|
11
|
+
const desc = Object.getOwnPropertyDescriptor(proto, key);
|
|
12
|
+
if (desc) return desc;
|
|
13
|
+
proto = Object.getPrototypeOf(proto);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function getState(component, skip) {
|
|
17
|
+
const state = {};
|
|
18
|
+
if (!component) {
|
|
19
|
+
return state;
|
|
20
|
+
}
|
|
21
|
+
for (const key in component) {
|
|
22
|
+
if (skip.includes(key)) continue;
|
|
23
|
+
const entry = findPropertyDescriptor(component, key);
|
|
24
|
+
if (entry) {
|
|
25
|
+
if (entry.writable && !Object.prototype.toString.call(entry.value).includes('Function')) {
|
|
26
|
+
state[key] = component[key];
|
|
27
|
+
}
|
|
28
|
+
if (entry.set) {
|
|
29
|
+
state[key] = component[key];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return state;
|
|
34
|
+
}
|
|
35
|
+
function syncState(instance) {
|
|
36
|
+
if (instance.args.__hot__) {
|
|
37
|
+
const state = instance.__get_hot_state__?.() || instance.args.__hot__.getState?.();
|
|
38
|
+
for (const k in state) {
|
|
39
|
+
instance[k] = state[k];
|
|
40
|
+
}
|
|
41
|
+
instance.args.__hot__.getState = () => getState(instance, ['args']);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function initialize() {
|
|
45
|
+
const ComponentManager = getInternalComponentManager(Component);
|
|
46
|
+
const proto = Object.getPrototypeOf(ComponentManager);
|
|
47
|
+
const create = proto.create;
|
|
48
|
+
proto.create = function (...args) {
|
|
49
|
+
const instance = create.call(this, ...args);
|
|
50
|
+
syncState(instance.component);
|
|
51
|
+
return instance;
|
|
52
|
+
};
|
|
53
|
+
const setupController = Route.prototype.setupController;
|
|
54
|
+
const StateCache = {};
|
|
55
|
+
Route.prototype.setupController = function (...args) {
|
|
56
|
+
const controller = args[0];
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
const r = setupController.call(this, ...args);
|
|
59
|
+
const fullRouteName = this.fullRouteName;
|
|
60
|
+
const state = StateCache[fullRouteName] || {};
|
|
61
|
+
const skip = ['_qpDelegate', 'target', 'queryParams'];
|
|
62
|
+
const routerState = getState(state.router, skip);
|
|
63
|
+
const controllerState = getState(state.controller, skip);
|
|
64
|
+
for (const k in routerState) {
|
|
65
|
+
this[k] = routerState[k];
|
|
66
|
+
}
|
|
67
|
+
for (const k in controllerState) {
|
|
68
|
+
controller[k] = controllerState[k];
|
|
69
|
+
}
|
|
70
|
+
StateCache[fullRouteName] = {
|
|
71
|
+
route: this,
|
|
72
|
+
controller
|
|
73
|
+
};
|
|
74
|
+
return r;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
var setupHmrManager = {
|
|
78
|
+
initialize
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export { setupHmrManager as default, initialize };
|
|
82
|
+
//# sourceMappingURL=setup-hmr-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-hmr-manager.js","sources":["../../src/instance-initializers/setup-hmr-manager.ts"],"sourcesContent":["import Route from '@ember/routing/route';\nimport Controller from '@ember/controller';\nimport Component from '@glimmer/component';\n// @ts-ignore\nimport { getInternalComponentManager } from '@glimmer/manager';\n\n// vite dep optimizer is currently broken and cannot optimize new deps, need to include this ones from start\nimport { tracked } from '@glimmer/tracking';\n// @ts-ignore\nimport { createComputeRef } from '@glimmer/reference';\n// @ts-ignore\nimport { curry } from '@glimmer/runtime';\n\n(function () {\n let run = false;\n if (run) {\n console.log(tracked, createComputeRef, curry);\n }\n})();\n\ninterface HotComponent extends Component<{ __hot__?: any }> {\n __get_hot_state__?: () => Record<string, any>;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: any;\n};\n\nfunction findPropertyDescriptor(component: Object, key: string) {\n let proto = component;\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, key);\n if (desc) return desc;\n proto = Object.getPrototypeOf(proto);\n }\n}\n\nfunction getState(component: HotComponent, skip: string[]) {\n const state: Record<string, any> = {};\n if (!component) {\n return state;\n }\n for (const key in component) {\n if (skip.includes(key)) continue;\n const entry = findPropertyDescriptor(component, key);\n if (entry) {\n if (\n entry.writable &&\n !Object.prototype.toString.call(entry.value).includes('Function')\n ) {\n state[key] = component[key as keyof Component];\n }\n if (entry.set) {\n state[key] = component[key as keyof Component];\n }\n }\n }\n return state;\n}\n\nfunction syncState(instance: Mutable<HotComponent>) {\n if (instance.args.__hot__) {\n const state =\n instance.__get_hot_state__?.() || instance.args.__hot__.getState?.();\n for (const k in state) {\n instance[k as keyof HotComponent] = state[k];\n }\n instance.args.__hot__.getState = () => getState(instance, ['args']);\n }\n}\n\nexport function initialize() {\n const ComponentManager = getInternalComponentManager(Component);\n const proto = Object.getPrototypeOf(ComponentManager);\n const create = proto.create;\n proto.create = function (...args: any[]) {\n const instance = create.call(this, ...args);\n syncState(instance.component);\n return instance;\n };\n\n const setupController = Route.prototype.setupController;\n\n const StateCache: Record<string, any> = {};\n\n Route.prototype.setupController = function (...args: any[]) {\n const controller = args[0];\n // @ts-ignore\n const r = setupController.call(this, ...args);\n const fullRouteName = this.fullRouteName;\n const state = StateCache[fullRouteName] || {};\n const skip = ['_qpDelegate', 'target', 'queryParams'];\n const routerState = getState(state.router, skip);\n const controllerState = getState(state.controller, skip);\n for (const k in routerState) {\n (this as any)[k] = routerState[k];\n }\n for (const k in controllerState) {\n controller[k] = controllerState[k];\n }\n StateCache[fullRouteName] = {\n route: this,\n controller,\n };\n return r;\n };\n}\n\nexport default {\n initialize,\n};\n"],"names":["findPropertyDescriptor","component","key","proto","desc","Object","getOwnPropertyDescriptor","getPrototypeOf","getState","skip","state","includes","entry","writable","prototype","toString","call","value","set","syncState","instance","args","__hot__","__get_hot_state__","k","initialize","ComponentManager","getInternalComponentManager","Component","create","setupController","Route","StateCache","controller","r","fullRouteName","routerState","router","controllerState","route"],"mappings":"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"}
|
package/dist/lib/babel-plugin.js
CHANGED
|
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.hotAstProcessor = void 0;
|
|
27
|
+
exports.default = hotReplaceAst;
|
|
27
28
|
const core_1 = require("@babel/core");
|
|
28
29
|
const glimmer = __importStar(require("@glimmer/syntax"));
|
|
29
30
|
const babel_import_util_1 = require("babel-import-util");
|
|
@@ -232,6 +233,7 @@ function hotReplaceAst({ types: t }) {
|
|
|
232
233
|
}
|
|
233
234
|
const util = new babel_import_util_1.ImportUtil(t, path);
|
|
234
235
|
const tracked = util.import(path, '@glimmer/tracking', 'tracked');
|
|
236
|
+
const GlimmerComponent = util.import(path, '@glimmer/component', 'default');
|
|
235
237
|
const klass = t.classExpression(path.scope.generateUidIdentifier('Imports'), null, t.classBody([]));
|
|
236
238
|
const bindings = [...exports.hotAstProcessor.meta.importBindings].sort();
|
|
237
239
|
for (const local of bindings) {
|
|
@@ -250,7 +252,7 @@ function hotReplaceAst({ types: t }) {
|
|
|
250
252
|
return path.node.body.find((b) => b.type === 'ImportDeclaration' &&
|
|
251
253
|
b.specifiers.some((s) => s.local.name === specifier));
|
|
252
254
|
};
|
|
253
|
-
const
|
|
255
|
+
const ifHotStatements = [];
|
|
254
256
|
for (const imp of bindings) {
|
|
255
257
|
const importDeclaration = findImport(imp);
|
|
256
258
|
const source = importDeclaration.source.value;
|
|
@@ -258,15 +260,21 @@ function hotReplaceAst({ types: t }) {
|
|
|
258
260
|
const specifierName = ((_a = specifier.imported) === null || _a === void 0 ? void 0 : _a.name) ||
|
|
259
261
|
((_b = specifier.imported) === null || _b === void 0 ? void 0 : _b.value) ||
|
|
260
262
|
'default';
|
|
261
|
-
const ast = (0, core_1.parse)(`
|
|
262
|
-
|
|
263
|
-
|
|
263
|
+
const ast = (0, core_1.parse)(`
|
|
264
|
+
(async () => {
|
|
265
|
+
const c = await import('ember-vite-hmr/virtual/component:${source}:${specifierName}.gjs');
|
|
266
|
+
${exports.hotAstProcessor.meta.importVar}.${imp} = c.default;
|
|
267
|
+
})()
|
|
268
|
+
import.meta.hot.accept('${source}');
|
|
269
|
+
`);
|
|
270
|
+
const importVirtual = ast === null || ast === void 0 ? void 0 : ast.program.body;
|
|
271
|
+
const ifInstanceOfComponent = t.ifStatement(t.binaryExpression('instanceof', t.memberExpression(t.identifier(imp), t.identifier('prototype')), GlimmerComponent), t.blockStatement([...importVirtual]));
|
|
272
|
+
ifHotStatements.push(ifInstanceOfComponent);
|
|
264
273
|
}
|
|
265
|
-
const ifHot = t.ifStatement(t.memberExpression(t.metaProperty(t.identifier('import'), t.identifier('meta')), t.identifier('hot')), t.blockStatement([...
|
|
274
|
+
const ifHot = t.ifStatement(t.memberExpression(t.metaProperty(t.identifier('import'), t.identifier('meta')), t.identifier('hot')), t.blockStatement([...ifHotStatements]));
|
|
266
275
|
path.node.body.push(ifHot);
|
|
267
276
|
path.scope.crawl();
|
|
268
277
|
},
|
|
269
278
|
},
|
|
270
279
|
};
|
|
271
280
|
}
|
|
272
|
-
exports.default = hotReplaceAst;
|
package/dist/lib/hmr.js
CHANGED
|
@@ -12,8 +12,41 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.hmr =
|
|
15
|
+
exports.hmr = hmr;
|
|
16
16
|
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const core_1 = require("@babel/core");
|
|
18
|
+
const getHotComponent = (imp, specifier) => `
|
|
19
|
+
import { ${specifier} as TargetComponent } from "${imp}";
|
|
20
|
+
import Component from "@glimmer/component";
|
|
21
|
+
import { tracked } from "@glimmer/tracking";
|
|
22
|
+
import { createComputeRef } from "@glimmer/reference";
|
|
23
|
+
import { curry } from '@glimmer/runtime';
|
|
24
|
+
import { CurriedTypes } from '@glimmer/vm';
|
|
25
|
+
|
|
26
|
+
export default class HotComponent extends Component {
|
|
27
|
+
@tracked curried;
|
|
28
|
+
hot = {};
|
|
29
|
+
constructor(owner, args) {
|
|
30
|
+
super(owner, args);
|
|
31
|
+
const named = {};
|
|
32
|
+
const positional = [];
|
|
33
|
+
for (const name of Object.keys(args)) {
|
|
34
|
+
named[name] = createComputeRef(() => args[name]);
|
|
35
|
+
}
|
|
36
|
+
this.curried = curry(CurriedTypes.Component, TargetComponent, owner, { positional, named});
|
|
37
|
+
if (import.meta.hot) {
|
|
38
|
+
// Rehydrate any saved state
|
|
39
|
+
import.meta.hot.accept('${imp}', (module) => {
|
|
40
|
+
this.curried = curry(CurriedTypes.Component, module.default, owner, { positional, named});
|
|
41
|
+
})
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
<template>
|
|
45
|
+
<this.curried @__hot__={{this.hot}}></this.curried>
|
|
46
|
+
</template>
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
const virtualPrefix = 'ember-vite-hmr/virtual/component:';
|
|
17
50
|
function hmr(enableViteHmrForModes = ['development']) {
|
|
18
51
|
let conf;
|
|
19
52
|
return {
|
|
@@ -25,14 +58,32 @@ function hmr(enableViteHmrForModes = ['development']) {
|
|
|
25
58
|
.includes(config.mode)
|
|
26
59
|
.toString();
|
|
27
60
|
},
|
|
28
|
-
resolveId(id) {
|
|
61
|
+
resolveId(id, importer) {
|
|
62
|
+
if (importer.startsWith(virtualPrefix)) {
|
|
63
|
+
importer = path_1.default.join(process.cwd(), 'package.json');
|
|
64
|
+
return this.resolve(id, importer);
|
|
65
|
+
}
|
|
66
|
+
if (id.startsWith(virtualPrefix)) {
|
|
67
|
+
return id;
|
|
68
|
+
}
|
|
29
69
|
if (id.startsWith('/@id/embroider_virtual:')) {
|
|
30
70
|
return this.resolve(id.replace('/@id/', ''), path_1.default.join(process.cwd(), 'package.json'));
|
|
31
71
|
}
|
|
72
|
+
if (id.startsWith(`/@id/${virtualPrefix}`)) {
|
|
73
|
+
return this.resolve(id.replace('/@id/', ''), path_1.default.join(process.cwd(), 'package.json'));
|
|
74
|
+
}
|
|
32
75
|
if (id === '/ember-vite-hmr/services/vite-hot-reload') {
|
|
33
76
|
return this.resolve('ember-vite-hmr/services/vite-hot-reload', path_1.default.join(process.cwd(), 'package.json'));
|
|
34
77
|
}
|
|
35
78
|
},
|
|
79
|
+
load(id) {
|
|
80
|
+
if (id.startsWith(virtualPrefix)) {
|
|
81
|
+
const [imp, specifier] = id
|
|
82
|
+
.slice(virtualPrefix.length, -'.gts'.length)
|
|
83
|
+
.split(':');
|
|
84
|
+
return getHotComponent(imp, specifier);
|
|
85
|
+
}
|
|
86
|
+
},
|
|
36
87
|
transformIndexHtml(html) {
|
|
37
88
|
if (process.env['EMBER_VITE_HMR_ENABLED'] !== 'true') {
|
|
38
89
|
return html;
|
|
@@ -74,6 +125,7 @@ function hmr(enableViteHmrForModes = ['development']) {
|
|
|
74
125
|
if (resourcePath.includes('/-components/')) {
|
|
75
126
|
return source;
|
|
76
127
|
}
|
|
128
|
+
let didReplaceSources = false;
|
|
77
129
|
const name = require(`${process.cwd()}/package.json`).name;
|
|
78
130
|
if (resourcePath.includes(`/assets/${name}.js`)) {
|
|
79
131
|
const result = [...source.matchAll(/import \* as [^ ]+ from (.*);/g)];
|
|
@@ -90,15 +142,11 @@ function hmr(enableViteHmrForModes = ['development']) {
|
|
|
90
142
|
resourcePath.endsWith('.gjs') ||
|
|
91
143
|
resourcePath.endsWith('.gts') ||
|
|
92
144
|
resourcePath.includes(`/assets/${name}.js`)) {
|
|
93
|
-
const
|
|
94
|
-
...source.matchAll(/import.meta.hot.accept\(\'([^']+)\'/g),
|
|
95
|
-
];
|
|
96
|
-
for (const resultElement of result) {
|
|
97
|
-
const dep = resultElement[1];
|
|
145
|
+
const resolveDep = (dep) => __awaiter(this, void 0, void 0, function* () {
|
|
98
146
|
const resolved = yield this.resolve(dep, resourcePath, {});
|
|
99
147
|
let id = resolved === null || resolved === void 0 ? void 0 : resolved.id;
|
|
100
148
|
if (!id)
|
|
101
|
-
|
|
149
|
+
return;
|
|
102
150
|
let appRoot = conf.root + '/app/';
|
|
103
151
|
if (id.startsWith(appRoot) && !id.startsWith('embroider_virtual:')) {
|
|
104
152
|
id = 'app/' + id.split(appRoot)[1];
|
|
@@ -116,8 +164,65 @@ function hmr(enableViteHmrForModes = ['development']) {
|
|
|
116
164
|
if (!id.startsWith('/') && !id.startsWith('.')) {
|
|
117
165
|
id = '/' + id;
|
|
118
166
|
}
|
|
167
|
+
return id;
|
|
168
|
+
});
|
|
169
|
+
const result = [
|
|
170
|
+
...source.matchAll(/import.meta.hot.accept\(\'([^']+)\'/g),
|
|
171
|
+
];
|
|
172
|
+
for (const resultElement of result) {
|
|
173
|
+
const dep = resultElement[1];
|
|
174
|
+
const id = yield resolveDep(dep);
|
|
175
|
+
if (!id)
|
|
176
|
+
continue;
|
|
177
|
+
if (dep === id)
|
|
178
|
+
continue;
|
|
179
|
+
didReplaceSources = true;
|
|
119
180
|
source = source.replace(`import.meta.hot.accept('${dep}'`, `import.meta.hot.accept('${id}'`);
|
|
120
181
|
}
|
|
182
|
+
const importMatches = [...source.matchAll(/import\('([^']+)'/g)];
|
|
183
|
+
for (const resultElement of importMatches) {
|
|
184
|
+
const dep = resultElement[1];
|
|
185
|
+
if (!dep.startsWith(virtualPrefix)) {
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
const [imp, specifier] = dep
|
|
189
|
+
.slice(virtualPrefix.length, -'.gts'.length)
|
|
190
|
+
.split(':');
|
|
191
|
+
const id = yield resolveDep(imp);
|
|
192
|
+
if (!id)
|
|
193
|
+
continue;
|
|
194
|
+
if (dep === id)
|
|
195
|
+
continue;
|
|
196
|
+
didReplaceSources = true;
|
|
197
|
+
source = source.replace(`import('${virtualPrefix}${imp}`, `import('${virtualPrefix}${id}`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (didReplaceSources) {
|
|
201
|
+
source = (0, core_1.transformSync)(source, {
|
|
202
|
+
filename: id,
|
|
203
|
+
babelrc: false,
|
|
204
|
+
plugins: [
|
|
205
|
+
{
|
|
206
|
+
name: 'cleanup',
|
|
207
|
+
visitor: {
|
|
208
|
+
CallExpression(path) {
|
|
209
|
+
var _a;
|
|
210
|
+
const node = path.node;
|
|
211
|
+
if (node.callee.type === 'Import' &&
|
|
212
|
+
((_a = node.arguments[0]) === null || _a === void 0 ? void 0 : _a.type) === 'StringLiteral' &&
|
|
213
|
+
node.arguments[0].value.includes('ember-vite-hmr/virtual/component') &&
|
|
214
|
+
node.arguments[0].value.includes('node_modules')) {
|
|
215
|
+
let IfStatement = path;
|
|
216
|
+
while (IfStatement.type !== 'IfStatement') {
|
|
217
|
+
IfStatement = IfStatement.parentPath;
|
|
218
|
+
}
|
|
219
|
+
IfStatement.remove();
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
],
|
|
225
|
+
}).code;
|
|
121
226
|
}
|
|
122
227
|
if (!supportedPaths.some((s) => resourcePath.includes(`/${s}/`)) &&
|
|
123
228
|
!supportedFileNames.some((s) => resourcePath.endsWith(s))) {
|
|
@@ -143,4 +248,3 @@ function hmr(enableViteHmrForModes = ['development']) {
|
|
|
143
248
|
},
|
|
144
249
|
};
|
|
145
250
|
}
|
|
146
|
-
exports.hmr = hmr;
|
|
@@ -1,35 +1,23 @@
|
|
|
1
1
|
import Service, { service } from '@ember/service';
|
|
2
2
|
import { getOwner } from '@ember/owner';
|
|
3
|
-
import
|
|
3
|
+
import Route from '@ember/routing/route';
|
|
4
4
|
import Controller from '@ember/controller';
|
|
5
5
|
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
Object.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
});
|
|
6
|
+
function _applyDecoratedDescriptor(i, e, r, n, l) {
|
|
7
|
+
var a = {};
|
|
8
|
+
return Object.keys(n).forEach(function (i) {
|
|
9
|
+
a[i] = n[i];
|
|
10
|
+
}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) {
|
|
11
|
+
return n(i, e, r) || r;
|
|
12
|
+
}, a), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a;
|
|
14
13
|
}
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
function _initializerDefineProperty(e, i, r, l) {
|
|
15
|
+
r && Object.defineProperty(e, i, {
|
|
16
|
+
enumerable: r.enumerable,
|
|
17
|
+
configurable: r.configurable,
|
|
18
|
+
writable: r.writable,
|
|
19
|
+
value: r.initializer ? r.initializer.call(l) : void 0
|
|
19
20
|
});
|
|
20
|
-
desc.enumerable = !!desc.enumerable;
|
|
21
|
-
desc.configurable = !!desc.configurable;
|
|
22
|
-
if ('value' in desc || desc.initializer) {
|
|
23
|
-
desc.writable = true;
|
|
24
|
-
}
|
|
25
|
-
desc = decorators.slice().reverse().reduce(function (desc, decorator) {
|
|
26
|
-
return decorator(target, property, desc) || desc;
|
|
27
|
-
}, desc);
|
|
28
|
-
if (desc.initializer === void 0) {
|
|
29
|
-
Object.defineProperty(target, property, desc);
|
|
30
|
-
desc = null;
|
|
31
|
-
}
|
|
32
|
-
return desc;
|
|
33
21
|
}
|
|
34
22
|
|
|
35
23
|
var _dec, _class, _descriptor;
|
|
@@ -71,7 +59,7 @@ if (import.meta.hot) {
|
|
|
71
59
|
};
|
|
72
60
|
},
|
|
73
61
|
__import(moduleUrl) {
|
|
74
|
-
return import(
|
|
62
|
+
return import(/* @vite-ignore */moduleUrl);
|
|
75
63
|
},
|
|
76
64
|
async canAcceptNew(moduleUrl) {
|
|
77
65
|
this._accepting += 1;
|
|
@@ -121,7 +109,7 @@ if (import.meta.hot) {
|
|
|
121
109
|
}
|
|
122
110
|
};
|
|
123
111
|
}
|
|
124
|
-
let ViteHotReloadService = (_dec = service(),
|
|
112
|
+
let ViteHotReloadService = (_dec = service(), _class = class ViteHotReloadService extends Service {
|
|
125
113
|
constructor(...args) {
|
|
126
114
|
super(...args);
|
|
127
115
|
_initializerDefineProperty(this, "router", _descriptor, this);
|
|
@@ -150,7 +138,7 @@ let ViteHotReloadService = (_dec = service(), (_class = class ViteHotReloadServi
|
|
|
150
138
|
this.container = getOwner(this)?.__container__;
|
|
151
139
|
window.emberHotReloadPlugin.subscribe((oldModule, newModule) => {
|
|
152
140
|
let changed = false;
|
|
153
|
-
if (oldModule.exports.default?.prototype && oldModule.exports.default.prototype instanceof
|
|
141
|
+
if (oldModule.exports.default?.prototype && oldModule.exports.default.prototype instanceof Route) {
|
|
154
142
|
changed = true;
|
|
155
143
|
}
|
|
156
144
|
if (oldModule.exports.default?.prototype && oldModule.exports.default.prototype instanceof Controller) {
|
|
@@ -190,7 +178,7 @@ let ViteHotReloadService = (_dec = service(), (_class = class ViteHotReloadServi
|
|
|
190
178
|
delete this.container.registry.registrations[k];
|
|
191
179
|
}
|
|
192
180
|
});
|
|
193
|
-
if (oldModule.exports.default?.prototype && oldModule.exports.default.prototype instanceof
|
|
181
|
+
if (oldModule.exports.default?.prototype && oldModule.exports.default.prototype instanceof Route) {
|
|
194
182
|
this.router.refresh();
|
|
195
183
|
}
|
|
196
184
|
if (oldModule.exports.default?.prototype && oldModule.exports.default.prototype instanceof Controller) {
|
|
@@ -207,12 +195,12 @@ let ViteHotReloadService = (_dec = service(), (_class = class ViteHotReloadServi
|
|
|
207
195
|
getLatestChange(obj) {
|
|
208
196
|
return getLatestChange(obj);
|
|
209
197
|
}
|
|
210
|
-
},
|
|
198
|
+
}, _descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_dec], {
|
|
211
199
|
configurable: true,
|
|
212
200
|
enumerable: true,
|
|
213
201
|
writable: true,
|
|
214
202
|
initializer: null
|
|
215
|
-
})
|
|
203
|
+
}), _class);
|
|
216
204
|
// this service using `Owner.lookup('service:hot-reload')`, as well
|
|
217
205
|
// as to check when you pass the service name as an argument to the decorator,
|
|
218
206
|
// like `@service('hot-reload') declare altName: HotReloadService;`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-hot-reload.js","sources":["../../src/services/vite-hot-reload.ts"],"sourcesContent":["import Service, { service } from '@ember/service';\nimport { getOwner } from '@ember/owner';\nimport RouterService from '@ember/routing/router-service';\nimport Router from '@ember/routing/route';\nimport Controller from '@ember/controller';\nimport ApplicationInstance from '@ember/application/instance';\n\nconst ChangeMap = new WeakMap();\n\nfunction getLatestChange(obj: any) {\n while (ChangeMap.has(obj)) {\n obj = ChangeMap.get(obj);\n }\n return obj;\n}\n\nlet modulePrefix!: string;\nlet podModulePrefix!: string;\nif (import.meta.hot) {\n const ModuleMap = new Map();\n\n window.emberHotReloadPlugin = {\n _accepting: 0,\n changed: {},\n subscribers: [],\n version: 1,\n routerVersion: 1,\n moduleDepCallbacks: {},\n versionMap: {},\n\n clear(module: Module) {\n this.moduleDepCallbacks[module.id] = {};\n },\n register(module: Module, dep: string, callback: Function) {\n dep = dep.replace(new RegExp(`^${modulePrefix}/`), './');\n this.moduleDepCallbacks[module.id]![dep] =\n this.moduleDepCallbacks[module.id]![dep] || ([] as Function[]);\n this.moduleDepCallbacks[module.id]![dep]!.push(callback);\n },\n loadNew(oldModule: Module, newModule: Module) {\n this.versionMap[newModule.id] = newModule.version;\n const entry = Object.values(\n requirejs.entries as Record<string, ReqJSEntry>,\n ).find(\n (module) => module.module.exports.default === oldModule.exports.default,\n );\n if (!entry) return;\n entry.module = {\n id: newModule.id,\n exports: newModule.exports,\n version: newModule.version,\n };\n },\n\n __import(moduleUrl: string) {\n return import(/* @vite-ignore */ moduleUrl);\n },\n\n async canAcceptNew(moduleUrl: string) {\n this._accepting += 1;\n const m = await this.__import(moduleUrl);\n const module: Module = {\n exports: m,\n id: moduleUrl.split('?')[0]!.replace(/http:\\/\\/.*:[^\\/]*\\//, ''),\n version: 0,\n };\n this._accepting -= 1;\n if (this._accepting === 0) {\n setTimeout(() => this.notifyNew(), 0);\n }\n let ok =\n module.id.includes('/routes/') ||\n module.id.includes('/routers/') ||\n module.id.includes('/controllers/') ||\n module.id.includes('/templates/') ||\n module.id.match(/controller\\.(js|ts)$/) ||\n module.id.match(/route\\.(js|ts|gts)$/);\n if (!ok) {\n return false;\n }\n\n if (module.id.includes('templates') && module.id.includes('components')) {\n return false;\n }\n\n if (ModuleMap.get(module.id)) {\n this.changed[module.id] = {\n old: ModuleMap.get(module.id),\n new: module,\n };\n }\n module.version = this.version;\n ModuleMap.set(module.id, module);\n return true;\n },\n notifyNew() {\n this.version += 1;\n Object.values(this.changed).forEach((change) => {\n this.loadNew(change.old, change.new);\n this.subscribers.forEach((fn: any) => fn(change.old, change.new));\n });\n this.changed = {};\n },\n subscribe(fn) {\n this.subscribers.push(fn);\n },\n unsubscribe(fn) {\n const idx = this.subscribers.indexOf(fn);\n if (idx >= 0) {\n this.subscribers.splice(idx, 1);\n }\n },\n };\n}\n\nexport default class ViteHotReloadService extends Service {\n declare container: any;\n @service() router!: RouterService;\n\n init(args: any) {\n super.init(args);\n if (!window.emberHotReloadPlugin) return;\n const app = (getOwner(this) as ApplicationInstance)!.application as any;\n modulePrefix = app.modulePrefix;\n podModulePrefix = app.podModulePrefix;\n this.router._router;\n Object.defineProperty(this.router._router, '_routerMicrolib', {\n set(v) {\n const getRoute = v.getRoute;\n v.getRoute = function (name: string) {\n const route = getRoute.call(\n this,\n `${name}--hot-version--${window.emberHotReloadPlugin.routerVersion}`,\n );\n route.fullRouteName = `route:${name}`.replace(\n /--hot-version--.*$/,\n '',\n );\n return route;\n };\n this.___routerMicrolib = v;\n },\n get() {\n return this.___routerMicrolib;\n },\n });\n this.container = (getOwner(this) as any)?.__container__;\n window.emberHotReloadPlugin.subscribe((oldModule, newModule) => {\n let changed = false;\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Router\n ) {\n changed = true;\n }\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Controller\n ) {\n changed = true;\n }\n if (\n oldModule.id.startsWith('app/templates/') &&\n !oldModule.id.startsWith('app/templates/components/')\n ) {\n changed = true;\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n changed = true;\n }\n if (!changed) return;\n window.emberHotReloadPlugin.routerVersion += 1;\n const types = [\n 'route',\n 'controller',\n 'template',\n 'modifier',\n 'helper',\n 'component',\n ];\n Object.keys(this.container.cache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.cache[k];\n }\n });\n Object.keys(this.container.factoryManagerCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.factoryManagerCache[k];\n }\n });\n Object.keys(this.container.registry._resolveCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.registry._resolveCache[k];\n }\n });\n Object.keys(this.container.validationCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.validationCache[k];\n }\n });\n Object.keys(this.container.registry.registrations).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.registry.registrations[k];\n }\n });\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Router\n ) {\n this.router.refresh();\n }\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Controller\n ) {\n this.router.refresh();\n }\n if (\n oldModule.id.startsWith('app/templates/') &&\n !oldModule.id.startsWith('app/templates/components/')\n ) {\n this.router.refresh();\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n this.router.refresh();\n }\n });\n }\n getLatestChange(obj: any) {\n return getLatestChange(obj);\n }\n}\n\n// Don't remove this declaration: this is what enables TypeScript to resolve\n// this service using `Owner.lookup('service:hot-reload')`, as well\n// as to check when you pass the service name as an argument to the decorator,\n// like `@service('hot-reload') declare altName: HotReloadService;`.\ndeclare module '@ember/service' {\n interface Registry {\n 'hot-reload': ViteHotReloadService;\n }\n}\n"],"names":["ChangeMap","WeakMap","getLatestChange","obj","has","get","modulePrefix","podModulePrefix","import","meta","hot","ModuleMap","Map","window","emberHotReloadPlugin","_accepting","changed","subscribers","version","routerVersion","moduleDepCallbacks","versionMap","clear","module","id","register","dep","callback","replace","RegExp","push","loadNew","oldModule","newModule","entry","Object","values","requirejs","entries","find","exports","default","__import","moduleUrl","canAcceptNew","m","split","setTimeout","notifyNew","ok","includes","match","old","new","set","forEach","change","fn","subscribe","unsubscribe","idx","indexOf","splice","ViteHotReloadService","_dec","service","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","init","app","getOwner","application","router","_router","defineProperty","v","getRoute","name","route","call","fullRouteName","___routerMicrolib","container","__container__","prototype","Router","Controller","startsWith","types","keys","cache","k","some","t","factoryManagerCache","registry","_resolveCache","validationCache","registrations","refresh","_applyDecoratedDescriptor","configurable","enumerable","writable","initializer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vite-hot-reload.js","sources":["../../src/services/vite-hot-reload.ts"],"sourcesContent":["import Service, { service } from '@ember/service';\nimport { getOwner } from '@ember/owner';\nimport RouterService from '@ember/routing/router-service';\nimport Router from '@ember/routing/route';\nimport Controller from '@ember/controller';\nimport ApplicationInstance from '@ember/application/instance';\n\nconst ChangeMap = new WeakMap();\n\nfunction getLatestChange(obj: any) {\n while (ChangeMap.has(obj)) {\n obj = ChangeMap.get(obj);\n }\n return obj;\n}\n\nlet modulePrefix!: string;\nlet podModulePrefix!: string;\nif (import.meta.hot) {\n const ModuleMap = new Map();\n\n window.emberHotReloadPlugin = {\n _accepting: 0,\n changed: {},\n subscribers: [],\n version: 1,\n routerVersion: 1,\n moduleDepCallbacks: {},\n versionMap: {},\n\n clear(module: Module) {\n this.moduleDepCallbacks[module.id] = {};\n },\n register(module: Module, dep: string, callback: Function) {\n dep = dep.replace(new RegExp(`^${modulePrefix}/`), './');\n this.moduleDepCallbacks[module.id]![dep] =\n this.moduleDepCallbacks[module.id]![dep] || ([] as Function[]);\n this.moduleDepCallbacks[module.id]![dep]!.push(callback);\n },\n loadNew(oldModule: Module, newModule: Module) {\n this.versionMap[newModule.id] = newModule.version;\n const entry = Object.values(\n requirejs.entries as Record<string, ReqJSEntry>,\n ).find(\n (module) => module.module.exports.default === oldModule.exports.default,\n );\n if (!entry) return;\n entry.module = {\n id: newModule.id,\n exports: newModule.exports,\n version: newModule.version,\n };\n },\n\n __import(moduleUrl: string) {\n return import(/* @vite-ignore */ moduleUrl);\n },\n\n async canAcceptNew(moduleUrl: string) {\n this._accepting += 1;\n const m = await this.__import(moduleUrl);\n const module: Module = {\n exports: m,\n id: moduleUrl.split('?')[0]!.replace(/http:\\/\\/.*:[^\\/]*\\//, ''),\n version: 0,\n };\n this._accepting -= 1;\n if (this._accepting === 0) {\n setTimeout(() => this.notifyNew(), 0);\n }\n let ok =\n module.id.includes('/routes/') ||\n module.id.includes('/routers/') ||\n module.id.includes('/controllers/') ||\n module.id.includes('/templates/') ||\n module.id.match(/controller\\.(js|ts)$/) ||\n module.id.match(/route\\.(js|ts|gts)$/);\n if (!ok) {\n return false;\n }\n\n if (module.id.includes('templates') && module.id.includes('components')) {\n return false;\n }\n\n if (ModuleMap.get(module.id)) {\n this.changed[module.id] = {\n old: ModuleMap.get(module.id),\n new: module,\n };\n }\n module.version = this.version;\n ModuleMap.set(module.id, module);\n return true;\n },\n notifyNew() {\n this.version += 1;\n Object.values(this.changed).forEach((change) => {\n this.loadNew(change.old, change.new);\n this.subscribers.forEach((fn: any) => fn(change.old, change.new));\n });\n this.changed = {};\n },\n subscribe(fn) {\n this.subscribers.push(fn);\n },\n unsubscribe(fn) {\n const idx = this.subscribers.indexOf(fn);\n if (idx >= 0) {\n this.subscribers.splice(idx, 1);\n }\n },\n };\n}\n\nexport default class ViteHotReloadService extends Service {\n declare container: any;\n @service() router!: RouterService;\n\n init(args: any) {\n super.init(args);\n if (!window.emberHotReloadPlugin) return;\n const app = (getOwner(this) as ApplicationInstance)!.application as any;\n modulePrefix = app.modulePrefix;\n podModulePrefix = app.podModulePrefix;\n this.router._router;\n Object.defineProperty(this.router._router, '_routerMicrolib', {\n set(v) {\n const getRoute = v.getRoute;\n v.getRoute = function (name: string) {\n const route = getRoute.call(\n this,\n `${name}--hot-version--${window.emberHotReloadPlugin.routerVersion}`,\n );\n route.fullRouteName = `route:${name}`.replace(\n /--hot-version--.*$/,\n '',\n );\n return route;\n };\n this.___routerMicrolib = v;\n },\n get() {\n return this.___routerMicrolib;\n },\n });\n this.container = (getOwner(this) as any)?.__container__;\n window.emberHotReloadPlugin.subscribe((oldModule, newModule) => {\n let changed = false;\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Router\n ) {\n changed = true;\n }\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Controller\n ) {\n changed = true;\n }\n if (\n oldModule.id.startsWith('app/templates/') &&\n !oldModule.id.startsWith('app/templates/components/')\n ) {\n changed = true;\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n changed = true;\n }\n if (!changed) return;\n window.emberHotReloadPlugin.routerVersion += 1;\n const types = [\n 'route',\n 'controller',\n 'template',\n 'modifier',\n 'helper',\n 'component',\n ];\n Object.keys(this.container.cache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.cache[k];\n }\n });\n Object.keys(this.container.factoryManagerCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.factoryManagerCache[k];\n }\n });\n Object.keys(this.container.registry._resolveCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.registry._resolveCache[k];\n }\n });\n Object.keys(this.container.validationCache).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.validationCache[k];\n }\n });\n Object.keys(this.container.registry.registrations).forEach((k) => {\n if (types.some((t) => k.startsWith(`${t}:`))) {\n delete this.container.registry.registrations[k];\n }\n });\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Router\n ) {\n this.router.refresh();\n }\n if (\n oldModule.exports.default?.prototype &&\n oldModule.exports.default.prototype instanceof Controller\n ) {\n this.router.refresh();\n }\n if (\n oldModule.id.startsWith('app/templates/') &&\n !oldModule.id.startsWith('app/templates/components/')\n ) {\n this.router.refresh();\n }\n if (oldModule.id.startsWith(`./${podModulePrefix}/`)) {\n this.router.refresh();\n }\n });\n }\n getLatestChange(obj: any) {\n return getLatestChange(obj);\n }\n}\n\n// Don't remove this declaration: this is what enables TypeScript to resolve\n// this service using `Owner.lookup('service:hot-reload')`, as well\n// as to check when you pass the service name as an argument to the decorator,\n// like `@service('hot-reload') declare altName: HotReloadService;`.\ndeclare module '@ember/service' {\n interface Registry {\n 'hot-reload': ViteHotReloadService;\n }\n}\n"],"names":["ChangeMap","WeakMap","getLatestChange","obj","has","get","modulePrefix","podModulePrefix","import","meta","hot","ModuleMap","Map","window","emberHotReloadPlugin","_accepting","changed","subscribers","version","routerVersion","moduleDepCallbacks","versionMap","clear","module","id","register","dep","callback","replace","RegExp","push","loadNew","oldModule","newModule","entry","Object","values","requirejs","entries","find","exports","default","__import","moduleUrl","canAcceptNew","m","split","setTimeout","notifyNew","ok","includes","match","old","new","set","forEach","change","fn","subscribe","unsubscribe","idx","indexOf","splice","ViteHotReloadService","_dec","service","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","init","app","getOwner","application","router","_router","defineProperty","v","getRoute","name","route","call","fullRouteName","___routerMicrolib","container","__container__","prototype","Router","Controller","startsWith","types","keys","cache","k","some","t","factoryManagerCache","registry","_resolveCache","validationCache","registrations","refresh","_applyDecoratedDescriptor","configurable","enumerable","writable","initializer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAMA,SAAS,GAAG,IAAIC,OAAO,EAAE,CAAA;AAE/B,SAASC,eAAeA,CAACC,GAAQ,EAAE;AACjC,EAAA,OAAOH,SAAS,CAACI,GAAG,CAACD,GAAG,CAAC,EAAE;AACzBA,IAAAA,GAAG,GAAGH,SAAS,CAACK,GAAG,CAACF,GAAG,CAAC,CAAA;AAC1B,GAAA;AACA,EAAA,OAAOA,GAAG,CAAA;AACZ,CAAA;AAEA,IAAIG,YAAqB,CAAA;AACzB,IAAIC,eAAwB,CAAA;AAC5B,IAAIC,MAAM,CAACC,IAAI,CAACC,GAAG,EAAE;AACnB,EAAA,MAAMC,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAA;EAE3BC,MAAM,CAACC,oBAAoB,GAAG;AAC5BC,IAAAA,UAAU,EAAE,CAAC;IACbC,OAAO,EAAE,EAAE;AACXC,IAAAA,WAAW,EAAE,EAAE;AACfC,IAAAA,OAAO,EAAE,CAAC;AACVC,IAAAA,aAAa,EAAE,CAAC;IAChBC,kBAAkB,EAAE,EAAE;IACtBC,UAAU,EAAE,EAAE;IAEdC,KAAKA,CAACC,MAAc,EAAE;MACpB,IAAI,CAACH,kBAAkB,CAACG,MAAM,CAACC,EAAE,CAAC,GAAG,EAAE,CAAA;KACxC;AACDC,IAAAA,QAAQA,CAACF,MAAc,EAAEG,GAAW,EAAEC,QAAkB,EAAE;AACxDD,MAAAA,GAAG,GAAGA,GAAG,CAACE,OAAO,CAAC,IAAIC,MAAM,CAAC,CAAA,CAAA,EAAIvB,YAAY,CAAA,CAAA,CAAG,CAAC,EAAE,IAAI,CAAC,CAAA;MACxD,IAAI,CAACc,kBAAkB,CAACG,MAAM,CAACC,EAAE,CAAC,CAAEE,GAAG,CAAC,GACtC,IAAI,CAACN,kBAAkB,CAACG,MAAM,CAACC,EAAE,CAAC,CAAEE,GAAG,CAAC,IAAK,EAAiB,CAAA;AAChE,MAAA,IAAI,CAACN,kBAAkB,CAACG,MAAM,CAACC,EAAE,CAAC,CAAEE,GAAG,CAAC,CAAEI,IAAI,CAACH,QAAQ,CAAC,CAAA;KACzD;AACDI,IAAAA,OAAOA,CAACC,SAAiB,EAAEC,SAAiB,EAAE;MAC5C,IAAI,CAACZ,UAAU,CAACY,SAAS,CAACT,EAAE,CAAC,GAAGS,SAAS,CAACf,OAAO,CAAA;AACjD,MAAA,MAAMgB,KAAK,GAAGC,MAAM,CAACC,MAAM,CACzBC,SAAS,CAACC,OACZ,CAAC,CAACC,IAAI,CACHhB,MAAM,IAAKA,MAAM,CAACA,MAAM,CAACiB,OAAO,CAACC,OAAO,KAAKT,SAAS,CAACQ,OAAO,CAACC,OAClE,CAAC,CAAA;MACD,IAAI,CAACP,KAAK,EAAE,OAAA;MACZA,KAAK,CAACX,MAAM,GAAG;QACbC,EAAE,EAAES,SAAS,CAACT,EAAE;QAChBgB,OAAO,EAAEP,SAAS,CAACO,OAAO;QAC1BtB,OAAO,EAAEe,SAAS,CAACf,OAAAA;OACpB,CAAA;KACF;IAEDwB,QAAQA,CAACC,SAAiB,EAAE;AAC1B,MAAA,OAAO,yBAA0BA,SAAS,CAAC,CAAA;KAC5C;IAED,MAAMC,YAAYA,CAACD,SAAiB,EAAE;MACpC,IAAI,CAAC5B,UAAU,IAAI,CAAC,CAAA;MACpB,MAAM8B,CAAC,GAAG,MAAM,IAAI,CAACH,QAAQ,CAACC,SAAS,CAAC,CAAA;AACxC,MAAA,MAAMpB,MAAc,GAAG;AACrBiB,QAAAA,OAAO,EAAEK,CAAC;AACVrB,QAAAA,EAAE,EAAEmB,SAAS,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAElB,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;AAChEV,QAAAA,OAAO,EAAE,CAAA;OACV,CAAA;MACD,IAAI,CAACH,UAAU,IAAI,CAAC,CAAA;AACpB,MAAA,IAAI,IAAI,CAACA,UAAU,KAAK,CAAC,EAAE;QACzBgC,UAAU,CAAC,MAAM,IAAI,CAACC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;AACvC,OAAA;MACA,IAAIC,EAAE,GACJ1B,MAAM,CAACC,EAAE,CAAC0B,QAAQ,CAAC,UAAU,CAAC,IAC9B3B,MAAM,CAACC,EAAE,CAAC0B,QAAQ,CAAC,WAAW,CAAC,IAC/B3B,MAAM,CAACC,EAAE,CAAC0B,QAAQ,CAAC,eAAe,CAAC,IACnC3B,MAAM,CAACC,EAAE,CAAC0B,QAAQ,CAAC,aAAa,CAAC,IACjC3B,MAAM,CAACC,EAAE,CAAC2B,KAAK,CAAC,sBAAsB,CAAC,IACvC5B,MAAM,CAACC,EAAE,CAAC2B,KAAK,CAAC,qBAAqB,CAAC,CAAA;MACxC,IAAI,CAACF,EAAE,EAAE;AACP,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;AAEA,MAAA,IAAI1B,MAAM,CAACC,EAAE,CAAC0B,QAAQ,CAAC,WAAW,CAAC,IAAI3B,MAAM,CAACC,EAAE,CAAC0B,QAAQ,CAAC,YAAY,CAAC,EAAE;AACvE,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;MAEA,IAAIvC,SAAS,CAACN,GAAG,CAACkB,MAAM,CAACC,EAAE,CAAC,EAAE;AAC5B,QAAA,IAAI,CAACR,OAAO,CAACO,MAAM,CAACC,EAAE,CAAC,GAAG;UACxB4B,GAAG,EAAEzC,SAAS,CAACN,GAAG,CAACkB,MAAM,CAACC,EAAE,CAAC;AAC7B6B,UAAAA,GAAG,EAAE9B,MAAAA;SACN,CAAA;AACH,OAAA;AACAA,MAAAA,MAAM,CAACL,OAAO,GAAG,IAAI,CAACA,OAAO,CAAA;MAC7BP,SAAS,CAAC2C,GAAG,CAAC/B,MAAM,CAACC,EAAE,EAAED,MAAM,CAAC,CAAA;AAChC,MAAA,OAAO,IAAI,CAAA;KACZ;AACDyB,IAAAA,SAASA,GAAG;MACV,IAAI,CAAC9B,OAAO,IAAI,CAAC,CAAA;MACjBiB,MAAM,CAACC,MAAM,CAAC,IAAI,CAACpB,OAAO,CAAC,CAACuC,OAAO,CAAEC,MAAM,IAAK;QAC9C,IAAI,CAACzB,OAAO,CAACyB,MAAM,CAACJ,GAAG,EAAEI,MAAM,CAACH,GAAG,CAAC,CAAA;AACpC,QAAA,IAAI,CAACpC,WAAW,CAACsC,OAAO,CAAEE,EAAO,IAAKA,EAAE,CAACD,MAAM,CAACJ,GAAG,EAAEI,MAAM,CAACH,GAAG,CAAC,CAAC,CAAA;AACnE,OAAC,CAAC,CAAA;AACF,MAAA,IAAI,CAACrC,OAAO,GAAG,EAAE,CAAA;KAClB;IACD0C,SAASA,CAACD,EAAE,EAAE;AACZ,MAAA,IAAI,CAACxC,WAAW,CAACa,IAAI,CAAC2B,EAAE,CAAC,CAAA;KAC1B;IACDE,WAAWA,CAACF,EAAE,EAAE;MACd,MAAMG,GAAG,GAAG,IAAI,CAAC3C,WAAW,CAAC4C,OAAO,CAACJ,EAAE,CAAC,CAAA;MACxC,IAAIG,GAAG,IAAI,CAAC,EAAE;QACZ,IAAI,CAAC3C,WAAW,CAAC6C,MAAM,CAACF,GAAG,EAAE,CAAC,CAAC,CAAA;AACjC,OAAA;AACF,KAAA;GACD,CAAA;AACH,CAAA;AAAC,IAEoBG,oBAAoB,IAAAC,IAAA,GAEtCC,OAAO,EAAE,EAAAC,MAAA,GAFG,MAAMH,oBAAoB,SAASI,OAAO,CAAC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,0BAAA,iBAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;AAAA,GAAA;EAIxDC,IAAIA,CAACH,IAAS,EAAE;AACd,IAAA,KAAK,CAACG,IAAI,CAACH,IAAI,CAAC,CAAA;AAChB,IAAA,IAAI,CAACxD,MAAM,CAACC,oBAAoB,EAAE,OAAA;AAClC,IAAA,MAAM2D,GAAG,GAAIC,QAAQ,CAAC,IAAI,CAAC,CAA0BC,WAAkB,CAAA;IACvErE,YAAY,GAAGmE,GAAG,CAACnE,YAAY,CAAA;IAC/BC,eAAe,GAAGkE,GAAG,CAAClE,eAAe,CAAA;IACrC,IAAI,CAACqE,MAAM,CAACC,OAAO,CAAA;IACnB1C,MAAM,CAAC2C,cAAc,CAAC,IAAI,CAACF,MAAM,CAACC,OAAO,EAAE,iBAAiB,EAAE;MAC5DvB,GAAGA,CAACyB,CAAC,EAAE;AACL,QAAA,MAAMC,QAAQ,GAAGD,CAAC,CAACC,QAAQ,CAAA;AAC3BD,QAAAA,CAAC,CAACC,QAAQ,GAAG,UAAUC,IAAY,EAAE;AACnC,UAAA,MAAMC,KAAK,GAAGF,QAAQ,CAACG,IAAI,CACzB,IAAI,EACJ,CAAGF,EAAAA,IAAI,kBAAkBpE,MAAM,CAACC,oBAAoB,CAACK,aAAa,EACpE,CAAC,CAAA;AACD+D,UAAAA,KAAK,CAACE,aAAa,GAAG,CAAA,MAAA,EAASH,IAAI,CAAA,CAAE,CAACrD,OAAO,CAC3C,oBAAoB,EACpB,EACF,CAAC,CAAA;AACD,UAAA,OAAOsD,KAAK,CAAA;SACb,CAAA;QACD,IAAI,CAACG,iBAAiB,GAAGN,CAAC,CAAA;OAC3B;AACD1E,MAAAA,GAAGA,GAAG;QACJ,OAAO,IAAI,CAACgF,iBAAiB,CAAA;AAC/B,OAAA;AACF,KAAC,CAAC,CAAA;IACF,IAAI,CAACC,SAAS,GAAIZ,QAAQ,CAAC,IAAI,CAAC,EAAUa,aAAa,CAAA;IACvD1E,MAAM,CAACC,oBAAoB,CAAC4C,SAAS,CAAC,CAAC1B,SAAS,EAAEC,SAAS,KAAK;MAC9D,IAAIjB,OAAO,GAAG,KAAK,CAAA;AACnB,MAAA,IACEgB,SAAS,CAACQ,OAAO,CAACC,OAAO,EAAE+C,SAAS,IACpCxD,SAAS,CAACQ,OAAO,CAACC,OAAO,CAAC+C,SAAS,YAAYC,KAAM,EACrD;AACAzE,QAAAA,OAAO,GAAG,IAAI,CAAA;AAChB,OAAA;AACA,MAAA,IACEgB,SAAS,CAACQ,OAAO,CAACC,OAAO,EAAE+C,SAAS,IACpCxD,SAAS,CAACQ,OAAO,CAACC,OAAO,CAAC+C,SAAS,YAAYE,UAAU,EACzD;AACA1E,QAAAA,OAAO,GAAG,IAAI,CAAA;AAChB,OAAA;AACA,MAAA,IACEgB,SAAS,CAACR,EAAE,CAACmE,UAAU,CAAC,gBAAgB,CAAC,IACzC,CAAC3D,SAAS,CAACR,EAAE,CAACmE,UAAU,CAAC,2BAA2B,CAAC,EACrD;AACA3E,QAAAA,OAAO,GAAG,IAAI,CAAA;AAChB,OAAA;MACA,IAAIgB,SAAS,CAACR,EAAE,CAACmE,UAAU,CAAC,CAAKpF,EAAAA,EAAAA,eAAe,CAAG,CAAA,CAAA,CAAC,EAAE;AACpDS,QAAAA,OAAO,GAAG,IAAI,CAAA;AAChB,OAAA;MACA,IAAI,CAACA,OAAO,EAAE,OAAA;AACdH,MAAAA,MAAM,CAACC,oBAAoB,CAACK,aAAa,IAAI,CAAC,CAAA;AAC9C,MAAA,MAAMyE,KAAK,GAAG,CACZ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,WAAW,CACZ,CAAA;AACDzD,MAAAA,MAAM,CAAC0D,IAAI,CAAC,IAAI,CAACP,SAAS,CAACQ,KAAK,CAAC,CAACvC,OAAO,CAAEwC,CAAC,IAAK;AAC/C,QAAA,IAAIH,KAAK,CAACI,IAAI,CAAEC,CAAC,IAAKF,CAAC,CAACJ,UAAU,CAAC,CAAGM,EAAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,EAAE;AAC5C,UAAA,OAAO,IAAI,CAACX,SAAS,CAACQ,KAAK,CAACC,CAAC,CAAC,CAAA;AAChC,SAAA;AACF,OAAC,CAAC,CAAA;AACF5D,MAAAA,MAAM,CAAC0D,IAAI,CAAC,IAAI,CAACP,SAAS,CAACY,mBAAmB,CAAC,CAAC3C,OAAO,CAAEwC,CAAC,IAAK;AAC7D,QAAA,IAAIH,KAAK,CAACI,IAAI,CAAEC,CAAC,IAAKF,CAAC,CAACJ,UAAU,CAAC,CAAGM,EAAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,EAAE;AAC5C,UAAA,OAAO,IAAI,CAACX,SAAS,CAACY,mBAAmB,CAACH,CAAC,CAAC,CAAA;AAC9C,SAAA;AACF,OAAC,CAAC,CAAA;AACF5D,MAAAA,MAAM,CAAC0D,IAAI,CAAC,IAAI,CAACP,SAAS,CAACa,QAAQ,CAACC,aAAa,CAAC,CAAC7C,OAAO,CAAEwC,CAAC,IAAK;AAChE,QAAA,IAAIH,KAAK,CAACI,IAAI,CAAEC,CAAC,IAAKF,CAAC,CAACJ,UAAU,CAAC,CAAGM,EAAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,EAAE;UAC5C,OAAO,IAAI,CAACX,SAAS,CAACa,QAAQ,CAACC,aAAa,CAACL,CAAC,CAAC,CAAA;AACjD,SAAA;AACF,OAAC,CAAC,CAAA;AACF5D,MAAAA,MAAM,CAAC0D,IAAI,CAAC,IAAI,CAACP,SAAS,CAACe,eAAe,CAAC,CAAC9C,OAAO,CAAEwC,CAAC,IAAK;AACzD,QAAA,IAAIH,KAAK,CAACI,IAAI,CAAEC,CAAC,IAAKF,CAAC,CAACJ,UAAU,CAAC,CAAGM,EAAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,EAAE;AAC5C,UAAA,OAAO,IAAI,CAACX,SAAS,CAACe,eAAe,CAACN,CAAC,CAAC,CAAA;AAC1C,SAAA;AACF,OAAC,CAAC,CAAA;AACF5D,MAAAA,MAAM,CAAC0D,IAAI,CAAC,IAAI,CAACP,SAAS,CAACa,QAAQ,CAACG,aAAa,CAAC,CAAC/C,OAAO,CAAEwC,CAAC,IAAK;AAChE,QAAA,IAAIH,KAAK,CAACI,IAAI,CAAEC,CAAC,IAAKF,CAAC,CAACJ,UAAU,CAAC,CAAGM,EAAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,EAAE;UAC5C,OAAO,IAAI,CAACX,SAAS,CAACa,QAAQ,CAACG,aAAa,CAACP,CAAC,CAAC,CAAA;AACjD,SAAA;AACF,OAAC,CAAC,CAAA;AACF,MAAA,IACE/D,SAAS,CAACQ,OAAO,CAACC,OAAO,EAAE+C,SAAS,IACpCxD,SAAS,CAACQ,OAAO,CAACC,OAAO,CAAC+C,SAAS,YAAYC,KAAM,EACrD;AACA,QAAA,IAAI,CAACb,MAAM,CAAC2B,OAAO,EAAE,CAAA;AACvB,OAAA;AACA,MAAA,IACEvE,SAAS,CAACQ,OAAO,CAACC,OAAO,EAAE+C,SAAS,IACpCxD,SAAS,CAACQ,OAAO,CAACC,OAAO,CAAC+C,SAAS,YAAYE,UAAU,EACzD;AACA,QAAA,IAAI,CAACd,MAAM,CAAC2B,OAAO,EAAE,CAAA;AACvB,OAAA;AACA,MAAA,IACEvE,SAAS,CAACR,EAAE,CAACmE,UAAU,CAAC,gBAAgB,CAAC,IACzC,CAAC3D,SAAS,CAACR,EAAE,CAACmE,UAAU,CAAC,2BAA2B,CAAC,EACrD;AACA,QAAA,IAAI,CAACf,MAAM,CAAC2B,OAAO,EAAE,CAAA;AACvB,OAAA;MACA,IAAIvE,SAAS,CAACR,EAAE,CAACmE,UAAU,CAAC,CAAKpF,EAAAA,EAAAA,eAAe,CAAG,CAAA,CAAA,CAAC,EAAE;AACpD,QAAA,IAAI,CAACqE,MAAM,CAAC2B,OAAO,EAAE,CAAA;AACvB,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;EACArG,eAAeA,CAACC,GAAQ,EAAE;IACxB,OAAOD,eAAe,CAACC,GAAG,CAAC,CAAA;AAC7B,GAAA;AACF,CAAC,EAAAoE,WAAA,GAAAiC,yBAAA,CAAAtC,MAAA,CAAAsB,SAAA,EAAA,QAAA,EAAA,CAAAxB,IAAA,CAAA,EAAA;EAAAyC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA,IAAA;AAAA,CAAA,CAAA,EAAA1C,MAAA,EAAA;AAGD;AACA;AACA;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-vite-hmr",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"ember-addon"
|
|
6
6
|
],
|
|
@@ -83,6 +83,7 @@
|
|
|
83
83
|
"ember-cli-htmlbars": "^6.3.0",
|
|
84
84
|
"ember-resolver": "^11.0.1",
|
|
85
85
|
"ember-source": "^5.10.1",
|
|
86
|
+
"@glimmer/component": "^1.1.2",
|
|
86
87
|
"ember-template-lint": "^5.11.2",
|
|
87
88
|
"eslint": "^8.33.0",
|
|
88
89
|
"eslint-config-prettier": "^9.0.0",
|
|
@@ -122,6 +123,7 @@
|
|
|
122
123
|
"type": "addon",
|
|
123
124
|
"main": "addon-main.cjs",
|
|
124
125
|
"app-js": {
|
|
126
|
+
"./instance-initializers/setup-hmr-manager.js": "./dist/_app_/instance-initializers/setup-hmr-manager.js",
|
|
125
127
|
"./instance-initializers/vite-hot-reload.js": "./dist/_app_/instance-initializers/vite-hot-reload.js",
|
|
126
128
|
"./services/vite-hot-reload.js": "./dist/_app_/services/vite-hot-reload.js"
|
|
127
129
|
}
|