@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.
Files changed (79) hide show
  1. package/migrations/migrate-setup-vitest/migrate-setup-vitest.d.ts +2 -0
  2. package/migrations/migrate-setup-vitest/migrate-setup-vitest.js +49 -0
  3. package/migrations/migrate-setup-vitest/migrate-setup-vitest.js.map +1 -0
  4. package/migrations/migration.json +7 -1
  5. package/package.json +8 -11
  6. package/src/index.d.ts +3 -2
  7. package/src/index.js +6 -2
  8. package/src/index.js.map +1 -1
  9. package/src/lib/angular-build-optimizer-plugin.d.ts +4 -4
  10. package/src/lib/angular-build-optimizer-plugin.js +48 -62
  11. package/src/lib/angular-build-optimizer-plugin.js.map +1 -1
  12. package/src/lib/angular-jit-plugin.d.ts +3 -3
  13. package/src/lib/angular-jit-plugin.js +31 -37
  14. package/src/lib/angular-jit-plugin.js.map +1 -1
  15. package/src/lib/angular-pending-tasks.plugin.d.ts +7 -7
  16. package/src/lib/angular-pending-tasks.plugin.js +17 -18
  17. package/src/lib/angular-pending-tasks.plugin.js.map +1 -1
  18. package/src/lib/angular-vite-plugin.d.ts +145 -45
  19. package/src/lib/angular-vite-plugin.js +822 -963
  20. package/src/lib/angular-vite-plugin.js.map +1 -1
  21. package/src/lib/angular-vitest-plugin.d.ts +20 -16
  22. package/src/lib/angular-vitest-plugin.js +88 -114
  23. package/src/lib/angular-vitest-plugin.js.map +1 -1
  24. package/src/lib/compiler-plugin.d.ts +11 -11
  25. package/src/lib/compiler-plugin.js +43 -44
  26. package/src/lib/compiler-plugin.js.map +1 -1
  27. package/src/lib/component-resolvers.d.ts +8 -6
  28. package/src/lib/component-resolvers.js +93 -64
  29. package/src/lib/component-resolvers.js.map +1 -1
  30. package/src/lib/host.d.ts +10 -8
  31. package/src/lib/host.js +70 -101
  32. package/src/lib/host.js.map +1 -1
  33. package/src/lib/live-reload-plugin.d.ts +5 -5
  34. package/src/lib/live-reload-plugin.js +51 -62
  35. package/src/lib/live-reload-plugin.js.map +1 -1
  36. package/src/lib/models.d.ts +9 -9
  37. package/src/lib/nx-folder-plugin.d.ts +5 -5
  38. package/src/lib/nx-folder-plugin.js +18 -16
  39. package/src/lib/nx-folder-plugin.js.map +1 -1
  40. package/src/lib/plugins/file-replacements.plugin.d.ts +4 -4
  41. package/src/lib/plugins/file-replacements.plugin.js +35 -62
  42. package/src/lib/plugins/file-replacements.plugin.js.map +1 -1
  43. package/src/lib/router-plugin.d.ts +1 -1
  44. package/src/lib/router-plugin.js +23 -23
  45. package/src/lib/router-plugin.js.map +1 -1
  46. package/src/lib/style-preprocessor.d.ts +1 -0
  47. package/src/lib/tools/package.json +2 -7
  48. package/src/lib/tools/src/builders/vite/vite-build.impl.js +31 -35
  49. package/src/lib/tools/src/builders/vite/vite-build.impl.js.map +1 -1
  50. package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js +51 -59
  51. package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js.map +1 -1
  52. package/src/lib/tools/src/index.js +0 -1
  53. package/src/lib/utils/compiler-plugin-options.d.ts +11 -11
  54. package/src/lib/utils/devkit.d.ts +4 -4
  55. package/src/lib/utils/devkit.js +34 -38
  56. package/src/lib/utils/devkit.js.map +1 -1
  57. package/src/lib/utils/hmr-candidates.d.ts +28 -28
  58. package/src/lib/utils/rolldown.d.ts +2 -0
  59. package/src/lib/utils/rolldown.js +12 -0
  60. package/src/lib/utils/rolldown.js.map +1 -0
  61. package/src/lib/utils/source-file-cache.d.ts +8 -15
  62. package/src/lib/utils/source-file-cache.js +35 -37
  63. package/src/lib/utils/source-file-cache.js.map +1 -1
  64. package/src/test-setup.d.ts +2 -0
  65. package/setup-vitest.d.ts +0 -4
  66. package/setup-vitest.js +0 -217
  67. package/setup-vitest.js.map +0 -1
  68. package/src/lib/models.js +0 -1
  69. package/src/lib/models.js.map +0 -1
  70. package/src/lib/tools/README.md +0 -3
  71. package/src/lib/tools/src/index.d.ts +0 -0
  72. package/src/lib/tools/src/index.js.map +0 -1
  73. package/src/lib/utils/compiler-plugin-options.js +0 -1
  74. package/src/lib/utils/compiler-plugin-options.js.map +0 -1
  75. package/src/lib/utils/hmr-candidates.js +0 -272
  76. package/src/lib/utils/hmr-candidates.js.map +0 -1
  77. package/vite.config.d.ts +0 -2
  78. package/vite.config.js +0 -22
  79. package/vite.config.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import { Rule } from "@angular-devkit/schematics";
2
+ export default function migrateSetupVitest(): Rule;
@@ -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.2",
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
- "tinyglobby": "^0.2.14",
40
- "ts-morph": "^21.0.0"
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
- "types": "./src/index.d.ts",
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 './lib/angular-vite-plugin.js';
2
- export { PluginOptions } from './lib/angular-vite-plugin.js';
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 './lib/angular-vite-plugin.js';
2
- export default angular;
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","sourceRoot":"","sources":["../../../../packages/vite-plugin-angular/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGvD,eAAe,OAAO,CAAC"}
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 'vite';
2
- export declare function buildOptimizerPlugin({ jit, }: {
3
- supportedBrowsers: string[];
4
- jit: boolean;
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 * as vite from 'vite';
2
- import { JavaScriptTransformer } from './utils/devkit.js';
3
- export function buildOptimizerPlugin({ jit, }) {
4
- const javascriptTransformer = new JavaScriptTransformer({
5
- sourcemap: false,
6
- thirdPartySourcemaps: false,
7
- advancedOptimizations: true,
8
- jit: true,
9
- }, 1);
10
- let isProd = false;
11
- return {
12
- name: '@analogjs/vite-plugin-angular-optimizer',
13
- apply: 'build',
14
- config(userConfig) {
15
- isProd =
16
- userConfig.mode === 'production' ||
17
- process.env['NODE_ENV'] === 'production';
18
- return {
19
- define: isProd
20
- ? {
21
- ngJitMode: 'false',
22
- ngI18nClosureMode: 'false',
23
- ngDevMode: 'false',
24
- ngServerMode: `${!!userConfig.build?.ssr}`,
25
- }
26
- : {},
27
- [vite.rolldownVersion ? 'oxc' : 'esbuild']: {
28
- define: isProd
29
- ? {
30
- ngDevMode: 'false',
31
- ngJitMode: 'false',
32
- ngI18nClosureMode: 'false',
33
- ngServerMode: `${!!userConfig.build?.ssr}`,
34
- }
35
- : undefined,
36
- },
37
- };
38
- },
39
- transform: {
40
- filter: {
41
- id: /\.[cm]?js$/,
42
- },
43
- async handler(code, id) {
44
- const angularPackage = /fesm20/.test(id);
45
- if (!angularPackage) {
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","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/angular-build-optimizer-plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,UAAU,oBAAoB,CAAC,EACnC,GAAG,GAIJ;IACC,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,CACrD;QACE,SAAS,EAAE,KAAK;QAChB,oBAAoB,EAAE,KAAK;QAC3B,qBAAqB,EAAE,IAAI;QAC3B,GAAG,EAAE,IAAI;KACV,EACD,CAAC,CACF,CAAC;IACF,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO;QACL,IAAI,EAAE,yCAAyC;QAC/C,KAAK,EAAE,OAAO;QACd,MAAM,CAAC,UAAU;YACf,MAAM;gBACJ,UAAU,CAAC,IAAI,KAAK,YAAY;oBAChC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,YAAY,CAAC;YAE3C,OAAO;gBACL,MAAM,EAAE,MAAM;oBACZ,CAAC,CAAC;wBACE,SAAS,EAAE,OAAO;wBAClB,iBAAiB,EAAE,OAAO;wBAC1B,SAAS,EAAE,OAAO;wBAClB,YAAY,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE;qBAC3C;oBACH,CAAC,CAAC,EAAE;gBACN,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;oBAC1C,MAAM,EAAE,MAAM;wBACZ,CAAC,CAAC;4BACE,SAAS,EAAE,OAAO;4BAClB,SAAS,EAAE,OAAO;4BAClB,iBAAiB,EAAE,OAAO;4BAC1B,YAAY,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE;yBAC3C;wBACH,CAAC,CAAC,SAAS;iBACd;aACY,CAAC;QAClB,CAAC;QACD,SAAS,EAAE;YACT,MAAM,EAAE;gBACN,EAAE,EAAE,YAAY;aACjB;YACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;gBACpB,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEzC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,OAAO;wBACL,IAAI,EAAE,MAAM;4BACV,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC;4BACxD,CAAC,CAAC,IAAI;wBACR,GAAG,EAAE;4BACH,QAAQ,EAAE,EAAE;yBACb;qBACF,CAAC;gBACJ,CAAC;gBAED,MAAM,WAAW,GACf,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBACzD,MAAM,MAAM,GAAe,MAAM,qBAAqB,CAAC,aAAa,CAClE,EAAE,EACF,IAAI,EACJ,KAAK,EACL,WAAW,CACZ,CAAC;gBAEF,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;iBACrC,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
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 'vite';
2
- export declare function jitPlugin({ inlineStylesExtension, }: {
3
- inlineStylesExtension: string;
1
+ import { Plugin } from "vite";
2
+ export declare function jitPlugin({ inlineStylesExtension }: {
3
+ inlineStylesExtension: string;
4
4
  }): Plugin;
@@ -1,39 +1,33 @@
1
- import { createHash } from 'node:crypto';
2
- import { preprocessCSS } from 'vite';
3
- export function jitPlugin({ inlineStylesExtension, }) {
4
- let config;
5
- return {
6
- name: '@analogjs/vite-plugin-angular-jit',
7
- configResolved(_config) {
8
- config = _config;
9
- },
10
- resolveId(id) {
11
- if (id.startsWith('virtual:angular')) {
12
- return `\0${id}`;
13
- }
14
- return;
15
- },
16
- async load(id) {
17
- if (id.includes('virtual:angular:jit:style:inline;')) {
18
- const styleId = id.split('style:inline;')[1];
19
- // styleId may exceed 255 bytes of base64-encoded content, limit to 16
20
- const styleIdHash = createHash('sha256')
21
- .update(styleId)
22
- .digest('hex')
23
- .slice(0, 16);
24
- const decodedStyles = Buffer.from(decodeURIComponent(styleId), 'base64').toString();
25
- let styles = '';
26
- try {
27
- const compiled = await preprocessCSS(decodedStyles, `${styleIdHash}.${inlineStylesExtension}?direct`, config);
28
- styles = compiled?.code;
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","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/angular-jit-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAA0B,aAAa,EAAE,MAAM,MAAM,CAAC;AAE7D,MAAM,UAAU,SAAS,CAAC,EACxB,qBAAqB,GAGtB;IACC,IAAI,MAAsB,CAAC;IAE3B,OAAO;QACL,IAAI,EAAE,mCAAmC;QACzC,cAAc,CAAC,OAAO;YACpB,MAAM,GAAG,OAAO,CAAC;QACnB,CAAC;QACD,SAAS,CAAC,EAAU;YAClB,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,CAAC;YAED,OAAO;QACT,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAU;YACnB,IAAI,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;gBACrD,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,sEAAsE;gBACtE,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC;qBACrC,MAAM,CAAC,OAAO,CAAC;qBACf,MAAM,CAAC,KAAK,CAAC;qBACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAEhB,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAC/B,kBAAkB,CAAC,OAAO,CAAC,EAC3B,QAAQ,CACT,CAAC,QAAQ,EAAE,CAAC;gBAEb,IAAI,MAAM,GAAuB,EAAE,CAAC;gBAEpC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,aAAa,EACb,GAAG,WAAW,IAAI,qBAAqB,SAAS,EAChD,MAAM,CACP,CAAC;oBACF,MAAM,GAAG,QAAQ,EAAE,IAAI,CAAC;gBAC1B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxB,CAAC;gBAED,OAAO,oBAAoB,MAAM,IAAI,CAAC;YACxC,CAAC;YAED,OAAO;QACT,CAAC;KACF,CAAC;AACJ,CAAC"}
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 'vite';
1
+ import { Plugin } from "vite";
2
2
  /**
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
- */
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
- * This plugin is a workaround for the ɵPendingTasks symbol being renamed
3
- * to ɵPendingTasksInternal in Angular v19.0.4. The symbol is renamed to support previous versions of
4
- * Angular with Analog that used the ɵPendingTasks symbol.
5
- *
6
- * Commmit: https://github.com/angular/angular/commit/24e317cb157bf1ef159ed8554f1b79cb3443edf4
7
- */
8
- export function pendingTasksPlugin() {
9
- return {
10
- name: 'analogjs-pending-tasks-plugin',
11
- transform(code, id) {
12
- if (id.includes('analogjs-content.mjs')) {
13
- return {
14
- code: code.replace('ɵPendingTasksInternal', 'ɵPendingTasks'),
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","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/angular-pending-tasks.plugin.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,IAAI,EAAE,+BAA+B;QACrC,SAAS,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACxC,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,eAAe,CAAC;iBAC7D,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;KACF,CAAC;AACJ,CAAC"}
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"}