@analogjs/platform 2.5.0-beta.43 → 2.5.0-beta.44

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@analogjs/platform",
3
- "version": "2.5.0-beta.43",
3
+ "version": "2.5.0-beta.44",
4
4
  "description": "The fullstack meta-framework for Angular",
5
5
  "type": "module",
6
6
  "author": "Brandon Roberts <robertsbt@gmail.com>",
@@ -29,8 +29,8 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "nitropack": "^2.13.1",
32
- "@analogjs/vite-plugin-angular": "^2.5.0-beta.43",
33
- "@analogjs/vite-plugin-nitro": "^2.5.0-beta.43",
32
+ "@analogjs/vite-plugin-angular": "^2.5.0-beta.44",
33
+ "@analogjs/vite-plugin-nitro": "^2.5.0-beta.44",
34
34
  "vitefu": "^1.1.2"
35
35
  },
36
36
  "peerDependencies": {
@@ -1,10 +1,10 @@
1
1
  export declare const V18_X_NX_DEVKIT = "^20.0.0";
2
2
  export declare const V18_X_NX_ANGULAR = "^20.0.0";
3
- export declare const V18_X_ANALOG_JS_CONTENT = "^2.5.0-beta.43";
4
- export declare const V18_X_ANALOG_JS_ROUTER = "^2.5.0-beta.43";
3
+ export declare const V18_X_ANALOG_JS_CONTENT = "^2.5.0-beta.44";
4
+ export declare const V18_X_ANALOG_JS_ROUTER = "^2.5.0-beta.44";
5
5
  export declare const V18_X_ANALOG_JS_TRPC = "~0.4.0";
6
- export declare const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.5.0-beta.43";
7
- export declare const V18_X_ANALOG_JS_VITEST_ANGULAR = "^2.5.0-beta.43";
6
+ export declare const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.5.0-beta.44";
7
+ export declare const V18_X_ANALOG_JS_VITEST_ANGULAR = "^2.5.0-beta.44";
8
8
  export declare const V18_X_TRPC_CLIENT = "^10.25.0";
9
9
  export declare const V18_X_TRPC_SERVER = "^10.25.0";
10
10
  export declare const V18_X_ISOMORPHIC_FETCH = "^3.0.0";
@@ -20,7 +20,7 @@ export declare const V18_X_TAILWINDCSS = "^4.1.4";
20
20
  export declare const V18_X_TAILWINDCSS_VITE = "^4.1.4";
21
21
  export declare const V18_X_POSTCSS = "^8.5.3";
22
22
  export declare const V18_X_AUTOPREFIXER = "^10.4.0";
23
- export declare const V18_X_ANALOG_JS_PLATFORM = "^2.5.0-beta.43";
23
+ export declare const V18_X_ANALOG_JS_PLATFORM = "^2.5.0-beta.44";
24
24
  export declare const V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = "^19.0.0";
25
25
  export declare const V18_X_NX_VITE = "^21.0.0";
26
26
  export declare const V18_X_NX_LINTER = "^21.0.0";
@@ -5,11 +5,11 @@ exports.V18_X_ZOD = exports.V18_X_VITEST = exports.V18_X_VITE_TSCONFIG_PATHS = e
5
5
  // dependencies
6
6
  exports.V18_X_NX_DEVKIT = '^20.0.0';
7
7
  exports.V18_X_NX_ANGULAR = '^20.0.0';
8
- exports.V18_X_ANALOG_JS_CONTENT = '^2.5.0-beta.43';
9
- exports.V18_X_ANALOG_JS_ROUTER = '^2.5.0-beta.43';
8
+ exports.V18_X_ANALOG_JS_CONTENT = '^2.5.0-beta.44';
9
+ exports.V18_X_ANALOG_JS_ROUTER = '^2.5.0-beta.44';
10
10
  exports.V18_X_ANALOG_JS_TRPC = '~0.4.0';
11
- exports.V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.5.0-beta.43';
12
- exports.V18_X_ANALOG_JS_VITEST_ANGULAR = '^2.5.0-beta.43';
11
+ exports.V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.5.0-beta.44';
12
+ exports.V18_X_ANALOG_JS_VITEST_ANGULAR = '^2.5.0-beta.44';
13
13
  exports.V18_X_TRPC_CLIENT = '^10.25.0';
14
14
  exports.V18_X_TRPC_SERVER = '^10.25.0';
15
15
  exports.V18_X_ISOMORPHIC_FETCH = '^3.0.0';
@@ -26,7 +26,7 @@ exports.V18_X_TAILWINDCSS_VITE = '^4.1.4';
26
26
  exports.V18_X_POSTCSS = '^8.5.3';
27
27
  exports.V18_X_AUTOPREFIXER = '^10.4.0';
28
28
  // devDependencies
29
- exports.V18_X_ANALOG_JS_PLATFORM = '^2.5.0-beta.43';
29
+ exports.V18_X_ANALOG_JS_PLATFORM = '^2.5.0-beta.44';
30
30
  exports.V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = '^19.0.0';
31
31
  exports.V18_X_NX_VITE = '^21.0.0';
32
32
  exports.V18_X_NX_LINTER = '^21.0.0';
@@ -1,13 +1,13 @@
1
- export declare const V19_X_ANALOG_JS_ROUTER = "^2.5.0-beta.43";
2
- export declare const V19_X_ANALOG_JS_CONTENT = "^2.5.0-beta.43";
1
+ export declare const V19_X_ANALOG_JS_ROUTER = "^2.5.0-beta.44";
2
+ export declare const V19_X_ANALOG_JS_CONTENT = "^2.5.0-beta.44";
3
3
  export declare const V19_X_MARKED = "^15.0.7";
4
4
  export declare const V19_X_MARKED_GFM_HEADING_ID = "^4.1.1";
5
5
  export declare const V19_X_MARKED_HIGHLIGHT = "^2.2.1";
6
6
  export declare const V19_X_MARKED_MANGLE = "^1.1.10";
7
7
  export declare const V19_X_PRISMJS = "^1.29.0";
8
- export declare const V19_X_ANALOG_JS_PLATFORM = "^2.5.0-beta.43";
9
- export declare const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.5.0-beta.43";
10
- export declare const V19_X_ANALOG_JS_VITEST_ANGULAR = "^2.5.0-beta.43";
8
+ export declare const V19_X_ANALOG_JS_PLATFORM = "^2.5.0-beta.44";
9
+ export declare const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.5.0-beta.44";
10
+ export declare const V19_X_ANALOG_JS_VITEST_ANGULAR = "^2.5.0-beta.44";
11
11
  export declare const V19_X_NX_ANGULAR = "^22.0.0";
12
12
  export declare const V19_X_NX_VITE = "^22.0.0";
13
13
  export declare const V19_X_JSDOM = "^22.0.0";
@@ -2,17 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NX_X_LATEST_VITEST = exports.NX_X_LATEST_VITE = exports.V19_X_VITE = exports.V19_X_VITEST = exports.V19_X_VITE_TSCONFIG_PATHS = exports.V19_X_JSDOM = exports.V19_X_NX_VITE = exports.V19_X_NX_ANGULAR = exports.V19_X_ANALOG_JS_VITEST_ANGULAR = exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = exports.V19_X_ANALOG_JS_PLATFORM = exports.V19_X_PRISMJS = exports.V19_X_MARKED_MANGLE = exports.V19_X_MARKED_HIGHLIGHT = exports.V19_X_MARKED_GFM_HEADING_ID = exports.V19_X_MARKED = exports.V19_X_ANALOG_JS_CONTENT = exports.V19_X_ANALOG_JS_ROUTER = void 0;
4
4
  // V19_X
5
- exports.V19_X_ANALOG_JS_ROUTER = '^2.5.0-beta.43';
6
- exports.V19_X_ANALOG_JS_CONTENT = '^2.5.0-beta.43';
5
+ exports.V19_X_ANALOG_JS_ROUTER = '^2.5.0-beta.44';
6
+ exports.V19_X_ANALOG_JS_CONTENT = '^2.5.0-beta.44';
7
7
  exports.V19_X_MARKED = '^15.0.7';
8
8
  exports.V19_X_MARKED_GFM_HEADING_ID = '^4.1.1';
9
9
  exports.V19_X_MARKED_HIGHLIGHT = '^2.2.1';
10
10
  exports.V19_X_MARKED_MANGLE = '^1.1.10';
11
11
  exports.V19_X_PRISMJS = '^1.29.0';
12
12
  // devDependencies
13
- exports.V19_X_ANALOG_JS_PLATFORM = '^2.5.0-beta.43';
14
- exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.5.0-beta.43';
15
- exports.V19_X_ANALOG_JS_VITEST_ANGULAR = '^2.5.0-beta.43';
13
+ exports.V19_X_ANALOG_JS_PLATFORM = '^2.5.0-beta.44';
14
+ exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.5.0-beta.44';
15
+ exports.V19_X_ANALOG_JS_VITEST_ANGULAR = '^2.5.0-beta.44';
16
16
  exports.V19_X_NX_ANGULAR = '^22.0.0';
17
17
  exports.V19_X_NX_VITE = '^22.0.0';
18
18
  exports.V19_X_JSDOM = '^22.0.0';
@@ -1,7 +1,7 @@
1
1
  import viteNitroPlugin from '@analogjs/vite-plugin-nitro';
2
2
  import angular from '@analogjs/vite-plugin-angular';
3
3
  import { routerPlugin } from './router-plugin.js';
4
- import { ssrBuildPlugin } from './ssr/ssr-build-plugin.js';
4
+ import { ssrBuildPlugin, i18nDefRegistryPlugin, } from './ssr/ssr-build-plugin.js';
5
5
  import { contentPlugin } from './content-plugin.js';
6
6
  import { clearClientPageEndpointsPlugin } from './clear-client-page-endpoint.js';
7
7
  import { ssrXhrBuildPlugin } from './ssr/ssr-xhr-plugin.js';
@@ -9,7 +9,6 @@ import { depsPlugin } from './deps-plugin.js';
9
9
  import { injectHTMLPlugin } from './ssr/inject-html-plugin.js';
10
10
  import { serverModePlugin } from '../server-mode-plugin.js';
11
11
  import { i18nExtractPlugin } from './i18n-extract-plugin.js';
12
- import { i18nComponentRegistryPlugin } from './i18n-component-registry-plugin.js';
13
12
  export function platformPlugin(opts = {}) {
14
13
  const isTest = process.env['NODE_ENV'] === 'test' || !!process.env['VITEST'];
15
14
  const { ...platformOptions } = {
@@ -61,10 +60,10 @@ export function platformPlugin(opts = {}) {
61
60
  serverModePlugin(),
62
61
  ssrXhrBuildPlugin(),
63
62
  clearClientPageEndpointsPlugin(),
64
- ...(platformOptions.i18n ? [i18nComponentRegistryPlugin()] : []),
63
+ ...(platformOptions.i18n ? [i18nDefRegistryPlugin()] : []),
65
64
  ...(platformOptions.i18n?.extract
66
65
  ? [i18nExtractPlugin(platformOptions.i18n)]
67
66
  : []),
68
67
  ];
69
68
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sK0JBQStCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWxGLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRTtJQUMvQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3RSxNQUFNLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRztRQUM3QixHQUFHLEVBQUUsSUFBSTtRQUNULEdBQUcsSUFBSTtLQUNSLENBQUM7SUFFRixJQUFJ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
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sK0JBQStCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxjQUFjLEVBQ2QscUJBQXFCLEdBQ3RCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWdCLEVBQUU7SUFDL0MsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0UsTUFBTSxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUc7UUFDN0IsR0FBRyxFQUFFLElBQUk7UUFDVCxHQUFHLElBQUk7S0FDUixDQUFDO0lBRUYsSUFBSSxZQUFZLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQztJ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
@@ -1,2 +1,15 @@
1
- import { Plugin } from 'vite';
1
+ import { type Plugin } from 'vite';
2
2
  export declare function ssrBuildPlugin(): Plugin;
3
+ /**
4
+ * Vite plugin that patches `@angular/core`'s `getComponentId()` to
5
+ * mirror every compiled component definition to a global Set, bypassing
6
+ * the `ngServerMode` guard that normally prevents registration on the
7
+ * server. The set lives at `globalThis.__ngComponentDefs` and is read by
8
+ * `@analogjs/router`'s SSR render function to null cached `tView`
9
+ * objects between requests so that `$localize` tagged templates in
10
+ * `consts()` re-evaluate with the freshly loaded translations.
11
+ *
12
+ * Only active when the platform's `i18n` option is configured.
13
+ * Only transforms `@angular/core` modules in SSR builds.
14
+ */
15
+ export declare function i18nDefRegistryPlugin(): Plugin;
@@ -2,30 +2,71 @@ import { normalizePath } from 'vite';
2
2
  export function ssrBuildPlugin() {
3
3
  return {
4
4
  name: 'analogjs-ssr-build-plugin',
5
- transform(code, id) {
6
- if (id.includes('zone-node') &&
7
- code.includes('const global = globalThis;')) {
8
- return {
9
- code: code.replace('const global = globalThis;', ''),
10
- };
11
- }
12
- if (id.includes('platform-server')) {
13
- return {
14
- code: code
15
- .replace('new xhr2.XMLHttpRequest', 'new (xhr2.default.XMLHttpRequest || xhr2.default)')
16
- .replaceAll('global.', 'globalThis.')
17
- .replaceAll('global,', 'globalThis,')
18
- .replaceAll(' global[', ' globalThis['),
19
- };
20
- }
21
- // Remove usage of `with()` in sloppy.js file
22
- if (id.includes(normalizePath('domino/lib/sloppy.js'))) {
5
+ transform: {
6
+ filter: {
7
+ id: {
8
+ include: [/zone-node/, /platform-server/, /domino\/lib\/sloppy/],
9
+ },
10
+ },
11
+ handler(code, id) {
12
+ if (id.includes('zone-node') &&
13
+ code.includes('const global = globalThis;')) {
14
+ return {
15
+ code: code.replace('const global = globalThis;', ''),
16
+ };
17
+ }
18
+ if (id.includes('platform-server')) {
19
+ return {
20
+ code: code
21
+ .replace('new xhr2.XMLHttpRequest', 'new (xhr2.default.XMLHttpRequest || xhr2.default)')
22
+ .replaceAll('global.', 'globalThis.')
23
+ .replaceAll('global,', 'globalThis,')
24
+ .replaceAll(' global[', ' globalThis['),
25
+ };
26
+ }
27
+ if (id.includes(normalizePath('domino/lib/sloppy.js'))) {
28
+ return {
29
+ code: code.replace(/with\(/gi, 'if('),
30
+ };
31
+ }
32
+ return;
33
+ },
34
+ },
35
+ };
36
+ }
37
+ /**
38
+ * Vite plugin that patches `@angular/core`'s `getComponentId()` to
39
+ * mirror every compiled component definition to a global Set, bypassing
40
+ * the `ngServerMode` guard that normally prevents registration on the
41
+ * server. The set lives at `globalThis.__ngComponentDefs` and is read by
42
+ * `@analogjs/router`'s SSR render function to null cached `tView`
43
+ * objects between requests so that `$localize` tagged templates in
44
+ * `consts()` re-evaluate with the freshly loaded translations.
45
+ *
46
+ * Only active when the platform's `i18n` option is configured.
47
+ * Only transforms `@angular/core` modules in SSR builds.
48
+ */
49
+ export function i18nDefRegistryPlugin() {
50
+ const DETECT_MARKER = 'GENERATED_COMP_IDS.set(compId, componentDef.type);';
51
+ const RETURN_STMT = 'return compId;\n}';
52
+ return {
53
+ name: 'analogjs-i18n-def-registry',
54
+ enforce: 'post',
55
+ transform: {
56
+ filter: {
57
+ id: /\/@angular\/core\//,
58
+ },
59
+ handler(code, id, options) {
60
+ if (!options?.ssr)
61
+ return;
62
+ if (!code.includes(DETECT_MARKER))
63
+ return;
23
64
  return {
24
- code: code.replace(/with\(/gi, 'if('),
65
+ code: code.replace(RETURN_STMT, '(globalThis.__ngComponentDefs ??= new Set()).add(componentDef);\n' +
66
+ RETURN_STMT),
25
67
  };
26
- }
27
- return;
68
+ },
28
69
  },
29
70
  };
30
71
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLWJ1aWxkLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvc3NyL3Nzci1idWlsZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUU3QyxNQUFNLFVBQVUsY0FBYztJQUM1QixPQUFPO1FBQ0wsSUFBSSxFQUFFLDJCQUEyQjtRQUNqQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEIsSUFDRSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxFQUMzQyxDQUFDO2dCQUNELE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxDQUFDO2lCQUNyRCxDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUk7eUJBQ1AsT0FBTyxDQUNOLHlCQUF5QixFQUN6QixtREFBbUQsQ0FDcEQ7eUJBQ0EsVUFBVSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUM7eUJBQ3BDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDO3lCQUNwQyxVQUFVLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQztpQkFDMUMsQ0FBQztZQUNKLENBQUM7WUFFRCw2Q0FBNkM7WUFDN0MsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkQsT0FBTztvQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO2lCQUN0QyxDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU87UUFDVCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMifQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLWJ1aWxkLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvc3NyL3Nzci1idWlsZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBcUMsTUFBTSxNQUFNLENBQUM7QUFFeEUsTUFBTSxVQUFVLGNBQWM7SUFDNUIsT0FBTztRQUNMLElBQUksRUFBRSwyQkFBMkI7UUFDakMsU0FBUyxFQUFFO1lBQ1QsTUFBTSxFQUFFO2dCQUNOLEVBQUUsRUFBRTtvQkFDRixPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7aUJBQ2pFO2FBQ0Y7WUFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2QsSUFDRSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxFQUMzQyxDQUFDO29CQUNELE9BQU87d0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxDQUFDO3FCQUNyRCxDQUFDO2dCQUNKLENBQUM7Z0JBRUQsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztvQkFDbkMsT0FBTzt3QkFDTCxJQUFJLEVBQUUsSUFBSTs2QkFDUCxPQUFPLENBQ04seUJBQXlCLEVBQ3pCLG1EQUFtRCxDQUNwRDs2QkFDQSxVQUFVLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQzs2QkFDcEMsVUFBVSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUM7NkJBQ3BDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDO3FCQUMxQyxDQUFDO2dCQUNKLENBQUM7Z0JBRUQsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdkQsT0FBTzt3QkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO3FCQUN0QyxDQUFDO2dCQUNKLENBQUM7Z0JBRUQsT0FBTztZQUNULENBQUM7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE1BQU0sYUFBYSxHQUFHLG9EQUFvRCxDQUFDO0lBQzNFLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDO0lBRXhDLE9BQU87UUFDTCxJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLE9BQU8sRUFBRSxNQUFNO1FBRWYsU0FBUyxFQUFFO1lBQ1QsTUFBTSxFQUFFO2dCQUNOLEVBQUUsRUFBRSxvQkFBb0I7YUFDekI7WUFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPO2dCQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUc7b0JBQUUsT0FBTztnQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO29CQUFFLE9BQU87Z0JBRTFDLE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQ2hCLFdBQVcsRUFDWCxtRUFBbUU7d0JBQ2pFLFdBQVcsQ0FDZDtpQkFDRixDQUFDO1lBQ0osQ0FBQztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,17 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- /**
3
- * Vite plugin that instruments compiled Angular component definitions with
4
- * calls to `registerI18nComponentDef()` from `@analogjs/router`. This
5
- * populates a process-level registry of component definitions that the
6
- * server renderer uses to null cached `tView` objects between SSR requests,
7
- * allowing `$localize` tagged templates in `consts()` to re-evaluate with
8
- * the freshly loaded translations for each request's locale.
9
- *
10
- * The plugin runs in `enforce: 'post'` so that it sees the compiled
11
- * JavaScript output from the Angular compiler (which contains the
12
- * `ClassName.ɵcmp = ɵɵdefineComponent({...})` assignments).
13
- *
14
- * Only active when the platform's `i18n` option is configured.
15
- * Only transforms modules loaded for the SSR environment.
16
- */
17
- export declare function i18nComponentRegistryPlugin(): Plugin;
@@ -1,141 +0,0 @@
1
- import MagicString from 'magic-string';
2
- /**
3
- * Vite plugin that instruments compiled Angular component definitions with
4
- * calls to `registerI18nComponentDef()` from `@analogjs/router`. This
5
- * populates a process-level registry of component definitions that the
6
- * server renderer uses to null cached `tView` objects between SSR requests,
7
- * allowing `$localize` tagged templates in `consts()` to re-evaluate with
8
- * the freshly loaded translations for each request's locale.
9
- *
10
- * The plugin runs in `enforce: 'post'` so that it sees the compiled
11
- * JavaScript output from the Angular compiler (which contains the
12
- * `ClassName.ɵcmp = ɵɵdefineComponent({...})` assignments).
13
- *
14
- * Only active when the platform's `i18n` option is configured.
15
- * Only transforms modules loaded for the SSR environment.
16
- */
17
- export function i18nComponentRegistryPlugin() {
18
- return {
19
- name: 'analogjs-i18n-component-registry',
20
- enforce: 'post',
21
- transform(code, id, options) {
22
- if (!options?.ssr)
23
- return;
24
- if (!code.includes('.ɵcmp'))
25
- return;
26
- if (id.includes('node_modules'))
27
- return;
28
- if (!id.match(/\.(ts|js)(\?|$)/))
29
- return;
30
- const ast = this.parse(code);
31
- const classNames = findComponentClassNames(ast);
32
- if (classNames.size === 0)
33
- return;
34
- const registrations = [...classNames]
35
- .map((name) => `__analog_i18n_reg(${name});`)
36
- .join('\n');
37
- // Use MagicString so the source map stays aligned with the original
38
- // file — prepended imports and appended registration calls must not
39
- // shift line numbers for frames that land inside the user's code.
40
- const s = new MagicString(code);
41
- s.prepend(`import { ɵregisterI18nComponentDef as __analog_i18n_reg } from '@analogjs/router';\n`);
42
- s.append(`\n${registrations}\n`);
43
- return {
44
- code: s.toString(),
45
- map: s.generateMap({
46
- hires: true,
47
- source: id,
48
- includeContent: true,
49
- }),
50
- };
51
- },
52
- };
53
- }
54
- /**
55
- * Walks the AST to find class names whose definitions include a `ɵcmp`
56
- * static property assignment — the marker Angular uses for compiled
57
- * component definitions.
58
- *
59
- * Handles two codegen styles:
60
- *
61
- * Production (tree-shaken):
62
- * _ClassName.ɵcmp = ɵɵdefineComponent({...})
63
- * → AssignmentExpression left: MemberExpression(.ɵcmp) object: Identifier
64
- *
65
- * Dev mode (class fields):
66
- * class Foo { static { this.ɵcmp = i0.ɵɵdefineComponent({...}) } }
67
- * → ClassDeclaration → StaticBlock → AssignmentExpression left: MemberExpression(.ɵcmp) object: ThisExpression
68
- */
69
- function findComponentClassNames(ast) {
70
- const names = new Set();
71
- walk(ast, (node) => {
72
- // Prod: top-level `Identifier.ɵcmp = ...`
73
- if (node.type === 'AssignmentExpression' &&
74
- isNode(node.left) &&
75
- node.left.type === 'MemberExpression' &&
76
- isNode(node.left.property) &&
77
- node.left.property.name === 'ɵcmp' &&
78
- isNode(node.left.object) &&
79
- node.left.object.type === 'Identifier') {
80
- const name = node.left.object.name;
81
- if (name !== 'this') {
82
- names.add(name);
83
- }
84
- }
85
- // Dev: ClassDeclaration containing `this.ɵcmp = ...` in a static block
86
- if ((node.type === 'ClassDeclaration' || node.type === 'ClassExpression') &&
87
- isNode(node.id) &&
88
- node.id.name) {
89
- const className = node.id.name;
90
- if (classHasCmpDef(node)) {
91
- names.add(className);
92
- }
93
- }
94
- });
95
- return names;
96
- }
97
- function classHasCmpDef(classNode) {
98
- let found = false;
99
- walk(classNode, (node) => {
100
- if (found)
101
- return;
102
- // static ɵcmp = ... (PropertyDefinition)
103
- if (node.type === 'PropertyDefinition' &&
104
- node.static === true &&
105
- isNode(node.key) &&
106
- node.key.name === 'ɵcmp') {
107
- found = true;
108
- return;
109
- }
110
- // static { this.ɵcmp = ... }
111
- if (node.type === 'AssignmentExpression' &&
112
- isNode(node.left) &&
113
- node.left.type === 'MemberExpression' &&
114
- isNode(node.left.property) &&
115
- node.left.property.name === 'ɵcmp' &&
116
- isNode(node.left.object) &&
117
- node.left.object.type === 'ThisExpression') {
118
- found = true;
119
- }
120
- });
121
- return found;
122
- }
123
- function isNode(v) {
124
- return v != null && typeof v === 'object' && 'type' in v;
125
- }
126
- function walk(node, visitor) {
127
- visitor(node);
128
- for (const key of Object.keys(node)) {
129
- const child = node[key];
130
- if (Array.isArray(child)) {
131
- for (const item of child) {
132
- if (isNode(item))
133
- walk(item, visitor);
134
- }
135
- }
136
- else if (isNode(child)) {
137
- walk(child, visitor);
138
- }
139
- }
140
- }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1jb21wb25lbnQtcmVnaXN0cnktcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9pMThuLWNvbXBvbmVudC1yZWdpc3RyeS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBRXZDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxPQUFPLEVBQUUsTUFBTTtRQUVmLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU87WUFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHO2dCQUFFLE9BQU87WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO2dCQUFFLE9BQU87WUFDcEMsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztnQkFBRSxPQUFPO1lBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO2dCQUFFLE9BQU87WUFFekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQXVCLENBQUM7WUFDbkQsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFaEQsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUM7Z0JBQUUsT0FBTztZQUVsQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUNsQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQztpQkFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWQsb0VBQW9FO1lBQ3BFLG9FQUFvRTtZQUNwRSxrRUFBa0U7WUFDbEUsTUFB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