@analogjs/vite-plugin-angular 3.0.0-alpha.2 → 3.0.0-alpha.20
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/migrations/migrate-setup-vitest/migrate-setup-vitest.d.ts +2 -0
- package/migrations/migrate-setup-vitest/migrate-setup-vitest.js +49 -0
- package/migrations/migrate-setup-vitest/migrate-setup-vitest.js.map +1 -0
- package/migrations/migration.json +7 -1
- package/package.json +8 -11
- package/src/index.d.ts +3 -2
- package/src/index.js +6 -2
- package/src/index.js.map +1 -1
- package/src/lib/angular-build-optimizer-plugin.d.ts +4 -4
- package/src/lib/angular-build-optimizer-plugin.js +48 -62
- package/src/lib/angular-build-optimizer-plugin.js.map +1 -1
- package/src/lib/angular-jit-plugin.d.ts +3 -3
- package/src/lib/angular-jit-plugin.js +31 -37
- package/src/lib/angular-jit-plugin.js.map +1 -1
- package/src/lib/angular-pending-tasks.plugin.d.ts +7 -7
- package/src/lib/angular-pending-tasks.plugin.js +17 -18
- package/src/lib/angular-pending-tasks.plugin.js.map +1 -1
- package/src/lib/angular-vite-plugin.d.ts +145 -45
- package/src/lib/angular-vite-plugin.js +822 -963
- package/src/lib/angular-vite-plugin.js.map +1 -1
- package/src/lib/angular-vitest-plugin.d.ts +20 -16
- package/src/lib/angular-vitest-plugin.js +88 -114
- package/src/lib/angular-vitest-plugin.js.map +1 -1
- package/src/lib/compiler-plugin.d.ts +11 -11
- package/src/lib/compiler-plugin.js +43 -44
- package/src/lib/compiler-plugin.js.map +1 -1
- package/src/lib/component-resolvers.d.ts +8 -6
- package/src/lib/component-resolvers.js +93 -64
- package/src/lib/component-resolvers.js.map +1 -1
- package/src/lib/host.d.ts +10 -8
- package/src/lib/host.js +70 -101
- package/src/lib/host.js.map +1 -1
- package/src/lib/live-reload-plugin.d.ts +5 -5
- package/src/lib/live-reload-plugin.js +51 -62
- package/src/lib/live-reload-plugin.js.map +1 -1
- package/src/lib/models.d.ts +9 -9
- package/src/lib/nx-folder-plugin.d.ts +5 -5
- package/src/lib/nx-folder-plugin.js +18 -16
- package/src/lib/nx-folder-plugin.js.map +1 -1
- package/src/lib/plugins/file-replacements.plugin.d.ts +4 -4
- package/src/lib/plugins/file-replacements.plugin.js +35 -62
- package/src/lib/plugins/file-replacements.plugin.js.map +1 -1
- package/src/lib/router-plugin.d.ts +1 -1
- package/src/lib/router-plugin.js +23 -23
- package/src/lib/router-plugin.js.map +1 -1
- package/src/lib/style-preprocessor.d.ts +1 -0
- package/src/lib/tools/package.json +2 -7
- package/src/lib/tools/src/builders/vite/vite-build.impl.js +31 -35
- package/src/lib/tools/src/builders/vite/vite-build.impl.js.map +1 -1
- package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js +51 -59
- package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js.map +1 -1
- package/src/lib/tools/src/index.js +0 -1
- package/src/lib/utils/compiler-plugin-options.d.ts +11 -11
- package/src/lib/utils/devkit.d.ts +4 -4
- package/src/lib/utils/devkit.js +34 -38
- package/src/lib/utils/devkit.js.map +1 -1
- package/src/lib/utils/hmr-candidates.d.ts +28 -28
- package/src/lib/utils/rolldown.d.ts +2 -0
- package/src/lib/utils/rolldown.js +12 -0
- package/src/lib/utils/rolldown.js.map +1 -0
- package/src/lib/utils/source-file-cache.d.ts +8 -15
- package/src/lib/utils/source-file-cache.js +35 -37
- package/src/lib/utils/source-file-cache.js.map +1 -1
- package/src/test-setup.d.ts +2 -0
- package/setup-vitest.d.ts +0 -4
- package/setup-vitest.js +0 -217
- package/setup-vitest.js.map +0 -1
- package/src/lib/models.js +0 -1
- package/src/lib/models.js.map +0 -1
- package/src/lib/tools/README.md +0 -3
- package/src/lib/tools/src/index.d.ts +0 -0
- package/src/lib/tools/src/index.js.map +0 -1
- package/src/lib/utils/compiler-plugin-options.js +0 -1
- package/src/lib/utils/compiler-plugin-options.js.map +0 -1
- package/src/lib/utils/hmr-candidates.js +0 -272
- package/src/lib/utils/hmr-candidates.js.map +0 -1
- package/vite.config.d.ts +0 -2
- package/vite.config.js +0 -22
- package/vite.config.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { NodePackageInstallTask } from "@angular-devkit/schematics/tasks";
|
|
2
|
+
//#region packages/vite-plugin-angular/migrations/migrate-setup-vitest/migrate-setup-vitest.ts
|
|
3
|
+
var OLD_IMPORT = "@analogjs/vite-plugin-angular/setup-vitest";
|
|
4
|
+
var NEW_IMPORT = "@analogjs/vitest-angular/setup-zone";
|
|
5
|
+
function addVitestAngularDependency(tree, context) {
|
|
6
|
+
const pkgPath = "/package.json";
|
|
7
|
+
const content = tree.read(pkgPath);
|
|
8
|
+
if (!content) return;
|
|
9
|
+
const pkg = JSON.parse(content.toString("utf-8"));
|
|
10
|
+
const devDeps = pkg["devDependencies"] || {};
|
|
11
|
+
const deps = pkg["dependencies"] || {};
|
|
12
|
+
if (!devDeps["@analogjs/vitest-angular"] && !deps["@analogjs/vitest-angular"]) {
|
|
13
|
+
const analogVersion = devDeps["@analogjs/vite-plugin-angular"] || deps["@analogjs/vite-plugin-angular"] || "*";
|
|
14
|
+
pkg["devDependencies"] = {
|
|
15
|
+
...devDeps,
|
|
16
|
+
"@analogjs/vitest-angular": analogVersion
|
|
17
|
+
};
|
|
18
|
+
tree.overwrite(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
|
|
19
|
+
context.addTask(new NodePackageInstallTask());
|
|
20
|
+
context.logger.info(`Added '@analogjs/vitest-angular': '${analogVersion}' to devDependencies.`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function migrateSetupVitest() {
|
|
24
|
+
return (tree, context) => {
|
|
25
|
+
const filesToUpdate = [];
|
|
26
|
+
tree.visit((filePath) => {
|
|
27
|
+
if (!filePath.endsWith(".ts") && !filePath.endsWith(".mts") && !filePath.endsWith(".js") && !filePath.endsWith(".mjs")) return;
|
|
28
|
+
if (filePath.includes("/node_modules/")) return;
|
|
29
|
+
const content = tree.read(filePath);
|
|
30
|
+
if (!content) return;
|
|
31
|
+
const text = content.toString("utf-8");
|
|
32
|
+
if (text.includes(OLD_IMPORT)) {
|
|
33
|
+
const updated = text.replace(new RegExp(OLD_IMPORT.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), NEW_IMPORT);
|
|
34
|
+
tree.overwrite(filePath, updated);
|
|
35
|
+
filesToUpdate.push(filePath);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
if (filesToUpdate.length > 0) {
|
|
39
|
+
context.logger.info(`Migrated ${filesToUpdate.length} file(s) from '${OLD_IMPORT}' to '${NEW_IMPORT}':`);
|
|
40
|
+
for (const file of filesToUpdate) context.logger.info(` - ${file}`);
|
|
41
|
+
}
|
|
42
|
+
if (filesToUpdate.length > 0) addVitestAngularDependency(tree, context);
|
|
43
|
+
return tree;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { migrateSetupVitest as default };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=migrate-setup-vitest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-setup-vitest.js","names":[],"sources":["../../../migrations/migrate-setup-vitest/migrate-setup-vitest.ts"],"sourcesContent":["import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';\nimport { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';\n\nconst OLD_IMPORT = '@analogjs/vite-plugin-angular/setup-vitest';\nconst NEW_IMPORT = '@analogjs/vitest-angular/setup-zone';\n\nfunction addVitestAngularDependency(\n tree: Tree,\n context: SchematicContext,\n): void {\n const pkgPath = '/package.json';\n const content = tree.read(pkgPath);\n if (!content) {\n return;\n }\n\n const pkg = JSON.parse(content.toString('utf-8'));\n const devDeps = pkg['devDependencies'] || {};\n const deps = pkg['dependencies'] || {};\n\n if (\n !devDeps['@analogjs/vitest-angular'] &&\n !deps['@analogjs/vitest-angular']\n ) {\n const analogVersion =\n devDeps['@analogjs/vite-plugin-angular'] ||\n deps['@analogjs/vite-plugin-angular'] ||\n '*';\n\n pkg['devDependencies'] = {\n ...devDeps,\n '@analogjs/vitest-angular': analogVersion,\n };\n\n tree.overwrite(pkgPath, JSON.stringify(pkg, null, 2) + '\\n');\n context.addTask(new NodePackageInstallTask());\n context.logger.info(\n `Added '@analogjs/vitest-angular': '${analogVersion}' to devDependencies.`,\n );\n }\n}\n\nexport default function migrateSetupVitest(): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const filesToUpdate: string[] = [];\n\n tree.visit((filePath) => {\n if (\n !filePath.endsWith('.ts') &&\n !filePath.endsWith('.mts') &&\n !filePath.endsWith('.js') &&\n !filePath.endsWith('.mjs')\n ) {\n return;\n }\n if (filePath.includes('/node_modules/')) {\n return;\n }\n\n const content = tree.read(filePath);\n if (!content) {\n return;\n }\n\n const text = content.toString('utf-8');\n if (text.includes(OLD_IMPORT)) {\n const updated = text.replace(\n new RegExp(OLD_IMPORT.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'g'),\n NEW_IMPORT,\n );\n tree.overwrite(filePath, updated);\n filesToUpdate.push(filePath);\n }\n });\n\n if (filesToUpdate.length > 0) {\n context.logger.info(\n `Migrated ${filesToUpdate.length} file(s) from '${OLD_IMPORT}' to '${NEW_IMPORT}':`,\n );\n for (const file of filesToUpdate) {\n context.logger.info(` - ${file}`);\n }\n }\n\n if (filesToUpdate.length > 0) {\n addVitestAngularDependency(tree, context);\n }\n\n return tree;\n };\n}\n"],"mappings":";;AAGA,IAAM,aAAa;AACnB,IAAM,aAAa;AAEnB,SAAS,2BACP,MACA,SACM;CACN,MAAM,UAAU;CAChB,MAAM,UAAU,KAAK,KAAK,QAAQ;AAClC,KAAI,CAAC,QACH;CAGF,MAAM,MAAM,KAAK,MAAM,QAAQ,SAAS,QAAQ,CAAC;CACjD,MAAM,UAAU,IAAI,sBAAsB,EAAE;CAC5C,MAAM,OAAO,IAAI,mBAAmB,EAAE;AAEtC,KACE,CAAC,QAAQ,+BACT,CAAC,KAAK,6BACN;EACA,MAAM,gBACJ,QAAQ,oCACR,KAAK,oCACL;AAEF,MAAI,qBAAqB;GACvB,GAAG;GACH,4BAA4B;GAC7B;AAED,OAAK,UAAU,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,GAAG,KAAK;AAC5D,UAAQ,QAAQ,IAAI,wBAAwB,CAAC;AAC7C,UAAQ,OAAO,KACb,sCAAsC,cAAc,uBACrD;;;AAIL,SAAwB,qBAA2B;AACjD,SAAQ,MAAY,YAA8B;EAChD,MAAM,gBAA0B,EAAE;AAElC,OAAK,OAAO,aAAa;AACvB,OACE,CAAC,SAAS,SAAS,MAAM,IACzB,CAAC,SAAS,SAAS,OAAO,IAC1B,CAAC,SAAS,SAAS,MAAM,IACzB,CAAC,SAAS,SAAS,OAAO,CAE1B;AAEF,OAAI,SAAS,SAAS,iBAAiB,CACrC;GAGF,MAAM,UAAU,KAAK,KAAK,SAAS;AACnC,OAAI,CAAC,QACH;GAGF,MAAM,OAAO,QAAQ,SAAS,QAAQ;AACtC,OAAI,KAAK,SAAS,WAAW,EAAE;IAC7B,MAAM,UAAU,KAAK,QACnB,IAAI,OAAO,WAAW,QAAQ,uBAAuB,OAAO,EAAE,IAAI,EAClE,WACD;AACD,SAAK,UAAU,UAAU,QAAQ;AACjC,kBAAc,KAAK,SAAS;;IAE9B;AAEF,MAAI,cAAc,SAAS,GAAG;AAC5B,WAAQ,OAAO,KACb,YAAY,cAAc,OAAO,iBAAiB,WAAW,QAAQ,WAAW,IACjF;AACD,QAAK,MAAM,QAAQ,cACjB,SAAQ,OAAO,KAAK,OAAO,OAAO;;AAItC,MAAI,cAAc,SAAS,EACzB,4BAA2B,MAAM,QAAQ;AAG3C,SAAO"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
|
|
3
|
-
"schematics": {
|
|
3
|
+
"schematics": {
|
|
4
|
+
"migrate-setup-vitest": {
|
|
5
|
+
"version": "3.0.0-alpha.16",
|
|
6
|
+
"description": "Migrate from @analogjs/vite-plugin-angular/setup-vitest to @analogjs/vitest-angular/setup-zone",
|
|
7
|
+
"factory": "./migrate-setup-vitest/migrate-setup-vitest"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
4
10
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@analogjs/vite-plugin-angular",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.20",
|
|
4
4
|
"description": "Vite Plugin for Angular",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -36,8 +36,10 @@
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"
|
|
40
|
-
"
|
|
39
|
+
"oxc-parser": "^0.121.0",
|
|
40
|
+
"oxc-resolver": "^11.19.0",
|
|
41
|
+
"rolldown": "^1.0.0-rc.11",
|
|
42
|
+
"tinyglobby": "^0.2.14"
|
|
41
43
|
},
|
|
42
44
|
"builders": "./src/lib/tools/builders.json",
|
|
43
45
|
"ng-update": {
|
|
@@ -59,15 +61,10 @@
|
|
|
59
61
|
"import": "./src/index.js",
|
|
60
62
|
"require": "./src/index.js",
|
|
61
63
|
"default": "./src/index.js"
|
|
62
|
-
}
|
|
63
|
-
"./esbuild": "./esbuild.js",
|
|
64
|
-
"./setup-vitest": "./setup-vitest.js"
|
|
64
|
+
}
|
|
65
65
|
},
|
|
66
66
|
"publishConfig": {
|
|
67
67
|
"access": "public",
|
|
68
68
|
"provenance": true
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
"module": "./src/index.js",
|
|
72
|
-
"main": "./src/index.js"
|
|
73
|
-
}
|
|
69
|
+
}
|
|
70
|
+
}
|
package/src/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { angular } from
|
|
2
|
-
export { PluginOptions } from
|
|
1
|
+
import { angular } from "./lib/angular-vite-plugin.js";
|
|
2
|
+
export type { PluginOptions } from "./lib/angular-vite-plugin.js";
|
|
3
|
+
export type { StylePreprocessor } from "./lib/style-preprocessor.js";
|
|
3
4
|
export default angular;
|
package/src/index.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import { angular } from
|
|
2
|
-
|
|
1
|
+
import { angular } from "./lib/angular-vite-plugin.js";
|
|
2
|
+
//#region packages/vite-plugin-angular/src/index.ts
|
|
3
|
+
var src_default = angular;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { src_default as default };
|
|
6
|
+
|
|
3
7
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["import { angular } from './lib/angular-vite-plugin.js';\nexport type { PluginOptions } from './lib/angular-vite-plugin.js';\nexport type { StylePreprocessor } from './lib/style-preprocessor.js';\n\nexport default angular;\n"],"mappings":";;AAIA,IAAA,cAAe"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Plugin } from
|
|
2
|
-
export declare function buildOptimizerPlugin({ jit
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { Plugin } from "vite";
|
|
2
|
+
export declare function buildOptimizerPlugin({ jit }: {
|
|
3
|
+
supportedBrowsers: string[];
|
|
4
|
+
jit: boolean;
|
|
5
5
|
}): Plugin;
|
|
@@ -1,64 +1,50 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return {
|
|
47
|
-
code: isProd
|
|
48
|
-
? code.replace(/^\/\/# sourceMappingURL=[^\r\n]*/gm, '')
|
|
49
|
-
: code,
|
|
50
|
-
map: {
|
|
51
|
-
mappings: '',
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
const sideEffects = jit && id.includes('@angular/compiler') ? true : false;
|
|
56
|
-
const result = await javascriptTransformer.transformData(id, code, false, sideEffects);
|
|
57
|
-
return {
|
|
58
|
-
code: Buffer.from(result).toString(),
|
|
59
|
-
};
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
};
|
|
1
|
+
import { jt } from "./utils/devkit.js";
|
|
2
|
+
import { getJsTransformConfigKey } from "./utils/rolldown.js";
|
|
3
|
+
//#region packages/vite-plugin-angular/src/lib/angular-build-optimizer-plugin.ts
|
|
4
|
+
function buildOptimizerPlugin({ jit }) {
|
|
5
|
+
const javascriptTransformer = new jt({
|
|
6
|
+
sourcemap: false,
|
|
7
|
+
thirdPartySourcemaps: false,
|
|
8
|
+
advancedOptimizations: true,
|
|
9
|
+
jit: true
|
|
10
|
+
}, 1);
|
|
11
|
+
let isProd = false;
|
|
12
|
+
return {
|
|
13
|
+
name: "@analogjs/vite-plugin-angular-optimizer",
|
|
14
|
+
apply: "build",
|
|
15
|
+
config(userConfig) {
|
|
16
|
+
isProd = userConfig.mode === "production" || process.env.NODE_ENV === "production";
|
|
17
|
+
const jsTransformConfigKey = getJsTransformConfigKey();
|
|
18
|
+
return {
|
|
19
|
+
define: isProd ? {
|
|
20
|
+
ngJitMode: "false",
|
|
21
|
+
ngI18nClosureMode: "false",
|
|
22
|
+
ngDevMode: "false",
|
|
23
|
+
ngServerMode: `${!!userConfig.build?.ssr}`
|
|
24
|
+
} : {},
|
|
25
|
+
[jsTransformConfigKey]: { define: isProd ? {
|
|
26
|
+
ngDevMode: "false",
|
|
27
|
+
ngJitMode: "false",
|
|
28
|
+
ngI18nClosureMode: "false",
|
|
29
|
+
ngServerMode: `${!!userConfig.build?.ssr}`
|
|
30
|
+
} : void 0 }
|
|
31
|
+
};
|
|
32
|
+
},
|
|
33
|
+
transform: {
|
|
34
|
+
filter: { id: /\.[cm]?js$/ },
|
|
35
|
+
async handler(code, id) {
|
|
36
|
+
if (!/fesm20/.test(id)) return {
|
|
37
|
+
code: isProd ? code.replace(/^\/\/# sourceMappingURL=[^\r\n]*/gm, "") : code,
|
|
38
|
+
map: { mappings: "" }
|
|
39
|
+
};
|
|
40
|
+
const sideEffects = jit && id.includes("@angular/compiler") ? true : false;
|
|
41
|
+
const result = await javascriptTransformer.transformData(id, code, false, sideEffects);
|
|
42
|
+
return { code: Buffer.from(result).toString() };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
63
46
|
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { buildOptimizerPlugin };
|
|
49
|
+
|
|
64
50
|
//# sourceMappingURL=angular-build-optimizer-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-build-optimizer-plugin.js","
|
|
1
|
+
{"version":3,"file":"angular-build-optimizer-plugin.js","names":[],"sources":["../../../src/lib/angular-build-optimizer-plugin.ts"],"sourcesContent":["import type { Plugin, UserConfig } from 'vite';\nimport { JavaScriptTransformer } from './utils/devkit.js';\nimport { getJsTransformConfigKey } from './utils/rolldown.js';\n\nexport function buildOptimizerPlugin({\n jit,\n}: {\n supportedBrowsers: string[];\n jit: boolean;\n}): Plugin {\n const javascriptTransformer = new JavaScriptTransformer(\n {\n sourcemap: false,\n thirdPartySourcemaps: false,\n advancedOptimizations: true,\n jit: true,\n },\n 1,\n );\n let isProd = false;\n\n return {\n name: '@analogjs/vite-plugin-angular-optimizer',\n apply: 'build',\n config(userConfig) {\n isProd =\n userConfig.mode === 'production' ||\n process.env['NODE_ENV'] === 'production';\n const jsTransformConfigKey = getJsTransformConfigKey();\n\n return {\n define: isProd\n ? {\n ngJitMode: 'false',\n ngI18nClosureMode: 'false',\n ngDevMode: 'false',\n ngServerMode: `${!!userConfig.build?.ssr}`,\n }\n : {},\n [jsTransformConfigKey]: {\n define: isProd\n ? {\n ngDevMode: 'false',\n ngJitMode: 'false',\n ngI18nClosureMode: 'false',\n ngServerMode: `${!!userConfig.build?.ssr}`,\n }\n : undefined,\n },\n } as UserConfig;\n },\n transform: {\n filter: {\n id: /\\.[cm]?js$/,\n },\n async handler(code, id) {\n const angularPackage = /fesm20/.test(id);\n\n if (!angularPackage) {\n return {\n code: isProd\n ? code.replace(/^\\/\\/# sourceMappingURL=[^\\r\\n]*/gm, '')\n : code,\n map: {\n mappings: '',\n },\n };\n }\n\n const sideEffects =\n jit && id.includes('@angular/compiler') ? true : false;\n const result: Uint8Array = await javascriptTransformer.transformData(\n id,\n code,\n false,\n sideEffects,\n );\n\n return {\n code: Buffer.from(result).toString(),\n };\n },\n },\n };\n}\n"],"mappings":";;;AAIA,SAAgB,qBAAqB,EACnC,OAIS;CACT,MAAM,wBAAwB,IAAI,GAChC;EACE,WAAW;EACX,sBAAsB;EACtB,uBAAuB;EACvB,KAAK;EACN,EACD,EACD;CACD,IAAI,SAAS;AAEb,QAAO;EACL,MAAM;EACN,OAAO;EACP,OAAO,YAAY;AACjB,YACE,WAAW,SAAS,gBAAA,QAAA,IAAA,aACQ;GAC9B,MAAM,uBAAuB,yBAAyB;AAEtD,UAAO;IACL,QAAQ,SACJ;KACE,WAAW;KACX,mBAAmB;KACnB,WAAW;KACX,cAAc,GAAG,CAAC,CAAC,WAAW,OAAO;KACtC,GACD,EAAE;KACL,uBAAuB,EACtB,QAAQ,SACJ;KACE,WAAW;KACX,WAAW;KACX,mBAAmB;KACnB,cAAc,GAAG,CAAC,CAAC,WAAW,OAAO;KACtC,GACD,KAAA,GACL;IACF;;EAEH,WAAW;GACT,QAAQ,EACN,IAAI,cACL;GACD,MAAM,QAAQ,MAAM,IAAI;AAGtB,QAAI,CAFmB,SAAS,KAAK,GAAG,CAGtC,QAAO;KACL,MAAM,SACF,KAAK,QAAQ,sCAAsC,GAAG,GACtD;KACJ,KAAK,EACH,UAAU,IACX;KACF;IAGH,MAAM,cACJ,OAAO,GAAG,SAAS,oBAAoB,GAAG,OAAO;IACnD,MAAM,SAAqB,MAAM,sBAAsB,cACrD,IACA,MACA,OACA,YACD;AAED,WAAO,EACL,MAAM,OAAO,KAAK,OAAO,CAAC,UAAU,EACrC;;GAEJ;EACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Plugin } from
|
|
2
|
-
export declare function jitPlugin({ inlineStylesExtension
|
|
3
|
-
|
|
1
|
+
import { Plugin } from "vite";
|
|
2
|
+
export declare function jitPlugin({ inlineStylesExtension }: {
|
|
3
|
+
inlineStylesExtension: string;
|
|
4
4
|
}): Plugin;
|
|
@@ -1,39 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
catch (e) {
|
|
31
|
-
console.error(`${e}`);
|
|
32
|
-
}
|
|
33
|
-
return `export default \`${styles}\``;
|
|
34
|
-
}
|
|
35
|
-
return;
|
|
36
|
-
},
|
|
37
|
-
};
|
|
1
|
+
import { preprocessCSS } from "vite";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
//#region packages/vite-plugin-angular/src/lib/angular-jit-plugin.ts
|
|
4
|
+
function jitPlugin({ inlineStylesExtension }) {
|
|
5
|
+
let config;
|
|
6
|
+
return {
|
|
7
|
+
name: "@analogjs/vite-plugin-angular-jit",
|
|
8
|
+
configResolved(_config) {
|
|
9
|
+
config = _config;
|
|
10
|
+
},
|
|
11
|
+
resolveId(id) {
|
|
12
|
+
if (id.startsWith("virtual:angular")) return `\0${id}`;
|
|
13
|
+
},
|
|
14
|
+
async load(id) {
|
|
15
|
+
if (id.includes("virtual:angular:jit:style:inline;")) {
|
|
16
|
+
const styleId = id.split("style:inline;")[1];
|
|
17
|
+
const styleIdHash = createHash("sha256").update(styleId).digest("hex").slice(0, 16);
|
|
18
|
+
const decodedStyles = Buffer.from(decodeURIComponent(styleId), "base64").toString();
|
|
19
|
+
let styles = "";
|
|
20
|
+
try {
|
|
21
|
+
styles = (await preprocessCSS(decodedStyles, `${styleIdHash}.${inlineStylesExtension}?direct`, config))?.code;
|
|
22
|
+
} catch (e) {
|
|
23
|
+
console.error(`${e}`);
|
|
24
|
+
}
|
|
25
|
+
return `export default \`${styles}\``;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
38
29
|
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { jitPlugin };
|
|
32
|
+
|
|
39
33
|
//# sourceMappingURL=angular-jit-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-jit-plugin.js","
|
|
1
|
+
{"version":3,"file":"angular-jit-plugin.js","names":[],"sources":["../../../src/lib/angular-jit-plugin.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { Plugin, ResolvedConfig, preprocessCSS } from 'vite';\n\nexport function jitPlugin({\n inlineStylesExtension,\n}: {\n inlineStylesExtension: string;\n}): Plugin {\n let config: ResolvedConfig;\n\n return {\n name: '@analogjs/vite-plugin-angular-jit',\n configResolved(_config) {\n config = _config;\n },\n resolveId(id: string) {\n if (id.startsWith('virtual:angular')) {\n return `\\0${id}`;\n }\n\n return;\n },\n async load(id: string) {\n if (id.includes('virtual:angular:jit:style:inline;')) {\n const styleId = id.split('style:inline;')[1];\n // styleId may exceed 255 bytes of base64-encoded content, limit to 16\n const styleIdHash = createHash('sha256')\n .update(styleId)\n .digest('hex')\n .slice(0, 16);\n\n const decodedStyles = Buffer.from(\n decodeURIComponent(styleId),\n 'base64',\n ).toString();\n\n let styles: string | undefined = '';\n\n try {\n const compiled = await preprocessCSS(\n decodedStyles,\n `${styleIdHash}.${inlineStylesExtension}?direct`,\n config,\n );\n styles = compiled?.code;\n } catch (e) {\n console.error(`${e}`);\n }\n\n return `export default \\`${styles}\\``;\n }\n\n return;\n },\n };\n}\n"],"mappings":";;;AAGA,SAAgB,UAAU,EACxB,yBAGS;CACT,IAAI;AAEJ,QAAO;EACL,MAAM;EACN,eAAe,SAAS;AACtB,YAAS;;EAEX,UAAU,IAAY;AACpB,OAAI,GAAG,WAAW,kBAAkB,CAClC,QAAO,KAAK;;EAKhB,MAAM,KAAK,IAAY;AACrB,OAAI,GAAG,SAAS,oCAAoC,EAAE;IACpD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC;IAE1C,MAAM,cAAc,WAAW,SAAS,CACrC,OAAO,QAAQ,CACf,OAAO,MAAM,CACb,MAAM,GAAG,GAAG;IAEf,MAAM,gBAAgB,OAAO,KAC3B,mBAAmB,QAAQ,EAC3B,SACD,CAAC,UAAU;IAEZ,IAAI,SAA6B;AAEjC,QAAI;AAMF,eALiB,MAAM,cACrB,eACA,GAAG,YAAY,GAAG,sBAAsB,UACxC,OACD,GACkB;aACZ,GAAG;AACV,aAAQ,MAAM,GAAG,IAAI;;AAGvB,WAAO,oBAAoB,OAAO;;;EAKvC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Plugin } from
|
|
1
|
+
import { Plugin } from "vite";
|
|
2
2
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
* This plugin is a workaround for the ɵPendingTasks symbol being renamed
|
|
4
|
+
* to ɵPendingTasksInternal in Angular v19.0.4. The symbol is renamed to support previous versions of
|
|
5
|
+
* Angular with Analog that used the ɵPendingTasks symbol.
|
|
6
|
+
*
|
|
7
|
+
* Commmit: https://github.com/angular/angular/commit/24e317cb157bf1ef159ed8554f1b79cb3443edf4
|
|
8
|
+
*/
|
|
9
9
|
export declare function pendingTasksPlugin(): Plugin;
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
+
//#region packages/vite-plugin-angular/src/lib/angular-pending-tasks.plugin.ts
|
|
1
2
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
return;
|
|
18
|
-
},
|
|
19
|
-
};
|
|
3
|
+
* This plugin is a workaround for the ɵPendingTasks symbol being renamed
|
|
4
|
+
* to ɵPendingTasksInternal in Angular v19.0.4. The symbol is renamed to support previous versions of
|
|
5
|
+
* Angular with Analog that used the ɵPendingTasks symbol.
|
|
6
|
+
*
|
|
7
|
+
* Commmit: https://github.com/angular/angular/commit/24e317cb157bf1ef159ed8554f1b79cb3443edf4
|
|
8
|
+
*/
|
|
9
|
+
function pendingTasksPlugin() {
|
|
10
|
+
return {
|
|
11
|
+
name: "analogjs-pending-tasks-plugin",
|
|
12
|
+
transform(code, id) {
|
|
13
|
+
if (id.includes("analogjs-content.mjs")) return { code: code.replace("ɵPendingTasksInternal", "ɵPendingTasks") };
|
|
14
|
+
}
|
|
15
|
+
};
|
|
20
16
|
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { pendingTasksPlugin };
|
|
19
|
+
|
|
21
20
|
//# sourceMappingURL=angular-pending-tasks.plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-pending-tasks.plugin.js","
|
|
1
|
+
{"version":3,"file":"angular-pending-tasks.plugin.js","names":[],"sources":["../../../src/lib/angular-pending-tasks.plugin.ts"],"sourcesContent":["import { Plugin } from 'vite';\n\nimport { angularFullVersion } from './utils/devkit.js';\n\n/**\n * This plugin is a workaround for the ɵPendingTasks symbol being renamed\n * to ɵPendingTasksInternal in Angular v19.0.4. The symbol is renamed to support previous versions of\n * Angular with Analog that used the ɵPendingTasks symbol.\n *\n * Commmit: https://github.com/angular/angular/commit/24e317cb157bf1ef159ed8554f1b79cb3443edf4\n */\nexport function pendingTasksPlugin(): Plugin {\n return {\n name: 'analogjs-pending-tasks-plugin',\n transform(code, id) {\n if (id.includes('analogjs-content.mjs')) {\n return {\n code: code.replace('ɵPendingTasksInternal', 'ɵPendingTasks'),\n };\n }\n return;\n },\n };\n}\n"],"mappings":";;;;;;;;AAWA,SAAgB,qBAA6B;AAC3C,QAAO;EACL,MAAM;EACN,UAAU,MAAM,IAAI;AAClB,OAAI,GAAG,SAAS,uBAAuB,CACrC,QAAO,EACL,MAAM,KAAK,QAAQ,yBAAyB,gBAAgB,EAC7D;;EAIN"}
|