@absolutejs/absolute 0.19.0-beta.808 → 0.19.0-beta.809
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/browser.js +9801 -57
- package/dist/angular/browser.js.map +246 -4
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +14877 -60
- package/dist/angular/index.js.map +281 -4
- package/dist/angular/server.js +5610 -45
- package/dist/angular/server.js.map +51 -3
- package/dist/build.js +18092 -45
- package/dist/build.js.map +99 -3
- package/dist/cli/index.js +317 -86
- package/dist/client/index.js +1100 -40
- package/dist/client/index.js.map +24 -4
- package/dist/core/streamingSlotRegistrar.js +108 -11
- package/dist/core/streamingSlotRegistrar.js.map +4 -3
- package/dist/core/streamingSlotRegistry.js +169 -7
- package/dist/core/streamingSlotRegistry.js.map +5 -3
- package/dist/index.js +19957 -547
- package/dist/index.js.map +116 -3
- package/dist/islands/browser.js +228 -9
- package/dist/islands/browser.js.map +9 -4
- package/dist/islands/index.js +1908 -17
- package/dist/islands/index.js.map +27 -3
- package/dist/react/browser.js +328 -12
- package/dist/react/browser.js.map +12 -4
- package/dist/react/components/index.js +167 -16
- package/dist/react/components/index.js.map +6 -3
- package/dist/react/hooks/index.js +183 -8
- package/dist/react/hooks/index.js.map +7 -3
- package/dist/react/index.js +3627 -36
- package/dist/react/index.js.map +45 -4
- package/dist/react/jsxDevRuntimeCompat.js +61 -2
- package/dist/react/jsxDevRuntimeCompat.js.map +2 -2
- package/dist/react/server.js +1789 -18
- package/dist/react/server.js.map +21 -3
- package/dist/src/angular/injectorPatch.d.ts +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/svelte/browser.js +247 -12
- package/dist/svelte/browser.js.map +10 -3
- package/dist/svelte/index.js +3732 -37
- package/dist/svelte/index.js.map +47 -4
- package/dist/svelte/server.js +2794 -21
- package/dist/svelte/server.js.map +27 -3
- package/dist/vue/browser.js +348 -12
- package/dist/vue/browser.js.map +12 -4
- package/dist/vue/components/Image.js +240 -7
- package/dist/vue/components/Image.js.map +6 -3
- package/dist/vue/components/index.js +544 -11
- package/dist/vue/components/index.js.map +9 -3
- package/dist/vue/index.js +4212 -52
- package/dist/vue/index.js.map +50 -4
- package/dist/vue/server.js +1849 -18
- package/dist/vue/server.js.map +21 -3
- package/package.json +1 -1
- package/dist/chunk-0867j0r0.js +0 -136
- package/dist/chunk-0867j0r0.js.map +0 -10
- package/dist/chunk-0kdc6r16.js +0 -20
- package/dist/chunk-0kdc6r16.js.map +0 -10
- package/dist/chunk-102fp7xe.js +0 -63
- package/dist/chunk-102fp7xe.js.map +0 -10
- package/dist/chunk-11zpfqz6.js +0 -19
- package/dist/chunk-11zpfqz6.js.map +0 -10
- package/dist/chunk-1rfh7hw9.js +0 -319
- package/dist/chunk-1rfh7hw9.js.map +0 -11
- package/dist/chunk-25v9t56f.js +0 -29
- package/dist/chunk-25v9t56f.js.map +0 -11
- package/dist/chunk-2f21eenc.js +0 -21
- package/dist/chunk-2f21eenc.js.map +0 -10
- package/dist/chunk-2ga2znex.js +0 -13
- package/dist/chunk-2ga2znex.js.map +0 -9
- package/dist/chunk-30yrw0f6.js +0 -33
- package/dist/chunk-30yrw0f6.js.map +0 -10
- package/dist/chunk-38jwhqcw.js +0 -4410
- package/dist/chunk-38jwhqcw.js.map +0 -28
- package/dist/chunk-3g91wb4f.js +0 -358
- package/dist/chunk-3g91wb4f.js.map +0 -10
- package/dist/chunk-3yjzpcne.js +0 -34
- package/dist/chunk-3yjzpcne.js.map +0 -10
- package/dist/chunk-41bf6aqt.js +0 -17
- package/dist/chunk-41bf6aqt.js.map +0 -9
- package/dist/chunk-4d39r92n.js +0 -81
- package/dist/chunk-4d39r92n.js.map +0 -10
- package/dist/chunk-5003emhv.js +0 -17
- package/dist/chunk-5003emhv.js.map +0 -10
- package/dist/chunk-5f67rsed.js +0 -466
- package/dist/chunk-5f67rsed.js.map +0 -10
- package/dist/chunk-5fhp1jap.js +0 -9169
- package/dist/chunk-5fhp1jap.js.map +0 -236
- package/dist/chunk-6pdj08z3.js +0 -73
- package/dist/chunk-6pdj08z3.js.map +0 -12
- package/dist/chunk-6qjbrt0k.js +0 -13
- package/dist/chunk-6qjbrt0k.js.map +0 -9
- package/dist/chunk-6sccb4jr.js +0 -14
- package/dist/chunk-6sccb4jr.js.map +0 -9
- package/dist/chunk-798spvzv.js +0 -50
- package/dist/chunk-798spvzv.js.map +0 -10
- package/dist/chunk-7fw6x3js.js +0 -131
- package/dist/chunk-7fw6x3js.js.map +0 -11
- package/dist/chunk-7kjj42xm.js +0 -11
- package/dist/chunk-7kjj42xm.js.map +0 -10
- package/dist/chunk-7mtstdqn.js +0 -90
- package/dist/chunk-7mtstdqn.js.map +0 -10
- package/dist/chunk-851whwc7.js +0 -17
- package/dist/chunk-851whwc7.js.map +0 -10
- package/dist/chunk-85n68sy6.js +0 -103
- package/dist/chunk-85n68sy6.js.map +0 -10
- package/dist/chunk-8kcfffry.js +0 -35
- package/dist/chunk-8kcfffry.js.map +0 -10
- package/dist/chunk-8qqxc1h2.js +0 -426
- package/dist/chunk-8qqxc1h2.js.map +0 -14
- package/dist/chunk-92fsjfpp.js +0 -1731
- package/dist/chunk-92fsjfpp.js.map +0 -11
- package/dist/chunk-93sqk7be.js +0 -139
- package/dist/chunk-93sqk7be.js.map +0 -12
- package/dist/chunk-94gvx0hg.js +0 -28
- package/dist/chunk-94gvx0hg.js.map +0 -10
- package/dist/chunk-9c5tj4k3.js +0 -130
- package/dist/chunk-9c5tj4k3.js.map +0 -10
- package/dist/chunk-9ve9jq72.js +0 -203
- package/dist/chunk-9ve9jq72.js.map +0 -10
- package/dist/chunk-9xrsjeem.js +0 -12
- package/dist/chunk-9xrsjeem.js.map +0 -9
- package/dist/chunk-a9mvyp04.js +0 -87
- package/dist/chunk-a9mvyp04.js.map +0 -10
- package/dist/chunk-b3gbnrwe.js +0 -21
- package/dist/chunk-b3gbnrwe.js.map +0 -10
- package/dist/chunk-bmgqm774.js +0 -65
- package/dist/chunk-bmgqm774.js.map +0 -9
- package/dist/chunk-bxfghpma.js +0 -69
- package/dist/chunk-bxfghpma.js.map +0 -10
- package/dist/chunk-c1jfjnka.js +0 -74
- package/dist/chunk-c1jfjnka.js.map +0 -10
- package/dist/chunk-cbkrwmvh.js +0 -80
- package/dist/chunk-cbkrwmvh.js.map +0 -10
- package/dist/chunk-cdxd7sy2.js +0 -71
- package/dist/chunk-cdxd7sy2.js.map +0 -10
- package/dist/chunk-cg95827x.js +0 -21
- package/dist/chunk-cg95827x.js.map +0 -10
- package/dist/chunk-cm0g4q6w.js +0 -149
- package/dist/chunk-cm0g4q6w.js.map +0 -10
- package/dist/chunk-cwfy538a.js +0 -51
- package/dist/chunk-cwfy538a.js.map +0 -9
- package/dist/chunk-d7mwkzry.js +0 -261
- package/dist/chunk-d7mwkzry.js.map +0 -10
- package/dist/chunk-d8w0qm28.js +0 -184
- package/dist/chunk-d8w0qm28.js.map +0 -11
- package/dist/chunk-d9c0am65.js +0 -12
- package/dist/chunk-d9c0am65.js.map +0 -10
- package/dist/chunk-daqghmg8.js +0 -12
- package/dist/chunk-daqghmg8.js.map +0 -9
- package/dist/chunk-e3r9fxaa.js +0 -149
- package/dist/chunk-e3r9fxaa.js.map +0 -10
- package/dist/chunk-e8eecyrq.js +0 -244
- package/dist/chunk-e8eecyrq.js.map +0 -10
- package/dist/chunk-ex2hxe0v.js +0 -160
- package/dist/chunk-ex2hxe0v.js.map +0 -11
- package/dist/chunk-fak944et.js +0 -91
- package/dist/chunk-fak944et.js.map +0 -10
- package/dist/chunk-ff70rnhd.js +0 -672
- package/dist/chunk-ff70rnhd.js.map +0 -15
- package/dist/chunk-fygx2ymm.js +0 -118
- package/dist/chunk-fygx2ymm.js.map +0 -12
- package/dist/chunk-g15qj669.js +0 -271
- package/dist/chunk-g15qj669.js.map +0 -11
- package/dist/chunk-gd6wmknh.js +0 -121
- package/dist/chunk-gd6wmknh.js.map +0 -11
- package/dist/chunk-gf0ygptk.js +0 -85
- package/dist/chunk-gf0ygptk.js.map +0 -11
- package/dist/chunk-gytkmthr.js +0 -220
- package/dist/chunk-gytkmthr.js.map +0 -10
- package/dist/chunk-h5bbfn3n.js +0 -28
- package/dist/chunk-h5bbfn3n.js.map +0 -11
- package/dist/chunk-h6mye9r3.js +0 -93
- package/dist/chunk-h6mye9r3.js.map +0 -10
- package/dist/chunk-hcsmxw1v.js +0 -85
- package/dist/chunk-hcsmxw1v.js.map +0 -10
- package/dist/chunk-hyjs4bqs.js +0 -8
- package/dist/chunk-hyjs4bqs.js.map +0 -10
- package/dist/chunk-j88z31ep.js +0 -25
- package/dist/chunk-j88z31ep.js.map +0 -10
- package/dist/chunk-jn91vzkh.js +0 -66
- package/dist/chunk-jn91vzkh.js.map +0 -10
- package/dist/chunk-jpkjdgsk.js +0 -167
- package/dist/chunk-jpkjdgsk.js.map +0 -11
- package/dist/chunk-jwxt8gnp.js +0 -13
- package/dist/chunk-jwxt8gnp.js.map +0 -9
- package/dist/chunk-kk8w9rh5.js +0 -195
- package/dist/chunk-kk8w9rh5.js.map +0 -10
- package/dist/chunk-m97ze5hz.js +0 -46
- package/dist/chunk-m97ze5hz.js.map +0 -10
- package/dist/chunk-mbazhahf.js +0 -60
- package/dist/chunk-mbazhahf.js.map +0 -10
- package/dist/chunk-mgfwq18r.js +0 -15
- package/dist/chunk-mgfwq18r.js.map +0 -9
- package/dist/chunk-mtgf69xn.js +0 -88
- package/dist/chunk-mtgf69xn.js.map +0 -10
- package/dist/chunk-mtxzyxpg.js +0 -102
- package/dist/chunk-mtxzyxpg.js.map +0 -10
- package/dist/chunk-nehhtthw.js +0 -225
- package/dist/chunk-nehhtthw.js.map +0 -10
- package/dist/chunk-p5504p14.js +0 -16
- package/dist/chunk-p5504p14.js.map +0 -10
- package/dist/chunk-pnscgw95.js +0 -90
- package/dist/chunk-pnscgw95.js.map +0 -10
- package/dist/chunk-pvpp4pvs.js +0 -17
- package/dist/chunk-pvpp4pvs.js.map +0 -10
- package/dist/chunk-qh75agse.js +0 -95
- package/dist/chunk-qh75agse.js.map +0 -10
- package/dist/chunk-qxq2zcty.js +0 -52
- package/dist/chunk-qxq2zcty.js.map +0 -10
- package/dist/chunk-r6e8pytx.js +0 -22
- package/dist/chunk-r6e8pytx.js.map +0 -9
- package/dist/chunk-r7jmgqnw.js +0 -114
- package/dist/chunk-r7jmgqnw.js.map +0 -10
- package/dist/chunk-s6defjk2.js +0 -116
- package/dist/chunk-s6defjk2.js.map +0 -10
- package/dist/chunk-sd39p726.js +0 -619
- package/dist/chunk-sd39p726.js.map +0 -10
- package/dist/chunk-swrnzs4c.js +0 -63
- package/dist/chunk-swrnzs4c.js.map +0 -10
- package/dist/chunk-tfe3sb44.js +0 -33
- package/dist/chunk-tfe3sb44.js.map +0 -10
- package/dist/chunk-tjr0kcev.js +0 -41
- package/dist/chunk-tjr0kcev.js.map +0 -9
- package/dist/chunk-tx9edm1x.js +0 -34
- package/dist/chunk-tx9edm1x.js.map +0 -10
- package/dist/chunk-txhm2vb5.js +0 -18
- package/dist/chunk-txhm2vb5.js.map +0 -9
- package/dist/chunk-v5vmsxmy.js +0 -526
- package/dist/chunk-v5vmsxmy.js.map +0 -12
- package/dist/chunk-vjhxm8n2.js +0 -29
- package/dist/chunk-vjhxm8n2.js.map +0 -9
- package/dist/chunk-vkrpm7kc.js +0 -247
- package/dist/chunk-vkrpm7kc.js.map +0 -12
- package/dist/chunk-w3m4m5we.js +0 -4925
- package/dist/chunk-w3m4m5we.js.map +0 -12
- package/dist/chunk-wrxtn9ve.js +0 -18
- package/dist/chunk-wrxtn9ve.js.map +0 -10
- package/dist/chunk-wwzvp0zn.js +0 -192
- package/dist/chunk-wwzvp0zn.js.map +0 -10
- package/dist/chunk-x09cskqd.js +0 -377
- package/dist/chunk-x09cskqd.js.map +0 -10
- package/dist/chunk-xnt8c6h2.js +0 -576
- package/dist/chunk-xnt8c6h2.js.map +0 -10
- package/dist/chunk-xw0tx842.js +0 -13
- package/dist/chunk-xw0tx842.js.map +0 -9
- package/dist/chunk-xx5b6b9m.js +0 -69
- package/dist/chunk-xx5b6b9m.js.map +0 -10
- package/dist/chunk-xz1kdswj.js +0 -21
- package/dist/chunk-xz1kdswj.js.map +0 -9
- package/dist/chunk-y84qnsd3.js +0 -32
- package/dist/chunk-y84qnsd3.js.map +0 -10
- package/dist/chunk-ywjn0rad.js +0 -14
- package/dist/chunk-ywjn0rad.js.map +0 -9
- package/dist/chunk-z9nvhm6r.js +0 -13
- package/dist/chunk-z9nvhm6r.js.map +0 -9
- package/dist/chunk-zhmvdpk6.js +0 -15
- package/dist/chunk-zhmvdpk6.js.map +0 -9
- package/dist/chunk-zrg9d4zw.js +0 -784
- package/dist/chunk-zrg9d4zw.js.map +0 -10
package/dist/chunk-vkrpm7kc.js
DELETED
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import {
|
|
3
|
-
WS_READY_STATE_OPEN,
|
|
4
|
-
isValidHMRClientMessage
|
|
5
|
-
} from "./chunk-h5bbfn3n.js";
|
|
6
|
-
import {
|
|
7
|
-
logHmrUpdate
|
|
8
|
-
} from "./chunk-cbkrwmvh.js";
|
|
9
|
-
|
|
10
|
-
// src/dev/assetStore.ts
|
|
11
|
-
import { resolve } from "path";
|
|
12
|
-
import { readdir, unlink } from "fs/promises";
|
|
13
|
-
var mimeTypes = {
|
|
14
|
-
".css": "text/css",
|
|
15
|
-
".html": "text/html",
|
|
16
|
-
".js": "application/javascript",
|
|
17
|
-
".json": "application/json",
|
|
18
|
-
".mjs": "application/javascript",
|
|
19
|
-
".svg": "image/svg+xml",
|
|
20
|
-
".woff": "font/woff",
|
|
21
|
-
".woff2": "font/woff2"
|
|
22
|
-
};
|
|
23
|
-
var getMimeType = (filePath) => {
|
|
24
|
-
const ext = filePath.slice(filePath.lastIndexOf("."));
|
|
25
|
-
return mimeTypes[ext] ?? "application/octet-stream";
|
|
26
|
-
};
|
|
27
|
-
var HASHED_FILE_RE = /\.[a-z0-9]{8}\.(js|css|mjs)$/;
|
|
28
|
-
var stripHash = (webPath) => webPath.replace(/\.[a-z0-9]{8}(\.(js|css|mjs))$/, "$1");
|
|
29
|
-
var processWalkEntry = (entry, dir, liveByIdentity, walkAndClean) => {
|
|
30
|
-
const fullPath = resolve(dir, entry.name);
|
|
31
|
-
if (entry.isDirectory()) {
|
|
32
|
-
return walkAndClean(fullPath);
|
|
33
|
-
}
|
|
34
|
-
if (!HASHED_FILE_RE.test(entry.name)) {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
const identity = stripHash(fullPath);
|
|
38
|
-
const livePath = liveByIdentity.get(identity);
|
|
39
|
-
if (livePath !== fullPath) {
|
|
40
|
-
return unlink(fullPath).catch(() => {});
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
};
|
|
44
|
-
var cleanStaleAssets = async (store, manifest, buildDir) => {
|
|
45
|
-
const liveByIdentity = new Map;
|
|
46
|
-
for (const webPath of store.keys()) {
|
|
47
|
-
const diskPath = resolve(buildDir, webPath.slice(1));
|
|
48
|
-
liveByIdentity.set(stripHash(diskPath), diskPath);
|
|
49
|
-
}
|
|
50
|
-
const absBuildDir = resolve(buildDir);
|
|
51
|
-
Object.values(manifest).forEach((val) => {
|
|
52
|
-
if (!HASHED_FILE_RE.test(val))
|
|
53
|
-
return;
|
|
54
|
-
if (val.startsWith(absBuildDir)) {
|
|
55
|
-
liveByIdentity.set(stripHash(val), val);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
try {
|
|
59
|
-
const walkAndClean = async (dir) => {
|
|
60
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
61
|
-
const tasks = entries.map((entry) => processWalkEntry(entry, dir, liveByIdentity, walkAndClean)).filter((task) => task !== null);
|
|
62
|
-
await Promise.all(tasks);
|
|
63
|
-
};
|
|
64
|
-
await walkAndClean(buildDir);
|
|
65
|
-
} catch {}
|
|
66
|
-
};
|
|
67
|
-
var lookupAsset = (store, path) => store.get(path);
|
|
68
|
-
var processScanEntry = (entry, dir, prefix, store, scanDir) => {
|
|
69
|
-
if (entry.isDirectory()) {
|
|
70
|
-
return scanDir(resolve(dir, entry.name), `${prefix}${entry.name}/`);
|
|
71
|
-
}
|
|
72
|
-
if (!entry.name.startsWith("chunk-")) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
const webPath = `/${prefix}${entry.name}`;
|
|
76
|
-
if (store.has(webPath)) {
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
return Bun.file(resolve(dir, entry.name)).bytes().then((bytes) => {
|
|
80
|
-
store.set(webPath, bytes);
|
|
81
|
-
return;
|
|
82
|
-
}).catch(() => {});
|
|
83
|
-
};
|
|
84
|
-
var populateAssetStore = async (store, manifest, buildDir) => {
|
|
85
|
-
const loadPromises = [];
|
|
86
|
-
const newIdentities = new Map;
|
|
87
|
-
for (const webPath of Object.values(manifest)) {
|
|
88
|
-
if (!webPath.startsWith("/"))
|
|
89
|
-
continue;
|
|
90
|
-
newIdentities.set(stripHash(webPath), webPath);
|
|
91
|
-
}
|
|
92
|
-
const staleKeys = [...store.keys()].filter((existingPath) => {
|
|
93
|
-
if (existingPath.includes("/chunk-"))
|
|
94
|
-
return false;
|
|
95
|
-
const replacement = newIdentities.get(stripHash(existingPath));
|
|
96
|
-
return replacement !== undefined && replacement !== existingPath;
|
|
97
|
-
});
|
|
98
|
-
staleKeys.forEach((key) => store.delete(key));
|
|
99
|
-
for (const webPath of newIdentities.values()) {
|
|
100
|
-
if (store.has(webPath))
|
|
101
|
-
continue;
|
|
102
|
-
loadPromises.push(Bun.file(resolve(buildDir, webPath.slice(1))).bytes().then((bytes) => {
|
|
103
|
-
store.set(webPath, bytes);
|
|
104
|
-
return;
|
|
105
|
-
}).catch(() => {}));
|
|
106
|
-
}
|
|
107
|
-
try {
|
|
108
|
-
const scanDir = async (dir, prefix) => {
|
|
109
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
110
|
-
const subTasks = entries.map((entry) => processScanEntry(entry, dir, prefix, store, scanDir)).filter((task) => task !== null);
|
|
111
|
-
await Promise.all(subTasks);
|
|
112
|
-
};
|
|
113
|
-
await scanDir(buildDir, "");
|
|
114
|
-
} catch {}
|
|
115
|
-
await Promise.all(loadPromises);
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
// src/dev/moduleVersionTracker.ts
|
|
119
|
-
var globalVersionCounter = 0;
|
|
120
|
-
var createModuleVersionTracker = () => new Map;
|
|
121
|
-
var getNextVersion = () => ++globalVersionCounter;
|
|
122
|
-
var incrementModuleVersion = (versions, modulePath) => {
|
|
123
|
-
const newVersion = getNextVersion();
|
|
124
|
-
versions.set(modulePath, newVersion);
|
|
125
|
-
return newVersion;
|
|
126
|
-
};
|
|
127
|
-
var incrementModuleVersions = (versions, modulePaths) => {
|
|
128
|
-
const updated = new Map;
|
|
129
|
-
for (const path of modulePaths) {
|
|
130
|
-
const version = incrementModuleVersion(versions, path);
|
|
131
|
-
updated.set(path, version);
|
|
132
|
-
}
|
|
133
|
-
return updated;
|
|
134
|
-
};
|
|
135
|
-
var serializeModuleVersions = (versions) => {
|
|
136
|
-
const serialized = {};
|
|
137
|
-
for (const [path, version] of versions.entries()) {
|
|
138
|
-
serialized[path] = version;
|
|
139
|
-
}
|
|
140
|
-
return serialized;
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
// src/dev/webSocket.ts
|
|
144
|
-
var trySendMessage = (client, messageStr) => {
|
|
145
|
-
try {
|
|
146
|
-
client.send(messageStr);
|
|
147
|
-
return true;
|
|
148
|
-
} catch {
|
|
149
|
-
return false;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
var broadcastToClients = (state, message) => {
|
|
153
|
-
const messageStr = JSON.stringify({
|
|
154
|
-
...message,
|
|
155
|
-
timestamp: Date.now()
|
|
156
|
-
});
|
|
157
|
-
const shouldRemove = (client) => {
|
|
158
|
-
if (client.readyState !== WS_READY_STATE_OPEN)
|
|
159
|
-
return true;
|
|
160
|
-
return !trySendMessage(client, messageStr);
|
|
161
|
-
};
|
|
162
|
-
const clientsToRemove = [];
|
|
163
|
-
state.connectedClients.forEach((client) => {
|
|
164
|
-
if (shouldRemove(client))
|
|
165
|
-
clientsToRemove.push(client);
|
|
166
|
-
});
|
|
167
|
-
clientsToRemove.forEach((client) => {
|
|
168
|
-
state.connectedClients.delete(client);
|
|
169
|
-
});
|
|
170
|
-
};
|
|
171
|
-
var handleClientConnect = (state, client, manifest) => {
|
|
172
|
-
state.connectedClients.add(client);
|
|
173
|
-
const serverVersions = serializeModuleVersions(state.moduleVersions);
|
|
174
|
-
client.send(JSON.stringify({
|
|
175
|
-
data: {
|
|
176
|
-
manifest,
|
|
177
|
-
serverVersions
|
|
178
|
-
},
|
|
179
|
-
timestamp: Date.now(),
|
|
180
|
-
type: "manifest"
|
|
181
|
-
}));
|
|
182
|
-
client.send(JSON.stringify({
|
|
183
|
-
message: "HMR client connected successfully",
|
|
184
|
-
timestamp: Date.now(),
|
|
185
|
-
type: "connected"
|
|
186
|
-
}));
|
|
187
|
-
};
|
|
188
|
-
var handleClientDisconnect = (state, client) => {
|
|
189
|
-
state.connectedClients.delete(client);
|
|
190
|
-
};
|
|
191
|
-
var parseJsonSafe = (raw) => JSON.parse(raw);
|
|
192
|
-
var parseMessage = (message) => {
|
|
193
|
-
if (typeof message === "string") {
|
|
194
|
-
return parseJsonSafe(message);
|
|
195
|
-
}
|
|
196
|
-
if (message instanceof Buffer) {
|
|
197
|
-
return parseJsonSafe(message.toString());
|
|
198
|
-
}
|
|
199
|
-
if (message instanceof ArrayBuffer) {
|
|
200
|
-
return parseJsonSafe(new TextDecoder().decode(new Uint8Array(message)));
|
|
201
|
-
}
|
|
202
|
-
if (ArrayBuffer.isView(message)) {
|
|
203
|
-
const view = new Uint8Array(message.buffer, message.byteOffset, message.byteLength);
|
|
204
|
-
return parseJsonSafe(new TextDecoder().decode(view));
|
|
205
|
-
}
|
|
206
|
-
if (typeof message === "object" && message !== null) {
|
|
207
|
-
return message;
|
|
208
|
-
}
|
|
209
|
-
return null;
|
|
210
|
-
};
|
|
211
|
-
var handleParsedMessage = (state, client, data) => {
|
|
212
|
-
switch (data.type) {
|
|
213
|
-
case "ping":
|
|
214
|
-
client.send(JSON.stringify({
|
|
215
|
-
timestamp: Date.now(),
|
|
216
|
-
type: "pong"
|
|
217
|
-
}));
|
|
218
|
-
break;
|
|
219
|
-
case "request-rebuild":
|
|
220
|
-
break;
|
|
221
|
-
case "ready":
|
|
222
|
-
if (data.framework) {
|
|
223
|
-
state.activeFrameworks.add(data.framework);
|
|
224
|
-
}
|
|
225
|
-
break;
|
|
226
|
-
case "hmr-timing":
|
|
227
|
-
logHmrUpdate(state.lastHmrPath ?? "", state.lastHmrFramework, data.duration);
|
|
228
|
-
break;
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
var handleHMRMessage = (state, client, message) => {
|
|
232
|
-
try {
|
|
233
|
-
const parsedData = parseMessage(message);
|
|
234
|
-
if (parsedData === null) {
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
if (!isValidHMRClientMessage(parsedData)) {
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
handleParsedMessage(state, client, parsedData);
|
|
241
|
-
} catch {}
|
|
242
|
-
};
|
|
243
|
-
|
|
244
|
-
export { createModuleVersionTracker, incrementModuleVersions, serializeModuleVersions, getMimeType, cleanStaleAssets, lookupAsset, populateAssetStore, broadcastToClients, handleClientConnect, handleClientDisconnect, handleHMRMessage };
|
|
245
|
-
|
|
246
|
-
//# debugId=B4BC5290E57E33C064756E2164756E21
|
|
247
|
-
//# sourceMappingURL=chunk-vkrpm7kc.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/dev/assetStore.ts", "../src/dev/moduleVersionTracker.ts", "../src/dev/webSocket.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import { resolve } from 'node:path';\nimport { readdir, unlink } from 'node:fs/promises';\n\nconst mimeTypes: Record<string, string> = {\n\t'.css': 'text/css',\n\t'.html': 'text/html',\n\t'.js': 'application/javascript',\n\t'.json': 'application/json',\n\t'.mjs': 'application/javascript',\n\t'.svg': 'image/svg+xml',\n\t'.woff': 'font/woff',\n\t'.woff2': 'font/woff2'\n};\n\n/** Determine Content-Type from a file path extension */\nexport const getMimeType = (filePath: string) => {\n\tconst ext = filePath.slice(filePath.lastIndexOf('.'));\n\n\treturn mimeTypes[ext] ?? 'application/octet-stream';\n};\n\n/** Matches Bun's hashed output naming: name.XXXXXXXX.ext */\nconst HASHED_FILE_RE = /\\.[a-z0-9]{8}\\.(js|css|mjs)$/;\n\n/** Strip the 8-char hash from a hashed path to get its logical identity.\n * e.g. /react/indexes/ReactExample.abc12345.js → /react/indexes/ReactExample.js */\nconst stripHash = (webPath: string) =>\n\twebPath.replace(/\\.[a-z0-9]{8}(\\.(js|css|mjs))$/, '$1');\n\nconst processWalkEntry = (\n\tentry: import('node:fs').Dirent,\n\tdir: string,\n\tliveByIdentity: Map<string, string>,\n\twalkAndClean: (dir: string) => Promise<void>\n) => {\n\tconst fullPath = resolve(dir, entry.name);\n\tif (entry.isDirectory()) {\n\t\treturn walkAndClean(fullPath);\n\t}\n\tif (!HASHED_FILE_RE.test(entry.name)) {\n\t\treturn null;\n\t}\n\tconst identity = stripHash(fullPath);\n\tconst livePath = liveByIdentity.get(identity);\n\t// Delete if: (a) no live entry exists (page was deleted), or\n\t// (b) a different hash is live (stale version of an existing page).\n\t// Only keep the file when it IS the current live version.\n\tif (livePath !== fullPath) {\n\t\treturn unlink(fullPath).catch(() => {\n\t\t\t/* noop */\n\t\t});\n\t}\n\n\treturn null;\n};\n\n/** Upsert build outputs into the in-memory asset store.\n * Evicts previous entries for the same logical asset (same base name,\n * different hash) so stale paths don't accumulate. */\nexport const cleanStaleAssets = async (\n\tstore: Map<string, Uint8Array>,\n\tmanifest: Record<string, string>,\n\tbuildDir: string\n) => {\n\t// Build a map of logical identity → live disk path\n\tconst liveByIdentity = new Map<string, string>();\n\n\t// Client assets from the in-memory store\n\tfor (const webPath of store.keys()) {\n\t\tconst diskPath = resolve(buildDir, webPath.slice(1));\n\t\tliveByIdentity.set(stripHash(diskPath), diskPath);\n\t}\n\n\t// SSR server files from the manifest (absolute disk paths like\n\t// /home/.../build/svelte/.../SvelteExample.hash.js)\n\tconst absBuildDir = resolve(buildDir);\n\tObject.values(manifest).forEach((val) => {\n\t\tif (!HASHED_FILE_RE.test(val)) return;\n\t\tif (val.startsWith(absBuildDir)) {\n\t\t\tliveByIdentity.set(stripHash(val), val);\n\t\t}\n\t});\n\n\ttry {\n\t\tconst walkAndClean = async (dir: string) => {\n\t\t\tconst entries = await readdir(dir, { withFileTypes: true });\n\t\t\tconst tasks = entries\n\t\t\t\t.map((entry) =>\n\t\t\t\t\tprocessWalkEntry(entry, dir, liveByIdentity, walkAndClean)\n\t\t\t\t)\n\t\t\t\t.filter((task): task is Promise<void> => task !== null);\n\t\t\tawait Promise.all(tasks);\n\t\t};\n\t\tawait walkAndClean(buildDir);\n\t} catch {\n\t\t/* buildDir may not exist */\n\t}\n};\nexport const lookupAsset = (store: Map<string, Uint8Array>, path: string) =>\n\tstore.get(path);\n\nconst processScanEntry = (\n\tentry: import('node:fs').Dirent,\n\tdir: string,\n\tprefix: string,\n\tstore: Map<string, Uint8Array>,\n\tscanDir: (dir: string, prefix: string) => Promise<void>\n) => {\n\tif (entry.isDirectory()) {\n\t\treturn scanDir(resolve(dir, entry.name), `${prefix}${entry.name}/`);\n\t}\n\tif (!entry.name.startsWith('chunk-')) {\n\t\treturn null;\n\t}\n\tconst webPath = `/${prefix}${entry.name}`;\n\tif (store.has(webPath)) {\n\t\treturn null;\n\t}\n\n\treturn Bun.file(resolve(dir, entry.name))\n\t\t.bytes()\n\t\t.then((bytes) => {\n\t\t\tstore.set(webPath, bytes);\n\n\t\t\treturn undefined;\n\t\t})\n\t\t.catch(() => {\n\t\t\t/* noop */\n\t\t});\n};\n\nexport const populateAssetStore = async (\n\tstore: Map<string, Uint8Array>,\n\tmanifest: Record<string, string>,\n\tbuildDir: string\n) => {\n\tconst loadPromises: Promise<void>[] = [];\n\n\t// Build a set of logical identities from the new manifest so we can\n\t// evict old entries with different hashes for the same asset.\n\tconst newIdentities = new Map<string, string>();\n\tfor (const webPath of Object.values(manifest)) {\n\t\tif (!webPath.startsWith('/')) continue;\n\t\tnewIdentities.set(stripHash(webPath), webPath);\n\t}\n\n\t// Evict old store entries that are being replaced by a new hash (same\n\t// identity, different path). The manifest passed in may be PARTIAL — it\n\t// only covers the entries from the current build (e.g. one page during\n\t// HMR fast-paths). Entries whose identity isn't mentioned must be left\n\t// alone: they may belong to other pages that weren't rebuilt, and their\n\t// SSR-rendered HTML still references those hashes.\n\t// Disk-level cleanup of pages that were truly deleted is handled by\n\t// `cleanStaleAssets`. Chunk files (chunk-XXXX.js) are tracked separately\n\t// and are not part of the manifest.\n\tconst staleKeys = [...store.keys()].filter((existingPath) => {\n\t\tif (existingPath.includes('/chunk-')) return false;\n\t\tconst replacement = newIdentities.get(stripHash(existingPath));\n\t\treturn replacement !== undefined && replacement !== existingPath;\n\t});\n\tstaleKeys.forEach((key) => store.delete(key));\n\n\tfor (const webPath of newIdentities.values()) {\n\t\t// Skip entries already in the store — their content hasn't changed\n\t\t// (same hash in the filename). Only load new or replaced assets.\n\t\tif (store.has(webPath)) continue;\n\n\t\tloadPromises.push(\n\t\t\tBun.file(resolve(buildDir, webPath.slice(1)))\n\t\t\t\t.bytes()\n\t\t\t\t.then((bytes) => {\n\t\t\t\t\tstore.set(webPath, bytes);\n\n\t\t\t\t\treturn undefined;\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\t/* file may not exist yet (SSR-only entry) — ignore */\n\t\t\t\t})\n\t\t);\n\t}\n\n\t// Also pick up chunk files produced by Bun code-splitting that aren't\n\t// listed in the manifest (e.g. chunk-XXXX.js).\n\ttry {\n\t\tconst scanDir = async (dir: string, prefix: string) => {\n\t\t\tconst entries = await readdir(dir, { withFileTypes: true });\n\t\t\tconst subTasks = entries\n\t\t\t\t.map((entry) =>\n\t\t\t\t\tprocessScanEntry(entry, dir, prefix, store, scanDir)\n\t\t\t\t)\n\t\t\t\t.filter((task): task is Promise<void> => task !== null);\n\t\t\tawait Promise.all(subTasks);\n\t\t};\n\t\tawait scanDir(buildDir, '');\n\t} catch {\n\t\t/* buildDir may not exist yet */\n\t}\n\n\tawait Promise.all(loadPromises);\n};\n",
|
|
6
|
-
"/* Module Version Tracker for Server-Client Synchronization\n Tracks module versions to ensure server and client stay in sync */\n\n/* Module version: increments each time a module is updated */\nexport type ModuleVersion = number;\n\n/* Module version map: module path -> version */\nexport type ModuleVersions = Map<string, ModuleVersion>;\n\n/* Global module version counter */\nlet globalVersionCounter = 0;\n\n/* Get next version number */\nexport const createModuleVersionTracker = () =>\n\tnew Map<string, ModuleVersion>();\nexport const getNextVersion = () => ++globalVersionCounter;\nexport const incrementModuleVersion = (\n\tversions: ModuleVersions,\n\tmodulePath: string\n) => {\n\tconst newVersion = getNextVersion();\n\tversions.set(modulePath, newVersion);\n\n\treturn newVersion;\n};\nexport const incrementModuleVersions = (\n\tversions: ModuleVersions,\n\tmodulePaths: string[]\n) => {\n\tconst updated = new Map<string, ModuleVersion>();\n\tfor (const path of modulePaths) {\n\t\tconst version = incrementModuleVersion(versions, path);\n\t\tupdated.set(path, version);\n\t}\n\n\treturn updated;\n};\nexport const serializeModuleVersions = (versions: ModuleVersions) => {\n\tconst serialized: Record<string, number> = {};\n\tfor (const [path, version] of versions.entries()) {\n\t\tserialized[path] = version;\n\t}\n\n\treturn serialized;\n};\n",
|
|
7
|
-
"import type { HMRState } from './clientManager';\nimport { serializeModuleVersions } from './moduleVersionTracker';\nimport { type HMRWebSocket, WS_READY_STATE_OPEN } from '../../types/websocket';\nimport type { HMRClientMessage } from '../../types/messages';\nimport { isValidHMRClientMessage } from '../../types/typeGuards';\nimport { logHmrUpdate } from '../utils/logger';\n\nconst trySendMessage = (client: HMRWebSocket, messageStr: string) => {\n\ttry {\n\t\tclient.send(messageStr);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const broadcastToClients = (\n\tstate: HMRState,\n\tmessage: { type: string; [key: string]: unknown }\n) => {\n\tconst messageStr = JSON.stringify({\n\t\t...message,\n\t\ttimestamp: Date.now()\n\t});\n\n\tconst shouldRemove = (client: HMRWebSocket) => {\n\t\tif (client.readyState !== WS_READY_STATE_OPEN) return true;\n\n\t\treturn !trySendMessage(client, messageStr);\n\t};\n\n\tconst clientsToRemove: HMRWebSocket[] = [];\n\tstate.connectedClients.forEach((client) => {\n\t\tif (shouldRemove(client)) clientsToRemove.push(client);\n\t});\n\n\tclientsToRemove.forEach((client) => {\n\t\tstate.connectedClients.delete(client);\n\t});\n};\nexport const handleClientConnect = (\n\tstate: HMRState,\n\tclient: HMRWebSocket,\n\tmanifest: Record<string, string>\n) => {\n\tstate.connectedClients.add(client);\n\n\tconst serverVersions = serializeModuleVersions(state.moduleVersions);\n\tclient.send(\n\t\tJSON.stringify({\n\t\t\tdata: {\n\t\t\t\tmanifest,\n\t\t\t\tserverVersions\n\t\t\t},\n\t\t\ttimestamp: Date.now(),\n\t\t\ttype: 'manifest'\n\t\t})\n\t);\n\n\tclient.send(\n\t\tJSON.stringify({\n\t\t\tmessage: 'HMR client connected successfully',\n\t\t\ttimestamp: Date.now(),\n\t\t\ttype: 'connected'\n\t\t})\n\t);\n};\nexport const handleClientDisconnect = (\n\tstate: HMRState,\n\tclient: HMRWebSocket\n) => {\n\tstate.connectedClients.delete(client);\n};\n\nconst parseJsonSafe = (raw: string) => JSON.parse(raw);\n\nconst parseMessage = (message: unknown) => {\n\tif (typeof message === 'string') {\n\t\treturn parseJsonSafe(message);\n\t}\n\n\tif (message instanceof Buffer) {\n\t\treturn parseJsonSafe(message.toString());\n\t}\n\n\tif (message instanceof ArrayBuffer) {\n\t\treturn parseJsonSafe(new TextDecoder().decode(new Uint8Array(message)));\n\t}\n\n\tif (ArrayBuffer.isView(message)) {\n\t\tconst view: Uint8Array = new Uint8Array(\n\t\t\tmessage.buffer,\n\t\t\tmessage.byteOffset,\n\t\t\tmessage.byteLength\n\t\t);\n\n\t\treturn parseJsonSafe(new TextDecoder().decode(view));\n\t}\n\n\tif (typeof message === 'object' && message !== null) {\n\t\treturn message;\n\t}\n\n\treturn null;\n};\n\nconst handleParsedMessage = (\n\tstate: HMRState,\n\tclient: HMRWebSocket,\n\tdata: HMRClientMessage\n) => {\n\tswitch (data.type) {\n\t\tcase 'ping':\n\t\t\tclient.send(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\ttype: 'pong'\n\t\t\t\t})\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase 'request-rebuild':\n\t\t\tbreak;\n\n\t\tcase 'ready':\n\t\t\tif (data.framework) {\n\t\t\t\tstate.activeFrameworks.add(data.framework);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'hmr-timing':\n\t\t\tlogHmrUpdate(\n\t\t\t\tstate.lastHmrPath ?? '',\n\t\t\t\tstate.lastHmrFramework,\n\t\t\t\tdata.duration\n\t\t\t);\n\t\t\tbreak;\n\t}\n};\n\nexport const handleHMRMessage = (\n\tstate: HMRState,\n\tclient: HMRWebSocket,\n\tmessage: unknown\n) => {\n\ttry {\n\t\tconst parsedData = parseMessage(message);\n\t\tif (parsedData === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isValidHMRClientMessage(parsedData)) {\n\t\t\treturn;\n\t\t}\n\n\t\thandleParsedMessage(state, client, parsedData);\n\t} catch {\n\t\t/* ignored */\n\t}\n};\n"
|
|
8
|
-
],
|
|
9
|
-
"mappings": "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",
|
|
10
|
-
"debugId": "B4BC5290E57E33C064756E2164756E21",
|
|
11
|
-
"names": []
|
|
12
|
-
}
|