@absolutejs/absolute 0.19.0-beta.801 → 0.19.0-beta.803
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/dist/angular/index.js +5 -5
- package/dist/angular/server.js +5 -5
- package/dist/build.js +5 -5
- package/dist/{chunk-kvq01j35.js → chunk-0r32762k.js} +13 -3
- package/dist/{chunk-kvq01j35.js.map → chunk-0r32762k.js.map} +3 -3
- package/dist/chunk-26qn7py4.js +20 -0
- package/dist/{chunk-73brtyw5.js.map → chunk-26qn7py4.js.map} +1 -1
- package/dist/{chunk-9eab59st.js → chunk-8zz4g25g.js} +10 -9
- package/dist/chunk-8zz4g25g.js.map +14 -0
- package/dist/{chunk-hhqh49fz.js → chunk-by7t1d3r.js} +5 -5
- package/dist/chunk-by7t1d3r.js.map +10 -0
- package/dist/{chunk-1x82dcw0.js → chunk-ccz4x8vr.js} +3 -3
- package/dist/{chunk-jmfv960b.js → chunk-hf5fjykx.js} +11 -11
- package/dist/{chunk-jmfv960b.js.map → chunk-hf5fjykx.js.map} +3 -3
- package/dist/{chunk-ey5hs6x6.js → chunk-k6km9xnz.js} +46 -3
- package/dist/{chunk-ey5hs6x6.js.map → chunk-k6km9xnz.js.map} +3 -3
- package/dist/{chunk-cs95jp8a.js → chunk-pevt15h0.js} +5 -5
- package/dist/{chunk-8xf58ka4.js → chunk-r0w678ve.js} +2 -2
- package/dist/{chunk-86vpx6hc.js → chunk-r3j3td07.js} +32 -13
- package/dist/{chunk-86vpx6hc.js.map → chunk-r3j3td07.js.map} +4 -4
- package/dist/{chunk-aaa985m2.js → chunk-r8dzkm4s.js} +2 -2
- package/dist/{chunk-2g15ak0e.js → chunk-tcssehtt.js} +6 -6
- package/dist/{chunk-77cqkarb.js → chunk-vjhxm8n2.js} +8 -4
- package/dist/{chunk-77cqkarb.js.map → chunk-vjhxm8n2.js.map} +1 -1
- package/dist/{chunk-t81a331y.js → chunk-y84qnsd3.js} +8 -3
- package/dist/chunk-y84qnsd3.js.map +10 -0
- package/dist/{chunk-azqk45e4.js → chunk-z6c8qcmw.js} +2 -2
- package/dist/client/index.js +4 -4
- package/dist/index.js +6 -6
- package/dist/islands/index.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/src/angular/resolveAngularPackage.d.ts +10 -0
- package/dist/src/build/buildAngularVendor.d.ts +14 -0
- package/dist/src/core/devVendorPaths.d.ts +2 -0
- package/dist/svelte/index.js +1 -1
- package/dist/vue/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-73brtyw5.js +0 -16
- package/dist/chunk-9eab59st.js.map +0 -14
- package/dist/chunk-hhqh49fz.js.map +0 -10
- package/dist/chunk-t81a331y.js.map +0 -10
- /package/dist/{chunk-1x82dcw0.js.map → chunk-ccz4x8vr.js.map} +0 -0
- /package/dist/{chunk-cs95jp8a.js.map → chunk-pevt15h0.js.map} +0 -0
- /package/dist/{chunk-8xf58ka4.js.map → chunk-r0w678ve.js.map} +0 -0
- /package/dist/{chunk-aaa985m2.js.map → chunk-r8dzkm4s.js.map} +0 -0
- /package/dist/{chunk-2g15ak0e.js.map → chunk-tcssehtt.js.map} +0 -0
- /package/dist/{chunk-azqk45e4.js.map → chunk-z6c8qcmw.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
resolveAngularPackageDir
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-0r32762k.js";
|
|
5
5
|
import {
|
|
6
6
|
__require
|
|
7
7
|
} from "./chunk-bmgqm774.js";
|
|
@@ -191,4 +191,4 @@ var getAndClearClientScripts = (requestId) => {
|
|
|
191
191
|
export { patchAngularInjectorSingleton, getSsrContextId, registerClientScript, setSsrContextGetter, clearAllClientScripts, generateClientScriptCode, getAndClearClientScripts };
|
|
192
192
|
|
|
193
193
|
//# debugId=7DE0E2AE7CE02C0664756E2164756E21
|
|
194
|
-
//# sourceMappingURL=chunk-
|
|
194
|
+
//# sourceMappingURL=chunk-r8dzkm4s.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
devBuild
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-r3j3td07.js";
|
|
5
5
|
import"./chunk-vkrpm7kc.js";
|
|
6
6
|
import"./chunk-cg95827x.js";
|
|
7
7
|
import"./chunk-hcsmxw1v.js";
|
|
8
8
|
import"./chunk-3g91wb4f.js";
|
|
9
9
|
import"./chunk-4d39r92n.js";
|
|
10
10
|
import"./chunk-93sqk7be.js";
|
|
11
|
-
import"./chunk-
|
|
11
|
+
import"./chunk-k6km9xnz.js";
|
|
12
12
|
import"./chunk-7kjj42xm.js";
|
|
13
13
|
import"./chunk-bxfghpma.js";
|
|
14
14
|
import"./chunk-cdxd7sy2.js";
|
|
@@ -17,9 +17,9 @@ import"./chunk-swrnzs4c.js";
|
|
|
17
17
|
import"./chunk-b3gbnrwe.js";
|
|
18
18
|
import"./chunk-mtxzyxpg.js";
|
|
19
19
|
import"./chunk-hyjs4bqs.js";
|
|
20
|
-
import"./chunk-
|
|
20
|
+
import"./chunk-y84qnsd3.js";
|
|
21
21
|
import"./chunk-85n68sy6.js";
|
|
22
|
-
import"./chunk-
|
|
22
|
+
import"./chunk-r0w678ve.js";
|
|
23
23
|
import"./chunk-d7mwkzry.js";
|
|
24
24
|
import"./chunk-h5bbfn3n.js";
|
|
25
25
|
import"./chunk-11zpfqz6.js";
|
|
@@ -33,7 +33,7 @@ import"./chunk-gf0ygptk.js";
|
|
|
33
33
|
import"./chunk-851whwc7.js";
|
|
34
34
|
import"./chunk-s6defjk2.js";
|
|
35
35
|
import"./chunk-p5504p14.js";
|
|
36
|
-
import"./chunk-
|
|
36
|
+
import"./chunk-z6c8qcmw.js";
|
|
37
37
|
import"./chunk-9ve9jq72.js";
|
|
38
38
|
import"./chunk-7fw6x3js.js";
|
|
39
39
|
import"./chunk-mbazhahf.js";
|
|
@@ -48,4 +48,4 @@ export {
|
|
|
48
48
|
};
|
|
49
49
|
|
|
50
50
|
//# debugId=168CA101CFD7E28A64756E2164756E21
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-tcssehtt.js.map
|
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
|
+
getAngularServerVendorPaths,
|
|
3
4
|
getAngularVendorPaths,
|
|
4
5
|
getDevVendorPaths,
|
|
5
6
|
getSvelteVendorPaths,
|
|
6
7
|
getVueVendorPaths,
|
|
8
|
+
setAngularServerVendorPaths,
|
|
7
9
|
setAngularVendorPaths,
|
|
8
10
|
setDevVendorPaths,
|
|
9
11
|
setSvelteVendorPaths,
|
|
10
12
|
setVueVendorPaths
|
|
11
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-y84qnsd3.js";
|
|
12
14
|
import"./chunk-bmgqm774.js";
|
|
13
15
|
export {
|
|
14
16
|
setVueVendorPaths,
|
|
15
17
|
setSvelteVendorPaths,
|
|
16
18
|
setDevVendorPaths,
|
|
17
19
|
setAngularVendorPaths,
|
|
20
|
+
setAngularServerVendorPaths,
|
|
18
21
|
getVueVendorPaths,
|
|
19
22
|
getSvelteVendorPaths,
|
|
20
23
|
getDevVendorPaths,
|
|
21
|
-
getAngularVendorPaths
|
|
24
|
+
getAngularVendorPaths,
|
|
25
|
+
getAngularServerVendorPaths
|
|
22
26
|
};
|
|
23
27
|
|
|
24
|
-
//# debugId=
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# debugId=12057FC8D31DCC3F64756E2164756E21
|
|
29
|
+
//# sourceMappingURL=chunk-vjhxm8n2.js.map
|
|
@@ -10,6 +10,11 @@ var getAngularVendorPaths = () => angularVendorPaths;
|
|
|
10
10
|
var setAngularVendorPaths = (paths) => {
|
|
11
11
|
angularVendorPaths = paths;
|
|
12
12
|
};
|
|
13
|
+
var angularServerVendorPaths = null;
|
|
14
|
+
var getAngularServerVendorPaths = () => angularServerVendorPaths;
|
|
15
|
+
var setAngularServerVendorPaths = (paths) => {
|
|
16
|
+
angularServerVendorPaths = paths;
|
|
17
|
+
};
|
|
13
18
|
var svelteVendorPaths = null;
|
|
14
19
|
var getSvelteVendorPaths = () => svelteVendorPaths;
|
|
15
20
|
var setSvelteVendorPaths = (paths) => {
|
|
@@ -21,7 +26,7 @@ var setVueVendorPaths = (paths) => {
|
|
|
21
26
|
vueVendorPaths = paths;
|
|
22
27
|
};
|
|
23
28
|
|
|
24
|
-
export { getDevVendorPaths, setDevVendorPaths, getAngularVendorPaths, setAngularVendorPaths, getSvelteVendorPaths, setSvelteVendorPaths, getVueVendorPaths, setVueVendorPaths };
|
|
29
|
+
export { getDevVendorPaths, setDevVendorPaths, getAngularVendorPaths, setAngularVendorPaths, getAngularServerVendorPaths, setAngularServerVendorPaths, getSvelteVendorPaths, setSvelteVendorPaths, getVueVendorPaths, setVueVendorPaths };
|
|
25
30
|
|
|
26
|
-
//# debugId=
|
|
27
|
-
//# sourceMappingURL=chunk-
|
|
31
|
+
//# debugId=BAC2D5506ADAF01564756E2164756E21
|
|
32
|
+
//# sourceMappingURL=chunk-y84qnsd3.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/core/devVendorPaths.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/** Module-level dev vendor paths state.\n * Set by devBuild() before the initial build so that build() can\n * externalize React and rewrite imports to stable vendor files.\n * Production builds never call setDevVendorPaths, so the getter\n * returns null and build() bundles React normally. */\n\nlet devVendorPaths: Record<string, string> | null = null;\n\nexport const getDevVendorPaths = () => devVendorPaths;\nexport const setDevVendorPaths = (paths: Record<string, string>) => {\n\tdevVendorPaths = paths;\n};\n\n/** Angular vendor paths — same pattern as React. */\nlet angularVendorPaths: Record<string, string> | null = null;\n\nexport const getAngularVendorPaths = () => angularVendorPaths;\nexport const setAngularVendorPaths = (paths: Record<string, string>) => {\n\tangularVendorPaths = paths;\n};\n\n/** Angular *server* vendor paths — absolute filesystem paths to the\n * Bun-target linked vendor files. Used by `rewriteImports` on server\n * bundles and by `getAngularDeps` for runtime resolution. */\nlet angularServerVendorPaths: Record<string, string> | null = null;\n\nexport const getAngularServerVendorPaths = () => angularServerVendorPaths;\nexport const setAngularServerVendorPaths = (\n\tpaths: Record<string, string>\n) => {\n\tangularServerVendorPaths = paths;\n};\n\n/** Svelte vendor paths — same pattern as React. */\nlet svelteVendorPaths: Record<string, string> | null = null;\n\nexport const getSvelteVendorPaths = () => svelteVendorPaths;\nexport const setSvelteVendorPaths = (paths: Record<string, string>) => {\n\tsvelteVendorPaths = paths;\n};\n\n/** Vue vendor paths — same pattern as React. */\nlet vueVendorPaths: Record<string, string> | null = null;\n\nexport const getVueVendorPaths = () => vueVendorPaths;\nexport const setVueVendorPaths = (paths: Record<string, string>) => {\n\tvueVendorPaths = paths;\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;AAMA,IAAI,iBAAgD;AAE7C,IAAM,oBAAoB,MAAM;AAChC,IAAM,oBAAoB,CAAC,UAAkC;AAAA,EACnE,iBAAiB;AAAA;AAIlB,IAAI,qBAAoD;AAEjD,IAAM,wBAAwB,MAAM;AACpC,IAAM,wBAAwB,CAAC,UAAkC;AAAA,EACvE,qBAAqB;AAAA;AAMtB,IAAI,2BAA0D;AAEvD,IAAM,8BAA8B,MAAM;AAC1C,IAAM,8BAA8B,CAC1C,UACI;AAAA,EACJ,2BAA2B;AAAA;AAI5B,IAAI,oBAAmD;AAEhD,IAAM,uBAAuB,MAAM;AACnC,IAAM,uBAAuB,CAAC,UAAkC;AAAA,EACtE,oBAAoB;AAAA;AAIrB,IAAI,iBAAgD;AAE7C,IAAM,oBAAoB,MAAM;AAChC,IAAM,oBAAoB,CAAC,UAAkC;AAAA,EACnE,iBAAiB;AAAA;",
|
|
8
|
+
"debugId": "BAC2D5506ADAF01564756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
|
|
17
17
|
// src/core/islandSsr.ts
|
|
18
18
|
var renderAngularIslandToHtmlInternal = async (component, props, islandId) => {
|
|
19
|
-
const { renderAngularIslandToHtml } = await import("./chunk-
|
|
19
|
+
const { renderAngularIslandToHtml } = await import("./chunk-pevt15h0.js");
|
|
20
20
|
return renderAngularIslandToHtml(component, props, islandId);
|
|
21
21
|
};
|
|
22
22
|
var renderAngularIslandToHtml = renderAngularIslandToHtmlInternal;
|
|
@@ -181,4 +181,4 @@ var renderIslandResult = async (registry, props) => {
|
|
|
181
181
|
export { renderIslandMarkup, renderIslandResult };
|
|
182
182
|
|
|
183
183
|
//# debugId=422A05E95D6E1A7B64756E2164756E21
|
|
184
|
-
//# sourceMappingURL=chunk-
|
|
184
|
+
//# sourceMappingURL=chunk-z6c8qcmw.js.map
|
package/dist/client/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
mountAngularIsland
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-ccz4x8vr.js";
|
|
5
5
|
import {
|
|
6
6
|
initializeIslandMarkupSnapshot
|
|
7
7
|
} from "../chunk-fak944et.js";
|
|
8
|
-
import"../chunk-
|
|
9
|
-
import"../chunk-
|
|
10
|
-
import"../chunk-
|
|
8
|
+
import"../chunk-hf5fjykx.js";
|
|
9
|
+
import"../chunk-r8dzkm4s.js";
|
|
10
|
+
import"../chunk-0r32762k.js";
|
|
11
11
|
import {
|
|
12
12
|
getStreamSwapRuntimeScript
|
|
13
13
|
} from "../chunk-s6defjk2.js";
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
logStartupTimingBlock,
|
|
15
15
|
setCurrentPageIslandMetadata,
|
|
16
16
|
transformCurrentStaticPageHtml
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-r0w678ve.js";
|
|
18
18
|
import {
|
|
19
19
|
disposeTailwindCompiler,
|
|
20
20
|
incrementalTailwindBuild,
|
|
@@ -66,14 +66,14 @@ import {
|
|
|
66
66
|
getSsrContextId,
|
|
67
67
|
registerClientScript,
|
|
68
68
|
setSsrContextGetter
|
|
69
|
-
} from "./chunk-
|
|
70
|
-
import"./chunk-
|
|
69
|
+
} from "./chunk-r8dzkm4s.js";
|
|
70
|
+
import"./chunk-0r32762k.js";
|
|
71
71
|
import"./chunk-s6defjk2.js";
|
|
72
72
|
import"./chunk-p5504p14.js";
|
|
73
73
|
import {
|
|
74
74
|
renderIslandMarkup,
|
|
75
75
|
renderIslandResult
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-z6c8qcmw.js";
|
|
77
77
|
import"./chunk-9ve9jq72.js";
|
|
78
78
|
import"./chunk-7fw6x3js.js";
|
|
79
79
|
import"./chunk-mbazhahf.js";
|
|
@@ -452,7 +452,7 @@ var prepareDev = async (config, buildDir) => {
|
|
|
452
452
|
patchElysiaRouteRegistrationCallsites();
|
|
453
453
|
recordStep("patch route registration", stepStartedAt);
|
|
454
454
|
stepStartedAt = performance.now();
|
|
455
|
-
const { devBuild } = await import("./chunk-
|
|
455
|
+
const { devBuild } = await import("./chunk-tcssehtt.js");
|
|
456
456
|
const result = await devBuild(config);
|
|
457
457
|
recordStep("devBuild", stepStartedAt);
|
|
458
458
|
stepStartedAt = performance.now();
|
|
@@ -464,7 +464,7 @@ var prepareDev = async (config, buildDir) => {
|
|
|
464
464
|
getAngularVendorPaths,
|
|
465
465
|
getSvelteVendorPaths,
|
|
466
466
|
getVueVendorPaths
|
|
467
|
-
} = await import("./chunk-
|
|
467
|
+
} = await import("./chunk-vjhxm8n2.js");
|
|
468
468
|
recordStep("load dev runtime modules", stepStartedAt);
|
|
469
469
|
stepStartedAt = performance.now();
|
|
470
470
|
const depVendorPaths = globalThis.__depVendorPaths ?? {};
|
package/dist/islands/index.js
CHANGED
package/dist/react/index.js
CHANGED
|
@@ -22,7 +22,7 @@ import"../chunk-s6defjk2.js";
|
|
|
22
22
|
import"../chunk-p5504p14.js";
|
|
23
23
|
import {
|
|
24
24
|
renderIslandResult
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-z6c8qcmw.js";
|
|
26
26
|
import"../chunk-9ve9jq72.js";
|
|
27
27
|
import"../chunk-7fw6x3js.js";
|
|
28
28
|
import"../chunk-mbazhahf.js";
|
|
@@ -7,3 +7,13 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const resolveAngularPackageDir: (specifier: string) => string | null;
|
|
9
9
|
export declare const resolveAngularPackage: (specifier: string) => string;
|
|
10
|
+
/** Prefer the linked Bun-target vendor file built by
|
|
11
|
+
* `buildAngularServerVendor`. The file is at
|
|
12
|
+
* `<ABSOLUTE_BUILD_DIR>/angular/vendor/server/<safe>.js`, which is what every
|
|
13
|
+
* server bundle's `@angular/*` imports get rewritten to point at. Sharing
|
|
14
|
+
* this path keeps SSR's class identity unified — the dual-package hazard
|
|
15
|
+
* that produces NG0201 only appears when the runtime imports a *different*
|
|
16
|
+
* copy from the bundles. Falls back to `resolveAngularPackage` (node_modules)
|
|
17
|
+
* when no vendor file is available — e.g. running tests outside an
|
|
18
|
+
* absolutejs build, or before the vendor pass completes. */
|
|
19
|
+
export declare const resolveAngularRuntimePath: (specifier: string) => string;
|
|
@@ -19,3 +19,17 @@ export declare const computeAngularVendorPaths: (specifiers?: string[]) => Recor
|
|
|
19
19
|
* angular specs in its rewrite map (otherwise transitively-discovered subpaths
|
|
20
20
|
* like `@angular/core/rxjs-interop` end up as bare specifiers in the output). */
|
|
21
21
|
export declare const computeAngularVendorPathsAsync: (directories?: string[]) => Promise<Record<string, string>>;
|
|
22
|
+
/** Server-side counterpart to `buildAngularVendor`. Outputs fully-linked
|
|
23
|
+
* Bun-target ESM bundles for every @angular/* package the project uses,
|
|
24
|
+
* *plus* `@angular/platform-server` and `@angular/ssr` (excluded from the
|
|
25
|
+
* browser vendor). The server bundle and `getAngularDeps()` import from
|
|
26
|
+
* these paths so SSR shares one Angular runtime instance with the page
|
|
27
|
+
* bundles — eliminates the dual-package hazard that produces NG0201.
|
|
28
|
+
*
|
|
29
|
+
* After this build, `@angular/compiler` is no longer required at runtime
|
|
30
|
+
* for AOT-mode builds: every partial `ɵɵngDeclare*` has been linked into
|
|
31
|
+
* final ɵdir/ɵcmp/ɵfac definitions in the vendor output. */
|
|
32
|
+
export declare const buildAngularServerVendor: (buildDir: string, directories?: string[], linkerJitMode?: boolean) => Promise<string[]>;
|
|
33
|
+
/** Absolute filesystem paths to server vendor files, for `rewriteImports`
|
|
34
|
+
* on server-side bundles and for runtime resolution in `getAngularDeps`. */
|
|
35
|
+
export declare const computeAngularServerVendorPaths: (buildDir: string, specifiers: string[]) => Record<string, string>;
|
|
@@ -7,6 +7,8 @@ export declare const getDevVendorPaths: () => Record<string, string> | null;
|
|
|
7
7
|
export declare const setDevVendorPaths: (paths: Record<string, string>) => void;
|
|
8
8
|
export declare const getAngularVendorPaths: () => Record<string, string> | null;
|
|
9
9
|
export declare const setAngularVendorPaths: (paths: Record<string, string>) => void;
|
|
10
|
+
export declare const getAngularServerVendorPaths: () => Record<string, string> | null;
|
|
11
|
+
export declare const setAngularServerVendorPaths: (paths: Record<string, string>) => void;
|
|
10
12
|
export declare const getSvelteVendorPaths: () => Record<string, string> | null;
|
|
11
13
|
export declare const setSvelteVendorPaths: (paths: Record<string, string>) => void;
|
|
12
14
|
export declare const getVueVendorPaths: () => Record<string, string> | null;
|
package/dist/svelte/index.js
CHANGED
|
@@ -25,7 +25,7 @@ import"../chunk-s6defjk2.js";
|
|
|
25
25
|
import"../chunk-p5504p14.js";
|
|
26
26
|
import {
|
|
27
27
|
renderIslandMarkup
|
|
28
|
-
} from "../chunk-
|
|
28
|
+
} from "../chunk-z6c8qcmw.js";
|
|
29
29
|
import"../chunk-9ve9jq72.js";
|
|
30
30
|
import"../chunk-7fw6x3js.js";
|
|
31
31
|
import"../chunk-mbazhahf.js";
|
package/dist/vue/index.js
CHANGED
|
@@ -33,7 +33,7 @@ import"../chunk-s6defjk2.js";
|
|
|
33
33
|
import"../chunk-p5504p14.js";
|
|
34
34
|
import {
|
|
35
35
|
renderIslandResult
|
|
36
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-z6c8qcmw.js";
|
|
37
37
|
import"../chunk-9ve9jq72.js";
|
|
38
38
|
import"../chunk-7fw6x3js.js";
|
|
39
39
|
import"../chunk-mbazhahf.js";
|
package/package.json
CHANGED
package/dist/chunk-73brtyw5.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import {
|
|
3
|
-
buildAngularVendor,
|
|
4
|
-
computeAngularVendorPaths,
|
|
5
|
-
computeAngularVendorPathsAsync
|
|
6
|
-
} from "./chunk-ey5hs6x6.js";
|
|
7
|
-
import"./chunk-7kjj42xm.js";
|
|
8
|
-
import"./chunk-bmgqm774.js";
|
|
9
|
-
export {
|
|
10
|
-
computeAngularVendorPathsAsync,
|
|
11
|
-
computeAngularVendorPaths,
|
|
12
|
-
buildAngularVendor
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
//# debugId=7AFA15688D6CE81E64756E2164756E21
|
|
16
|
-
//# sourceMappingURL=chunk-73brtyw5.js.map
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/angular/pageHandler.ts", "../src/angular/animationProviders.ts", "../src/angular/routerRedirectProviders.ts", "../src/angular/lowerServerIslands.ts", "../src/angular/ssrSanitizer.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import { AsyncLocalStorage } from 'node:async_hooks';\nimport { mkdir, symlink } from 'node:fs/promises';\nimport { tmpdir } from 'node:os';\nimport { basename, dirname, join, resolve } from 'node:path';\nimport type { EnvironmentProviders, Provider, Type } from '@angular/core';\nimport type {\n\tAngularPageDefinition,\n\tAngularPagePropsOf\n} from '../../types/angular';\nimport { BASE_36_RADIX, RANDOM_ID_END_INDEX } from '../constants';\nimport { injectIslandPageContext } from '../core/islandPageContext';\nimport { ssrErrorPage } from '../utils/ssrErrorPage';\nimport {\n\tderivePageName,\n\trenderConventionError\n} from '../utils/resolveConvention';\nimport { setSsrContextGetter } from '../utils/registerClientScript';\nimport { getAngularDeps } from './angularDeps';\nimport { buildServerAnimationProviders } from './animationProviders';\nimport { buildRouterRedirectProviders } from './routerRedirectProviders';\nimport { lowerAngularServerIslands } from './lowerServerIslands';\nimport { getCurrentRouteRegistrationCallsite } from '../core/devRouteRegistrationCallsite';\nimport { getSsrSanitizer, resetSsrSanitizer } from './ssrSanitizer';\nimport {\n\ttype StreamingSlotEnhancerOptions,\n\twithRegisteredStreamingSlots\n} from '../core/responseEnhancers';\nimport {\n\tcaptureStreamingSlotWarningCallsite,\n\trunWithStreamingSlotWarningScope\n} from '../core/streamingSlotWarningScope';\nimport { isSsrCacheDirty, markSsrCacheDirty } from '../core/ssrCache';\nimport {\n\tbuildDeps,\n\tbuildProviders,\n\tcacheRouteData,\n\tclearSelectorCache,\n\tdiscoverTokens,\n\tinjectSsrScripts,\n\tloadSsrDeps,\n\trenderAngularApp,\n\tresolveSelector\n} from './ssrRender';\nimport { resolveAngularPackage } from './resolveAngularPackage';\n\nlet lastSelector = 'angular-page';\ntype AngularPageRenderOptions = StreamingSlotEnhancerOptions & {\n\tcollectStreamingSlots?: boolean;\n};\ntype IsAny<T> = 0 extends 1 & T ? true : false;\ntype HasNoRequiredAngularProps<Props> =\n\tIsAny<Props> extends true ? true : keyof Props extends never ? true : false;\ntype AngularPageHasOptionalProps<Page> = Page extends {\n\tpage: AngularPageDefinition<infer Props>;\n}\n\t? HasNoRequiredAngularProps<Props>\n\t: Page extends { default: AngularPageDefinition<infer Props> }\n\t\t? HasNoRequiredAngularProps<Props>\n\t\t: HasNoRequiredAngularProps<AngularPagePropsOf<Page>>;\nexport type AngularPageRequestInput<\n\tPage = { page: AngularPageDefinition<Record<never, never>> }\n> = AngularPageRenderOptions & {\n\theadTag?: `<head>${string}</head>`;\n\tindexPath: string;\n\tpagePath: string;\n\t/** The incoming request. When provided, its URL is forwarded to\n\t * Angular's `renderApplication`, so `LocationStrategy.path()` and\n\t * Angular Router both see the real URL instead of `/`. Without it,\n\t * Router-based pages can't match anything but the root route. */\n\trequest?: Request;\n\t/** Per-request context made available through Angular's REQUEST_CONTEXT token. */\n\trequestContext?: unknown;\n\t/** Mutable response init made available through Angular's RESPONSE_INIT token. */\n\tresponseInit?: ResponseInit;\n} & (AngularPageHasOptionalProps<Page> extends true\n\t\t? { props?: NoInfer<AngularPagePropsOf<Page>> }\n\t\t: { props: NoInfer<AngularPagePropsOf<Page>> });\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isAngularComponent = (value: unknown): value is Type<unknown> =>\n\ttypeof value === 'function';\n\nconst isAngularPageDefinition = (\n\tvalue: unknown\n): value is AngularPageDefinition<Record<string, unknown>> =>\n\tisRecord(value) && isAngularComponent(value.component);\n\nconst resolvePageComponent = (pageModule: Record<string, unknown>) => {\n\tconst page = Reflect.get(pageModule, 'page');\n\tif (isAngularPageDefinition(page)) {\n\t\treturn page.component;\n\t}\n\n\tconst defaultExport = pageModule.default;\n\tif (isAngularPageDefinition(defaultExport)) {\n\t\treturn defaultExport.component;\n\t}\n\n\tif (isAngularComponent(defaultExport)) {\n\t\treturn defaultExport;\n\t}\n\n\treturn Object.values(pageModule).find((value) => isAngularComponent(value));\n};\n\nlet compilerImportPromise: Promise<unknown> | null = null;\nconst ensureAngularCompiler = () => {\n\tif (!compilerImportPromise) {\n\t\tcompilerImportPromise = import(\n\t\t\tresolveAngularPackage('@angular/compiler')\n\t\t);\n\t}\n\n\treturn compilerImportPromise;\n};\n\nconst readAngularPageModule = (value: unknown) =>\n\tisRecord(value) ? value : null;\n\nconst resolveAngularSsrOutDir = () =>\n\tprocess.env.ABSOLUTE_ANGULAR_SSR_OUTDIR ??\n\tjoin(tmpdir(), 'absolutejs', 'generated', 'angular-ssr');\n\nconst ensureAngularSsrNodeModules = async (outDir: string) => {\n\tconst outRoot = resolve(dirname(dirname(outDir)));\n\tconst nodeModulesLink = join(outRoot, 'node_modules');\n\tif (process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR) {\n\t\treturn;\n\t}\n\tif (nodeModulesLink === resolve(process.cwd(), 'node_modules')) {\n\t\treturn;\n\t}\n\tif (await Bun.file(nodeModulesLink).exists()) {\n\t\treturn;\n\t}\n\n\tawait mkdir(outRoot, { recursive: true });\n\ttry {\n\t\tawait symlink(\n\t\t\tresolve(process.cwd(), 'node_modules'),\n\t\t\tnodeModulesLink,\n\t\t\t'dir'\n\t\t);\n\t} catch (error) {\n\t\tif (\n\t\t\t!(error instanceof Error) ||\n\t\t\t!('code' in error) ||\n\t\t\terror.code !== 'EEXIST'\n\t\t) {\n\t\t\tthrow error;\n\t\t}\n\t}\n};\n\nconst resolveRuntimeAngularModulePath = async (pagePath: string) => {\n\tif (!pagePath.endsWith('.ts')) {\n\t\treturn pagePath;\n\t}\n\n\tconst outDir = resolveAngularSsrOutDir();\n\tawait ensureAngularSsrNodeModules(outDir);\n\tconst { compileAngularFileJIT } = await import('../build/compileAngular');\n\tconst outputs = await compileAngularFileJIT(\n\t\tpagePath,\n\t\toutDir,\n\t\tprocess.cwd()\n\t);\n\tconst expectedFileName = basename(pagePath).replace(/\\.ts$/, '.js');\n\n\treturn (\n\t\toutputs.find((output) => output.endsWith(`/${expectedFileName}`)) ??\n\t\toutputs.find((output) => output.endsWith(`\\\\${expectedFileName}`)) ??\n\t\toutputs[0] ??\n\t\tpagePath\n\t);\n};\n\nconst withHtmlContentType = (responseInit: ResponseInit = {}) => {\n\tconst headers = new Headers(responseInit.headers);\n\tif (!headers.has('Content-Type')) {\n\t\theaders.set('Content-Type', 'text/html');\n\t}\n\n\treturn { ...responseInit, headers };\n};\n\nconst resolveRequestRenderUrl = (request: Request | undefined) => {\n\tif (!request) return '/';\n\n\ttry {\n\t\tconst parsed = new URL(request.url);\n\n\t\treturn `${parsed.pathname}${parsed.search}`;\n\t} catch {\n\t\treturn '/';\n\t}\n};\n\nconst assertNoHandlerProviders = (input: Record<string, unknown>) => {\n\tif (!('providers' in input)) return;\n\n\tthrow new Error(\n\t\t'Angular handler providers are not supported. Export `providers` from the Angular page module, or inject REQUEST / REQUEST_CONTEXT for request-scoped data.'\n\t);\n};\n\nexport const invalidateAngularSsrCache = () => {\n\tmarkSsrCacheDirty('angular');\n\tclearSelectorCache();\n};\n\nconst angularSsrContext = new AsyncLocalStorage<string>();\nsetSsrContextGetter(() => angularSsrContext.getStore());\n\nexport const handleAngularPageRequest = async <\n\tPage = { page: AngularPageDefinition<Record<never, never>> }\n>(\n\tinput: AngularPageRequestInput<Page>\n) => {\n\tconst requestId = `angular_${Date.now()}_${Math.random().toString(BASE_36_RADIX).substring(2, RANDOM_ID_END_INDEX)}`;\n\n\treturn angularSsrContext.run(requestId, async () => {\n\t\tawait ensureAngularCompiler();\n\n\t\tconst resolvedHeadTag = input.headTag ?? '<head></head>';\n\t\tconst resolvedIndexPath = input.indexPath;\n\t\tconst options = input;\n\t\tconst resolvedPagePath = input.pagePath;\n\t\tconst maybeProps = input.props;\n\t\tconst responseInit = input.responseInit ?? {};\n\t\tconst resolvedUrl = resolveRequestRenderUrl(input.request);\n\n\t\t// Cache props + headTag for HMR replay — strip query strings\n\t\t// so cache-busted HMR paths match the original manifest path.\n\t\tcacheRouteData(resolvedPagePath, {\n\t\t\theadTag: resolvedHeadTag,\n\t\t\tprops: maybeProps\n\t\t});\n\n\t\tif (isSsrCacheDirty('angular')) {\n\t\t\tclearSelectorCache();\n\t\t\tconst script = resolvedIndexPath\n\t\t\t\t? `<script>import(${JSON.stringify(resolvedIndexPath)});</script>`\n\t\t\t\t: '';\n\t\t\tconst html = `<!DOCTYPE html><html>${resolvedHeadTag}<body><${lastSelector}></${lastSelector}>${script}</body></html>`;\n\n\t\t\treturn new Response(html, {\n\t\t\t\theaders: { 'Content-Type': 'text/html' }\n\t\t\t});\n\t\t}\n\n\t\ttry {\n\t\t\tassertNoHandlerProviders(input);\n\n\t\t\tconst handlerCallsite =\n\t\t\t\toptions?.collectStreamingSlots === true\n\t\t\t\t\t? undefined\n\t\t\t\t\t: (getCurrentRouteRegistrationCallsite() ??\n\t\t\t\t\t\tcaptureStreamingSlotWarningCallsite());\n\t\t\tconst renderPageResponse = async () => {\n\t\t\t\tconst baseDeps = await getAngularDeps();\n\t\t\t\tconst runtimePagePath =\n\t\t\t\t\tawait resolveRuntimeAngularModulePath(resolvedPagePath);\n\t\t\t\tconst importedPageModule: unknown = await import(\n\t\t\t\t\truntimePagePath\n\t\t\t\t);\n\t\t\t\tconst pageModule = readAngularPageModule(importedPageModule);\n\t\t\t\tif (!pageModule) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Invalid Angular page module: ${resolvedPagePath}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst PageComponent = resolvePageComponent(pageModule);\n\t\t\t\tif (!isAngularComponent(PageComponent)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Angular page module must export an Angular component: ${resolvedPagePath}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst hasIslands =\n\t\t\t\t\ttypeof pageModule.__ABSOLUTE_PAGE_HAS_ISLANDS__ ===\n\t\t\t\t\t'boolean'\n\t\t\t\t\t\t? pageModule.__ABSOLUTE_PAGE_HAS_ISLANDS__\n\t\t\t\t\t\t: false;\n\t\t\t\tconst usesLegacyAnimations =\n\t\t\t\t\tpageModule.__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ ===\n\t\t\t\t\ttrue;\n\n\t\t\t\tconst ssrResult = await loadSsrDeps(runtimePagePath);\n\t\t\t\tconst deps = buildDeps(ssrResult, baseDeps);\n\n\t\t\t\tconst tokenMap = discoverTokens(pageModule);\n\t\t\t\tconst selector = resolveSelector(\n\t\t\t\t\tdeps,\n\t\t\t\t\tresolvedPagePath,\n\t\t\t\t\tPageComponent\n\t\t\t\t);\n\t\t\t\tlastSelector = selector;\n\n\t\t\t\tconst htmlString = `<!DOCTYPE html><html>${resolvedHeadTag}<body><${selector}></${selector}></body></html>`;\n\n\t\t\t\tif (ssrResult?.core) resetSsrSanitizer();\n\t\t\t\tconst sanitizer = getSsrSanitizer(deps);\n\t\t\t\t// The page module's `providers` export is the source of truth\n\t\t\t\t// for page-level DI — `bootstrapApplication` reads it on the\n\t\t\t\t// client (see compileAngular.ts client bootstrap). Mirror that\n\t\t\t\t// on the server so anything that requires `provideRouter`,\n\t\t\t\t// `provideAnimations`, etc. resolves the same way during SSR.\n\t\t\t\tconst pageProvidersExport = Reflect.get(\n\t\t\t\t\tpageModule,\n\t\t\t\t\t'providers'\n\t\t\t\t);\n\t\t\t\tconst pageProviders: ReadonlyArray<\n\t\t\t\t\tProvider | EnvironmentProviders\n\t\t\t\t> = Array.isArray(pageProvidersExport)\n\t\t\t\t\t? pageProvidersExport\n\t\t\t\t\t: [];\n\t\t\t\tconst combinedProviders = [\n\t\t\t\t\t...(await buildRouterRedirectProviders(deps, responseInit)),\n\t\t\t\t\t...pageProviders,\n\t\t\t\t\t...(await buildServerAnimationProviders(\n\t\t\t\t\t\tusesLegacyAnimations\n\t\t\t\t\t))\n\t\t\t\t];\n\t\t\t\tconst providers = buildProviders(\n\t\t\t\t\tdeps,\n\t\t\t\t\tsanitizer,\n\t\t\t\t\tmaybeProps,\n\t\t\t\t\ttokenMap,\n\t\t\t\t\tinput.request,\n\t\t\t\t\tinput.requestContext,\n\t\t\t\t\tresponseInit,\n\t\t\t\t\tcombinedProviders\n\t\t\t\t);\n\n\t\t\t\tconst rawHtml: string = await renderAngularApp(\n\t\t\t\t\tdeps,\n\t\t\t\t\tPageComponent,\n\t\t\t\t\tproviders,\n\t\t\t\t\thtmlString,\n\t\t\t\t\tresolvedUrl\n\t\t\t\t);\n\t\t\t\tconst shouldProcessIslands =\n\t\t\t\t\thasIslands || rawHtml.includes('<absolute-island');\n\t\t\t\tconst htmlWithLoweredIslands = shouldProcessIslands\n\t\t\t\t\t? await lowerAngularServerIslands(rawHtml)\n\t\t\t\t\t: rawHtml;\n\n\t\t\t\tconst html = injectIslandPageContext(\n\t\t\t\t\tinjectSsrScripts(\n\t\t\t\t\t\thtmlWithLoweredIslands,\n\t\t\t\t\t\trequestId,\n\t\t\t\t\t\tresolvedIndexPath,\n\t\t\t\t\t\tmaybeProps\n\t\t\t\t\t),\n\t\t\t\t\t{ hasIslands: shouldProcessIslands }\n\t\t\t\t);\n\n\t\t\t\treturn new Response(html, withHtmlContentType(responseInit));\n\t\t\t};\n\n\t\t\treturn await runWithStreamingSlotWarningScope(\n\t\t\t\t() =>\n\t\t\t\t\toptions?.collectStreamingSlots === true\n\t\t\t\t\t\t? withRegisteredStreamingSlots(\n\t\t\t\t\t\t\t\trenderPageResponse,\n\t\t\t\t\t\t\t\toptions\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: renderPageResponse(),\n\t\t\t\t{ handlerCallsite }\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tconsole.error('[SSR] Angular render error:', error);\n\n\t\t\tconst pageName = derivePageName(resolvedPagePath);\n\t\t\tconst conventionResponse = await renderConventionError(\n\t\t\t\t'angular',\n\t\t\t\tpageName,\n\t\t\t\terror\n\t\t\t);\n\t\t\tif (conventionResponse) return conventionResponse;\n\n\t\t\treturn new Response(ssrErrorPage('angular', error), {\n\t\t\t\theaders: { 'Content-Type': 'text/html' },\n\t\t\t\tstatus: 500\n\t\t\t});\n\t\t}\n\t});\n};\n",
|
|
6
|
-
"import type { EnvironmentProviders, Provider } from '@angular/core';\nimport { resolveAngularPackage } from './resolveAngularPackage';\n\nlet noopAnimationProvidersPromise: Promise<\n\t(Provider | EnvironmentProviders)[]\n> | null = null;\n\nconst loadNoopAnimationProviders = async () => {\n\tconst animations = await import(\n\t\tresolveAngularPackage('@angular/platform-browser/animations')\n\t);\n\n\treturn animations.provideNoopAnimations();\n};\n\nexport const buildServerAnimationProviders = (\n\tusesLegacyAnimations: boolean\n) => {\n\tif (!usesLegacyAnimations) return Promise.resolve([]);\n\n\tnoopAnimationProvidersPromise ??= loadNoopAnimationProviders();\n\n\treturn noopAnimationProvidersPromise;\n};\n",
|
|
7
|
-
"import type { EnvironmentProviders, Provider } from '@angular/core';\nimport type { AngularDeps } from '../../types/angular';\nimport { resolveAngularPackage } from './resolveAngularPackage';\n\ntype AngularRouterModule = typeof import('@angular/router');\n\nconst DEFAULT_REDIRECT_STATUS = 302;\nconst SUCCESS_STATUS = 200;\n\nconst isRouterRedirectCancel = (\n\tevent: unknown,\n\trouterModule: AngularRouterModule\n) =>\n\tevent instanceof routerModule.NavigationCancel &&\n\tevent.code === routerModule.NavigationCancellationCode.Redirect;\n\nconst getNavigationStartUrl = (\n\tevent: unknown,\n\trouterModule: AngularRouterModule\n) => {\n\tif (!(event instanceof routerModule.NavigationStart)) return null;\n\n\treturn event.url;\n};\n\nconst applyRedirectResponse = (\n\tresponseInit: ResponseInit | undefined,\n\tlocation: string\n) => {\n\tif (!responseInit) return;\n\n\tconst headers = new Headers(responseInit.headers);\n\theaders.set('Location', location);\n\tresponseInit.headers = headers;\n\n\tif (\n\t\ttypeof responseInit.status === 'undefined' ||\n\t\tresponseInit.status === SUCCESS_STATUS\n\t) {\n\t\tresponseInit.status = DEFAULT_REDIRECT_STATUS;\n\t}\n};\n\nconst buildRedirectEventHandler = (\n\tresponseInit: ResponseInit | undefined,\n\trouterModule: AngularRouterModule\n) => {\n\tlet waitingForRedirectTarget = false;\n\n\treturn (event: unknown) => {\n\t\tif (isRouterRedirectCancel(event, routerModule)) {\n\t\t\twaitingForRedirectTarget = true;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!waitingForRedirectTarget) return;\n\n\t\tconst redirectUrl = getNavigationStartUrl(event, routerModule);\n\t\tif (!redirectUrl) return;\n\n\t\tapplyRedirectResponse(responseInit, redirectUrl);\n\t\twaitingForRedirectTarget = false;\n\t};\n};\n\nexport const buildRouterRedirectProviders = async (\n\tdeps: AngularDeps,\n\tresponseInit: ResponseInit | undefined\n) => {\n\tlet routerModule: AngularRouterModule;\n\n\ttry {\n\t\trouterModule = await import(resolveAngularPackage('@angular/router'));\n\t} catch {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\t{\n\t\t\tmulti: true,\n\t\t\tprovide: deps.ENVIRONMENT_INITIALIZER,\n\t\t\tuseValue: () => {\n\t\t\t\tconst router = deps.inject(routerModule.Router, {\n\t\t\t\t\toptional: true\n\t\t\t\t});\n\t\t\t\tif (!router) return;\n\n\t\t\t\trouter.events.subscribe(\n\t\t\t\t\tbuildRedirectEventHandler(responseInit, routerModule)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t] satisfies (Provider | EnvironmentProviders)[];\n};\n",
|
|
8
|
-
"import type {\n\tIslandFramework,\n\tIslandHydrate,\n\tRuntimeIslandRenderProps\n} from '../../types/island';\nimport { requireCurrentIslandRegistry } from '../core/currentIslandRegistry';\nimport { renderIslandMarkup } from '../core/renderIslandMarkup';\n\nconst ANGULAR_ISLAND_TAG_RE =\n\t/<absolute-island\\b([^>]*)>[\\s\\S]*?<\\/absolute-island>/gi;\nconst ATTRIBUTE_RE =\n\t/([A-Za-z_:][-A-Za-z0-9_:.]*)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/g;\n\nconst islandFrameworks: IslandFramework[] = [\n\t'react',\n\t'svelte',\n\t'vue',\n\t'angular'\n];\n\nconst islandHydrationModes: IslandHydrate[] = [\n\t'load',\n\t'idle',\n\t'visible',\n\t'none'\n];\n\nconst decodeHtmlAttribute = (value: string) =>\n\tvalue\n\t\t.replaceAll('"', '\"')\n\t\t.replaceAll('"', '\"')\n\t\t.replaceAll(''', \"'\")\n\t\t.replaceAll(''', \"'\")\n\t\t.replaceAll('&', '&')\n\t\t.replaceAll('<', '<')\n\t\t.replaceAll('>', '>');\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isIslandFramework = (value: string): value is IslandFramework =>\n\tislandFrameworks.some((framework) => framework === value);\n\nconst isIslandHydrate = (value: string): value is IslandHydrate =>\n\tislandHydrationModes.some((mode) => mode === value);\n\nconst parseAttributes = (attributeString: string) => {\n\tconst attributes = new Map<string, string>();\n\tlet match = ATTRIBUTE_RE.exec(attributeString);\n\n\twhile (match) {\n\t\tconst [, key, doubleQuotedValue, singleQuotedValue] = match;\n\t\tmatch = ATTRIBUTE_RE.exec(attributeString);\n\t\tif (!key) continue;\n\n\t\tattributes.set(\n\t\t\tkey,\n\t\t\tdecodeHtmlAttribute(doubleQuotedValue ?? singleQuotedValue ?? '')\n\t\t);\n\t}\n\n\tATTRIBUTE_RE.lastIndex = 0;\n\n\treturn attributes;\n};\n\nconst parseAngularIslandProps = (\n\tattributeString: string\n): RuntimeIslandRenderProps | null => {\n\tconst attributes = parseAttributes(attributeString);\n\tconst component = attributes.get('component');\n\tconst framework = attributes.get('framework');\n\tconst hydrate = attributes.get('hydrate') ?? 'load';\n\tconst serializedProps = attributes.get('data-abs-props') ?? '{}';\n\n\tif (!component || !framework) {\n\t\treturn null;\n\t}\n\n\tif (!isIslandFramework(framework) || !isIslandHydrate(hydrate)) {\n\t\treturn null;\n\t}\n\n\tlet parsedProps: Record<string, unknown> = {};\n\ttry {\n\t\tconst candidate: unknown = JSON.parse(serializedProps);\n\t\tparsedProps = isRecord(candidate) ? candidate : {};\n\t} catch {\n\t\t// parsedProps remains default {}\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tframework,\n\t\thydrate,\n\t\tprops: parsedProps\n\t};\n};\n\nexport const lowerAngularServerIslands = async (html: string) => {\n\tif (!ANGULAR_ISLAND_TAG_RE.test(html)) {\n\t\treturn html;\n\t}\n\n\tconst registry = requireCurrentIslandRegistry();\n\tANGULAR_ISLAND_TAG_RE.lastIndex = 0;\n\n\tconst segments: {\n\t\tbefore: string;\n\t\tprops: ReturnType<typeof parseAngularIslandProps>;\n\t\tfullMatch: string;\n\t}[] = [];\n\tlet lastIndex = 0;\n\tlet match = ANGULAR_ISLAND_TAG_RE.exec(html);\n\n\twhile (match) {\n\t\tconst [fullMatch, rawAttributeString] = match;\n\t\tconst attributeString = rawAttributeString ?? '';\n\t\tsegments.push({\n\t\t\tbefore: html.slice(lastIndex, match.index),\n\t\t\tfullMatch,\n\t\t\tprops: parseAngularIslandProps(attributeString)\n\t\t});\n\t\tlastIndex = match.index + fullMatch.length;\n\t\tmatch = ANGULAR_ISLAND_TAG_RE.exec(html);\n\t}\n\n\tANGULAR_ISLAND_TAG_RE.lastIndex = 0;\n\n\tconst renderedSegments = await Promise.all(\n\t\tsegments.map(\n\t\t\tasync (segment) =>\n\t\t\t\tsegment.before +\n\t\t\t\t(segment.props\n\t\t\t\t\t? await renderIslandMarkup(registry, segment.props)\n\t\t\t\t\t: segment.fullMatch)\n\t\t)\n\t);\n\n\treturn renderedSegments.join('') + html.slice(lastIndex);\n};\n",
|
|
9
|
-
"import type { SecurityContext } from '@angular/core';\nimport type { SafeValue } from '@angular/platform-browser';\nimport type { AngularDeps } from '../../types/angular';\n\nconst escapeHtml = (str: string) =>\n\tString(str)\n\t\t.replace(/&/g, '&')\n\t\t.replace(/</g, '<')\n\t\t.replace(/>/g, '>')\n\t\t.replace(/\"/g, '"');\n\nconst bypassValue = (value: string): SafeValue => ({\n\tchangingThisBreaksApplicationSecurity: value\n});\n\n// Deferred: SsrSanitizer class is built after deps load because it\n// extends DomSanitizer which comes from the lazy import. We cache the\n// class + singleton instance after the first request.\nlet ssrSanitizer: InstanceType<AngularDeps['DomSanitizer']> | null = null;\n\nexport const getSsrSanitizer = (deps: AngularDeps) => {\n\tif (ssrSanitizer) return ssrSanitizer;\n\n\tconst SsrSanitizerClass = class extends deps.DomSanitizer {\n\t\tsanitize(ctx: SecurityContext, value: SafeValue | string | null) {\n\t\t\tif (value === null) return null;\n\t\t\tlet strValue: string;\n\t\t\tlet isTrustedHtml = false;\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tstrValue = value;\n\t\t\t} else if (\n\t\t\t\ttypeof value === 'object' &&\n\t\t\t\t'changingThisBreaksApplicationSecurity' in value\n\t\t\t) {\n\t\t\t\tstrValue = String(value.changingThisBreaksApplicationSecurity);\n\t\t\t\tisTrustedHtml = true;\n\t\t\t} else {\n\t\t\t\tstrValue = String(value);\n\t\t\t}\n\n\t\t\tif (ctx === deps.SecurityContext.HTML) {\n\t\t\t\tif (isTrustedHtml) {\n\t\t\t\t\treturn strValue;\n\t\t\t\t}\n\n\t\t\t\treturn escapeHtml(strValue);\n\t\t\t}\n\n\t\t\treturn strValue;\n\t\t}\n\t\tbypassSecurityTrustHtml(value: string) {\n\t\t\treturn bypassValue(value);\n\t\t}\n\t\tbypassSecurityTrustStyle(value: string) {\n\t\t\treturn bypassValue(value);\n\t\t}\n\t\tbypassSecurityTrustScript(value: string) {\n\t\t\treturn bypassValue(value);\n\t\t}\n\t\tbypassSecurityTrustUrl(value: string) {\n\t\t\treturn bypassValue(value);\n\t\t}\n\t\tbypassSecurityTrustResourceUrl(value: string) {\n\t\t\treturn bypassValue(value);\n\t\t}\n\t};\n\n\tssrSanitizer = new SsrSanitizerClass();\n\n\treturn ssrSanitizer;\n};\nexport const resetSsrSanitizer = () => {\n\tssrSanitizer = null;\n};\n"
|
|
10
|
-
],
|
|
11
|
-
"mappings": "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",
|
|
12
|
-
"debugId": "ECE590A283DCA75464756E2164756E21",
|
|
13
|
-
"names": []
|
|
14
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/angular/angularPatch.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import { resolveAngularPackage } from './resolveAngularPackage';\n\n// Patches Angular SSR's DominoAdapter to guard against null doc.head\n\nconst ensureHead = (doc: Document) => {\n\tif (!doc || doc.head || !doc.documentElement) {\n\t\treturn;\n\t}\n\n\tconst head = doc.createElement('head');\n\tdoc.documentElement.insertBefore(head, doc.documentElement.firstChild);\n};\n\n// Domino's Element does not implement layout APIs that browser components\n// (e.g. ngx-datatable, swiper, drag-drop) call eagerly during change detection.\n// Returning a zeroed DOMRect lets those components render in SSR without\n// crashing — the real values get computed once the page hydrates client-side.\nconst SSR_LAYOUT_RECT = Object.freeze({\n\tbottom: 0,\n\theight: 0,\n\tleft: 0,\n\tright: 0,\n\ttop: 0,\n\twidth: 0,\n\tx: 0,\n\ty: 0,\n\ttoJSON() {\n\t\treturn this;\n\t}\n});\nlet layoutPatchApplied = false;\nconst collectPrototypeChain = (instance: object | null) => {\n\tconst protos: object[] = [];\n\tlet current: object | null = instance\n\t\t? Object.getPrototypeOf(instance)\n\t\t: null;\n\twhile (current && current !== Object.prototype) {\n\t\tprotos.push(current);\n\t\tcurrent = Object.getPrototypeOf(current);\n\t}\n\n\treturn protos;\n};\n\nconst patchElementLayout = (doc: Document) => {\n\tif (layoutPatchApplied || !doc) {\n\t\treturn;\n\t}\n\tlet element: Element;\n\ttry {\n\t\telement = doc.createElement('div');\n\t} catch {\n\t\treturn;\n\t}\n\t// Walk the entire prototype chain so HTMLElement → Element → Node all get\n\t// the layout shims. Domino's base Element.prototype is several hops above\n\t// HTMLDivElement.prototype, and 3rd-party libs call methods anywhere along\n\t// the chain.\n\tconst protos = collectPrototypeChain(element);\n\tif (protos.length === 0) return;\n\n\tconst copyLayoutRect = (rect: typeof SSR_LAYOUT_RECT) => ({ ...rect });\n\tconst createLayoutRect = () => copyLayoutRect(SSR_LAYOUT_RECT);\n\tconst getClientRects = () => [];\n\tconst noop = () => undefined;\n\tconst numericProps = [\n\t\t'clientWidth',\n\t\t'clientHeight',\n\t\t'clientLeft',\n\t\t'clientTop',\n\t\t'offsetWidth',\n\t\t'offsetHeight',\n\t\t'offsetLeft',\n\t\t'offsetTop',\n\t\t'scrollWidth',\n\t\t'scrollHeight',\n\t\t'scrollLeft',\n\t\t'scrollTop'\n\t];\n\n\tfor (const proto of protos) {\n\t\tconst define = (name: string, value: unknown) => {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, name);\n\t\t\tif (typeof descriptor?.value === 'function') return;\n\n\t\t\tObject.defineProperty(proto, name, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue,\n\t\t\t\twritable: true\n\t\t\t});\n\t\t};\n\n\t\tdefine('getBoundingClientRect', createLayoutRect);\n\t\tdefine('getClientRects', getClientRects);\n\t\tdefine('scrollTo', noop);\n\t\tdefine('scrollBy', noop);\n\t\tdefine('scrollIntoView', noop);\n\t\tdefine('focus', noop);\n\t\tdefine('blur', noop);\n\n\t\tfor (const prop of numericProps) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop);\n\t\t\tif (desc) continue;\n\t\t\tObject.defineProperty(proto, prop, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tget: () => 0\n\t\t\t});\n\t\t}\n\t}\n\n\tlayoutPatchApplied = true;\n};\n\nexport const applyPatches = async () => {\n\tconst { ɵDominoAdapter } = await import(\n\t\tresolveAngularPackage('@angular/platform-server')\n\t);\n\tif (!ɵDominoAdapter?.prototype) {\n\t\tconsole.warn(\n\t\t\t'[Angular Patch] ɵDominoAdapter not found, skipping patches'\n\t\t);\n\n\t\treturn false;\n\t}\n\n\t// Patch the layout shims onto Domino's Element prototypes immediately\n\t// (don't wait for the first createHtmlDocument call). Components that\n\t// hold an ElementRef from the very first change-detection pass call\n\t// these methods before the lazy patch path would have run.\n\ttry {\n\t\tconst adapter = new ɵDominoAdapter();\n\t\tconst seedDoc =\n\t\t\ttypeof adapter.createHtmlDocument === 'function'\n\t\t\t\t? adapter.createHtmlDocument()\n\t\t\t\t: typeof adapter.getDefaultDocument === 'function'\n\t\t\t\t\t? adapter.getDefaultDocument()\n\t\t\t\t\t: null;\n\t\tif (seedDoc) {\n\t\t\tpatchElementLayout(seedDoc);\n\t\t\tconst probe = seedDoc.createElement('div') as Element & {\n\t\t\t\tgetBoundingClientRect?: () => DOMRect;\n\t\t\t};\n\t\t\tif (typeof probe.getBoundingClientRect !== 'function') {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'[Angular Patch] Layout shim did not stick on probe element prototype chain'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.warn(\n\t\t\t'[Angular Patch] Could not eagerly patch Element prototypes:',\n\t\t\terror\n\t\t);\n\t}\n\n\tconst proto = ɵDominoAdapter.prototype;\n\n\tconst origGetBaseHref = proto.getBaseHref;\n\tproto.getBaseHref = function (doc: Document) {\n\t\tif (!doc || !doc.head || typeof doc.head.children === 'undefined') {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn origGetBaseHref.call(this, doc);\n\t};\n\n\tconst origCreateHtmlDocument = proto.createHtmlDocument;\n\tproto.createHtmlDocument = function () {\n\t\tconst doc = origCreateHtmlDocument.call(this);\n\t\tensureHead(doc);\n\t\tpatchElementLayout(doc);\n\n\t\treturn doc;\n\t};\n\n\tconst origGetDefaultDocument = proto.getDefaultDocument;\n\tproto.getDefaultDocument = function () {\n\t\tconst doc = origGetDefaultDocument.call(this);\n\t\tensureHead(doc);\n\t\tpatchElementLayout(doc);\n\n\t\treturn doc;\n\t};\n\n\treturn true;\n};\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "F6E1647B46B104AB64756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/core/devVendorPaths.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"/** Module-level dev vendor paths state.\n * Set by devBuild() before the initial build so that build() can\n * externalize React and rewrite imports to stable vendor files.\n * Production builds never call setDevVendorPaths, so the getter\n * returns null and build() bundles React normally. */\n\nlet devVendorPaths: Record<string, string> | null = null;\n\nexport const getDevVendorPaths = () => devVendorPaths;\nexport const setDevVendorPaths = (paths: Record<string, string>) => {\n\tdevVendorPaths = paths;\n};\n\n/** Angular vendor paths — same pattern as React. */\nlet angularVendorPaths: Record<string, string> | null = null;\n\nexport const getAngularVendorPaths = () => angularVendorPaths;\nexport const setAngularVendorPaths = (paths: Record<string, string>) => {\n\tangularVendorPaths = paths;\n};\n\n/** Svelte vendor paths — same pattern as React. */\nlet svelteVendorPaths: Record<string, string> | null = null;\n\nexport const getSvelteVendorPaths = () => svelteVendorPaths;\nexport const setSvelteVendorPaths = (paths: Record<string, string>) => {\n\tsvelteVendorPaths = paths;\n};\n\n/** Vue vendor paths — same pattern as React. */\nlet vueVendorPaths: Record<string, string> | null = null;\n\nexport const getVueVendorPaths = () => vueVendorPaths;\nexport const setVueVendorPaths = (paths: Record<string, string>) => {\n\tvueVendorPaths = paths;\n};\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": ";;AAMA,IAAI,iBAAgD;AAE7C,IAAM,oBAAoB,MAAM;AAChC,IAAM,oBAAoB,CAAC,UAAkC;AAAA,EACnE,iBAAiB;AAAA;AAIlB,IAAI,qBAAoD;AAEjD,IAAM,wBAAwB,MAAM;AACpC,IAAM,wBAAwB,CAAC,UAAkC;AAAA,EACvE,qBAAqB;AAAA;AAItB,IAAI,oBAAmD;AAEhD,IAAM,uBAAuB,MAAM;AACnC,IAAM,uBAAuB,CAAC,UAAkC;AAAA,EACtE,oBAAoB;AAAA;AAIrB,IAAI,iBAAgD;AAE7C,IAAM,oBAAoB,MAAM;AAChC,IAAM,oBAAoB,CAAC,UAAkC;AAAA,EACnE,iBAAiB;AAAA;",
|
|
8
|
-
"debugId": "B8D7CD29E8493CCD64756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|