ember-native 2.2.1 → 3.0.1
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/declarations/dom/nodes/ViewNode.d.ts +2 -2
- package/dist/dom/native/FrameElement.js +0 -6
- package/dist/dom/native/NativeElementNode.js +3 -0
- package/dist/dom/nodes/ViewNode.js +35 -19
- package/dist/utils/babel-plugin.js +1 -1
- package/dist/utils/babel-plugin.ts +1 -1
- package/dist/utils/embroider-template-tag-loader.js +50 -0
- package/dist/utils/embroider-webpack-adapter.js +174 -0
- package/dist/utils/webpack.config.js +15 -43
- package/package.json +24 -29
- package/dist/utils/content-tag-loader.js +0 -9
|
@@ -8,8 +8,6 @@ export default class ViewNode {
|
|
|
8
8
|
_tagName: any;
|
|
9
9
|
parentNode: ViewNode | null;
|
|
10
10
|
childNodes: ViewNode[];
|
|
11
|
-
prevSibling: ViewNode | null;
|
|
12
|
-
nextSibling: ViewNode | null;
|
|
13
11
|
_ownerDocument: any;
|
|
14
12
|
_meta: any;
|
|
15
13
|
get textContent(): string;
|
|
@@ -26,6 +24,8 @@ export default class ViewNode {
|
|
|
26
24
|
get tagName(): any;
|
|
27
25
|
get firstChild(): ViewNode | null | undefined;
|
|
28
26
|
get lastChild(): ViewNode | null | undefined;
|
|
27
|
+
get nextSibling(): ViewNode | null;
|
|
28
|
+
get prevSibling(): ViewNode | null;
|
|
29
29
|
get meta(): any;
|
|
30
30
|
get isConnected(): boolean;
|
|
31
31
|
get ownerDocument(): DocumentNode | null;
|
|
@@ -74,12 +74,6 @@ class FrameElement extends NativeElementNode {
|
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
76
|
childNode.parentNode = null;
|
|
77
|
-
|
|
78
|
-
// reset the prevSibling and nextSibling. If not, a keep-alived component will
|
|
79
|
-
// still have a filled nextSibling attribute so vue will not
|
|
80
|
-
// insert the node again to the parent. See #220
|
|
81
|
-
childNode.prevSibling = null;
|
|
82
|
-
childNode.nextSibling = null;
|
|
83
77
|
this.childNodes = this.childNodes.filter(node => node !== childNode);
|
|
84
78
|
childNode.removeChildren();
|
|
85
79
|
this.onRemovedChild(childNode);
|
|
@@ -283,6 +283,9 @@ class NativeElementNode extends ElementNode {
|
|
|
283
283
|
parentView._removeView(childView);
|
|
284
284
|
}
|
|
285
285
|
} else if (parentView instanceof View) {
|
|
286
|
+
if (childNode.parentNode !== parentNode) {
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
286
289
|
parentView._removeView(childView);
|
|
287
290
|
} else ;
|
|
288
291
|
}
|
|
@@ -50,16 +50,12 @@ class ViewNode {
|
|
|
50
50
|
_defineProperty(this, "nodeType", void 0);
|
|
51
51
|
_defineProperty(this, "_tagName", void 0);
|
|
52
52
|
_defineProperty(this, "childNodes", void 0);
|
|
53
|
-
_defineProperty(this, "prevSibling", void 0);
|
|
54
|
-
_defineProperty(this, "nextSibling", void 0);
|
|
55
53
|
_defineProperty(this, "_ownerDocument", void 0);
|
|
56
54
|
_defineProperty(this, "_meta", void 0);
|
|
57
55
|
this.nodeType = null;
|
|
58
56
|
this._tagName = null;
|
|
59
57
|
this.parentNode = null;
|
|
60
58
|
this.childNodes = [];
|
|
61
|
-
this.prevSibling = null;
|
|
62
|
-
this.nextSibling = null;
|
|
63
59
|
this._ownerDocument = null;
|
|
64
60
|
this._meta = null;
|
|
65
61
|
this.attributes = [];
|
|
@@ -87,6 +83,26 @@ class ViewNode {
|
|
|
87
83
|
get lastChild() {
|
|
88
84
|
return this.childNodes.length ? this.childNodes[this.childNodes.length - 1] : null;
|
|
89
85
|
}
|
|
86
|
+
get nextSibling() {
|
|
87
|
+
if (!this.parentNode) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const index = this.parentNode.childNodes.indexOf(this);
|
|
91
|
+
if (index === -1 || index === this.parentNode.childNodes.length - 1) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
return this.parentNode.childNodes[index + 1];
|
|
95
|
+
}
|
|
96
|
+
get prevSibling() {
|
|
97
|
+
if (!this.parentNode) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
const index = this.parentNode.childNodes.indexOf(this);
|
|
101
|
+
if (index <= 0) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
return this.parentNode.childNodes[index - 1];
|
|
105
|
+
}
|
|
90
106
|
get meta() {
|
|
91
107
|
if (this._meta) {
|
|
92
108
|
return this._meta;
|
|
@@ -138,12 +154,15 @@ class ViewNode {
|
|
|
138
154
|
if (childNode.parentNode && childNode.parentNode !== this) {
|
|
139
155
|
throw new Error(`Can't insert child, because it already has a different parent.`);
|
|
140
156
|
}
|
|
141
|
-
if (childNode.parentNode === this)
|
|
157
|
+
if (childNode.parentNode === this) {
|
|
158
|
+
// we don't need to throw an error here, because it is a valid case
|
|
159
|
+
// for example when switching the order of elements in the tree
|
|
160
|
+
// fixes #127 - see for more details
|
|
161
|
+
// fixes #240
|
|
162
|
+
// throw new Error(`Can't insert child, because it is already a child.`)
|
|
163
|
+
this.removeChild(childNode);
|
|
164
|
+
}
|
|
142
165
|
const index = this.childNodes.indexOf(referenceNode);
|
|
143
|
-
childNode.nextSibling = referenceNode;
|
|
144
|
-
childNode.prevSibling = this.childNodes[index - 1];
|
|
145
|
-
this.childNodes[index - 1].nextSibling = childNode;
|
|
146
|
-
referenceNode.prevSibling = childNode;
|
|
147
166
|
this.childNodes.splice(index, 0, childNode);
|
|
148
167
|
childNode.parentNode = this;
|
|
149
168
|
this.onInsertedChild(childNode, index);
|
|
@@ -155,10 +174,13 @@ class ViewNode {
|
|
|
155
174
|
if (childNode.parentNode && childNode.parentNode !== this) {
|
|
156
175
|
throw new Error(`Can't append child, because it already has a different parent.`);
|
|
157
176
|
}
|
|
158
|
-
if (childNode.parentNode === this)
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
177
|
+
if (childNode.parentNode === this) {
|
|
178
|
+
// we don't need to throw an error here, because it is a valid case
|
|
179
|
+
// for example when switching the order of elements in the tree
|
|
180
|
+
// fixes #127 - see for more details
|
|
181
|
+
// fixes #240
|
|
182
|
+
// throw new Error(`Can't append child, because it is already a child.`)
|
|
183
|
+
this.removeChild(childNode);
|
|
162
184
|
}
|
|
163
185
|
this.childNodes.push(childNode);
|
|
164
186
|
childNode.parentNode = this;
|
|
@@ -175,12 +197,6 @@ class ViewNode {
|
|
|
175
197
|
throw new Error(`Can't remove child, because it has a different parent.`);
|
|
176
198
|
}
|
|
177
199
|
childNode.parentNode = null;
|
|
178
|
-
if (childNode.prevSibling) {
|
|
179
|
-
childNode.prevSibling.nextSibling = childNode.nextSibling;
|
|
180
|
-
}
|
|
181
|
-
if (childNode.nextSibling) {
|
|
182
|
-
childNode.nextSibling.prevSibling = childNode.prevSibling;
|
|
183
|
-
}
|
|
184
200
|
|
|
185
201
|
// reset the prevSibling and nextSibling. If not, a keep-alived component will
|
|
186
202
|
// still have a filled nextSibling attribute so vue will not
|
|
@@ -152,7 +152,7 @@ export default function hotReplaceAst(babel) {
|
|
|
152
152
|
visitor: {
|
|
153
153
|
Program(path, state) {
|
|
154
154
|
var _a;
|
|
155
|
-
if (!hotAstProcessor.meta.importVar) {
|
|
155
|
+
if (!hotAstProcessor.meta.importVar || !hotAstProcessor.meta.importBindings) {
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
158
|
if (process.env['EMBER_HMR_ENABLED'] !== 'true') {
|
|
@@ -198,7 +198,7 @@ export default function hotReplaceAst(babel: typeof Babel) {
|
|
|
198
198
|
},
|
|
199
199
|
visitor: {
|
|
200
200
|
Program(path, state) {
|
|
201
|
-
if (!hotAstProcessor.meta.importVar) {
|
|
201
|
+
if (!hotAstProcessor.meta.importVar || !hotAstProcessor.meta.importBindings) {
|
|
202
202
|
return;
|
|
203
203
|
}
|
|
204
204
|
if (process.env['EMBER_HMR_ENABLED'] !== 'true') {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webpack loader that uses @embroider/vite's templateTag plugin
|
|
3
|
+
* to transform .gts/.gjs files
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
let templateTagPlugin;
|
|
7
|
+
|
|
8
|
+
try {
|
|
9
|
+
const { templateTag } = require('@embroider/vite');
|
|
10
|
+
templateTagPlugin = templateTag();
|
|
11
|
+
} catch (e) {
|
|
12
|
+
console.warn('Failed to load @embroider/vite templateTag plugin:', e.message);
|
|
13
|
+
console.warn('Falling back to content-tag-loader');
|
|
14
|
+
// Fallback to content-tag-loader
|
|
15
|
+
module.exports = require('./content-tag-loader.js');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
module.exports = function embroiderTemplateTagLoader(source) {
|
|
20
|
+
const callback = this.async();
|
|
21
|
+
const id = this.resourcePath;
|
|
22
|
+
|
|
23
|
+
// Create a minimal context for the plugin
|
|
24
|
+
const context = {
|
|
25
|
+
parse: (code) => ({ code }),
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Call the transform hook from the templateTag plugin
|
|
29
|
+
Promise.resolve()
|
|
30
|
+
.then(() => {
|
|
31
|
+
if (templateTagPlugin.transform) {
|
|
32
|
+
return templateTagPlugin.transform.call(context, source, id);
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
})
|
|
36
|
+
.then((result) => {
|
|
37
|
+
if (result && result.code) {
|
|
38
|
+
// Return just the code, like content-tag-loader does
|
|
39
|
+
// This avoids the .inputSourceMap error with babel-loader
|
|
40
|
+
callback(null, result.code);
|
|
41
|
+
} else {
|
|
42
|
+
// If no transformation, pass through
|
|
43
|
+
callback();
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
.catch((error) => {
|
|
47
|
+
console.error('Template tag transformation error:', error);
|
|
48
|
+
callback(error);
|
|
49
|
+
});
|
|
50
|
+
};
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webpack adapter for @embroider/vite plugins
|
|
3
|
+
*
|
|
4
|
+
* This adapter allows using @embroider/vite's resolver() and templateTag() plugins
|
|
5
|
+
* in webpack builds, similar to how they're used in rollup.config.mjs
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const path = require('path');
|
|
9
|
+
const fs = require('fs');
|
|
10
|
+
const { existsSync, statSync } = require("fs");
|
|
11
|
+
const { resolve: resolvePath } = require("path");
|
|
12
|
+
|
|
13
|
+
function tryExtensions(basePath, extensions = ['js', 'ts', 'gts', '.gjs']) {
|
|
14
|
+
// Try with extensions first
|
|
15
|
+
basePath = basePath
|
|
16
|
+
.replace('.js', '')
|
|
17
|
+
.replace('.ts', '')
|
|
18
|
+
.replace('.gjs', '')
|
|
19
|
+
.replace('.gts', '')
|
|
20
|
+
.replace('file://', '');
|
|
21
|
+
for (const ext of extensions) {
|
|
22
|
+
const fullPath = `${basePath}.${ext}`;
|
|
23
|
+
if (existsSync(fullPath)) {
|
|
24
|
+
try {
|
|
25
|
+
const stats = statSync(fullPath);
|
|
26
|
+
if (stats.isFile()) {
|
|
27
|
+
return fs.realpathSync(fullPath);
|
|
28
|
+
}
|
|
29
|
+
// eslint-disable-next-line no-unused-vars
|
|
30
|
+
} catch (e) {
|
|
31
|
+
// Continue to next extension
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Try index files
|
|
37
|
+
for (const ext of extensions) {
|
|
38
|
+
const indexPath = resolvePath(basePath, `index.${ext}`);
|
|
39
|
+
if (existsSync(indexPath)) {
|
|
40
|
+
try {
|
|
41
|
+
const stats = statSync(indexPath);
|
|
42
|
+
if (stats.isFile()) {
|
|
43
|
+
return indexPath;
|
|
44
|
+
}
|
|
45
|
+
// eslint-disable-next-line no-unused-vars
|
|
46
|
+
} catch (e) {
|
|
47
|
+
// Continue to next extension
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Creates a webpack resolver plugin that uses @embroider/vite's resolver
|
|
56
|
+
*/
|
|
57
|
+
function createResolverPlugin() {
|
|
58
|
+
let resolverPlugin;
|
|
59
|
+
|
|
60
|
+
try {
|
|
61
|
+
const { resolver } = require('@embroider/vite');
|
|
62
|
+
resolverPlugin = resolver();
|
|
63
|
+
} catch (e) {
|
|
64
|
+
console.warn('Failed to load @embroider/vite resolver plugin:', e.message);
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return class EmbroiderResolverPlugin {
|
|
69
|
+
apply(resolver) {
|
|
70
|
+
const target = resolver.ensureHook('resolved');
|
|
71
|
+
|
|
72
|
+
resolver
|
|
73
|
+
.getHook('described-resolve')
|
|
74
|
+
.tapAsync('EmbroiderResolverPlugin', (request, resolveContext, callback) => {
|
|
75
|
+
const issuer = request.context?.issuer || request.path;
|
|
76
|
+
|
|
77
|
+
if (!request.context?.issuer) {
|
|
78
|
+
callback();
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Create a context compatible with vite plugins
|
|
83
|
+
// The resolver expects a context with a resolve method
|
|
84
|
+
const context = {
|
|
85
|
+
resolve: async (spec, from) => {
|
|
86
|
+
// Return a simple object with id property
|
|
87
|
+
// Let webpack handle the actual resolution
|
|
88
|
+
const res = tryExtensions(spec);
|
|
89
|
+
if (res) {
|
|
90
|
+
return { id: res };
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
if (spec.startsWith('ember-source')) {
|
|
94
|
+
return { id: fs.realpathSync(require.resolve(spec)) };
|
|
95
|
+
}
|
|
96
|
+
from = fs.realpathSync(from);
|
|
97
|
+
return { id: fs.realpathSync(require.resolve(spec, { paths: [path.dirname(from)] })) };
|
|
98
|
+
// eslint-disable-next-line no-unused-vars
|
|
99
|
+
} catch (e) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
// Call resolveId from the resolver plugin
|
|
106
|
+
Promise.resolve()
|
|
107
|
+
.then(() => {
|
|
108
|
+
if (resolverPlugin.resolveId) {
|
|
109
|
+
return resolverPlugin.resolveId.call(context, request.request, issuer, {});
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
})
|
|
113
|
+
.then((result) => {
|
|
114
|
+
if (result && result.id) {
|
|
115
|
+
// Embroider resolved it - continue with the resolved path
|
|
116
|
+
const obj = {
|
|
117
|
+
...request,
|
|
118
|
+
request: result.id,
|
|
119
|
+
path: result.id
|
|
120
|
+
};
|
|
121
|
+
resolver.doResolve(target, obj, null, resolveContext, callback);
|
|
122
|
+
} else {
|
|
123
|
+
// Embroider couldn't resolve it - let the next plugin try
|
|
124
|
+
callback();
|
|
125
|
+
}
|
|
126
|
+
})
|
|
127
|
+
// eslint-disable-next-line no-unused-vars
|
|
128
|
+
.catch((error) => {
|
|
129
|
+
callback();
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Configures webpack to use @embroider/vite plugins via adapters
|
|
138
|
+
*/
|
|
139
|
+
module.exports = function configureEmbroiderWebpackAdapter(webpack) {
|
|
140
|
+
const ResolverPlugin = createResolverPlugin();
|
|
141
|
+
|
|
142
|
+
webpack.chainWebpack((config) => {
|
|
143
|
+
// Add resolver plugin if available
|
|
144
|
+
if (ResolverPlugin) {
|
|
145
|
+
config.resolve
|
|
146
|
+
.plugin('embroider-resolver')
|
|
147
|
+
.use(ResolverPlugin);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Configure .gts/.gjs file handling using the embroider-template-tag-loader
|
|
151
|
+
// This loader wraps @embroider/vite's templateTag() plugin
|
|
152
|
+
const loaderPath = path.resolve(__dirname, 'embroider-template-tag-loader.js');
|
|
153
|
+
|
|
154
|
+
config.module
|
|
155
|
+
.rule('gts/gjs')
|
|
156
|
+
.test(/\.g[jt]s$/)
|
|
157
|
+
.use('babel-loader')
|
|
158
|
+
.loader('babel-loader')
|
|
159
|
+
.end()
|
|
160
|
+
.use('embroider-template-tag-loader')
|
|
161
|
+
.loader(loaderPath)
|
|
162
|
+
.end();
|
|
163
|
+
|
|
164
|
+
// Configure regular .js/.ts files
|
|
165
|
+
config.module
|
|
166
|
+
.rule('js/ts')
|
|
167
|
+
.test(/\.([jt]s)$/)
|
|
168
|
+
.use('babel-loader')
|
|
169
|
+
.loader('babel-loader')
|
|
170
|
+
.end();
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
module.exports.createResolverPlugin = createResolverPlugin;
|
|
@@ -1,55 +1,27 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const path = require('path');
|
|
3
1
|
|
|
2
|
+
/**
|
|
3
|
+
* Configures webpack for ember-native using @embroider/vite adapter
|
|
4
|
+
*
|
|
5
|
+
* This configuration uses @embroider/vite plugins via the webpack adapter
|
|
6
|
+
* with automatic fallback to custom loaders if unavailable.
|
|
7
|
+
*/
|
|
4
8
|
module.exports = (webpack) => {
|
|
9
|
+
try {
|
|
10
|
+
const configureAdapter = require('./embroider-webpack-adapter.js');
|
|
11
|
+
configureAdapter(webpack);
|
|
12
|
+
console.log('✓ Using @embroider/vite webpack adapter');
|
|
13
|
+
} catch (e) {
|
|
14
|
+
console.warn('⚠ Failed to load embroider adapter, using fallback loaders:', e.message);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Configure @glimmer/env alias (still needed)
|
|
5
18
|
webpack.chainWebpack((config) => {
|
|
6
|
-
const glimmerDirs = fs.readdirSync(
|
|
7
|
-
path.resolve(
|
|
8
|
-
process.cwd(),
|
|
9
|
-
'./node_modules/ember-source/dist/packages/@glimmer',
|
|
10
|
-
),
|
|
11
|
-
);
|
|
12
|
-
for (const glimmerDir of glimmerDirs) {
|
|
13
|
-
config.resolve.alias.set(
|
|
14
|
-
`@glimmer/${glimmerDir}`,
|
|
15
|
-
`ember-source/dist/packages/@glimmer/${glimmerDir}`,
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
// change the "@" alias to "app/libs"
|
|
19
|
-
config.resolve.alias.set('@ember', 'ember-source/dist/packages/@ember');
|
|
20
|
-
config.resolve.alias.set('ember', 'ember-source/dist/packages/ember');
|
|
21
|
-
config.resolve.alias.set(
|
|
22
|
-
'@glimmer/component',
|
|
23
|
-
'@glimmer/component/addon/index.ts',
|
|
24
|
-
);
|
|
25
19
|
config.resolve.alias.set(
|
|
26
20
|
'@glimmer/env',
|
|
27
21
|
require.resolve('./glimmer-env.js'),
|
|
28
22
|
);
|
|
29
23
|
});
|
|
30
24
|
|
|
31
|
-
webpack.chainWebpack((config) => {
|
|
32
|
-
// add a new rule for *.something files
|
|
33
|
-
config.module
|
|
34
|
-
.rule('gts/gjs')
|
|
35
|
-
.test(/\.g[jt]s$/)
|
|
36
|
-
.use('babel-loader')
|
|
37
|
-
.loader('babel-loader')
|
|
38
|
-
.end()
|
|
39
|
-
.use('gjs-loader')
|
|
40
|
-
.loader(require.resolve('./content-tag-loader.js'))
|
|
41
|
-
.end();
|
|
42
|
-
|
|
43
|
-
config.module
|
|
44
|
-
.rule('js/ts')
|
|
45
|
-
.test(/\.([jt]s)$/)
|
|
46
|
-
.use('fix-glimmer-content-owner')
|
|
47
|
-
.loader(require.resolve('./fix-glimmer-content-owner.js'))
|
|
48
|
-
.end()
|
|
49
|
-
.use('babel-loader')
|
|
50
|
-
.loader('babel-loader');
|
|
51
|
-
});
|
|
52
|
-
|
|
53
25
|
webpack.chainWebpack((config) => {
|
|
54
26
|
config.plugin('DefinePlugin').tap((args) => {
|
|
55
27
|
Object.assign(args[0], {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "the Ember framework with Nativescript",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon"
|
|
@@ -19,10 +19,6 @@
|
|
|
19
19
|
],
|
|
20
20
|
"peerDependencies": {
|
|
21
21
|
"@glimmer/component": "*",
|
|
22
|
-
"@glimmer/reference": "*",
|
|
23
|
-
"@glimmer/runtime": "*",
|
|
24
|
-
"@glimmer/tracking": "*",
|
|
25
|
-
"@glimmer/validator": "*",
|
|
26
22
|
"@nativescript/core": "*",
|
|
27
23
|
"ember-modifier": "*",
|
|
28
24
|
"ember-source": "*",
|
|
@@ -34,10 +30,9 @@
|
|
|
34
30
|
"@ember/render-modifiers": "^3.0.0",
|
|
35
31
|
"@ember/string": "^4.0.0",
|
|
36
32
|
"@ember/test-waiters": "^4.1.1",
|
|
37
|
-
"@embroider/addon-shim": "^1.10.
|
|
33
|
+
"@embroider/addon-shim": "^1.10.2",
|
|
38
34
|
"@eslint/js": "^9.28.0",
|
|
39
35
|
"@glimmer/component": "^2.0.0",
|
|
40
|
-
"@glimmer/tracking": "^1.1.2",
|
|
41
36
|
"@rollup/plugin-alias": "^5.1.0",
|
|
42
37
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
43
38
|
"@types/node": "^24.1.0",
|
|
@@ -58,43 +53,42 @@
|
|
|
58
53
|
},
|
|
59
54
|
"devDependencies": {
|
|
60
55
|
"@babel/types": "^7.28.5",
|
|
56
|
+
"@babel/eslint-parser": "^7.28.5",
|
|
61
57
|
"@ember/optional-features": "^2.0.0",
|
|
62
58
|
"@embroider/addon-dev": "^8.1.0",
|
|
63
59
|
"@embroider/compat": "^4.1.0",
|
|
64
|
-
"@embroider/core": "^4.
|
|
65
|
-
"@embroider/macros": "^1.
|
|
66
|
-
"@embroider/shared-internals": "^3.0.
|
|
60
|
+
"@embroider/core": "^4.4.0",
|
|
61
|
+
"@embroider/macros": "^1.19.5",
|
|
62
|
+
"@embroider/shared-internals": "^3.0.1",
|
|
63
|
+
"@embroider/vite": "^1.4.2",
|
|
67
64
|
"@embroider/util": "^1.13.3",
|
|
68
65
|
"@embroider/webpack": "^4.1.1",
|
|
69
|
-
"@glimmer/interfaces": "^0.94.6",
|
|
70
|
-
"@glimmer/reference": "^0.94.8",
|
|
71
|
-
"@glimmer/runtime": "^0.94.10",
|
|
72
66
|
"@glimmer/syntax": "^0.94.9",
|
|
73
|
-
"@glimmer/validator": "^0.95.0",
|
|
74
67
|
"@glint/core": "^1.5.0",
|
|
75
68
|
"@glint/environment-ember-loose": "^1.5.0",
|
|
76
69
|
"@glint/environment-ember-template-imports": "^1.5.0",
|
|
77
|
-
"@glint/template": "^1.
|
|
70
|
+
"@glint/template": "^1.7.3",
|
|
78
71
|
"@nativescript/core": "^8.9.7",
|
|
79
72
|
"@release-it-plugins/lerna-changelog": "^8.0.1",
|
|
80
|
-
"@rollup/plugin-babel": "^6.0
|
|
81
|
-
"@tsconfig/ember": "^3.0.
|
|
73
|
+
"@rollup/plugin-babel": "^6.1.0",
|
|
74
|
+
"@tsconfig/ember": "^3.0.12",
|
|
82
75
|
"@types/babel__core": "^7.20.5",
|
|
83
76
|
"@types/jquery": "^3.5.16",
|
|
84
|
-
"@types/qunit": "^2.19.
|
|
77
|
+
"@types/qunit": "^2.19.13",
|
|
85
78
|
"@types/qunit-dom": "^0.7.0",
|
|
86
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
87
|
-
"@typescript-eslint/parser": "^8.
|
|
79
|
+
"@typescript-eslint/eslint-plugin": "^8.47.0",
|
|
80
|
+
"@typescript-eslint/parser": "^8.48.0",
|
|
81
|
+
"typescript-eslint": "^8.38.0",
|
|
88
82
|
"babel-import-util": "^3.0.0",
|
|
89
|
-
"babel-plugin-ember-template-compilation": "^3.0.
|
|
83
|
+
"babel-plugin-ember-template-compilation": "^3.0.1",
|
|
90
84
|
"bower": "^1.8.8",
|
|
91
85
|
"globals": "^16.5.0",
|
|
92
|
-
"broccoli": "^
|
|
86
|
+
"broccoli": "^4.0.0",
|
|
93
87
|
"broccoli-asset-rev": "^3.0.0",
|
|
94
|
-
"concurrently": "^9.2.
|
|
88
|
+
"concurrently": "^9.2.1",
|
|
95
89
|
"content-tag": "^4.0.0",
|
|
96
90
|
"css-loader": "^7.1.2",
|
|
97
|
-
"ember-eslint-parser": "^0.5.
|
|
91
|
+
"ember-eslint-parser": "^0.5.13",
|
|
98
92
|
"ember-modifier": "^4.2.0",
|
|
99
93
|
"ember-source": "^6.6.0",
|
|
100
94
|
"ember-template-lint": "^7.9.1",
|
|
@@ -106,19 +100,19 @@
|
|
|
106
100
|
"eslint-plugin-n": "^17.21.3",
|
|
107
101
|
"eslint-plugin-node": "^11.1.0",
|
|
108
102
|
"eslint-plugin-prettier": "^5.5.4",
|
|
109
|
-
"eslint-plugin-qunit": "^8.
|
|
103
|
+
"eslint-plugin-qunit": "^8.2.5",
|
|
110
104
|
"fix-bad-declaration-output": "^1.1.4",
|
|
111
105
|
"loader.js": "^4.7.0",
|
|
112
106
|
"nativescript-ui-listview": "^15.2.3",
|
|
113
107
|
"prettier": "^3.6.2",
|
|
114
108
|
"prettier-plugin-ember-template-tag": "^2.1.0",
|
|
115
|
-
"qunit": "^2.
|
|
109
|
+
"qunit": "^2.24.3",
|
|
116
110
|
"qunit-dom": "^3.4.0",
|
|
117
111
|
"release-it": "^15.10.3",
|
|
118
112
|
"rollup": "^4.46.3",
|
|
119
|
-
"rollup-plugin-copy": "^3.
|
|
113
|
+
"rollup-plugin-copy": "^3.5.0",
|
|
120
114
|
"router_js": "^8.0.6",
|
|
121
|
-
"sass": "^1.
|
|
115
|
+
"sass": "^1.94.2",
|
|
122
116
|
"sass-embedded": "^1.90.0",
|
|
123
117
|
"sass-loader": "^16.0.4",
|
|
124
118
|
"typescript": "^5.9.2",
|
|
@@ -156,6 +150,7 @@
|
|
|
156
150
|
"types": "./declarations/*.d.ts",
|
|
157
151
|
"default": "./dist/*.js"
|
|
158
152
|
},
|
|
153
|
+
"./utils/*": "./dist/utils/*",
|
|
159
154
|
"./addon-main.js": "./addon-main.cjs"
|
|
160
155
|
},
|
|
161
156
|
"typesVersions": {
|
|
@@ -166,7 +161,7 @@
|
|
|
166
161
|
}
|
|
167
162
|
},
|
|
168
163
|
"scripts": {
|
|
169
|
-
"build": "
|
|
164
|
+
"build": "pnpm build:js && pnpm build:utils && pnpm build:types",
|
|
170
165
|
"build:js": "rollup --config",
|
|
171
166
|
"build:utils": "cd utils && tsc --project tsconfig.json",
|
|
172
167
|
"build:types": "glint --declaration && npx fix-bad-declaration-output './declarations/**/*.d.ts'",
|