@absolutejs/absolute 0.19.0-beta.801 → 0.19.0-beta.802
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-2g15ak0e.js → chunk-7x4hne4h.js} +6 -6
- 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-86vpx6hc.js → chunk-g8n8v5r8.js} +31 -12
- package/dist/{chunk-86vpx6hc.js.map → chunk-g8n8v5r8.js.map} +4 -4
- 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-aaa985m2.js → chunk-r8dzkm4s.js} +2 -2
- 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-2g15ak0e.js.map → chunk-7x4hne4h.js.map} +0 -0
- /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-azqk45e4.js.map → chunk-z6c8qcmw.js.map} +0 -0
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
generateClientScriptCode,
|
|
4
4
|
getAndClearClientScripts,
|
|
5
5
|
patchAngularInjectorSingleton
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-r8dzkm4s.js";
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
resolveAngularRuntimePath
|
|
9
|
+
} from "./chunk-0r32762k.js";
|
|
10
10
|
import {
|
|
11
11
|
toScreamingSnake
|
|
12
12
|
} from "./chunk-p5504p14.js";
|
|
@@ -29,14 +29,14 @@ var initDominoAdapter = (platformServer) => {
|
|
|
29
29
|
};
|
|
30
30
|
var loadAngularDeps = async () => {
|
|
31
31
|
patchAngularInjectorSingleton();
|
|
32
|
-
await import(
|
|
33
|
-
const { applyPatches } = await import("./chunk-
|
|
32
|
+
await import(resolveAngularRuntimePath("@angular/compiler"));
|
|
33
|
+
const { applyPatches } = await import("./chunk-by7t1d3r.js");
|
|
34
34
|
await applyPatches();
|
|
35
35
|
const [platformBrowser, platformServer, common, core] = await Promise.all([
|
|
36
|
-
import(
|
|
37
|
-
import(
|
|
38
|
-
import(
|
|
39
|
-
import(
|
|
36
|
+
import(resolveAngularRuntimePath("@angular/platform-browser")),
|
|
37
|
+
import(resolveAngularRuntimePath("@angular/platform-server")),
|
|
38
|
+
import(resolveAngularRuntimePath("@angular/common")),
|
|
39
|
+
import(resolveAngularRuntimePath("@angular/core"))
|
|
40
40
|
]);
|
|
41
41
|
if (false) {}
|
|
42
42
|
initDominoAdapter(platformServer);
|
|
@@ -203,5 +203,5 @@ var withSuppressedAngularDevLogs = async (render) => {
|
|
|
203
203
|
|
|
204
204
|
export { getAngularDeps, cacheRouteData, getCachedRouteData, buildDeps, buildProviders, clearSelectorCache, discoverTokens, loadSsrDeps, resolveSelector, injectSsrScripts, renderAngularApp, withSuppressedAngularDevLogs };
|
|
205
205
|
|
|
206
|
-
//# debugId=
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
206
|
+
//# debugId=70A307989631B9D464756E2164756E21
|
|
207
|
+
//# sourceMappingURL=chunk-hf5fjykx.js.map
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/angular/angularDeps.ts", "../src/angular/ssrRender.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { AngularDeps, SsrDepsResult } from '../../types/angular';\nimport { patchAngularInjectorSingleton } from './injectorPatch';\nimport {
|
|
5
|
+
"import type { AngularDeps, SsrDepsResult } from '../../types/angular';\nimport { patchAngularInjectorSingleton } from './injectorPatch';\nimport { resolveAngularRuntimePath } from './resolveAngularPackage';\n\nconst initDominoAdapter = (platformServer: SsrDepsResult['platformServer']) => {\n\ttry {\n\t\tconst DominoAdapter: { makeCurrent?: () => void } | undefined =\n\t\t\tplatformServer.ɵDominoAdapter;\n\t\tDominoAdapter?.makeCurrent?.();\n\t} catch (err) {\n\t\tconsole.error('Failed to initialize DominoAdapter:', err);\n\t}\n};\n\nconst loadAngularDeps = async () => {\n\t// Patch Angular's _currentInjector to use globalThis BEFORE any\n\t// Angular module is loaded — this prevents NG0203 when Bun's --hot\n\t// mode creates duplicate module instances during HMR rebuilds.\n\tpatchAngularInjectorSingleton();\n\n\t// JIT compiler MUST be fully loaded before any other Angular import.\n\t// Angular packages like @angular/common contain partially compiled\n\t// injectables (e.g. PlatformLocation) that need the JIT compiler\n\t// facade to be registered first.\n\tawait import(resolveAngularRuntimePath('@angular/compiler'));\n\n\t// angularPatch imports @angular/platform-server internally, so it\n\t// must also run after the compiler is available.\n\tconst { applyPatches } = await import('./angularPatch');\n\tawait applyPatches();\n\n\t// Now safe to load all Angular packages in parallel\n\tconst [platformBrowser, platformServer, common, core] = await Promise.all([\n\t\timport(resolveAngularRuntimePath('@angular/platform-browser')),\n\t\timport(resolveAngularRuntimePath('@angular/platform-server')),\n\t\timport(resolveAngularRuntimePath('@angular/common')),\n\t\timport(resolveAngularRuntimePath('@angular/core'))\n\t]);\n\n\tif (process.env.NODE_ENV !== 'development') {\n\t\tcore.enableProdMode();\n\t}\n\n\tinitDominoAdapter(platformServer);\n\n\treturn {\n\t\tAPP_BASE_HREF: common.APP_BASE_HREF,\n\t\tbootstrapApplication: platformBrowser.bootstrapApplication,\n\t\tDomSanitizer: platformBrowser.DomSanitizer,\n\t\tENVIRONMENT_INITIALIZER: core.ENVIRONMENT_INITIALIZER,\n\t\tinject: core.inject,\n\t\tprovideClientHydration: platformBrowser.provideClientHydration,\n\t\tprovideServerRendering: platformServer.provideServerRendering,\n\t\tprovideZonelessChangeDetection: core.provideZonelessChangeDetection,\n\t\treflectComponentType: core.reflectComponentType,\n\t\trenderApplication: platformServer.renderApplication,\n\t\tREQUEST: core.REQUEST,\n\t\tREQUEST_CONTEXT: core.REQUEST_CONTEXT,\n\t\tRESPONSE_INIT: core.RESPONSE_INIT,\n\t\tSanitizer: core.Sanitizer,\n\t\tSecurityContext: core.SecurityContext,\n\t\twithHttpTransferCacheOptions:\n\t\t\tplatformBrowser.withHttpTransferCacheOptions\n\t};\n};\n\nlet angularDeps: Promise<AngularDeps> | null = null;\n\nexport const getAngularDeps = () => {\n\tif (!angularDeps) {\n\t\tangularDeps = loadAngularDeps();\n\t}\n\n\treturn angularDeps;\n};\n",
|
|
6
6
|
"import type { EnvironmentProviders, Provider, Type } from '@angular/core';\nimport type { BootstrapContext } from '@angular/platform-browser';\nimport type {\n\tAngularDeps,\n\tCachedRouteData,\n\tSsrDepsResult\n} from '../../types/angular';\nimport { toScreamingSnake } from '../utils/stringModifiers';\nimport {\n\tgetAndClearClientScripts,\n\tgenerateClientScriptCode\n} from '../utils/registerClientScript';\nimport { buildAbsoluteHttpTransferCacheOptions } from './httpTransferCache';\nimport { buildRequestProviders } from './requestProviders';\n\n// --- Last-used props cache for HMR ---\n// Stores { props, headTag } from the most recent real request per route\n// so HMR re-renders with the same data the user last saw (Vite/Next behavior).\n\nconst routePropsCache = new Map<string, CachedRouteData>();\n\nexport const cacheRouteData = (pagePath: string, data: CachedRouteData) => {\n\tconst cacheKey = pagePath.split('?')[0] ?? pagePath;\n\troutePropsCache.set(cacheKey, data);\n};\nexport const getCachedRouteData = (pagePath: string) =>\n\troutePropsCache.get(pagePath);\n\n// --- Selector cache ---\n\nconst selectorCache = new Map<string, string>();\n\nexport const buildDeps = (\n\tssrResult: SsrDepsResult | null,\n\tbaseDeps: AngularDeps\n) => {\n\tif (!ssrResult?.core) {\n\t\treturn baseDeps;\n\t}\n\n\tconst { common, core, platformBrowser, platformServer } = ssrResult;\n\n\treturn {\n\t\tAPP_BASE_HREF: common?.APP_BASE_HREF ?? baseDeps.APP_BASE_HREF,\n\t\tbootstrapApplication:\n\t\t\tplatformBrowser?.bootstrapApplication ??\n\t\t\tbaseDeps.bootstrapApplication,\n\t\tDomSanitizer: platformBrowser?.DomSanitizer ?? baseDeps.DomSanitizer,\n\t\tENVIRONMENT_INITIALIZER:\n\t\t\tcore.ENVIRONMENT_INITIALIZER ?? baseDeps.ENVIRONMENT_INITIALIZER,\n\t\tinject: core.inject ?? baseDeps.inject,\n\t\tprovideClientHydration:\n\t\t\tplatformBrowser?.provideClientHydration ??\n\t\t\tbaseDeps.provideClientHydration,\n\t\tprovideServerRendering:\n\t\t\tplatformServer?.provideServerRendering ??\n\t\t\tbaseDeps.provideServerRendering,\n\t\tprovideZonelessChangeDetection: core.provideZonelessChangeDetection,\n\t\treflectComponentType: core.reflectComponentType,\n\t\trenderApplication:\n\t\t\tplatformServer?.renderApplication ?? baseDeps.renderApplication,\n\t\tREQUEST: core.REQUEST ?? baseDeps.REQUEST,\n\t\tREQUEST_CONTEXT: core.REQUEST_CONTEXT ?? baseDeps.REQUEST_CONTEXT,\n\t\tRESPONSE_INIT: core.RESPONSE_INIT ?? baseDeps.RESPONSE_INIT,\n\t\tSanitizer: core.Sanitizer,\n\t\tSecurityContext: core.SecurityContext,\n\t\twithHttpTransferCacheOptions:\n\t\t\tplatformBrowser?.withHttpTransferCacheOptions ??\n\t\t\tbaseDeps.withHttpTransferCacheOptions\n\t} satisfies AngularDeps;\n};\nexport const buildProviders = (\n\tdeps: AngularDeps,\n\tsanitizer: InstanceType<AngularDeps['DomSanitizer']>,\n\tmaybeProps: Record<string, unknown> | undefined,\n\ttokenMap: Map<string, unknown>,\n\trequest: Request | undefined,\n\trequestContext: unknown,\n\tresponseInit: ResponseInit | undefined,\n\tuserProviders: ReadonlyArray<Provider | EnvironmentProviders> = []\n) => {\n\tconst providers: (Provider | EnvironmentProviders)[] = [\n\t\tdeps.provideServerRendering(),\n\t\tdeps.provideClientHydration(\n\t\t\tdeps.withHttpTransferCacheOptions(\n\t\t\t\tbuildAbsoluteHttpTransferCacheOptions()\n\t\t\t)\n\t\t),\n\t\tdeps.provideZonelessChangeDetection(),\n\t\t{ provide: deps.APP_BASE_HREF, useValue: '/' },\n\t\t{\n\t\t\tprovide: deps.DomSanitizer,\n\t\t\tuseValue: sanitizer\n\t\t},\n\t\t{ provide: deps.Sanitizer, useValue: sanitizer },\n\t\t...buildRequestProviders(deps, request, requestContext, responseInit),\n\t\t...userProviders\n\t];\n\n\tif (!maybeProps) {\n\t\treturn providers;\n\t}\n\n\tconst propProviders = Object.entries(maybeProps)\n\t\t.map(([propName, propValue]) => ({\n\t\t\ttoken: tokenMap.get(toScreamingSnake(propName)),\n\t\t\tvalue: propValue\n\t\t}))\n\t\t.filter((entry) => entry.token)\n\t\t.map((entry) => ({ provide: entry.token, useValue: entry.value }));\n\n\treturn [...providers, ...propProviders];\n};\nexport const clearSelectorCache = () => selectorCache.clear();\n\nconst isInjectionToken = (value: unknown) => {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\t'ngMetadataName' in value && value.ngMetadataName === 'InjectionToken'\n\t);\n};\n\nexport const discoverTokens = (pageModule: Record<string, unknown>) =>\n\tnew Map(\n\t\tObject.entries(pageModule).filter(([, value]) =>\n\t\t\tisInjectionToken(value)\n\t\t)\n\t);\nexport const loadSsrDeps = async (pagePath: string) => {\n\tconst ssrDepsPath = (pagePath.split('?')[0] ?? pagePath).replace(\n\t\t/\\.js$/,\n\t\t'.ssr-deps.js'\n\t);\n\n\ttry {\n\t\tconst ssrDeps = await import(ssrDepsPath);\n\n\t\tconst result: SsrDepsResult = {\n\t\t\tcommon: ssrDeps.__angularCommon,\n\t\t\tcore: ssrDeps.__angularCore,\n\t\t\tplatformBrowser: ssrDeps.__angularPlatformBrowser,\n\t\t\tplatformServer: ssrDeps.__angularPlatformServer\n\t\t};\n\n\t\treturn result;\n\t} catch {\n\t\treturn null;\n\t}\n};\nexport const resolveSelector = (\n\tdeps: AngularDeps,\n\tpagePath: string,\n\tPageComponent: Type<unknown>\n) => {\n\tconst cached = selectorCache.get(pagePath);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst selector =\n\t\tdeps.reflectComponentType(PageComponent)?.selector ?? 'ng-app';\n\tselectorCache.set(pagePath, selector);\n\n\treturn selector;\n};\n\n// --- Inject HTML helper ---\n\nconst injectBeforeClose = (html: string, snippet: string) => {\n\tif (html.includes('</body>')) {\n\t\treturn html.replace('</body>', `${snippet}</body>`);\n\t}\n\tif (html.includes('</html>')) {\n\t\treturn html.replace('</html>', `${snippet}</html>`);\n\t}\n\n\treturn html + snippet;\n};\n\n// --- Post-render HTML injection ---\n\nexport const injectSsrScripts = (\n\thtml: string,\n\trequestId: string,\n\tindexPath: string,\n\tprops?: Record<string, unknown>\n) => {\n\tlet result = html;\n\n\tconst registeredScripts = getAndClearClientScripts(requestId);\n\tif (registeredScripts.length > 0) {\n\t\tresult = injectBeforeClose(\n\t\t\tresult,\n\t\t\tgenerateClientScriptCode(registeredScripts)\n\t\t);\n\t}\n\n\tif (props) {\n\t\tresult = injectBeforeClose(\n\t\t\tresult,\n\t\t\t`<script>window.__ABS_ANGULAR_PAGE_PROPS__ = ${JSON.stringify(props)};</script>`\n\t\t);\n\t}\n\n\tif (indexPath) {\n\t\tconst escapedIndexPath = JSON.stringify(indexPath);\n\t\tresult = injectBeforeClose(\n\t\t\tresult,\n\t\t\t`<script>import(${escapedIndexPath});</script>`\n\t\t);\n\t}\n\n\treturn result;\n};\nexport const renderAngularApp = async (\n\tdeps: AngularDeps,\n\tPageComponent: Type<unknown>,\n\tproviders: (Provider | EnvironmentProviders)[],\n\tdocument: string | Document,\n\turl: string = '/'\n) => {\n\tconst bootstrap = (context: BootstrapContext) =>\n\t\tdeps.bootstrapApplication(PageComponent, { providers }, context);\n\n\treturn withSuppressedAngularDevLogs(() =>\n\t\tdeps.renderApplication(bootstrap, {\n\t\t\tdocument,\n\t\t\tplatformProviders: [],\n\t\t\turl\n\t\t})\n\t);\n};\nexport const withSuppressedAngularDevLogs = async <T>(\n\trender: () => Promise<T>\n) => {\n\tconst origLog = console.log;\n\tconsole.log = (...args: unknown[]) => {\n\t\tif (\n\t\t\ttypeof args[0] === 'string' &&\n\t\t\targs[0].includes('development mode')\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\torigLog.apply(console, args);\n\t};\n\n\ttry {\n\t\treturn await render();\n\t} finally {\n\t\tconsole.log = origLog;\n\t}\n};\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAIA,IAAM,oBAAoB,CAAC,mBAAoD;AAAA,EAC9E,IAAI;AAAA,IACH,MAAM,gBACL,eAAe;AAAA,IAChB,eAAe,cAAc;AAAA,IAC5B,OAAO,KAAK;AAAA,IACb,QAAQ,MAAM,uCAAuC,GAAG;AAAA;AAAA;AAI1D,IAAM,kBAAkB,YAAY;AAAA,EAInC,8BAA8B;AAAA,EAM9B,MAAa,
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "70A307989631B9D464756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -246,8 +246,51 @@ var computeAngularVendorPathsAsync = async (directories = []) => {
|
|
|
246
246
|
const specifiers = await resolveAngularSpecifiers(directories);
|
|
247
247
|
return computeAngularVendorPaths(specifiers);
|
|
248
248
|
};
|
|
249
|
+
var buildAngularServerVendor = async (buildDir, directories = [], linkerJitMode = false) => {
|
|
250
|
+
const vendorDir = join2(buildDir, "angular", "vendor", "server");
|
|
251
|
+
mkdirSync2(vendorDir, { recursive: true });
|
|
252
|
+
const tmpDir = join2(buildDir, "_angular_server_vendor_tmp");
|
|
253
|
+
mkdirSync2(tmpDir, { recursive: true });
|
|
254
|
+
const browserSpecs = await resolveAngularSpecifiers(directories);
|
|
255
|
+
const allSpecs = new Set(browserSpecs);
|
|
256
|
+
for (const spec of SERVER_ONLY_ANGULAR_SPECIFIERS) {
|
|
257
|
+
if (isResolvable(spec))
|
|
258
|
+
allSpecs.add(spec);
|
|
259
|
+
}
|
|
260
|
+
const specifiers = Array.from(allSpecs);
|
|
261
|
+
const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
|
|
262
|
+
const safeName = toSafeFileName(specifier);
|
|
263
|
+
const entryPath = join2(tmpDir, `${safeName}.ts`);
|
|
264
|
+
await Bun.write(entryPath, generateVendorEntrySource(specifier));
|
|
265
|
+
return entryPath;
|
|
266
|
+
}));
|
|
267
|
+
const result = await bunBuild({
|
|
268
|
+
entrypoints,
|
|
269
|
+
format: "esm",
|
|
270
|
+
minify: false,
|
|
271
|
+
naming: "[name].[ext]",
|
|
272
|
+
outdir: vendorDir,
|
|
273
|
+
plugins: [createAngularLinkerPlugin(linkerJitMode)],
|
|
274
|
+
splitting: true,
|
|
275
|
+
target: "bun",
|
|
276
|
+
throw: false
|
|
277
|
+
});
|
|
278
|
+
await rm(tmpDir, { force: true, recursive: true });
|
|
279
|
+
if (!result.success) {
|
|
280
|
+
console.warn("\u26A0\uFE0F Angular server vendor build had errors:", result.logs);
|
|
281
|
+
}
|
|
282
|
+
return specifiers;
|
|
283
|
+
};
|
|
284
|
+
var computeAngularServerVendorPaths = (buildDir, specifiers) => {
|
|
285
|
+
const paths = {};
|
|
286
|
+
const vendorDir = join2(buildDir, "angular", "vendor", "server");
|
|
287
|
+
for (const specifier of specifiers) {
|
|
288
|
+
paths[specifier] = join2(vendorDir, `${toSafeFileName(specifier)}.js`);
|
|
289
|
+
}
|
|
290
|
+
return paths;
|
|
291
|
+
};
|
|
249
292
|
|
|
250
|
-
export { createAngularLinkerPlugin, buildAngularVendor, computeAngularVendorPaths, computeAngularVendorPathsAsync };
|
|
293
|
+
export { createAngularLinkerPlugin, buildAngularVendor, computeAngularVendorPaths, computeAngularVendorPathsAsync, buildAngularServerVendor, computeAngularServerVendorPaths };
|
|
251
294
|
|
|
252
|
-
//# debugId=
|
|
253
|
-
//# sourceMappingURL=chunk-
|
|
295
|
+
//# debugId=6CE3FECB3EBBA3EB64756E2164756E21
|
|
296
|
+
//# sourceMappingURL=chunk-k6km9xnz.js.map
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/build/buildAngularVendor.ts", "../src/build/angularLinkerPlugin.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { mkdirSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { rm } from 'node:fs/promises';\nimport { build as bunBuild, Glob } from 'bun';\nimport { createAngularLinkerPlugin } from './angularLinkerPlugin';\nimport { generateVendorEntrySource } from './vendorEntrySource';\n\n/** Always-vendored Angular packages.\n * Required for any Angular page even if not imported in user code: the runtime\n * needs them to bootstrap. Server-only packages (@angular/platform-server) are\n * excluded. Additional @angular/* packages are auto-discovered from source. */\nconst REQUIRED_ANGULAR_SPECIFIERS = [\n\t'@angular/core',\n\t'@angular/compiler',\n\t'@angular/common',\n\t'@angular/common/http',\n\t'@angular/platform-browser'\n];\n\n/** Build-only / server-only specifiers that should never be browser-vendored. */\nconst SERVER_ONLY_ANGULAR_SPECIFIERS = new Set([\n\t'@angular/platform-server',\n\t'@angular/ssr',\n\t'@angular/compiler-cli'\n]);\n\nconst SCAN_SKIP_DIRS = new Set([\n\t'node_modules',\n\t'build',\n\t'dist',\n\t'.absolutejs',\n\t'generated'\n]);\n\nconst isResolvable = (specifier: string) => {\n\ttry {\n\t\tBun.resolveSync(specifier, process.cwd());\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst isBareSpecifier = (spec: string) =>\n\t!spec.startsWith('.') && !spec.startsWith('/') && !spec.startsWith('@src/');\n\nconst isAngularBrowserSpecifier = (spec: string) =>\n\tspec.startsWith('@angular/') && !SERVER_ONLY_ANGULAR_SPECIFIERS.has(spec);\n\n/** Scan user source for any imports — both @angular/* (kept) and other bare\n * specs (returned as transitive scan seeds). Finding angular subpaths only\n * reachable through deps (e.g. `@angular/core/rxjs-interop` from\n * `@angular/fire/compat/auth`) requires walking through non-angular roots. */\nconst scanSourceImports = async (directories: string[]) => {\n\tconst angular = new Set<string>();\n\tconst transitiveRoots = new Set<string>();\n\tconst transpiler = new Bun.Transpiler({ loader: 'tsx' });\n\tconst glob = new Glob('**/*.{ts,tsx,js,jsx}');\n\n\tfor (const dir of directories) {\n\t\ttry {\n\t\t\tfor await (const file of glob.scan({ absolute: true, cwd: dir })) {\n\t\t\t\tconst rel = file.slice(dir.length + 1);\n\t\t\t\tconst [first] = rel.split('/');\n\t\t\t\tif (first && SCAN_SKIP_DIRS.has(first)) continue;\n\t\t\t\ttry {\n\t\t\t\t\tconst content = await Bun.file(file).text();\n\t\t\t\t\tfor (const imp of transpiler.scanImports(content)) {\n\t\t\t\t\t\tif (isAngularBrowserSpecifier(imp.path)) {\n\t\t\t\t\t\t\tangular.add(imp.path);\n\t\t\t\t\t\t} else if (isBareSpecifier(imp.path)) {\n\t\t\t\t\t\t\ttransitiveRoots.add(imp.path);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// unreadable file, skip\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {\n\t\t\t// missing dir, skip\n\t\t}\n\t}\n\n\treturn { angular, transitiveRoots };\n};\n\n/** Walk through transitive deps and harvest any @angular/* subpaths reachable\n * via non-angular packages (e.g. firebase imports `@angular/core/rxjs-interop`\n * through @angular/fire). Mirrors buildDepVendor's framework-root traversal. */\nconst collectTransitiveAngularSpecs = async (\n\troots: Iterable<string>,\n\tangularFound: Set<string>\n) => {\n\tconst { readFileSync } = await import('node:fs');\n\tconst transpiler = new Bun.Transpiler({ loader: 'js' });\n\tconst visited = new Set<string>();\n\tconst frontier: string[] = [];\n\tfor (const r of roots) frontier.push(r);\n\n\tconst MAX_PASSES = 5;\n\tfor (let pass = 0; pass < MAX_PASSES; pass++) {\n\t\tconst next: string[] = [];\n\t\tfor (const spec of frontier) {\n\t\t\tif (visited.has(spec)) continue;\n\t\t\tvisited.add(spec);\n\t\t\tlet resolved: string;\n\t\t\ttry {\n\t\t\t\tresolved = Bun.resolveSync(spec, process.cwd());\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet content: string;\n\t\t\ttry {\n\t\t\t\tcontent = readFileSync(resolved, 'utf-8');\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet imports;\n\t\t\ttry {\n\t\t\t\timports = transpiler.scanImports(content);\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (const imp of imports) {\n\t\t\t\tconst child = imp.path;\n\t\t\t\tif (!isBareSpecifier(child)) continue;\n\t\t\t\tif (visited.has(child)) continue;\n\t\t\t\tif (isAngularBrowserSpecifier(child)) {\n\t\t\t\t\tangularFound.add(child);\n\t\t\t\t}\n\t\t\t\tnext.push(child);\n\t\t\t}\n\t\t}\n\t\tif (next.length === 0) break;\n\t\tfrontier.length = 0;\n\t\tfor (const s of next) frontier.push(s);\n\t}\n};\n\n/** Convert a bare specifier to a safe filename:\n * @angular/common/http → angular_common_http */\nconst toSafeFileName = (specifier: string) =>\n\tspecifier.replace(/^@/, '').replace(/\\//g, '_');\n\nconst resolveAngularSpecifiers = async (directories: string[]) => {\n\tconst { angular, transitiveRoots } = await scanSourceImports(directories);\n\tfor (const spec of REQUIRED_ANGULAR_SPECIFIERS) angular.add(spec);\n\tawait collectTransitiveAngularSpecs(\n\t\t[...angular, ...transitiveRoots],\n\t\tangular\n\t);\n\n\treturn Array.from(angular).filter(isResolvable);\n};\n\n/** Build vendor bundles for every @angular/* package the project imports.\n * `linkerJitMode` controls whether NgModule definitions retain their\n * declarations/exports — required when consumer (user) components are\n * runtime-compiled by `@angular/compiler` (dev/HMR via compileAngularFileJIT).\n * Production AOT builds set this to false to match AOT'd user components.\n *\n * `depVendorSpecifiers` are non-framework packages that are also vendored\n * separately (by `buildDepVendor`). They MUST be externalized here too —\n * otherwise transitive imports like `@angular/fire/compat/auth` →\n * `firebase/compat/auth` get bundled twice, creating duplicate\n * @firebase/app-compat instances. The angular-vendor copy registers\n * `firebase.auth.*` on its own firebase singleton, leaving the user's\n * `import firebase from 'firebase/compat/app'` with `firebase.auth` undefined.\n * Externalizing forces both pipelines to share the same /vendor chunks. */\nexport const buildAngularVendor = async (\n\tbuildDir: string,\n\tdirectories: string[] = [],\n\tlinkerJitMode = false,\n\tdepVendorSpecifiers: string[] = []\n) => {\n\tconst vendorDir = join(buildDir, 'angular', 'vendor');\n\tmkdirSync(vendorDir, { recursive: true });\n\n\tconst tmpDir = join(buildDir, '_angular_vendor_tmp');\n\tmkdirSync(tmpDir, { recursive: true });\n\n\tconst specifiers = await resolveAngularSpecifiers(directories);\n\n\t// Angular packages are proper ESM. `export *` re-exports only NAMED exports\n\t// per ECMA spec, so we use the namespace-default-fallback pattern that's\n\t// safe regardless of whether the package has a default export.\n\tconst entrypoints = await Promise.all(\n\t\tspecifiers.map(async (specifier) => {\n\t\t\tconst safeName = toSafeFileName(specifier);\n\t\t\tconst entryPath = join(tmpDir, `${safeName}.ts`);\n\t\t\tawait Bun.write(entryPath, generateVendorEntrySource(specifier));\n\n\t\t\treturn entryPath;\n\t\t})\n\t);\n\n\tconst result = await bunBuild({\n\t\tentrypoints,\n\t\texternal: depVendorSpecifiers,\n\t\tformat: 'esm',\n\t\tminify: false,\n\t\tnaming: '[name].[ext]',\n\t\toutdir: vendorDir,\n\t\tplugins: [createAngularLinkerPlugin(linkerJitMode)],\n\t\tsplitting: true,\n\t\ttarget: 'browser',\n\t\tthrow: false\n\t});\n\n\tawait rm(tmpDir, { force: true, recursive: true });\n\n\tif (!result.success) {\n\t\tconsole.warn('⚠️ Angular vendor build had errors:', result.logs);\n\t}\n\n\treturn specifiers;\n};\nexport const computeAngularVendorPaths = (\n\tspecifiers: string[] = REQUIRED_ANGULAR_SPECIFIERS\n) => {\n\tconst paths: Record<string, string> = {};\n\tfor (const specifier of specifiers) {\n\t\tpaths[specifier] = `/angular/vendor/${toSafeFileName(specifier)}.js`;\n\t}\n\n\treturn paths;\n};\n\n/** Async variant that scans source + transitive deps before producing the\n * vendor path map. Use this when the page-bundle build needs the full set of\n * angular specs in its rewrite map (otherwise transitively-discovered subpaths\n * like `@angular/core/rxjs-interop` end up as bare specifiers in the output). */\nexport const computeAngularVendorPathsAsync = async (\n\tdirectories: string[] = []\n) => {\n\tconst specifiers = await resolveAngularSpecifiers(directories);\n\n\treturn computeAngularVendorPaths(specifiers);\n};\n",
|
|
5
|
+
"import { mkdirSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { rm } from 'node:fs/promises';\nimport { build as bunBuild, Glob } from 'bun';\nimport { createAngularLinkerPlugin } from './angularLinkerPlugin';\nimport { generateVendorEntrySource } from './vendorEntrySource';\n\n/** Always-vendored Angular packages.\n * Required for any Angular page even if not imported in user code: the runtime\n * needs them to bootstrap. Server-only packages (@angular/platform-server) are\n * excluded. Additional @angular/* packages are auto-discovered from source. */\nconst REQUIRED_ANGULAR_SPECIFIERS = [\n\t'@angular/core',\n\t'@angular/compiler',\n\t'@angular/common',\n\t'@angular/common/http',\n\t'@angular/platform-browser'\n];\n\n/** Build-only / server-only specifiers that should never be browser-vendored. */\nconst SERVER_ONLY_ANGULAR_SPECIFIERS = new Set([\n\t'@angular/platform-server',\n\t'@angular/ssr',\n\t'@angular/compiler-cli'\n]);\n\nconst SCAN_SKIP_DIRS = new Set([\n\t'node_modules',\n\t'build',\n\t'dist',\n\t'.absolutejs',\n\t'generated'\n]);\n\nconst isResolvable = (specifier: string) => {\n\ttry {\n\t\tBun.resolveSync(specifier, process.cwd());\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst isBareSpecifier = (spec: string) =>\n\t!spec.startsWith('.') && !spec.startsWith('/') && !spec.startsWith('@src/');\n\nconst isAngularBrowserSpecifier = (spec: string) =>\n\tspec.startsWith('@angular/') && !SERVER_ONLY_ANGULAR_SPECIFIERS.has(spec);\n\n/** Scan user source for any imports — both @angular/* (kept) and other bare\n * specs (returned as transitive scan seeds). Finding angular subpaths only\n * reachable through deps (e.g. `@angular/core/rxjs-interop` from\n * `@angular/fire/compat/auth`) requires walking through non-angular roots. */\nconst scanSourceImports = async (directories: string[]) => {\n\tconst angular = new Set<string>();\n\tconst transitiveRoots = new Set<string>();\n\tconst transpiler = new Bun.Transpiler({ loader: 'tsx' });\n\tconst glob = new Glob('**/*.{ts,tsx,js,jsx}');\n\n\tfor (const dir of directories) {\n\t\ttry {\n\t\t\tfor await (const file of glob.scan({ absolute: true, cwd: dir })) {\n\t\t\t\tconst rel = file.slice(dir.length + 1);\n\t\t\t\tconst [first] = rel.split('/');\n\t\t\t\tif (first && SCAN_SKIP_DIRS.has(first)) continue;\n\t\t\t\ttry {\n\t\t\t\t\tconst content = await Bun.file(file).text();\n\t\t\t\t\tfor (const imp of transpiler.scanImports(content)) {\n\t\t\t\t\t\tif (isAngularBrowserSpecifier(imp.path)) {\n\t\t\t\t\t\t\tangular.add(imp.path);\n\t\t\t\t\t\t} else if (isBareSpecifier(imp.path)) {\n\t\t\t\t\t\t\ttransitiveRoots.add(imp.path);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// unreadable file, skip\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {\n\t\t\t// missing dir, skip\n\t\t}\n\t}\n\n\treturn { angular, transitiveRoots };\n};\n\n/** Walk through transitive deps and harvest any @angular/* subpaths reachable\n * via non-angular packages (e.g. firebase imports `@angular/core/rxjs-interop`\n * through @angular/fire). Mirrors buildDepVendor's framework-root traversal. */\nconst collectTransitiveAngularSpecs = async (\n\troots: Iterable<string>,\n\tangularFound: Set<string>\n) => {\n\tconst { readFileSync } = await import('node:fs');\n\tconst transpiler = new Bun.Transpiler({ loader: 'js' });\n\tconst visited = new Set<string>();\n\tconst frontier: string[] = [];\n\tfor (const r of roots) frontier.push(r);\n\n\tconst MAX_PASSES = 5;\n\tfor (let pass = 0; pass < MAX_PASSES; pass++) {\n\t\tconst next: string[] = [];\n\t\tfor (const spec of frontier) {\n\t\t\tif (visited.has(spec)) continue;\n\t\t\tvisited.add(spec);\n\t\t\tlet resolved: string;\n\t\t\ttry {\n\t\t\t\tresolved = Bun.resolveSync(spec, process.cwd());\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet content: string;\n\t\t\ttry {\n\t\t\t\tcontent = readFileSync(resolved, 'utf-8');\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet imports;\n\t\t\ttry {\n\t\t\t\timports = transpiler.scanImports(content);\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (const imp of imports) {\n\t\t\t\tconst child = imp.path;\n\t\t\t\tif (!isBareSpecifier(child)) continue;\n\t\t\t\tif (visited.has(child)) continue;\n\t\t\t\tif (isAngularBrowserSpecifier(child)) {\n\t\t\t\t\tangularFound.add(child);\n\t\t\t\t}\n\t\t\t\tnext.push(child);\n\t\t\t}\n\t\t}\n\t\tif (next.length === 0) break;\n\t\tfrontier.length = 0;\n\t\tfor (const s of next) frontier.push(s);\n\t}\n};\n\n/** Convert a bare specifier to a safe filename:\n * @angular/common/http → angular_common_http */\nconst toSafeFileName = (specifier: string) =>\n\tspecifier.replace(/^@/, '').replace(/\\//g, '_');\n\nconst resolveAngularSpecifiers = async (directories: string[]) => {\n\tconst { angular, transitiveRoots } = await scanSourceImports(directories);\n\tfor (const spec of REQUIRED_ANGULAR_SPECIFIERS) angular.add(spec);\n\tawait collectTransitiveAngularSpecs(\n\t\t[...angular, ...transitiveRoots],\n\t\tangular\n\t);\n\n\treturn Array.from(angular).filter(isResolvable);\n};\n\n/** Build vendor bundles for every @angular/* package the project imports.\n * `linkerJitMode` controls whether NgModule definitions retain their\n * declarations/exports — required when consumer (user) components are\n * runtime-compiled by `@angular/compiler` (dev/HMR via compileAngularFileJIT).\n * Production AOT builds set this to false to match AOT'd user components.\n *\n * `depVendorSpecifiers` are non-framework packages that are also vendored\n * separately (by `buildDepVendor`). They MUST be externalized here too —\n * otherwise transitive imports like `@angular/fire/compat/auth` →\n * `firebase/compat/auth` get bundled twice, creating duplicate\n * @firebase/app-compat instances. The angular-vendor copy registers\n * `firebase.auth.*` on its own firebase singleton, leaving the user's\n * `import firebase from 'firebase/compat/app'` with `firebase.auth` undefined.\n * Externalizing forces both pipelines to share the same /vendor chunks. */\nexport const buildAngularVendor = async (\n\tbuildDir: string,\n\tdirectories: string[] = [],\n\tlinkerJitMode = false,\n\tdepVendorSpecifiers: string[] = []\n) => {\n\tconst vendorDir = join(buildDir, 'angular', 'vendor');\n\tmkdirSync(vendorDir, { recursive: true });\n\n\tconst tmpDir = join(buildDir, '_angular_vendor_tmp');\n\tmkdirSync(tmpDir, { recursive: true });\n\n\tconst specifiers = await resolveAngularSpecifiers(directories);\n\n\t// Angular packages are proper ESM. `export *` re-exports only NAMED exports\n\t// per ECMA spec, so we use the namespace-default-fallback pattern that's\n\t// safe regardless of whether the package has a default export.\n\tconst entrypoints = await Promise.all(\n\t\tspecifiers.map(async (specifier) => {\n\t\t\tconst safeName = toSafeFileName(specifier);\n\t\t\tconst entryPath = join(tmpDir, `${safeName}.ts`);\n\t\t\tawait Bun.write(entryPath, generateVendorEntrySource(specifier));\n\n\t\t\treturn entryPath;\n\t\t})\n\t);\n\n\tconst result = await bunBuild({\n\t\tentrypoints,\n\t\texternal: depVendorSpecifiers,\n\t\tformat: 'esm',\n\t\tminify: false,\n\t\tnaming: '[name].[ext]',\n\t\toutdir: vendorDir,\n\t\tplugins: [createAngularLinkerPlugin(linkerJitMode)],\n\t\tsplitting: true,\n\t\ttarget: 'browser',\n\t\tthrow: false\n\t});\n\n\tawait rm(tmpDir, { force: true, recursive: true });\n\n\tif (!result.success) {\n\t\tconsole.warn('⚠️ Angular vendor build had errors:', result.logs);\n\t}\n\n\treturn specifiers;\n};\nexport const computeAngularVendorPaths = (\n\tspecifiers: string[] = REQUIRED_ANGULAR_SPECIFIERS\n) => {\n\tconst paths: Record<string, string> = {};\n\tfor (const specifier of specifiers) {\n\t\tpaths[specifier] = `/angular/vendor/${toSafeFileName(specifier)}.js`;\n\t}\n\n\treturn paths;\n};\n\n/** Async variant that scans source + transitive deps before producing the\n * vendor path map. Use this when the page-bundle build needs the full set of\n * angular specs in its rewrite map (otherwise transitively-discovered subpaths\n * like `@angular/core/rxjs-interop` end up as bare specifiers in the output). */\nexport const computeAngularVendorPathsAsync = async (\n\tdirectories: string[] = []\n) => {\n\tconst specifiers = await resolveAngularSpecifiers(directories);\n\n\treturn computeAngularVendorPaths(specifiers);\n};\n\n/** Server-side counterpart to `buildAngularVendor`. Outputs fully-linked\n * Bun-target ESM bundles for every @angular/* package the project uses,\n * *plus* `@angular/platform-server` and `@angular/ssr` (excluded from the\n * browser vendor). The server bundle and `getAngularDeps()` import from\n * these paths so SSR shares one Angular runtime instance with the page\n * bundles — eliminates the dual-package hazard that produces NG0201.\n *\n * After this build, `@angular/compiler` is no longer required at runtime\n * for AOT-mode builds: every partial `ɵɵngDeclare*` has been linked into\n * final ɵdir/ɵcmp/ɵfac definitions in the vendor output. */\nexport const buildAngularServerVendor = async (\n\tbuildDir: string,\n\tdirectories: string[] = [],\n\tlinkerJitMode = false\n) => {\n\tconst vendorDir = join(buildDir, 'angular', 'vendor', 'server');\n\tmkdirSync(vendorDir, { recursive: true });\n\n\tconst tmpDir = join(buildDir, '_angular_server_vendor_tmp');\n\tmkdirSync(tmpDir, { recursive: true });\n\n\tconst browserSpecs = await resolveAngularSpecifiers(directories);\n\tconst allSpecs = new Set(browserSpecs);\n\tfor (const spec of SERVER_ONLY_ANGULAR_SPECIFIERS) {\n\t\tif (isResolvable(spec)) allSpecs.add(spec);\n\t}\n\tconst specifiers = Array.from(allSpecs);\n\n\tconst entrypoints = await Promise.all(\n\t\tspecifiers.map(async (specifier) => {\n\t\t\tconst safeName = toSafeFileName(specifier);\n\t\t\tconst entryPath = join(tmpDir, `${safeName}.ts`);\n\t\t\tawait Bun.write(entryPath, generateVendorEntrySource(specifier));\n\n\t\t\treturn entryPath;\n\t\t})\n\t);\n\n\tconst result = await bunBuild({\n\t\tentrypoints,\n\t\tformat: 'esm',\n\t\tminify: false,\n\t\tnaming: '[name].[ext]',\n\t\toutdir: vendorDir,\n\t\tplugins: [createAngularLinkerPlugin(linkerJitMode)],\n\t\tsplitting: true,\n\t\ttarget: 'bun',\n\t\tthrow: false\n\t});\n\n\tawait rm(tmpDir, { force: true, recursive: true });\n\n\tif (!result.success) {\n\t\tconsole.warn(\n\t\t\t'⚠️ Angular server vendor build had errors:',\n\t\t\tresult.logs\n\t\t);\n\t}\n\n\treturn specifiers;\n};\n\n/** Absolute filesystem paths to server vendor files, for `rewriteImports`\n * on server-side bundles and for runtime resolution in `getAngularDeps`. */\nexport const computeAngularServerVendorPaths = (\n\tbuildDir: string,\n\tspecifiers: string[]\n) => {\n\tconst paths: Record<string, string> = {};\n\tconst vendorDir = join(buildDir, 'angular', 'vendor', 'server');\n\tfor (const specifier of specifiers) {\n\t\tpaths[specifier] = join(vendorDir, `${toSafeFileName(specifier)}.js`);\n\t}\n\n\treturn paths;\n};\n",
|
|
6
6
|
"import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { createHash } from 'node:crypto';\nimport type { BunPlugin } from 'bun';\n\nconst CACHE_ROOT = resolve('.absolutejs', 'cache', 'angular-linker');\n\n/**\n * Bun bundler plugin that runs the Angular Linker on partially compiled\n * Angular libraries at build time. Converts ɵɵngDeclare* declarations\n * into fully linked code.\n *\n * The `linkerJitMode` flag controls whether NgModule definitions retain\n * `declarations`/`exports` (JIT-mode, required when consumer code is\n * runtime-compiled) or strip them (AOT-mode, smaller output but only\n * correct when consumer components have ɵcmp.dependencies baked in by\n * the Angular compiler-cli).\n *\n * In AbsoluteJS dev/HMR, user components are TypeScript-transpiled via\n * `compileAngularFileJIT` and rely on @angular/compiler at runtime —\n * that runtime JIT path reads `NgModule.ɵmod.declarations` to find\n * directives like FormGroupDirective. Linking vendor code in AOT mode\n * (the default) silently breaks dev because declarations get stripped\n * and runtime JIT then can't resolve `[formGroup]`, `[ngIf]`, etc. So\n * dev/HMR builds must use `linkerJitMode: true`. Production AOT builds\n * use `linkerJitMode: false` (matches AOT'd user components).\n *\n * Cache key includes mode so dev and prod artifacts don't collide.\n */\nexport const createAngularLinkerPlugin = (\n\tlinkerJitMode: boolean\n): BunPlugin => ({\n\tname: 'angular-linker',\n\tsetup(bld) {\n\t\tlet needsLinking: ((path: string, source: string) => boolean) | undefined;\n\t\tlet babelTransform: ((source: string, options: Record<string, unknown>) => { code?: string } | null) | undefined;\n\t\tlet linkerPlugin: unknown;\n\n\t\tconst cacheDir = join(CACHE_ROOT, linkerJitMode ? 'jit' : 'aot');\n\n\t\tbld.onLoad(\n\t\t\t{ filter: /[\\\\/]@angular[\\\\/].*\\.m?js$/ },\n\t\t\tasync (args) => {\n\t\t\t\tconst source = await Bun.file(args.path).text();\n\n\t\t\t\tif (!needsLinking) {\n\t\t\t\t\tconst specifier = '@angular/compiler-cli/linker';\n\t\t\t\t\tconst mod = await import(specifier);\n\t\t\t\t\t({ needsLinking } = mod);\n\t\t\t\t}\n\n\t\t\t\tconst checkLink = needsLinking;\n\t\t\t\tif (!checkLink || !checkLink(args.path, source)) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\tconst hash = createHash('md5')\n\t\t\t\t\t.update(source)\n\t\t\t\t\t.digest('hex');\n\t\t\t\tconst cachePath = join(cacheDir, `${hash}.js`);\n\n\t\t\t\tif (existsSync(cachePath)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontents: readFileSync(cachePath, 'utf-8'),\n\t\t\t\t\t\tloader: 'js'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (!babelTransform) {\n\t\t\t\t\tconst babelSpecifier = '@babel/core';\n\t\t\t\t\tconst babel = await import(babelSpecifier);\n\t\t\t\t\tbabelTransform = babel.transformSync;\n\t\t\t\t}\n\t\t\t\tif (!linkerPlugin) {\n\t\t\t\t\tconst linkerSpecifier = '@angular/compiler-cli/linker/babel';\n\t\t\t\t\tconst mod = await import(linkerSpecifier);\n\t\t\t\t\tlinkerPlugin = mod.createEs2015LinkerPlugin({\n\t\t\t\t\t\tfileSystem: {\n\t\t\t\t\t\t\tdirname,\n\t\t\t\t\t\t\texists: existsSync,\n\t\t\t\t\t\t\treadFile: readFileSync,\n\t\t\t\t\t\t\trelative,\n\t\t\t\t\t\t\tresolve\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlinkerJitMode,\n\t\t\t\t\t\tlogger: {\n\t\t\t\t\t\t\terror: console.error,\n\t\t\t\t\t\t\tlevel: 1,\n\t\t\t\t\t\t\twarn: console.warn,\n\t\t\t\t\t\t\tdebug: () => { /* noop */ },\n\t\t\t\t\t\t\tinfo: () => { /* noop */ }\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst transform = babelTransform;\n\t\t\t\tif (!transform) {\n\t\t\t\t\treturn { contents: source, loader: 'js' };\n\t\t\t\t}\n\n\t\t\t\tconst result = transform(source, {\n\t\t\t\t\tcompact: false,\n\t\t\t\t\tfilename: args.path,\n\t\t\t\t\tfilenameRelative: args.path,\n\t\t\t\t\tplugins: [linkerPlugin],\n\t\t\t\t\tsourceMaps: false\n\t\t\t\t});\n\n\t\t\t\tconst linked = result?.code ?? source;\n\n\t\t\t\tmkdirSync(cacheDir, { recursive: true });\n\t\t\t\twriteFileSync(cachePath, linked, 'utf-8');\n\n\t\t\t\treturn { contents: linked, loader: 'js' };\n\t\t\t}\n\t\t);\n\t}\n});\n\n/** Default AOT-mode plugin instance — keep for callers that don't need\n * to choose. Production AOT builds and any callsite that AOT-compiles\n * user components alongside vendor should use this. */\nexport const angularLinkerPlugin: BunPlugin = createAngularLinkerPlugin(false);\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "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",
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "6CE3FECB3EBBA3EB64756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
getAngularIslandSelector,
|
|
4
4
|
mountAngularIsland,
|
|
5
5
|
renderAngularIslandToHtml
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import"./chunk-
|
|
8
|
-
import"./chunk-
|
|
9
|
-
import"./chunk-
|
|
6
|
+
} from "./chunk-ccz4x8vr.js";
|
|
7
|
+
import"./chunk-hf5fjykx.js";
|
|
8
|
+
import"./chunk-r8dzkm4s.js";
|
|
9
|
+
import"./chunk-0r32762k.js";
|
|
10
10
|
import"./chunk-p5504p14.js";
|
|
11
11
|
import"./chunk-25v9t56f.js";
|
|
12
12
|
import"./chunk-bmgqm774.js";
|
|
@@ -17,4 +17,4 @@ export {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
//# debugId=C1AFCC34B998790A64756E2164756E21
|
|
20
|
-
//# sourceMappingURL=chunk-
|
|
20
|
+
//# sourceMappingURL=chunk-pevt15h0.js.map
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
} from "./chunk-gf0ygptk.js";
|
|
20
20
|
import {
|
|
21
21
|
renderIslandMarkup
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-z6c8qcmw.js";
|
|
23
23
|
import {
|
|
24
24
|
getIslandBuildReference
|
|
25
25
|
} from "./chunk-8kcfffry.js";
|
|
@@ -669,4 +669,4 @@ var setCurrentPageIslandMetadata = (metadata) => {
|
|
|
669
669
|
export { isTailwindCandidate, compileTailwind, compileTailwindConfig, collectIslandFrameworkSources, generateIslandEntryPoints, loadIslandRegistryBuildInfo, extractStaticStreamingTags, transformCurrentStaticPageHtml, transformStaticPagesWithIslands, getPagesUsingIslandSource, loadPageIslandMetadata, setCurrentPageIslandMetadata, logStartupTimingBlock };
|
|
670
670
|
|
|
671
671
|
//# debugId=EA2793B90D7FF16C64756E2164756E21
|
|
672
|
-
//# sourceMappingURL=chunk-
|
|
672
|
+
//# sourceMappingURL=chunk-r0w678ve.js.map
|
|
@@ -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,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-7x4hne4h.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
|