@analogjs/astro-angular 0.2.0-beta.11 → 0.2.0-beta.13
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 +1 -3
- package/migrations/migration.json +4 -0
- package/package.json +2 -2
- package/src/client.js +29 -0
- package/src/index.js +68 -0
- package/src/server.js +65 -0
- package/src/test-setup.js +2 -0
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ This command:
|
|
|
21
21
|
|
|
22
22
|
- Installs the `@analogjs/astro-angular` package.
|
|
23
23
|
- Adds the `@analogjs/astro-angular` integration to the `astro.config.mjs` file.
|
|
24
|
-
- Installs the necessary dependencies to render Angular components on the server and client, and common Angular dependencies, such as `@angular/common
|
|
24
|
+
- Installs the necessary dependencies to render Angular components on the server and client, and common Angular dependencies, such as `@angular/common`.
|
|
25
25
|
|
|
26
26
|
### Setting up the TypeScript config
|
|
27
27
|
|
|
@@ -113,8 +113,6 @@ export default defineConfig({
|
|
|
113
113
|
integrations: [
|
|
114
114
|
angular({
|
|
115
115
|
vite: {
|
|
116
|
-
tsconfig: 'path/to/tsconfig.app.json',
|
|
117
|
-
workspaceRoot: 'rootDir',
|
|
118
116
|
inlineStylesExtension: 'scss|sass|less',
|
|
119
117
|
},
|
|
120
118
|
}),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@analogjs/astro-angular",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.13",
|
|
4
4
|
"description": "Use Angular components within Astro",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Brandon Roberts <robertsbt@gmail.com>",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"url": "https://github.com/analogjs/analog.git"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@analogjs/vite-plugin-angular": "^0.2.0-beta.
|
|
30
|
+
"@analogjs/vite-plugin-angular": "^0.2.0-beta.13"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@angular-devkit/build-angular": "^16.0.0",
|
package/src/client.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import 'zone.js/dist/zone.js';
|
|
2
|
+
import { reflectComponentType, } from '@angular/core';
|
|
3
|
+
import { NgZone, createComponent } from '@angular/core';
|
|
4
|
+
import { createApplication } from '@angular/platform-browser';
|
|
5
|
+
export default (element) => {
|
|
6
|
+
return (Component, props, _childHTML) => {
|
|
7
|
+
createApplication({
|
|
8
|
+
providers: [...(Component.clientProviders || [])],
|
|
9
|
+
}).then((appRef) => {
|
|
10
|
+
const zone = appRef.injector.get(NgZone);
|
|
11
|
+
zone.run(() => {
|
|
12
|
+
const componentRef = createComponent(Component, {
|
|
13
|
+
environmentInjector: appRef.injector,
|
|
14
|
+
hostElement: element,
|
|
15
|
+
});
|
|
16
|
+
const mirror = reflectComponentType(Component);
|
|
17
|
+
if (props && mirror) {
|
|
18
|
+
for (const [key, value] of Object.entries(props)) {
|
|
19
|
+
if (mirror.inputs.some(({ templateName, propName }) => templateName === key || propName === key)) {
|
|
20
|
+
componentRef.setInput(key, value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
appRef.attachView(componentRef.hostView);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvYXN0cm8tYW5ndWxhci9zcmMvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUdMLG9CQUFvQixHQUVyQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsZUFBZSxDQUFDLE9BQW9CLEVBQUUsRUFBRTtJQUN0QyxPQUFPLENBQ0wsU0FFQyxFQUNELEtBQStCLEVBQy9CLFVBQW9CLEVBQ3BCLEVBQUU7UUFDRixpQkFBaUIsQ0FBQztZQUNoQixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNsRCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBc0IsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNaLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxTQUFTLEVBQUU7b0JBQzlDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxRQUFRO29CQUNwQyxXQUFXLEVBQUUsT0FBTztpQkFDckIsQ0FBQyxDQUFDO2dCQUVILE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUU7b0JBQ25CLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUNoRCxJQUNFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNoQixDQUFDLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FDN0IsWUFBWSxLQUFLLEdBQUcsSUFBSSxRQUFRLEtBQUssR0FBRyxDQUMzQyxFQUNEOzRCQUNBLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO3lCQUNuQztxQkFDRjtpQkFDRjtnQkFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
package/src/index.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import viteAngular from '@analogjs/vite-plugin-angular';
|
|
2
|
+
import { enableProdMode } from '@angular/core';
|
|
3
|
+
function getRenderer() {
|
|
4
|
+
return {
|
|
5
|
+
name: '@analogjs/astro-angular',
|
|
6
|
+
clientEntrypoint: '@analogjs/astro-angular/client.js',
|
|
7
|
+
serverEntrypoint: '@analogjs/astro-angular/server.js',
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function getViteConfiguration(vite) {
|
|
11
|
+
return {
|
|
12
|
+
optimizeDeps: {
|
|
13
|
+
include: [
|
|
14
|
+
'@angular/platform-browser',
|
|
15
|
+
'@angular/core',
|
|
16
|
+
'@analogjs/astro-angular/client.js',
|
|
17
|
+
],
|
|
18
|
+
exclude: [
|
|
19
|
+
'@angular/platform-server',
|
|
20
|
+
'@analogjs/astro-angular/server.js',
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* Why I am casting viteAngular as any
|
|
26
|
+
*
|
|
27
|
+
* The vite angular plugins is shipped as commonjs, while this astro
|
|
28
|
+
* integration is shipped using ESM and if you call the default
|
|
29
|
+
* function, you get the following error: viteAngular is not a function.
|
|
30
|
+
* Attempt to use ESM for the angular vite plugin broke something, hence
|
|
31
|
+
* this workaround for now.
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
plugins: [
|
|
35
|
+
viteAngular.default(vite),
|
|
36
|
+
{
|
|
37
|
+
name: '@analogjs/astro-angular-platform-server',
|
|
38
|
+
transform(code, id) {
|
|
39
|
+
if (id.includes('platform-server')) {
|
|
40
|
+
code = code.replace(/global\./g, 'globalThis.');
|
|
41
|
+
return {
|
|
42
|
+
code: code.replace('new xhr2.XMLHttpRequest', 'new (xhr2.default.XMLHttpRequest || xhr2.default)'),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return;
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
ssr: {
|
|
50
|
+
noExternal: ['@angular/**', '@analogjs/**'],
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export default function (options) {
|
|
55
|
+
return {
|
|
56
|
+
name: '@analogjs/astro-angular',
|
|
57
|
+
hooks: {
|
|
58
|
+
'astro:config:setup': ({ addRenderer, updateConfig }) => {
|
|
59
|
+
addRenderer(getRenderer());
|
|
60
|
+
updateConfig({ vite: getViteConfiguration(options === null || options === void 0 ? void 0 : options.vite) });
|
|
61
|
+
},
|
|
62
|
+
'astro:build:setup': () => {
|
|
63
|
+
enableProdMode();
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hc3Ryby1hbmd1bGFyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQThCLE1BQU0sK0JBQStCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vQyxTQUFTLFdBQVc7SUFDbEIsT0FBTztRQUNMLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsZ0JBQWdCLEVBQUUsbUNBQW1DO1FBQ3JELGdCQUFnQixFQUFFLG1DQUFtQztLQUN0RCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsSUFBb0I7SUFDaEQsT0FBTztRQUNMLFlBQVksRUFBRTtZQUNaLE9BQU8sRUFBRTtnQkFDUCwyQkFBMkI7Z0JBQzNCLGVBQWU7Z0JBQ2YsbUNBQW1DO2FBQ3BDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLDBCQUEwQjtnQkFDMUIsbUNBQW1DO2FBQ3BDO1NBQ0Y7UUFDRDs7Ozs7Ozs7OztXQVVHO1FBQ0gsT0FBTyxFQUFFO1lBQ04sV0FBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2xDO2dCQUNFLElBQUksRUFBRSx5Q0FBeUM7Z0JBQy9DLFNBQVMsQ0FBQyxJQUFZLEVBQUUsRUFBVTtvQkFDaEMsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7d0JBQ2xDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQzt3QkFFaEQsT0FBTzs0QkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FDaEIseUJBQXlCLEVBQ3pCLG1EQUFtRCxDQUNwRDt5QkFDRixDQUFDO3FCQUNIO29CQUVELE9BQU87Z0JBQ1QsQ0FBQzthQUNGO1NBQ0Y7UUFDRCxHQUFHLEVBQUU7WUFDSCxVQUFVLEVBQUUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDO1NBQzVDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxXQUFXLE9BQXdCO0lBQy9DLE9BQU87UUFDTCxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLEtBQUssRUFBRTtZQUNMLG9CQUFvQixFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRTtnQkFDdEQsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFDRCxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7Z0JBQ3hCLGNBQWMsRUFBRSxDQUFDO1lBQ25CLENBQUM7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIn0=
|
package/src/server.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import 'zone.js/bundles/zone-node.umd.js';
|
|
3
|
+
import { ApplicationRef, InjectionToken, reflectComponentType, } from '@angular/core';
|
|
4
|
+
import { BEFORE_APP_SERIALIZED, provideServerRendering, renderApplication, ɵSERVER_CONTEXT, } from '@angular/platform-server';
|
|
5
|
+
import { bootstrapApplication } from '@angular/platform-browser';
|
|
6
|
+
const ANALOG_ASTRO_STATIC_PROPS = new InjectionToken('@analogjs/astro-angular: Static Props w/ Mirror Provider', {
|
|
7
|
+
factory() {
|
|
8
|
+
return { props: {}, mirror: {} };
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
function check(Component, _props, _children) {
|
|
12
|
+
return !!reflectComponentType(Component);
|
|
13
|
+
}
|
|
14
|
+
// Run beforeAppInitialized hook to set Input on the ComponentRef
|
|
15
|
+
// before the platform renders to string
|
|
16
|
+
const STATIC_PROPS_HOOK_PROVIDER = {
|
|
17
|
+
provide: BEFORE_APP_SERIALIZED,
|
|
18
|
+
useFactory: (appRef, { props, mirror, }) => {
|
|
19
|
+
return () => {
|
|
20
|
+
const compRef = appRef.components[0];
|
|
21
|
+
if (compRef && props && mirror) {
|
|
22
|
+
for (const [key, value] of Object.entries(props)) {
|
|
23
|
+
if (
|
|
24
|
+
// we double-check inputs on ComponentMirror
|
|
25
|
+
// because Astro might add additional props
|
|
26
|
+
// that aren't actually Input defined on the Component
|
|
27
|
+
mirror.inputs.some(({ templateName, propName }) => templateName === key || propName === key)) {
|
|
28
|
+
compRef.setInput(key, value);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
compRef.changeDetectorRef.detectChanges();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
deps: [ApplicationRef, ANALOG_ASTRO_STATIC_PROPS],
|
|
36
|
+
multi: true,
|
|
37
|
+
};
|
|
38
|
+
function renderToStaticMarkup(Component, props, _children) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const mirror = reflectComponentType(Component);
|
|
41
|
+
const appId = (mirror === null || mirror === void 0 ? void 0 : mirror.selector) || Component.name.toString().toLowerCase();
|
|
42
|
+
const document = `<${appId}></${appId}>`;
|
|
43
|
+
const bootstrap = () => bootstrapApplication(Component, {
|
|
44
|
+
providers: [
|
|
45
|
+
{
|
|
46
|
+
provide: ANALOG_ASTRO_STATIC_PROPS,
|
|
47
|
+
useValue: { props, mirror },
|
|
48
|
+
},
|
|
49
|
+
STATIC_PROPS_HOOK_PROVIDER,
|
|
50
|
+
provideServerRendering(),
|
|
51
|
+
{ provide: ɵSERVER_CONTEXT, useValue: 'analog' },
|
|
52
|
+
...(Component.renderProviders || []),
|
|
53
|
+
],
|
|
54
|
+
});
|
|
55
|
+
const html = yield renderApplication(bootstrap, {
|
|
56
|
+
document,
|
|
57
|
+
});
|
|
58
|
+
return { html };
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export default {
|
|
62
|
+
check,
|
|
63
|
+
renderToStaticMarkup,
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvYXN0cm8tYW5ndWxhci9zcmMvc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGtDQUFrQyxDQUFDO0FBTzFDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsZUFBZSxHQUNoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBR2pELDBEQUEwRCxFQUFFO0lBQzdELE9BQU87UUFDTCxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBOEIsRUFBRSxDQUFDO0lBQy9ELENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxTQUFTLEtBQUssQ0FDWixTQUFpQyxFQUNqQyxNQUErQixFQUMvQixTQUFrQjtJQUVsQixPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLHdDQUF3QztBQUN4QyxNQUFNLDBCQUEwQixHQUFhO0lBQzNDLE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsVUFBVSxFQUFFLENBQ1YsTUFBc0IsRUFDdEIsRUFDRSxLQUFLLEVBQ0wsTUFBTSxHQUlQLEVBQ0QsRUFBRTtRQUNGLE9BQU8sR0FBRyxFQUFFO1lBQ1YsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLE9BQU8sSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFO2dCQUM5QixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDaEQ7b0JBQ0UsNENBQTRDO29CQUM1QywyQ0FBMkM7b0JBQzNDLHNEQUFzRDtvQkFDdEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLENBQUMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUM3QixZQUFZLEtBQUssR0FBRyxJQUFJLFFBQVEsS0FBSyxHQUFHLENBQzNDLEVBQ0Q7d0JBQ0EsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7cUJBQzlCO2lCQUNGO2dCQUNELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUMzQztRQUNILENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUseUJBQXlCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsU0FBZSxvQkFBb0IsQ0FDakMsU0FFQyxFQUNELEtBQThCLEVBQzlCLFNBQWtCOztRQUVsQixNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxRQUFRLEtBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxRSxNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssTUFBTSxLQUFLLEdBQUcsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FDckIsb0JBQW9CLENBQUMsU0FBUyxFQUFFO1lBQzlCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUseUJBQXlCO29CQUNsQyxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2lCQUM1QjtnQkFDRCwwQkFBMEI7Z0JBQzFCLHNCQUFzQixFQUFFO2dCQUN4QixFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtnQkFDaEQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO2FBQ3JDO1NBQ0YsQ0FBQyxDQUFDO1FBRUwsTUFBTSxJQUFJLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7WUFDOUMsUUFBUTtTQUNULENBQUMsQ0FBQztRQUVILE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsQixDQUFDO0NBQUE7QUFFRCxlQUFlO0lBQ2IsS0FBSztJQUNMLG9CQUFvQjtDQUNyQixDQUFDIn0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import '@analogjs/vite-plugin-angular/setup-vitest';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1zZXR1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2FzdHJvLWFuZ3VsYXIvc3JjL3Rlc3Qtc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyw0Q0FBNEMsQ0FBQyJ9
|