@absolutejs/absolute 0.20.0-beta.176 → 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 +33 -0
- package/changelog.json +62 -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 +506 -389
- package/dist/index.js.map +16 -16
- 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/angular/server.js
CHANGED
|
@@ -328,7 +328,7 @@ var ISLAND_BOOTSTRAP_MANIFEST_KEY = "AbsoluteIslandBootstrap", LEGACY_ISLAND_BOO
|
|
|
328
328
|
islands[framework] = entries;
|
|
329
329
|
}
|
|
330
330
|
return islands;
|
|
331
|
-
}, getIslandManifestKey = (framework, component) => `Island${toIslandFrameworkSegment(framework)}${component}`;
|
|
331
|
+
}, 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}`;
|
|
332
332
|
|
|
333
333
|
// src/core/islandPageContext.ts
|
|
334
334
|
var ISLAND_MARKER = 'data-island="true"', MANIFEST_MARKER = "__ABSOLUTE_MANIFEST__", ISLAND_STATE_MARKER = "__ABS_ISLAND_STATE__", CLOSING_HEAD_TAG = "</head>", warnedMissingBootstrap = false, warnIfBootstrapMissing = (manifest) => {
|
|
@@ -365,12 +365,27 @@ var ISLAND_MARKER = 'data-island="true"', MANIFEST_MARKER = "__ABSOLUTE_MANIFEST
|
|
|
365
365
|
browserManifest[key] = value;
|
|
366
366
|
}
|
|
367
367
|
return browserManifest;
|
|
368
|
-
},
|
|
368
|
+
}, 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) => {
|
|
369
|
+
const keys = new Set;
|
|
370
|
+
for (const [tag] of html.matchAll(ISLAND_MARKER_TAG)) {
|
|
371
|
+
const framework = toIslandFramework(readMarkerAttribute(tag, "data-framework"));
|
|
372
|
+
const component = readMarkerAttribute(tag, "data-component");
|
|
373
|
+
if (framework && component)
|
|
374
|
+
keys.add(getIslandStyleManifestKey(framework, component));
|
|
375
|
+
}
|
|
376
|
+
return keys;
|
|
377
|
+
}, buildIslandStyleLinks = (manifest, html) => {
|
|
378
|
+
if (html === undefined)
|
|
379
|
+
return "";
|
|
380
|
+
const renderedKeys = collectRenderedIslandStyleKeys(html);
|
|
381
|
+
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("");
|
|
382
|
+
}, buildIslandsHeadMarkup = (manifest, html) => {
|
|
383
|
+
const styleLinks = buildIslandStyleLinks(manifest, html);
|
|
369
384
|
const manifestScript = `<script${nonceAttr()}>window.__ABSOLUTE_MANIFEST__ = ${escapeScriptContent(JSON.stringify(toBrowserManifest(manifest)))}</script>`;
|
|
370
385
|
const islandStateScript = `<script${nonceAttr()}>window.__ABS_ISLAND_STATE__ = ${escapeScriptContent(JSON.stringify(globalThis.__ABS_ISLAND_STATE__ ?? {}))}</script>`;
|
|
371
386
|
const bootstrapPath = getIslandBootstrapPath(manifest);
|
|
372
387
|
const bootstrapScript = bootstrapPath ? `<script${nonceAttr()} type="module" src="${bootstrapPath}"></script>` : "";
|
|
373
|
-
return `${manifestScript}${islandStateScript}${bootstrapScript}`;
|
|
388
|
+
return `${styleLinks}${manifestScript}${islandStateScript}${bootstrapScript}`;
|
|
374
389
|
}, injectHeadMarkup = (html, markup) => {
|
|
375
390
|
const closingHeadIndex = html.indexOf("</head>");
|
|
376
391
|
if (closingHeadIndex >= 0) {
|
|
@@ -552,7 +567,7 @@ var ISLAND_MARKER = 'data-island="true"', MANIFEST_MARKER = "__ABSOLUTE_MANIFEST
|
|
|
552
567
|
return html;
|
|
553
568
|
}
|
|
554
569
|
warnIfBootstrapMissing(manifest);
|
|
555
|
-
return injectHeadMarkup(html, buildIslandsHeadMarkup(manifest));
|
|
570
|
+
return injectHeadMarkup(html, buildIslandsHeadMarkup(manifest, html));
|
|
556
571
|
}, injectIslandPageContextStream = (stream, options) => {
|
|
557
572
|
const manifest = globalThis.__absoluteManifest;
|
|
558
573
|
if (!manifest)
|
|
@@ -576,6 +591,13 @@ var init_islandPageContext = __esm(() => {
|
|
|
576
591
|
init_logger();
|
|
577
592
|
MANIFEST_BUILD_DIR_KEY = Symbol.for("absolutejs.islandManifestBuildDir");
|
|
578
593
|
WINDOWS_ABSOLUTE_PATH = /^[A-Za-z]:[\\/]|^\\\\/;
|
|
594
|
+
ISLAND_MARKER_TAG = /<[^>]*\bdata-island="true"[^>]*>/g;
|
|
595
|
+
ISLAND_FRAMEWORKS = [
|
|
596
|
+
"react",
|
|
597
|
+
"svelte",
|
|
598
|
+
"vue",
|
|
599
|
+
"angular"
|
|
600
|
+
];
|
|
579
601
|
});
|
|
580
602
|
|
|
581
603
|
// src/core/routeAssets.ts
|
|
@@ -918,6 +940,12 @@ var CONVENTIONS_KEY = "__absoluteConventions", isConventionsMap = (value) => Boo
|
|
|
918
940
|
logConventionRenderError(framework, "error", renderError);
|
|
919
941
|
}
|
|
920
942
|
return null;
|
|
943
|
+
}, isPageRequest = (request) => {
|
|
944
|
+
if (request.headers.get("hx-request") === "true")
|
|
945
|
+
return true;
|
|
946
|
+
if (request.headers.get("sec-fetch-dest") === "document")
|
|
947
|
+
return true;
|
|
948
|
+
return (request.headers.get("accept") ?? "").includes("text/html");
|
|
921
949
|
}, renderConventionError = async (framework, pageName, error) => {
|
|
922
950
|
const errorProps = buildErrorProps(error);
|
|
923
951
|
const frameworkResponse = await tryFrameworkErrorConvention(framework, pageName, errorProps, error);
|
|
@@ -929,12 +957,6 @@ var CONVENTIONS_KEY = "__absoluteConventions", isConventionsMap = (value) => Boo
|
|
|
929
957
|
return htmlResponse;
|
|
930
958
|
}
|
|
931
959
|
return null;
|
|
932
|
-
}, isPageRequest = (request) => {
|
|
933
|
-
if (request.headers.get("hx-request") === "true")
|
|
934
|
-
return true;
|
|
935
|
-
if (request.headers.get("sec-fetch-dest") === "document")
|
|
936
|
-
return true;
|
|
937
|
-
return (request.headers.get("accept") ?? "").includes("text/html");
|
|
938
960
|
}, renderStaticRouteError = async (request, error) => {
|
|
939
961
|
if (!isPageRequest(request))
|
|
940
962
|
return null;
|
|
@@ -3408,9 +3430,9 @@ var createVueCompiler = async () => {
|
|
|
3408
3430
|
// src/core/vueServerModule.ts
|
|
3409
3431
|
import { readFileSync as readFileSync4, realpathSync } from "fs";
|
|
3410
3432
|
import { mkdir as mkdir3 } from "fs/promises";
|
|
3411
|
-
import { dirname as dirname4, join as join7, relative as relative4, resolve as resolve5 } from "path";
|
|
3433
|
+
import { basename as basename4, dirname as dirname4, join as join7, relative as relative4, resolve as resolve5 } from "path";
|
|
3412
3434
|
var {Transpiler } = globalThis.Bun;
|
|
3413
|
-
var
|
|
3435
|
+
var serverCacheRoot3, compiledModuleCache3, syncIslandGeneration2, transpiler2, ensureRelativeImportPath2 = (from, target) => {
|
|
3414
3436
|
const importPath = relative4(dirname4(from), target).replace(/\\/g, "/");
|
|
3415
3437
|
return importPath.startsWith(".") ? importPath : `./${importPath}`;
|
|
3416
3438
|
}, getCachedModulePath3 = (sourcePath) => {
|
|
@@ -3452,7 +3474,7 @@ var ISLAND_COMPONENT_ID_LENGTH = 8, serverCacheRoot3, compiledModuleCache3, sync
|
|
|
3452
3474
|
const compiler = await loadVueCompiler();
|
|
3453
3475
|
const source = await Bun.file(sourcePath).text();
|
|
3454
3476
|
const { descriptor } = compiler.parse(source, { filename: sourcePath });
|
|
3455
|
-
const componentId =
|
|
3477
|
+
const componentId = toKebab(basename4(sourcePath, ".vue"));
|
|
3456
3478
|
const hasScript = descriptor.script || descriptor.scriptSetup;
|
|
3457
3479
|
const compiledScript = hasScript ? compiler.compileScript(descriptor, {
|
|
3458
3480
|
fs: {
|
|
@@ -3502,7 +3524,6 @@ var ISLAND_COMPONENT_ID_LENGTH = 8, serverCacheRoot3, compiledModuleCache3, sync
|
|
|
3502
3524
|
return compiledModulePath;
|
|
3503
3525
|
};
|
|
3504
3526
|
var init_vueServerModule = __esm(() => {
|
|
3505
|
-
init_constants();
|
|
3506
3527
|
init_isFile();
|
|
3507
3528
|
serverCacheRoot3 = join7(process.cwd(), ".absolutejs", "islands", "vue");
|
|
3508
3529
|
compiledModuleCache3 = new Map;
|
|
@@ -5599,7 +5620,7 @@ __export(exports_compileAngular, {
|
|
|
5599
5620
|
invalidateAngularJitCache: () => invalidateAngularJitCache
|
|
5600
5621
|
});
|
|
5601
5622
|
import { existsSync as existsSync5, readFileSync as readFileSync6, promises as fs } from "fs";
|
|
5602
|
-
import { join as join9, basename as
|
|
5623
|
+
import { join as join9, basename as basename5, sep, dirname as dirname5, resolve as resolve6, relative as relative5 } from "path";
|
|
5603
5624
|
var {Glob } = globalThis.Bun;
|
|
5604
5625
|
var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) => {
|
|
5605
5626
|
const temporaryPath = `${path}.tmp.${process.pid}.${atomicWriteSequence++}`;
|
|
@@ -5981,7 +6002,7 @@ var atomicWriteSequence = 0, writeTextFileAtomically = async (path, content) =>
|
|
|
5981
6002
|
const originalGetDefaultLibFileName = host.getDefaultLibFileName;
|
|
5982
6003
|
host.getDefaultLibFileName = (opts) => {
|
|
5983
6004
|
const fileName = originalGetDefaultLibFileName ? originalGetDefaultLibFileName(opts) : "lib.d.ts";
|
|
5984
|
-
return
|
|
6005
|
+
return basename5(fileName);
|
|
5985
6006
|
};
|
|
5986
6007
|
const originalGetSourceFile = host.getSourceFile;
|
|
5987
6008
|
host.getSourceFile = (fileName, languageVersion, onError) => {
|
|
@@ -6422,7 +6443,7 @@ ${fields}
|
|
|
6422
6443
|
};
|
|
6423
6444
|
const toOutputPath = (sourcePath) => {
|
|
6424
6445
|
const inputDir = dirname5(sourcePath);
|
|
6425
|
-
const fileBase =
|
|
6446
|
+
const fileBase = basename5(sourcePath).replace(/\.[cm]?[tj]sx?$/, ".js");
|
|
6426
6447
|
if (inputDir === outDir || inputDir.startsWith(`${outDir}${sep}`)) {
|
|
6427
6448
|
return join9(inputDir, fileBase);
|
|
6428
6449
|
}
|
|
@@ -6478,7 +6499,7 @@ ${fields}
|
|
|
6478
6499
|
const inputDir = dirname5(resolved);
|
|
6479
6500
|
const relativeDir = inputDir.startsWith(baseDir) ? inputDir.substring(baseDir.length + 1) : inputDir;
|
|
6480
6501
|
const targetDir = join9(outDir, relativeDir);
|
|
6481
|
-
const targetPath = join9(targetDir,
|
|
6502
|
+
const targetPath = join9(targetDir, basename5(resolved));
|
|
6482
6503
|
await fs.mkdir(targetDir, { recursive: true });
|
|
6483
6504
|
await fs.copyFile(resolved, targetPath);
|
|
6484
6505
|
allOutputs.push(targetPath);
|
|
@@ -6493,7 +6514,7 @@ ${fields}
|
|
|
6493
6514
|
const inlined = await inlineResources(sourceCode, dirname5(actualPath), stylePreprocessors);
|
|
6494
6515
|
sourceCode = inlineTemplateAndLowerDeferSync(inlined.source, dirname5(actualPath)).source;
|
|
6495
6516
|
const inputDir = dirname5(actualPath);
|
|
6496
|
-
const fileBase =
|
|
6517
|
+
const fileBase = basename5(actualPath).replace(/\.[cm]?[tj]sx?$/, ".js");
|
|
6497
6518
|
const targetPath = toOutputPath(actualPath);
|
|
6498
6519
|
const targetDir = dirname5(targetPath);
|
|
6499
6520
|
const relativeDir = relative5(outDir, targetDir).replace(/\\/g, "/");
|
|
@@ -6622,7 +6643,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
|
|
|
6622
6643
|
let outputs = hmr ? await traceAngularPhase("jit/compile-entry", compileEntry, {
|
|
6623
6644
|
entry: resolvedEntry
|
|
6624
6645
|
}) : aotOutputs;
|
|
6625
|
-
const fileBase =
|
|
6646
|
+
const fileBase = basename5(resolvedEntry).replace(/\.[tj]s$/, "");
|
|
6626
6647
|
const jsName = `${fileBase}.js`;
|
|
6627
6648
|
const compiledFallbackPaths = [
|
|
6628
6649
|
join9(compiledRoot, relativeEntry),
|
|
@@ -7075,6 +7096,18 @@ var provideDeterministicEnv = (options = {}) => {
|
|
|
7075
7096
|
}
|
|
7076
7097
|
];
|
|
7077
7098
|
};
|
|
7099
|
+
// src/utils/requestRenderUrl.ts
|
|
7100
|
+
var requestRenderUrl = (request) => {
|
|
7101
|
+
if (!request)
|
|
7102
|
+
return;
|
|
7103
|
+
try {
|
|
7104
|
+
const parsed = new URL(request.url);
|
|
7105
|
+
return `${parsed.pathname.replace(/\/{2,}/g, "/")}${parsed.search}`;
|
|
7106
|
+
} catch {
|
|
7107
|
+
return;
|
|
7108
|
+
}
|
|
7109
|
+
};
|
|
7110
|
+
|
|
7078
7111
|
// src/angular/pageHandler.ts
|
|
7079
7112
|
init_constants();
|
|
7080
7113
|
init_islandPageContext();
|
|
@@ -7086,7 +7119,7 @@ init_registerClientScript();
|
|
|
7086
7119
|
init_angularDeps();
|
|
7087
7120
|
import { AsyncLocalStorage as AsyncLocalStorage5 } from "async_hooks";
|
|
7088
7121
|
import { lstat, mkdir as mkdir4, readlink, symlink } from "fs/promises";
|
|
7089
|
-
import { basename as
|
|
7122
|
+
import { basename as basename6, dirname as dirname6, join as join10, resolve as resolve7 } from "path";
|
|
7090
7123
|
|
|
7091
7124
|
// src/angular/animationProviders.ts
|
|
7092
7125
|
init_resolveAngularPackage();
|
|
@@ -7728,7 +7761,7 @@ var resolveRuntimeAngularModulePath = async (pagePath) => {
|
|
|
7728
7761
|
await Promise.resolve().then(() => init_compileAngular());
|
|
7729
7762
|
const cacheBuster = createAngularRuntimeCacheBuster();
|
|
7730
7763
|
const outputs = await compileAngularFileJIT(pagePath, outDir, process.cwd(), undefined, cacheBuster);
|
|
7731
|
-
const expectedFileName =
|
|
7764
|
+
const expectedFileName = basename6(pagePath).replace(/\.ts$/, ".js");
|
|
7732
7765
|
const runtimePagePath = outputs.find((output) => output.endsWith(`/${expectedFileName}`)) ?? outputs.find((output) => output.endsWith(`\\${expectedFileName}`)) ?? outputs[0] ?? pagePath;
|
|
7733
7766
|
return {
|
|
7734
7767
|
cacheBuster,
|
|
@@ -7748,16 +7781,7 @@ var withHtmlContentType = (responseInit = {}) => {
|
|
|
7748
7781
|
}
|
|
7749
7782
|
return { ...responseInit, headers };
|
|
7750
7783
|
};
|
|
7751
|
-
var resolveRequestRenderUrl = (request) =>
|
|
7752
|
-
if (!request)
|
|
7753
|
-
return "/";
|
|
7754
|
-
try {
|
|
7755
|
-
const parsed = new URL(request.url);
|
|
7756
|
-
return `${parsed.pathname}${parsed.search}`;
|
|
7757
|
-
} catch {
|
|
7758
|
-
return "/";
|
|
7759
|
-
}
|
|
7760
|
-
};
|
|
7784
|
+
var resolveRequestRenderUrl = (request) => requestRenderUrl(request) ?? "/";
|
|
7761
7785
|
var angularSsrContext = new AsyncLocalStorage5;
|
|
7762
7786
|
setSsrContextGetter(() => angularSsrContext.getStore());
|
|
7763
7787
|
var handleAngularPageRequest = async (input) => {
|
|
@@ -7902,5 +7926,5 @@ export {
|
|
|
7902
7926
|
withPendingTask
|
|
7903
7927
|
};
|
|
7904
7928
|
|
|
7905
|
-
//# debugId=
|
|
7929
|
+
//# debugId=484B4660FADE4A8F64756E2164756E21
|
|
7906
7930
|
//# sourceMappingURL=server.js.map
|