@absolutejs/absolute 0.20.0-beta.177 → 0.20.0-beta.178
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/CHANGELOG.md +26 -0
- package/changelog.json +51 -0
- package/dist/angular/browser.js +17 -2
- package/dist/angular/browser.js.map +4 -4
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +57 -33
- package/dist/angular/index.js.map +9 -8
- package/dist/angular/server.js +57 -33
- package/dist/angular/server.js.map +9 -8
- package/dist/build.js +532 -416
- package/dist/build.js.map +15 -15
- package/dist/cli/{compile-w2z6c9vt.js → compile-p5yv6ecp.js} +2 -2
- package/dist/cli/config/server.js +45 -12
- package/dist/cli/{dev-8br5mr7t.js → dev-2hbcsvkp.js} +1 -1
- package/dist/cli/{index-420h9hq7.js → index-1ewba8ye.js} +32 -3
- package/dist/cli/{index-7z1hh3fg.js → index-9dzdbbfc.js} +1 -1
- package/dist/cli/index.js +7 -7
- package/dist/cli/{islands-bx67g15t.js → islands-6zgb7501.js} +1 -1
- package/dist/cli/{mobile-we5q51ey.js → mobile-c92dh8s2.js} +2 -2
- package/dist/cli/{start-srs11bm8.js → start-asxb79rc.js} +2 -2
- package/dist/cli/{typecheck-7fvww3b7.js → typecheck-m2j4tkdk.js} +165 -35
- package/dist/client/chunks/{index-8m2qq61n.js → index-58svs66p.js} +13 -3
- package/dist/client/chunks/{index-8m2qq61n.js.map → index-58svs66p.js.map} +5 -4
- package/dist/client/chunks/{islands-mfjmdwnb.js → islands-tcadmgcx.js} +3 -6
- package/dist/client/chunks/{islands-mfjmdwnb.js.map → islands-tcadmgcx.js.map} +3 -4
- package/dist/client/chunks/{react-sprprqzs.js → react-khr6ewhr.js} +2 -2
- package/dist/client/index.js +82 -6
- package/dist/client/index.js.map +7 -6
- package/dist/dev/client/handlers/islands.ts +2 -0
- package/dist/dev/client/handlers/react.ts +92 -111
- package/dist/dev/client/handlers/reactUpdateQueue.ts +153 -0
- package/dist/index.js +505 -389
- package/dist/index.js.map +15 -15
- package/dist/islands/browser.js +2 -2
- package/dist/islands/browser.js.map +3 -3
- package/dist/islands/index.js +13 -6
- package/dist/islands/index.js.map +6 -5
- package/dist/react/browser.js +113 -12
- package/dist/react/browser.js.map +10 -7
- package/dist/react/components/index.js +31 -7
- package/dist/react/components/index.js.map +5 -4
- package/dist/react/components/server/index.js +22 -6
- package/dist/react/index.js +190 -46
- package/dist/react/index.js.map +15 -11
- package/dist/react/server.js +82 -23
- package/dist/react/server.js.map +11 -9
- package/dist/src/build/compileSvelte.d.ts +12 -1
- package/dist/src/build/compileVue.d.ts +1 -0
- package/dist/src/build/islandEntries.d.ts +3 -1
- package/dist/src/cli/scripts/typecheck.d.ts +8 -0
- package/dist/src/cli/scripts/typecheckDiagnostics.d.ts +17 -0
- package/dist/src/client/preserveIslandMarkup.d.ts +4 -0
- package/dist/src/core/islandManifest.d.ts +6 -0
- package/dist/src/core/islandStylesheet.d.ts +17 -0
- package/dist/src/react/Island.d.ts +9 -2
- package/dist/src/react/IslandStyleLink.d.ts +11 -0
- package/dist/src/react/createIsland.d.ts +1 -1
- package/dist/src/react/serverComponents/nodeRendererRef.d.ts +13 -0
- package/dist/src/utils/requestRenderUrl.d.ts +1 -0
- package/dist/src/utils/resolveConvention.d.ts +1 -0
- package/dist/src/vue/Island.browser.d.ts +3 -1
- package/dist/src/vue/Island.d.ts +2 -2
- package/dist/src/vue/createIsland.browser.d.ts +2 -2
- package/dist/src/vue/createIsland.d.ts +2 -2
- package/dist/src/vue/islandStyleLink.d.ts +30 -0
- package/dist/svelte/browser.js +2 -2
- package/dist/svelte/browser.js.map +3 -3
- package/dist/svelte/index.js +51 -49
- package/dist/svelte/index.js.map +9 -8
- package/dist/svelte/server.js +48 -45
- package/dist/svelte/server.js.map +8 -7
- package/dist/types/globals.d.ts +3 -0
- package/dist/vue/browser.js +105 -10
- package/dist/vue/browser.js.map +10 -7
- package/dist/vue/index.js +170 -47
- package/dist/vue/index.js.map +14 -11
- package/dist/vue/server.js +81 -22
- package/dist/vue/server.js.map +9 -7
- package/package.json +1 -1
- /package/dist/cli/{index-6522t968.js → index-yd672jyq.js} +0 -0
- /package/dist/client/chunks/{react-sprprqzs.js.map → react-khr6ewhr.js.map} +0 -0
package/dist/svelte/server.js
CHANGED
|
@@ -1571,7 +1571,7 @@ var ISLAND_BOOTSTRAP_MANIFEST_KEY = "AbsoluteIslandBootstrap", LEGACY_ISLAND_BOO
|
|
|
1571
1571
|
islands[framework] = entries;
|
|
1572
1572
|
}
|
|
1573
1573
|
return islands;
|
|
1574
|
-
}, getIslandManifestKey = (framework, component) => `Island${toIslandFrameworkSegment(framework)}${component}`;
|
|
1574
|
+
}, getIslandManifestKey = (framework, component) => `Island${toIslandFrameworkSegment(framework)}${component}`, ISLAND_STYLE_PREFIX = "IslandStyle", getIslandStyleManifestEntries = (manifest) => Object.entries(manifest).filter(([key]) => key.startsWith(ISLAND_STYLE_PREFIX)), getIslandStyleManifestKey = (framework, component) => `${ISLAND_STYLE_PREFIX}${toIslandFrameworkSegment(framework)}${component}`;
|
|
1575
1575
|
|
|
1576
1576
|
// src/core/islandPageContext.ts
|
|
1577
1577
|
var ISLAND_MARKER = 'data-island="true"', MANIFEST_MARKER = "__ABSOLUTE_MANIFEST__", ISLAND_STATE_MARKER = "__ABS_ISLAND_STATE__", CLOSING_HEAD_TAG = "</head>", warnedMissingBootstrap = false, warnIfBootstrapMissing = (manifest) => {
|
|
@@ -1608,12 +1608,27 @@ var ISLAND_MARKER = 'data-island="true"', MANIFEST_MARKER = "__ABSOLUTE_MANIFEST
|
|
|
1608
1608
|
browserManifest[key] = value;
|
|
1609
1609
|
}
|
|
1610
1610
|
return browserManifest;
|
|
1611
|
-
},
|
|
1611
|
+
}, ISLAND_MARKER_TAG, ISLAND_FRAMEWORKS, readMarkerAttribute = (tag, name) => new RegExp(`\\b${name}="([^"]*)"`).exec(tag)?.[1]?.replaceAll(""", '"').replaceAll("<", "<").replaceAll(">", ">").replaceAll("&", "&"), toIslandFramework = (value) => ISLAND_FRAMEWORKS.find((framework) => framework === value), collectRenderedIslandStyleKeys = (html) => {
|
|
1612
|
+
const keys = new Set;
|
|
1613
|
+
for (const [tag] of html.matchAll(ISLAND_MARKER_TAG)) {
|
|
1614
|
+
const framework = toIslandFramework(readMarkerAttribute(tag, "data-framework"));
|
|
1615
|
+
const component = readMarkerAttribute(tag, "data-component");
|
|
1616
|
+
if (framework && component)
|
|
1617
|
+
keys.add(getIslandStyleManifestKey(framework, component));
|
|
1618
|
+
}
|
|
1619
|
+
return keys;
|
|
1620
|
+
}, buildIslandStyleLinks = (manifest, html) => {
|
|
1621
|
+
if (html === undefined)
|
|
1622
|
+
return "";
|
|
1623
|
+
const renderedKeys = collectRenderedIslandStyleKeys(html);
|
|
1624
|
+
return getIslandStyleManifestEntries(manifest).filter(([key]) => renderedKeys.has(key)).filter(([, href]) => !html.includes(`href="${href}"`)).map(([key, href]) => `<link rel="stylesheet" href="${href}" data-island-style="${key}"${nonceAttr()}>`).join("");
|
|
1625
|
+
}, buildIslandsHeadMarkup = (manifest, html) => {
|
|
1626
|
+
const styleLinks = buildIslandStyleLinks(manifest, html);
|
|
1612
1627
|
const manifestScript = `<script${nonceAttr()}>window.__ABSOLUTE_MANIFEST__ = ${escapeScriptContent(JSON.stringify(toBrowserManifest(manifest)))}</script>`;
|
|
1613
1628
|
const islandStateScript = `<script${nonceAttr()}>window.__ABS_ISLAND_STATE__ = ${escapeScriptContent(JSON.stringify(globalThis.__ABS_ISLAND_STATE__ ?? {}))}</script>`;
|
|
1614
1629
|
const bootstrapPath = getIslandBootstrapPath(manifest);
|
|
1615
1630
|
const bootstrapScript = bootstrapPath ? `<script${nonceAttr()} type="module" src="${bootstrapPath}"></script>` : "";
|
|
1616
|
-
return `${manifestScript}${islandStateScript}${bootstrapScript}`;
|
|
1631
|
+
return `${styleLinks}${manifestScript}${islandStateScript}${bootstrapScript}`;
|
|
1617
1632
|
}, injectHeadMarkup = (html, markup) => {
|
|
1618
1633
|
const closingHeadIndex = html.indexOf("</head>");
|
|
1619
1634
|
if (closingHeadIndex >= 0) {
|
|
@@ -1795,7 +1810,7 @@ var ISLAND_MARKER = 'data-island="true"', MANIFEST_MARKER = "__ABSOLUTE_MANIFEST
|
|
|
1795
1810
|
return html;
|
|
1796
1811
|
}
|
|
1797
1812
|
warnIfBootstrapMissing(manifest);
|
|
1798
|
-
return injectHeadMarkup(html, buildIslandsHeadMarkup(manifest));
|
|
1813
|
+
return injectHeadMarkup(html, buildIslandsHeadMarkup(manifest, html));
|
|
1799
1814
|
}, injectIslandPageContextStream = (stream, options) => {
|
|
1800
1815
|
const manifest = globalThis.__absoluteManifest;
|
|
1801
1816
|
if (!manifest)
|
|
@@ -1819,6 +1834,13 @@ var init_islandPageContext = __esm(() => {
|
|
|
1819
1834
|
init_logger();
|
|
1820
1835
|
MANIFEST_BUILD_DIR_KEY = Symbol.for("absolutejs.islandManifestBuildDir");
|
|
1821
1836
|
WINDOWS_ABSOLUTE_PATH = /^[A-Za-z]:[\\/]|^\\\\/;
|
|
1837
|
+
ISLAND_MARKER_TAG = /<[^>]*\bdata-island="true"[^>]*>/g;
|
|
1838
|
+
ISLAND_FRAMEWORKS = [
|
|
1839
|
+
"react",
|
|
1840
|
+
"svelte",
|
|
1841
|
+
"vue",
|
|
1842
|
+
"angular"
|
|
1843
|
+
];
|
|
1822
1844
|
});
|
|
1823
1845
|
|
|
1824
1846
|
// src/core/devRouteRegistrationCallsite.ts
|
|
@@ -3286,6 +3308,12 @@ var CONVENTIONS_KEY = "__absoluteConventions", isConventionsMap = (value) => Boo
|
|
|
3286
3308
|
logConventionRenderError(framework, "error", renderError);
|
|
3287
3309
|
}
|
|
3288
3310
|
return null;
|
|
3311
|
+
}, isPageRequest = (request) => {
|
|
3312
|
+
if (request.headers.get("hx-request") === "true")
|
|
3313
|
+
return true;
|
|
3314
|
+
if (request.headers.get("sec-fetch-dest") === "document")
|
|
3315
|
+
return true;
|
|
3316
|
+
return (request.headers.get("accept") ?? "").includes("text/html");
|
|
3289
3317
|
}, renderConventionError = async (framework, pageName, error) => {
|
|
3290
3318
|
const errorProps = buildErrorProps(error);
|
|
3291
3319
|
const frameworkResponse = await tryFrameworkErrorConvention(framework, pageName, errorProps, error);
|
|
@@ -3297,12 +3325,6 @@ var CONVENTIONS_KEY = "__absoluteConventions", isConventionsMap = (value) => Boo
|
|
|
3297
3325
|
return htmlResponse;
|
|
3298
3326
|
}
|
|
3299
3327
|
return null;
|
|
3300
|
-
}, isPageRequest = (request) => {
|
|
3301
|
-
if (request.headers.get("hx-request") === "true")
|
|
3302
|
-
return true;
|
|
3303
|
-
if (request.headers.get("sec-fetch-dest") === "document")
|
|
3304
|
-
return true;
|
|
3305
|
-
return (request.headers.get("accept") ?? "").includes("text/html");
|
|
3306
3328
|
}, renderStaticRouteError = async (request, error) => {
|
|
3307
3329
|
if (!isPageRequest(request))
|
|
3308
3330
|
return null;
|
|
@@ -3696,6 +3718,18 @@ var asset = (source, name) => {
|
|
|
3696
3718
|
return assetPath;
|
|
3697
3719
|
};
|
|
3698
3720
|
|
|
3721
|
+
// src/utils/requestRenderUrl.ts
|
|
3722
|
+
var requestRenderUrl = (request) => {
|
|
3723
|
+
if (!request)
|
|
3724
|
+
return;
|
|
3725
|
+
try {
|
|
3726
|
+
const parsed = new URL(request.url);
|
|
3727
|
+
return `${parsed.pathname.replace(/\/{2,}/g, "/")}${parsed.search}`;
|
|
3728
|
+
} catch {
|
|
3729
|
+
return;
|
|
3730
|
+
}
|
|
3731
|
+
};
|
|
3732
|
+
|
|
3699
3733
|
// src/svelte/pageHandler.ts
|
|
3700
3734
|
init_cspNonceRef();
|
|
3701
3735
|
init_svelteServerModule();
|
|
@@ -4085,35 +4119,7 @@ var readHasIslands = (value) => {
|
|
|
4085
4119
|
return typeof hasIslands === "boolean" ? hasIslands : false;
|
|
4086
4120
|
};
|
|
4087
4121
|
var readDefaultExport = (value) => isRecord5(value) ? value.default : undefined;
|
|
4088
|
-
var
|
|
4089
|
-
const reader = stream.getReader();
|
|
4090
|
-
const firstChunk = await reader.read();
|
|
4091
|
-
return { firstChunk, reader };
|
|
4092
|
-
};
|
|
4093
|
-
var restorePrimedStream = (firstChunk, reader) => new ReadableStream({
|
|
4094
|
-
start(controller) {
|
|
4095
|
-
if (!firstChunk.done)
|
|
4096
|
-
controller.enqueue(firstChunk.value);
|
|
4097
|
-
if (firstChunk.done) {
|
|
4098
|
-
controller.close();
|
|
4099
|
-
return;
|
|
4100
|
-
}
|
|
4101
|
-
const pumpLoop = () => {
|
|
4102
|
-
reader.read().then(({ done, value }) => done ? controller.close() : (controller.enqueue(value), pumpLoop())).catch((err) => controller.error(err));
|
|
4103
|
-
};
|
|
4104
|
-
pumpLoop();
|
|
4105
|
-
}
|
|
4106
|
-
});
|
|
4107
|
-
var resolveRequestPathname = (request) => {
|
|
4108
|
-
if (!request)
|
|
4109
|
-
return;
|
|
4110
|
-
try {
|
|
4111
|
-
const parsed = new URL(request.url);
|
|
4112
|
-
return `${parsed.pathname}${parsed.search}`;
|
|
4113
|
-
} catch {
|
|
4114
|
-
return;
|
|
4115
|
-
}
|
|
4116
|
-
};
|
|
4122
|
+
var resolveRequestPathname = (request) => requestRenderUrl(request);
|
|
4117
4123
|
var handleSveltePageRequest = async (input) => {
|
|
4118
4124
|
const deferredAssets = input.pagePath === "" || input.indexPath === "" ? await resolveDeferredPageAssets() : null;
|
|
4119
4125
|
const buildFailure = devBuildErrorResponse("svelte", deferredAssets);
|
|
@@ -4209,11 +4215,8 @@ var handleSveltePageRequest = async (input) => {
|
|
|
4209
4215
|
const routerResponse = routerSsr.response();
|
|
4210
4216
|
if (routerResponse)
|
|
4211
4217
|
return routerResponse;
|
|
4212
|
-
const
|
|
4213
|
-
|
|
4214
|
-
});
|
|
4215
|
-
const { firstChunk, reader } = await primeSvelteStream(htmlStream);
|
|
4216
|
-
return new Response(restorePrimedStream(firstChunk, reader), {
|
|
4218
|
+
const html = injectIslandPageContext(await new Response(stream).text(), { hasIslands: resolvedPage.hasIslands ? true : undefined });
|
|
4219
|
+
return new Response(html, {
|
|
4217
4220
|
headers: streamingPageHeaders()
|
|
4218
4221
|
});
|
|
4219
4222
|
};
|
|
@@ -4250,5 +4253,5 @@ export {
|
|
|
4250
4253
|
svelteFileRoute
|
|
4251
4254
|
};
|
|
4252
4255
|
|
|
4253
|
-
//# debugId=
|
|
4256
|
+
//# debugId=4FFDB09A23C0E0D964756E2164756E21
|
|
4254
4257
|
//# sourceMappingURL=server.js.map
|