@screenbook/ui 0.0.1
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/.astro/content-assets.mjs +1 -0
- package/.astro/content-modules.mjs +1 -0
- package/.astro/content.d.ts +199 -0
- package/.astro/data-store.json +1 -0
- package/.astro/settings.json +5 -0
- package/.astro/types.d.ts +2 -0
- package/.prettierrc +15 -0
- package/.screenbook/coverage.json +37 -0
- package/.screenbook/screens.json +90 -0
- package/LICENSE +21 -0
- package/astro.config.mjs +18 -0
- package/dist/client/_astro/_baseUniq.BGai4mcc.js +1 -0
- package/dist/client/_astro/arc.DUp0dfXj.js +1 -0
- package/dist/client/_astro/architectureDiagram-VXUJARFQ.De_Gt-YC.js +36 -0
- package/dist/client/_astro/blockDiagram-VD42YOAC.BBt_VNhR.js +122 -0
- package/dist/client/_astro/c4Diagram-YG6GDRKO.DfgUlHvt.js +10 -0
- package/dist/client/_astro/channel.CNyr52v1.js +1 -0
- package/dist/client/_astro/chunk-4BX2VUAB.BL0ar6du.js +1 -0
- package/dist/client/_astro/chunk-55IACEB6.CI6SkZkY.js +1 -0
- package/dist/client/_astro/chunk-B4BG7PRW.Z25N80K6.js +165 -0
- package/dist/client/_astro/chunk-DI55MBZ5.BqjPVmi1.js +220 -0
- package/dist/client/_astro/chunk-FMBD7UC4.bZ9DWnFm.js +15 -0
- package/dist/client/_astro/chunk-QN33PNHL.BkzuUgWB.js +1 -0
- package/dist/client/_astro/chunk-QZHKN3VN.C__d68N_.js +1 -0
- package/dist/client/_astro/chunk-TZMSLE5B.BIpu8bMn.js +1 -0
- package/dist/client/_astro/classDiagram-2ON5EDUG.CxT3aW-h.js +1 -0
- package/dist/client/_astro/classDiagram-v2-WZHVMYZB.CxT3aW-h.js +1 -0
- package/dist/client/_astro/clone.U_lSZ6fe.js +1 -0
- package/dist/client/_astro/cose-bilkent-S5V4N54A.D48yfMll.js +1 -0
- package/dist/client/_astro/coverage.CKIVg4LY.css +1 -0
- package/dist/client/_astro/coverage.DDJMzKCq.css +1 -0
- package/dist/client/_astro/cytoscape.esm.DtBltrT8.js +331 -0
- package/dist/client/_astro/dagre-6UL2VRFP.LKVH7b30.js +4 -0
- package/dist/client/_astro/defaultLocale.C4B-KCzX.js +1 -0
- package/dist/client/_astro/diagram-PSM6KHXK.AHgUjH56.js +24 -0
- package/dist/client/_astro/diagram-QEK2KX5R.DvS33xWZ.js +43 -0
- package/dist/client/_astro/diagram-S2PKOQOG.BWisaYrQ.js +24 -0
- package/dist/client/_astro/erDiagram-Q2GNP2WA.B7oID6oT.js +60 -0
- package/dist/client/_astro/flowDiagram-NV44I4VS.Bb1qJLxr.js +162 -0
- package/dist/client/_astro/ganttDiagram-JELNMOA3.3vGHETyo.js +267 -0
- package/dist/client/_astro/gitGraphDiagram-NY62KEGX.Co2SKcif.js +65 -0
- package/dist/client/_astro/graph.B5fevUwB.js +1 -0
- package/dist/client/_astro/graph.astro_astro_type_script_index_0_lang.1HlATQ1g.js +1 -0
- package/dist/client/_astro/impact.Cvhl64u1.css +1 -0
- package/dist/client/_astro/impact.astro_astro_type_script_index_0_lang.D4cAR9AL.js +6 -0
- package/dist/client/_astro/infoDiagram-WHAUD3N6.B6ULtps1.js +2 -0
- package/dist/client/_astro/init.Gi6I4Gst.js +1 -0
- package/dist/client/_astro/journeyDiagram-XKPGCS4Q.BSOCzWmw.js +139 -0
- package/dist/client/_astro/kanban-definition-3W4ZIXB7.D8KKGc1o.js +89 -0
- package/dist/client/_astro/katex.XbL3y5x-.js +261 -0
- package/dist/client/_astro/layout.8vv24qEg.js +1 -0
- package/dist/client/_astro/linear.B6O9ymuK.js +1 -0
- package/dist/client/_astro/mermaid.core.CReXU7YN.js +256 -0
- package/dist/client/_astro/min.CdGMGVU0.js +1 -0
- package/dist/client/_astro/mindmap-definition-VGOIOE7T.G14HgtDw.js +68 -0
- package/dist/client/_astro/ordinal.BYWQX77i.js +1 -0
- package/dist/client/_astro/pieDiagram-ADFJNKIX.bC2VkyoW.js +30 -0
- package/dist/client/_astro/quadrantDiagram-AYHSOK5B.BlLaQQxO.js +7 -0
- package/dist/client/_astro/requirementDiagram-UZGBJVZJ.DHRnMofO.js +64 -0
- package/dist/client/_astro/sankeyDiagram-TZEHDZUN.BMuaJBmt.js +10 -0
- package/dist/client/_astro/sequenceDiagram-WL72ISMW.CnU62wqy.js +145 -0
- package/dist/client/_astro/stateDiagram-FKZM4ZOC.CewI55YO.js +1 -0
- package/dist/client/_astro/stateDiagram-v2-4FDKWEC3.7xUQqoNr.js +1 -0
- package/dist/client/_astro/timeline-definition-IT6M3QCI.D1PLRwss.js +61 -0
- package/dist/client/_astro/treemap-KMMF4GRG.D3VNVvXF.js +128 -0
- package/dist/client/_astro/xychartDiagram-PRI3JC2R.CQex0-ul.js +7 -0
- package/dist/client/logo.svg +5 -0
- package/dist/server/_@astrojs-ssr-adapter.mjs +1 -0
- package/dist/server/_noop-middleware.mjs +3 -0
- package/dist/server/chunks/_@astrojs-ssr-adapter_DgsYudHz.mjs +4385 -0
- package/dist/server/chunks/astro/server_m7yT4wCr.mjs +2787 -0
- package/dist/server/chunks/astro-designed-error-pages_BvPhMmw0.mjs +364 -0
- package/dist/server/chunks/fs-lite_COtHaKzy.mjs +157 -0
- package/dist/server/chunks/impactAnalysis_Bz5lMdmy.mjs +188 -0
- package/dist/server/chunks/loadScreens_DJf-tycc.mjs +39 -0
- package/dist/server/chunks/node_DoTkMCOi.mjs +1673 -0
- package/dist/server/chunks/remote_B3W5fv4r.mjs +188 -0
- package/dist/server/chunks/sharp_DHNfMLYY.mjs +99 -0
- package/dist/server/entry.mjs +47 -0
- package/dist/server/manifest_-V1HEnR8.mjs +101 -0
- package/dist/server/noop-entrypoint.mjs +3 -0
- package/dist/server/pages/_image.astro.mjs +2 -0
- package/dist/server/pages/coverage.astro.mjs +65 -0
- package/dist/server/pages/graph.astro.mjs +107 -0
- package/dist/server/pages/impact.astro.mjs +52 -0
- package/dist/server/pages/index.astro.mjs +28 -0
- package/dist/server/pages/screen/_id_.astro.mjs +52 -0
- package/dist/server/renderers.mjs +3 -0
- package/package.json +42 -0
- package/public/logo.svg +5 -0
- package/src/layouts/Layout.astro +60 -0
- package/src/pages/coverage.astro +399 -0
- package/src/pages/graph.astro +330 -0
- package/src/pages/impact.astro +459 -0
- package/src/pages/index.astro +167 -0
- package/src/pages/screen/[id].astro +186 -0
- package/src/styles/global.css +862 -0
- package/src/utils/impactAnalysis.ts +297 -0
- package/src/utils/loadCoverage.ts +30 -0
- package/src/utils/loadScreens.ts +18 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
function appendForwardSlash(path) {
|
|
2
|
+
return path.endsWith("/") ? path : path + "/";
|
|
3
|
+
}
|
|
4
|
+
function prependForwardSlash(path) {
|
|
5
|
+
return path[0] === "/" ? path : "/" + path;
|
|
6
|
+
}
|
|
7
|
+
const MANY_TRAILING_SLASHES = /\/{2,}$/g;
|
|
8
|
+
function collapseDuplicateTrailingSlashes(path, trailingSlash) {
|
|
9
|
+
if (!path) {
|
|
10
|
+
return path;
|
|
11
|
+
}
|
|
12
|
+
return path.replace(MANY_TRAILING_SLASHES, trailingSlash ? "/" : "") || "/";
|
|
13
|
+
}
|
|
14
|
+
function removeTrailingForwardSlash(path) {
|
|
15
|
+
return path.endsWith("/") ? path.slice(0, path.length - 1) : path;
|
|
16
|
+
}
|
|
17
|
+
function removeLeadingForwardSlash(path) {
|
|
18
|
+
return path.startsWith("/") ? path.substring(1) : path;
|
|
19
|
+
}
|
|
20
|
+
function trimSlashes(path) {
|
|
21
|
+
return path.replace(/^\/|\/$/g, "");
|
|
22
|
+
}
|
|
23
|
+
function isString(path) {
|
|
24
|
+
return typeof path === "string" || path instanceof String;
|
|
25
|
+
}
|
|
26
|
+
const INTERNAL_PREFIXES = /* @__PURE__ */ new Set(["/_", "/@", "/.", "//"]);
|
|
27
|
+
const JUST_SLASHES = /^\/{2,}$/;
|
|
28
|
+
function isInternalPath(path) {
|
|
29
|
+
return INTERNAL_PREFIXES.has(path.slice(0, 2)) && !JUST_SLASHES.test(path);
|
|
30
|
+
}
|
|
31
|
+
function joinPaths(...paths) {
|
|
32
|
+
return paths.filter(isString).map((path, i) => {
|
|
33
|
+
if (i === 0) {
|
|
34
|
+
return removeTrailingForwardSlash(path);
|
|
35
|
+
} else if (i === paths.length - 1) {
|
|
36
|
+
return removeLeadingForwardSlash(path);
|
|
37
|
+
} else {
|
|
38
|
+
return trimSlashes(path);
|
|
39
|
+
}
|
|
40
|
+
}).join("/");
|
|
41
|
+
}
|
|
42
|
+
function removeQueryString(path) {
|
|
43
|
+
const index = path.lastIndexOf("?");
|
|
44
|
+
return index > 0 ? path.substring(0, index) : path;
|
|
45
|
+
}
|
|
46
|
+
function isRemotePath(src) {
|
|
47
|
+
if (!src) return false;
|
|
48
|
+
const trimmed = src.trim();
|
|
49
|
+
if (!trimmed) return false;
|
|
50
|
+
let decoded = trimmed;
|
|
51
|
+
let previousDecoded = "";
|
|
52
|
+
let maxIterations = 10;
|
|
53
|
+
while (decoded !== previousDecoded && maxIterations > 0) {
|
|
54
|
+
previousDecoded = decoded;
|
|
55
|
+
try {
|
|
56
|
+
decoded = decodeURIComponent(decoded);
|
|
57
|
+
} catch {
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
maxIterations--;
|
|
61
|
+
}
|
|
62
|
+
if (/^[a-zA-Z]:/.test(decoded)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (decoded[0] === "/" && decoded[1] !== "/" && decoded[1] !== "\\") {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
if (decoded[0] === "\\") {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (decoded.startsWith("//")) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const url = new URL(decoded, "http://n");
|
|
76
|
+
if (url.username || url.password) {
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
if (decoded.includes("@") && !url.pathname.includes("@") && !url.search.includes("@")) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
if (url.origin !== "http://n") {
|
|
83
|
+
const protocol = url.protocol.toLowerCase();
|
|
84
|
+
if (protocol === "file:") {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
if (URL.canParse(decoded)) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
} catch {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function isParentDirectory(parentPath, childPath) {
|
|
98
|
+
if (!parentPath || !childPath) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
if (parentPath.includes("://") || childPath.includes("://")) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
if (isRemotePath(parentPath) || isRemotePath(childPath)) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
if (parentPath.includes("..") || childPath.includes("..")) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
if (parentPath.includes("\0") || childPath.includes("\0")) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
const normalizedParent = appendForwardSlash(slash(parentPath).toLowerCase());
|
|
114
|
+
const normalizedChild = slash(childPath).toLowerCase();
|
|
115
|
+
if (normalizedParent === normalizedChild || normalizedParent === normalizedChild + "/") {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
return normalizedChild.startsWith(normalizedParent);
|
|
119
|
+
}
|
|
120
|
+
function slash(path) {
|
|
121
|
+
return path.replace(/\\/g, "/");
|
|
122
|
+
}
|
|
123
|
+
function fileExtension(path) {
|
|
124
|
+
const ext = path.split(".").pop();
|
|
125
|
+
return ext !== path ? `.${ext}` : "";
|
|
126
|
+
}
|
|
127
|
+
const WITH_FILE_EXT = /\/[^/]+\.\w+$/;
|
|
128
|
+
function hasFileExtension(path) {
|
|
129
|
+
return WITH_FILE_EXT.test(path);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function matchPattern(url, remotePattern) {
|
|
133
|
+
return matchProtocol(url, remotePattern.protocol) && matchHostname(url, remotePattern.hostname, true) && matchPort(url, remotePattern.port) && matchPathname(url, remotePattern.pathname, true);
|
|
134
|
+
}
|
|
135
|
+
function matchPort(url, port) {
|
|
136
|
+
return !port || port === url.port;
|
|
137
|
+
}
|
|
138
|
+
function matchProtocol(url, protocol) {
|
|
139
|
+
return !protocol || protocol === url.protocol.slice(0, -1);
|
|
140
|
+
}
|
|
141
|
+
function matchHostname(url, hostname, allowWildcard = false) {
|
|
142
|
+
if (!hostname) {
|
|
143
|
+
return true;
|
|
144
|
+
} else if (!allowWildcard || !hostname.startsWith("*")) {
|
|
145
|
+
return hostname === url.hostname;
|
|
146
|
+
} else if (hostname.startsWith("**.")) {
|
|
147
|
+
const slicedHostname = hostname.slice(2);
|
|
148
|
+
return slicedHostname !== url.hostname && url.hostname.endsWith(slicedHostname);
|
|
149
|
+
} else if (hostname.startsWith("*.")) {
|
|
150
|
+
const slicedHostname = hostname.slice(1);
|
|
151
|
+
if (!url.hostname.endsWith(slicedHostname)) {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
const subdomainWithDot = url.hostname.slice(0, -(slicedHostname.length - 1));
|
|
155
|
+
return subdomainWithDot.endsWith(".") && !subdomainWithDot.slice(0, -1).includes(".");
|
|
156
|
+
}
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
function matchPathname(url, pathname, allowWildcard = false) {
|
|
160
|
+
if (!pathname) {
|
|
161
|
+
return true;
|
|
162
|
+
} else if (!allowWildcard || !pathname.endsWith("*")) {
|
|
163
|
+
return pathname === url.pathname;
|
|
164
|
+
} else if (pathname.endsWith("/**")) {
|
|
165
|
+
const slicedPathname = pathname.slice(0, -2);
|
|
166
|
+
return slicedPathname !== url.pathname && url.pathname.startsWith(slicedPathname);
|
|
167
|
+
} else if (pathname.endsWith("/*")) {
|
|
168
|
+
const slicedPathname = pathname.slice(0, -1);
|
|
169
|
+
const additionalPathChunks = url.pathname.replace(slicedPathname, "").split("/").filter(Boolean);
|
|
170
|
+
return additionalPathChunks.length === 1;
|
|
171
|
+
}
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
function isRemoteAllowed(src, {
|
|
175
|
+
domains,
|
|
176
|
+
remotePatterns
|
|
177
|
+
}) {
|
|
178
|
+
if (!URL.canParse(src)) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
const url = new URL(src);
|
|
182
|
+
if (!["http:", "https:", "data:"].includes(url.protocol)) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
return domains.some((domain) => matchHostname(url, domain)) || remotePatterns.some((remotePattern) => matchPattern(url, remotePattern));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export { isRemotePath as a, isParentDirectory as b, appendForwardSlash as c, removeTrailingForwardSlash as d, isInternalPath as e, fileExtension as f, collapseDuplicateTrailingSlashes as g, hasFileExtension as h, isRemoteAllowed as i, joinPaths as j, matchPattern as m, prependForwardSlash as p, removeQueryString as r, slash as s, trimSlashes as t };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { A as AstroError, ao as MissingSharp } from './astro/server_m7yT4wCr.mjs';
|
|
2
|
+
import { b as baseService, p as parseQuality } from './node_DoTkMCOi.mjs';
|
|
3
|
+
|
|
4
|
+
let sharp;
|
|
5
|
+
const qualityTable = {
|
|
6
|
+
low: 25,
|
|
7
|
+
mid: 50,
|
|
8
|
+
high: 80,
|
|
9
|
+
max: 100
|
|
10
|
+
};
|
|
11
|
+
async function loadSharp() {
|
|
12
|
+
let sharpImport;
|
|
13
|
+
try {
|
|
14
|
+
sharpImport = (await import('sharp')).default;
|
|
15
|
+
} catch {
|
|
16
|
+
throw new AstroError(MissingSharp);
|
|
17
|
+
}
|
|
18
|
+
sharpImport.cache(false);
|
|
19
|
+
return sharpImport;
|
|
20
|
+
}
|
|
21
|
+
const fitMap = {
|
|
22
|
+
fill: "fill",
|
|
23
|
+
contain: "inside",
|
|
24
|
+
cover: "cover",
|
|
25
|
+
none: "outside",
|
|
26
|
+
"scale-down": "inside",
|
|
27
|
+
outside: "outside",
|
|
28
|
+
inside: "inside"
|
|
29
|
+
};
|
|
30
|
+
const sharpService = {
|
|
31
|
+
validateOptions: baseService.validateOptions,
|
|
32
|
+
getURL: baseService.getURL,
|
|
33
|
+
parseURL: baseService.parseURL,
|
|
34
|
+
getHTMLAttributes: baseService.getHTMLAttributes,
|
|
35
|
+
getSrcSet: baseService.getSrcSet,
|
|
36
|
+
async transform(inputBuffer, transformOptions, config) {
|
|
37
|
+
if (!sharp) sharp = await loadSharp();
|
|
38
|
+
const transform = transformOptions;
|
|
39
|
+
if (transform.format === "svg") return { data: inputBuffer, format: "svg" };
|
|
40
|
+
const result = sharp(inputBuffer, {
|
|
41
|
+
failOnError: false,
|
|
42
|
+
pages: -1,
|
|
43
|
+
limitInputPixels: config.service.config.limitInputPixels
|
|
44
|
+
});
|
|
45
|
+
result.rotate();
|
|
46
|
+
const withoutEnlargement = Boolean(transform.fit);
|
|
47
|
+
if (transform.width && transform.height && transform.fit) {
|
|
48
|
+
const fit = fitMap[transform.fit] ?? "inside";
|
|
49
|
+
result.resize({
|
|
50
|
+
width: Math.round(transform.width),
|
|
51
|
+
height: Math.round(transform.height),
|
|
52
|
+
fit,
|
|
53
|
+
position: transform.position,
|
|
54
|
+
withoutEnlargement
|
|
55
|
+
});
|
|
56
|
+
} else if (transform.height && !transform.width) {
|
|
57
|
+
result.resize({
|
|
58
|
+
height: Math.round(transform.height),
|
|
59
|
+
withoutEnlargement
|
|
60
|
+
});
|
|
61
|
+
} else if (transform.width) {
|
|
62
|
+
result.resize({
|
|
63
|
+
width: Math.round(transform.width),
|
|
64
|
+
withoutEnlargement
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
if (transform.format) {
|
|
68
|
+
let quality = void 0;
|
|
69
|
+
if (transform.quality) {
|
|
70
|
+
const parsedQuality = parseQuality(transform.quality);
|
|
71
|
+
if (typeof parsedQuality === "number") {
|
|
72
|
+
quality = parsedQuality;
|
|
73
|
+
} else {
|
|
74
|
+
quality = transform.quality in qualityTable ? qualityTable[transform.quality] : void 0;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const isGifInput = inputBuffer[0] === 71 && // 'G'
|
|
78
|
+
inputBuffer[1] === 73 && // 'I'
|
|
79
|
+
inputBuffer[2] === 70 && // 'F'
|
|
80
|
+
inputBuffer[3] === 56 && // '8'
|
|
81
|
+
(inputBuffer[4] === 57 || inputBuffer[4] === 55) && // '9' or '7'
|
|
82
|
+
inputBuffer[5] === 97;
|
|
83
|
+
if (transform.format === "webp" && isGifInput) {
|
|
84
|
+
result.webp({ quality: typeof quality === "number" ? quality : void 0, loop: 0 });
|
|
85
|
+
} else {
|
|
86
|
+
result.toFormat(transform.format, { quality });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const { data, info } = await result.toBuffer({ resolveWithObject: true });
|
|
90
|
+
const needsCopy = "buffer" in data && data.buffer instanceof SharedArrayBuffer;
|
|
91
|
+
return {
|
|
92
|
+
data: needsCopy ? new Uint8Array(data) : data,
|
|
93
|
+
format: info.format
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
var sharp_default = sharpService;
|
|
98
|
+
|
|
99
|
+
export { sharp_default as default };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { renderers } from './renderers.mjs';
|
|
2
|
+
import { c as createExports, s as serverEntrypointModule } from './chunks/_@astrojs-ssr-adapter_DgsYudHz.mjs';
|
|
3
|
+
import { manifest } from './manifest_-V1HEnR8.mjs';
|
|
4
|
+
|
|
5
|
+
const serverIslandMap = new Map();;
|
|
6
|
+
|
|
7
|
+
const _page0 = () => import('./pages/_image.astro.mjs');
|
|
8
|
+
const _page1 = () => import('./pages/coverage.astro.mjs');
|
|
9
|
+
const _page2 = () => import('./pages/graph.astro.mjs');
|
|
10
|
+
const _page3 = () => import('./pages/impact.astro.mjs');
|
|
11
|
+
const _page4 = () => import('./pages/screen/_id_.astro.mjs');
|
|
12
|
+
const _page5 = () => import('./pages/index.astro.mjs');
|
|
13
|
+
const pageMap = new Map([
|
|
14
|
+
["../../node_modules/.pnpm/astro@5.16.6_@types+node@25.0.3_jiti@2.6.1_lightningcss@1.30.2_rollup@4.54.0_typescript@5.9.3/node_modules/astro/dist/assets/endpoint/node.js", _page0],
|
|
15
|
+
["src/pages/coverage.astro", _page1],
|
|
16
|
+
["src/pages/graph.astro", _page2],
|
|
17
|
+
["src/pages/impact.astro", _page3],
|
|
18
|
+
["src/pages/screen/[id].astro", _page4],
|
|
19
|
+
["src/pages/index.astro", _page5]
|
|
20
|
+
]);
|
|
21
|
+
|
|
22
|
+
const _manifest = Object.assign(manifest, {
|
|
23
|
+
pageMap,
|
|
24
|
+
serverIslandMap,
|
|
25
|
+
renderers,
|
|
26
|
+
actions: () => import('./noop-entrypoint.mjs'),
|
|
27
|
+
middleware: () => import('./_noop-middleware.mjs')
|
|
28
|
+
});
|
|
29
|
+
const _args = {
|
|
30
|
+
"mode": "standalone",
|
|
31
|
+
"client": "file:///Users/wadakatu/www/experiments/screenbook/packages/ui/dist/client/",
|
|
32
|
+
"server": "file:///Users/wadakatu/www/experiments/screenbook/packages/ui/dist/server/",
|
|
33
|
+
"host": false,
|
|
34
|
+
"port": 4321,
|
|
35
|
+
"assets": "_astro",
|
|
36
|
+
"experimentalStaticHeaders": false
|
|
37
|
+
};
|
|
38
|
+
const _exports = createExports(_manifest, _args);
|
|
39
|
+
const handler = _exports['handler'];
|
|
40
|
+
const startServer = _exports['startServer'];
|
|
41
|
+
const options = _exports['options'];
|
|
42
|
+
const _start = 'start';
|
|
43
|
+
if (Object.prototype.hasOwnProperty.call(serverEntrypointModule, _start)) {
|
|
44
|
+
serverEntrypointModule[_start](_manifest, _args);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { handler, options, pageMap, startServer };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import 'piccolore';
|
|
2
|
+
import { q as decodeKey } from './chunks/astro/server_m7yT4wCr.mjs';
|
|
3
|
+
import 'clsx';
|
|
4
|
+
import { N as NOOP_MIDDLEWARE_FN } from './chunks/astro-designed-error-pages_BvPhMmw0.mjs';
|
|
5
|
+
import 'es-module-lexer';
|
|
6
|
+
|
|
7
|
+
function sanitizeParams(params) {
|
|
8
|
+
return Object.fromEntries(
|
|
9
|
+
Object.entries(params).map(([key, value]) => {
|
|
10
|
+
if (typeof value === "string") {
|
|
11
|
+
return [key, value.normalize().replace(/#/g, "%23").replace(/\?/g, "%3F")];
|
|
12
|
+
}
|
|
13
|
+
return [key, value];
|
|
14
|
+
})
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
function getParameter(part, params) {
|
|
18
|
+
if (part.spread) {
|
|
19
|
+
return params[part.content.slice(3)] || "";
|
|
20
|
+
}
|
|
21
|
+
if (part.dynamic) {
|
|
22
|
+
if (!params[part.content]) {
|
|
23
|
+
throw new TypeError(`Missing parameter: ${part.content}`);
|
|
24
|
+
}
|
|
25
|
+
return params[part.content];
|
|
26
|
+
}
|
|
27
|
+
return part.content.normalize().replace(/\?/g, "%3F").replace(/#/g, "%23").replace(/%5B/g, "[").replace(/%5D/g, "]");
|
|
28
|
+
}
|
|
29
|
+
function getSegment(segment, params) {
|
|
30
|
+
const segmentPath = segment.map((part) => getParameter(part, params)).join("");
|
|
31
|
+
return segmentPath ? "/" + segmentPath : "";
|
|
32
|
+
}
|
|
33
|
+
function getRouteGenerator(segments, addTrailingSlash) {
|
|
34
|
+
return (params) => {
|
|
35
|
+
const sanitizedParams = sanitizeParams(params);
|
|
36
|
+
let trailing = "";
|
|
37
|
+
if (addTrailingSlash === "always" && segments.length) {
|
|
38
|
+
trailing = "/";
|
|
39
|
+
}
|
|
40
|
+
const path = segments.map((segment) => getSegment(segment, sanitizedParams)).join("") + trailing;
|
|
41
|
+
return path || "/";
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function deserializeRouteData(rawRouteData) {
|
|
46
|
+
return {
|
|
47
|
+
route: rawRouteData.route,
|
|
48
|
+
type: rawRouteData.type,
|
|
49
|
+
pattern: new RegExp(rawRouteData.pattern),
|
|
50
|
+
params: rawRouteData.params,
|
|
51
|
+
component: rawRouteData.component,
|
|
52
|
+
generate: getRouteGenerator(rawRouteData.segments, rawRouteData._meta.trailingSlash),
|
|
53
|
+
pathname: rawRouteData.pathname || void 0,
|
|
54
|
+
segments: rawRouteData.segments,
|
|
55
|
+
prerender: rawRouteData.prerender,
|
|
56
|
+
redirect: rawRouteData.redirect,
|
|
57
|
+
redirectRoute: rawRouteData.redirectRoute ? deserializeRouteData(rawRouteData.redirectRoute) : void 0,
|
|
58
|
+
fallbackRoutes: rawRouteData.fallbackRoutes.map((fallback) => {
|
|
59
|
+
return deserializeRouteData(fallback);
|
|
60
|
+
}),
|
|
61
|
+
isIndex: rawRouteData.isIndex,
|
|
62
|
+
origin: rawRouteData.origin
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function deserializeManifest(serializedManifest) {
|
|
67
|
+
const routes = [];
|
|
68
|
+
for (const serializedRoute of serializedManifest.routes) {
|
|
69
|
+
routes.push({
|
|
70
|
+
...serializedRoute,
|
|
71
|
+
routeData: deserializeRouteData(serializedRoute.routeData)
|
|
72
|
+
});
|
|
73
|
+
const route = serializedRoute;
|
|
74
|
+
route.routeData = deserializeRouteData(serializedRoute.routeData);
|
|
75
|
+
}
|
|
76
|
+
const assets = new Set(serializedManifest.assets);
|
|
77
|
+
const componentMetadata = new Map(serializedManifest.componentMetadata);
|
|
78
|
+
const inlinedScripts = new Map(serializedManifest.inlinedScripts);
|
|
79
|
+
const clientDirectives = new Map(serializedManifest.clientDirectives);
|
|
80
|
+
const serverIslandNameMap = new Map(serializedManifest.serverIslandNameMap);
|
|
81
|
+
const key = decodeKey(serializedManifest.key);
|
|
82
|
+
return {
|
|
83
|
+
// in case user middleware exists, this no-op middleware will be reassigned (see plugin-ssr.ts)
|
|
84
|
+
middleware() {
|
|
85
|
+
return { onRequest: NOOP_MIDDLEWARE_FN };
|
|
86
|
+
},
|
|
87
|
+
...serializedManifest,
|
|
88
|
+
assets,
|
|
89
|
+
componentMetadata,
|
|
90
|
+
inlinedScripts,
|
|
91
|
+
clientDirectives,
|
|
92
|
+
routes,
|
|
93
|
+
serverIslandNameMap,
|
|
94
|
+
key
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const manifest = deserializeManifest({"hrefRoot":"file:///Users/wadakatu/www/experiments/screenbook/packages/ui/","cacheDir":"file:///Users/wadakatu/www/experiments/screenbook/packages/ui/node_modules/.astro/","outDir":"file:///Users/wadakatu/www/experiments/screenbook/packages/ui/dist/","srcDir":"file:///Users/wadakatu/www/experiments/screenbook/packages/ui/src/","publicDir":"file:///Users/wadakatu/www/experiments/screenbook/packages/ui/public/","buildClientDir":"file:///Users/wadakatu/www/experiments/screenbook/packages/ui/dist/client/","buildServerDir":"file:///Users/wadakatu/www/experiments/screenbook/packages/ui/dist/server/","adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"type":"page","component":"_server-islands.astro","params":["name"],"segments":[[{"content":"_server-islands","dynamic":false,"spread":false}],[{"content":"name","dynamic":true,"spread":false}]],"pattern":"^\\/_server-islands\\/([^/]+?)\\/?$","prerender":false,"isIndex":false,"fallbackRoutes":[],"route":"/_server-islands/[name]","origin":"internal","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[],"routeData":{"type":"endpoint","isIndex":false,"route":"/_image","pattern":"^\\/_image\\/?$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/astro@5.16.6_@types+node@25.0.3_jiti@2.6.1_lightningcss@1.30.2_rollup@4.54.0_typescript@5.9.3/node_modules/astro/dist/assets/endpoint/node.js","pathname":"/_image","prerender":false,"fallbackRoutes":[],"origin":"internal","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[{"type":"external","src":"/_astro/coverage.DDJMzKCq.css"},{"type":"external","src":"/_astro/coverage.CKIVg4LY.css"}],"routeData":{"route":"/coverage","isIndex":false,"type":"page","pattern":"^\\/coverage\\/?$","segments":[[{"content":"coverage","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/coverage.astro","pathname":"/coverage","prerender":false,"fallbackRoutes":[],"distURL":[],"origin":"project","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[{"type":"external","src":"/_astro/coverage.DDJMzKCq.css"},{"type":"inline","content":".graph-controls[data-astro-cid-oy34yelw]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.view-toggle[data-astro-cid-oy34yelw]{display:flex;gap:8px;background:var(--color-surface);padding:4px;border-radius:var(--radius-lg);border:1px solid var(--color-border)}.toggle-btn[data-astro-cid-oy34yelw]{display:flex;align-items:center;gap:8px;padding:8px 16px;border:none;background:transparent;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.toggle-btn[data-astro-cid-oy34yelw]:hover{color:var(--color-text)}.toggle-btn[data-astro-cid-oy34yelw].active{background:var(--color-accent);color:var(--color-bg)}.toggle-btn[data-astro-cid-oy34yelw] svg[data-astro-cid-oy34yelw]{width:16px;height:16px}.graph-stats[data-astro-cid-oy34yelw]{display:flex;gap:16px}.stat[data-astro-cid-oy34yelw]{font-size:var(--text-sm);color:var(--color-text-muted)}.hidden[data-astro-cid-oy34yelw]{display:none!important}.legend-api[data-astro-cid-oy34yelw]{background:#14b8a6!important;border-color:#5eead4!important}\n"}],"routeData":{"route":"/graph","isIndex":false,"type":"page","pattern":"^\\/graph\\/?$","segments":[[{"content":"graph","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/graph.astro","pathname":"/graph","prerender":false,"fallbackRoutes":[],"distURL":[],"origin":"project","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[{"type":"external","src":"/_astro/coverage.DDJMzKCq.css"},{"type":"external","src":"/_astro/impact.Cvhl64u1.css"}],"routeData":{"route":"/impact","isIndex":false,"type":"page","pattern":"^\\/impact\\/?$","segments":[[{"content":"impact","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/impact.astro","pathname":"/impact","prerender":false,"fallbackRoutes":[],"distURL":[],"origin":"project","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[{"type":"external","src":"/_astro/coverage.DDJMzKCq.css"}],"routeData":{"route":"/screen/[id]","isIndex":false,"type":"page","pattern":"^\\/screen\\/([^/]+?)\\/?$","segments":[[{"content":"screen","dynamic":false,"spread":false}],[{"content":"id","dynamic":true,"spread":false}]],"params":["id"],"component":"src/pages/screen/[id].astro","prerender":false,"fallbackRoutes":[],"distURL":[],"origin":"project","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"styles":[{"type":"external","src":"/_astro/coverage.DDJMzKCq.css"}],"routeData":{"route":"/","isIndex":true,"type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","prerender":false,"fallbackRoutes":[],"distURL":[],"origin":"project","_meta":{"trailingSlash":"ignore"}}}],"base":"/","trailingSlash":"ignore","compressHTML":true,"componentMetadata":[["/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/coverage.astro",{"propagation":"none","containsHead":true}],["/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/graph.astro",{"propagation":"none","containsHead":true}],["/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/impact.astro",{"propagation":"none","containsHead":true}],["/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/index.astro",{"propagation":"none","containsHead":true}],["/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/screen/[id].astro",{"propagation":"none","containsHead":true}]],"renderers":[],"clientDirectives":[["idle","(()=>{var l=(n,t)=>{let i=async()=>{await(await n())()},e=typeof t.value==\"object\"?t.value:void 0,s={timeout:e==null?void 0:e.timeout};\"requestIdleCallback\"in window?window.requestIdleCallback(i,s):setTimeout(i,s.timeout||200)};(self.Astro||(self.Astro={})).idle=l;window.dispatchEvent(new Event(\"astro:idle\"));})();"],["load","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event(\"astro:load\"));})();"],["media","(()=>{var n=(a,t)=>{let i=async()=>{await(await a())()};if(t.value){let e=matchMedia(t.value);e.matches?i():e.addEventListener(\"change\",i,{once:!0})}};(self.Astro||(self.Astro={})).media=n;window.dispatchEvent(new Event(\"astro:media\"));})();"],["only","(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event(\"astro:only\"));})();"],["visible","(()=>{var a=(s,i,o)=>{let r=async()=>{await(await s())()},t=typeof i.value==\"object\"?i.value:void 0,c={rootMargin:t==null?void 0:t.rootMargin},n=new IntersectionObserver(e=>{for(let l of e)if(l.isIntersecting){n.disconnect(),r();break}},c);for(let e of o.children)n.observe(e)};(self.Astro||(self.Astro={})).visible=a;window.dispatchEvent(new Event(\"astro:visible\"));})();"]],"entryModules":{"\u0000noop-middleware":"_noop-middleware.mjs","\u0000virtual:astro:actions/noop-entrypoint":"noop-entrypoint.mjs","\u0000@astro-page:src/pages/coverage@_@astro":"pages/coverage.astro.mjs","\u0000@astro-page:src/pages/graph@_@astro":"pages/graph.astro.mjs","\u0000@astro-page:src/pages/impact@_@astro":"pages/impact.astro.mjs","\u0000@astro-page:src/pages/screen/[id]@_@astro":"pages/screen/_id_.astro.mjs","\u0000@astro-page:src/pages/index@_@astro":"pages/index.astro.mjs","\u0000@astrojs-ssr-virtual-entry":"entry.mjs","\u0000@astro-renderers":"renderers.mjs","\u0000@astro-page:../../node_modules/.pnpm/astro@5.16.6_@types+node@25.0.3_jiti@2.6.1_lightningcss@1.30.2_rollup@4.54.0_typescript@5.9.3/node_modules/astro/dist/assets/endpoint/node@_@js":"pages/_image.astro.mjs","\u0000@astrojs-ssr-adapter":"_@astrojs-ssr-adapter.mjs","\u0000@astrojs-manifest":"manifest_-V1HEnR8.mjs","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/unstorage@1.17.3/node_modules/unstorage/drivers/fs-lite.mjs":"chunks/fs-lite_COtHaKzy.mjs","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/astro@5.16.6_@types+node@25.0.3_jiti@2.6.1_lightningcss@1.30.2_rollup@4.54.0_typescript@5.9.3/node_modules/astro/dist/assets/services/sharp.js":"chunks/sharp_DHNfMLYY.mjs","/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/impact.astro?astro&type=script&index=0&lang.ts":"_astro/impact.astro_astro_type_script_index_0_lang.D4cAR9AL.js","/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/index.astro?astro&type=script&index=0&lang.ts":"_astro/index.astro_astro_type_script_index_0_lang.BbG2FEsf.js","/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/graph.astro?astro&type=script&index=0&lang.ts":"_astro/graph.astro_astro_type_script_index_0_lang.1HlATQ1g.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-YG6GDRKO.mjs":"_astro/c4Diagram-YG6GDRKO.DfgUlHvt.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-NV44I4VS.mjs":"_astro/flowDiagram-NV44I4VS.Bb1qJLxr.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-Q2GNP2WA.mjs":"_astro/erDiagram-Q2GNP2WA.B7oID6oT.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-NY62KEGX.mjs":"_astro/gitGraphDiagram-NY62KEGX.Co2SKcif.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-WHAUD3N6.mjs":"_astro/infoDiagram-WHAUD3N6.B6ULtps1.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-AYHSOK5B.mjs":"_astro/quadrantDiagram-AYHSOK5B.BlLaQQxO.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/requirementDiagram-UZGBJVZJ.mjs":"_astro/requirementDiagram-UZGBJVZJ.DHRnMofO.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-WL72ISMW.mjs":"_astro/sequenceDiagram-WL72ISMW.CnU62wqy.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-2ON5EDUG.mjs":"_astro/classDiagram-2ON5EDUG.CxT3aW-h.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-WZHVMYZB.mjs":"_astro/classDiagram-v2-WZHVMYZB.CxT3aW-h.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-FKZM4ZOC.mjs":"_astro/stateDiagram-FKZM4ZOC.CewI55YO.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-4FDKWEC3.mjs":"_astro/stateDiagram-v2-4FDKWEC3.7xUQqoNr.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/journeyDiagram-XKPGCS4Q.mjs":"_astro/journeyDiagram-XKPGCS4Q.BSOCzWmw.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-IT6M3QCI.mjs":"_astro/timeline-definition-IT6M3QCI.D1PLRwss.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/kanban-definition-3W4ZIXB7.mjs":"_astro/kanban-definition-3W4ZIXB7.D8KKGc1o.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-S2PKOQOG.mjs":"_astro/diagram-S2PKOQOG.BWisaYrQ.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.mjs":"_astro/diagram-QEK2KX5R.DvS33xWZ.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-VD42YOAC.mjs":"_astro/blockDiagram-VD42YOAC.BBt_VNhR.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/katex@0.16.27/node_modules/katex/dist/katex.mjs":"_astro/katex.XbL3y5x-.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/dagre-6UL2VRFP.mjs":"_astro/dagre-6UL2VRFP.LKVH7b30.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/xychartDiagram-PRI3JC2R.mjs":"_astro/xychartDiagram-PRI3JC2R.CQex0-ul.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/pieDiagram-ADFJNKIX.mjs":"_astro/pieDiagram-ADFJNKIX.bC2VkyoW.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/mindmap-definition-VGOIOE7T.mjs":"_astro/mindmap-definition-VGOIOE7T.G14HgtDw.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-VXUJARFQ.mjs":"_astro/architectureDiagram-VXUJARFQ.De_Gt-YC.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/cose-bilkent-S5V4N54A.mjs":"_astro/cose-bilkent-S5V4N54A.D48yfMll.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/sankeyDiagram-TZEHDZUN.mjs":"_astro/sankeyDiagram-TZEHDZUN.BMuaJBmt.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-PSM6KHXK.mjs":"_astro/diagram-PSM6KHXK.AHgUjH56.js","/Users/wadakatu/www/experiments/screenbook/node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-JELNMOA3.mjs":"_astro/ganttDiagram-JELNMOA3.3vGHETyo.js","astro:scripts/before-hydration.js":""},"inlinedScripts":[["/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/index.astro?astro&type=script&index=0&lang.ts","const n=document.getElementById(\"search\"),g=document.getElementById(\"screen-list\"),a=document.querySelectorAll(\".tag\");let s=null;function l(){const e=n?.value.toLowerCase()??\"\";g?.querySelectorAll(\".card-link\")?.forEach(t=>{const o=t.dataset.title??\"\",i=t.dataset.id??\"\",d=t.dataset.tags??\"\",r=o.includes(e)||i.includes(e),u=!s||d.includes(s);t.style.display=r&&u?\"block\":\"none\"})}n?.addEventListener(\"input\",l);a.forEach(e=>{e.addEventListener(\"click\",()=>{const c=e.dataset.tag;s===c?(s=null,a.forEach(t=>t.classList.remove(\"active\"))):(a.forEach(t=>t.classList.remove(\"active\")),s=c??null,e.classList.add(\"active\")),l()})});"]],"assets":["/_astro/coverage.DDJMzKCq.css","/_astro/coverage.CKIVg4LY.css","/_astro/impact.Cvhl64u1.css","/logo.svg","/_astro/_baseUniq.BGai4mcc.js","/_astro/arc.DUp0dfXj.js","/_astro/architectureDiagram-VXUJARFQ.De_Gt-YC.js","/_astro/blockDiagram-VD42YOAC.BBt_VNhR.js","/_astro/c4Diagram-YG6GDRKO.DfgUlHvt.js","/_astro/channel.CNyr52v1.js","/_astro/chunk-4BX2VUAB.BL0ar6du.js","/_astro/chunk-55IACEB6.CI6SkZkY.js","/_astro/chunk-B4BG7PRW.Z25N80K6.js","/_astro/chunk-DI55MBZ5.BqjPVmi1.js","/_astro/chunk-FMBD7UC4.bZ9DWnFm.js","/_astro/chunk-QN33PNHL.BkzuUgWB.js","/_astro/chunk-QZHKN3VN.C__d68N_.js","/_astro/chunk-TZMSLE5B.BIpu8bMn.js","/_astro/classDiagram-2ON5EDUG.CxT3aW-h.js","/_astro/classDiagram-v2-WZHVMYZB.CxT3aW-h.js","/_astro/clone.U_lSZ6fe.js","/_astro/cose-bilkent-S5V4N54A.D48yfMll.js","/_astro/cytoscape.esm.DtBltrT8.js","/_astro/dagre-6UL2VRFP.LKVH7b30.js","/_astro/defaultLocale.C4B-KCzX.js","/_astro/diagram-PSM6KHXK.AHgUjH56.js","/_astro/diagram-QEK2KX5R.DvS33xWZ.js","/_astro/diagram-S2PKOQOG.BWisaYrQ.js","/_astro/erDiagram-Q2GNP2WA.B7oID6oT.js","/_astro/flowDiagram-NV44I4VS.Bb1qJLxr.js","/_astro/ganttDiagram-JELNMOA3.3vGHETyo.js","/_astro/gitGraphDiagram-NY62KEGX.Co2SKcif.js","/_astro/graph.B5fevUwB.js","/_astro/graph.astro_astro_type_script_index_0_lang.1HlATQ1g.js","/_astro/impact.astro_astro_type_script_index_0_lang.D4cAR9AL.js","/_astro/infoDiagram-WHAUD3N6.B6ULtps1.js","/_astro/init.Gi6I4Gst.js","/_astro/journeyDiagram-XKPGCS4Q.BSOCzWmw.js","/_astro/kanban-definition-3W4ZIXB7.D8KKGc1o.js","/_astro/katex.XbL3y5x-.js","/_astro/layout.8vv24qEg.js","/_astro/linear.B6O9ymuK.js","/_astro/mermaid.core.CReXU7YN.js","/_astro/min.CdGMGVU0.js","/_astro/mindmap-definition-VGOIOE7T.G14HgtDw.js","/_astro/ordinal.BYWQX77i.js","/_astro/pieDiagram-ADFJNKIX.bC2VkyoW.js","/_astro/quadrantDiagram-AYHSOK5B.BlLaQQxO.js","/_astro/requirementDiagram-UZGBJVZJ.DHRnMofO.js","/_astro/sankeyDiagram-TZEHDZUN.BMuaJBmt.js","/_astro/sequenceDiagram-WL72ISMW.CnU62wqy.js","/_astro/stateDiagram-FKZM4ZOC.CewI55YO.js","/_astro/stateDiagram-v2-4FDKWEC3.7xUQqoNr.js","/_astro/timeline-definition-IT6M3QCI.D1PLRwss.js","/_astro/treemap-KMMF4GRG.D3VNVvXF.js","/_astro/xychartDiagram-PRI3JC2R.CQex0-ul.js"],"buildFormat":"directory","checkOrigin":true,"allowedDomains":[],"serverIslandNameMap":[],"key":"5gqhc0kelPRYxBSGO7sG0mfz9J2FqzbzjNNe/945t0s=","sessionConfig":{"driver":"fs-lite","options":{"base":"/Users/wadakatu/www/experiments/screenbook/packages/ui/node_modules/.astro/sessions"}}});
|
|
99
|
+
if (manifest.sessionConfig) manifest.sessionConfig.driverModule = () => import('./chunks/fs-lite_COtHaKzy.mjs');
|
|
100
|
+
|
|
101
|
+
export { manifest };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { e as createComponent, k as renderComponent, r as renderTemplate, m as maybeRenderHead, l as Fragment, h as addAttribute } from '../chunks/astro/server_m7yT4wCr.mjs';
|
|
2
|
+
import 'piccolore';
|
|
3
|
+
import { l as loadScreens, $ as $$Layout } from '../chunks/loadScreens_DJf-tycc.mjs';
|
|
4
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
/* empty css */
|
|
7
|
+
export { renderers } from '../renderers.mjs';
|
|
8
|
+
|
|
9
|
+
function loadCoverage() {
|
|
10
|
+
const coveragePath = join(process.cwd(), ".screenbook", "coverage.json");
|
|
11
|
+
if (!existsSync(coveragePath)) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
const content = readFileSync(coveragePath, "utf-8");
|
|
16
|
+
return JSON.parse(content);
|
|
17
|
+
} catch {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const $$Coverage = createComponent(($$result, $$props, $$slots) => {
|
|
23
|
+
const coverage = loadCoverage();
|
|
24
|
+
loadScreens();
|
|
25
|
+
function getPercentageColor(percentage) {
|
|
26
|
+
if (percentage >= 80) return "text-green-400";
|
|
27
|
+
if (percentage >= 50) return "text-yellow-400";
|
|
28
|
+
return "text-red-400";
|
|
29
|
+
}
|
|
30
|
+
function getPercentageBg(percentage) {
|
|
31
|
+
if (percentage >= 80) return "bg-green-500/20 border-green-500/30";
|
|
32
|
+
if (percentage >= 50) return "bg-yellow-500/20 border-yellow-500/30";
|
|
33
|
+
return "bg-red-500/20 border-red-500/30";
|
|
34
|
+
}
|
|
35
|
+
return renderTemplate`${renderComponent($$result, "Layout", $$Layout, { "title": "Coverage", "currentPage": "coverage", "data-astro-cid-vq7rje7m": true }, { "default": ($$result2) => renderTemplate` ${maybeRenderHead()}<div class="container" data-astro-cid-vq7rje7m> <div class="page-header" data-astro-cid-vq7rje7m> <h1 class="page-title" data-astro-cid-vq7rje7m>Coverage Dashboard</h1> <p class="page-description" data-astro-cid-vq7rje7m>
|
|
36
|
+
Track documentation coverage across your screens.
|
|
37
|
+
</p> </div> ${!coverage ? renderTemplate`<div class="empty-state" data-astro-cid-vq7rje7m> <svg class="empty-state-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" data-astro-cid-vq7rje7m> <path stroke-linecap="round" stroke-linejoin="round" d="M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z" data-astro-cid-vq7rje7m></path> </svg> <h2 class="empty-state-title" data-astro-cid-vq7rje7m>No coverage data</h2> <p class="empty-state-description" data-astro-cid-vq7rje7m>
|
|
38
|
+
Run the build command to generate coverage data.
|
|
39
|
+
</p> <code class="empty-state-code" data-astro-cid-vq7rje7m> <span class="prompt" data-astro-cid-vq7rje7m>$</span> screenbook build
|
|
40
|
+
</code> </div>` : renderTemplate`${renderComponent($$result2, "Fragment", Fragment, { "data-astro-cid-vq7rje7m": true }, { "default": ($$result3) => renderTemplate`<div class="coverage-hero" data-astro-cid-vq7rje7m> <div${addAttribute(`coverage-percentage ${getPercentageBg(coverage.percentage)}`, "class")} data-astro-cid-vq7rje7m> <span${addAttribute(`percentage-value ${getPercentageColor(coverage.percentage)}`, "class")} data-astro-cid-vq7rje7m> ${coverage.percentage}%
|
|
41
|
+
</span> <span class="percentage-label" data-astro-cid-vq7rje7m>Coverage</span> </div> <div class="coverage-stats" data-astro-cid-vq7rje7m> <div class="stat-card" data-astro-cid-vq7rje7m> <div class="stat-value" data-astro-cid-vq7rje7m>${coverage.covered}</div> <div class="stat-label" data-astro-cid-vq7rje7m>Documented</div> </div> <div class="stat-card" data-astro-cid-vq7rje7m> <div class="stat-value" data-astro-cid-vq7rje7m>${coverage.total}</div> <div class="stat-label" data-astro-cid-vq7rje7m>Total Routes</div> </div> <div class="stat-card" data-astro-cid-vq7rje7m> <div class="stat-value" data-astro-cid-vq7rje7m>${coverage.missing.length}</div> <div class="stat-label" data-astro-cid-vq7rje7m>Missing</div> </div> </div> </div> <div class="coverage-grid" data-astro-cid-vq7rje7m> <div class="coverage-section" data-astro-cid-vq7rje7m> <h2 class="section-title" data-astro-cid-vq7rje7m> <svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" data-astro-cid-vq7rje7m> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z" data-astro-cid-vq7rje7m></path> </svg>
|
|
42
|
+
By Owner
|
|
43
|
+
</h2> <div class="owner-list" data-astro-cid-vq7rje7m> ${Object.entries(coverage.byOwner).map(([owner, data]) => renderTemplate`<div class="owner-item" data-astro-cid-vq7rje7m> <div class="owner-info" data-astro-cid-vq7rje7m> <span class="owner-name" data-astro-cid-vq7rje7m>${owner}</span> <span class="owner-count" data-astro-cid-vq7rje7m>${data.count} screen${data.count > 1 ? "s" : ""}</span> </div> <div class="owner-bar" data-astro-cid-vq7rje7m> <div class="owner-bar-fill"${addAttribute(`width: ${Math.round(data.count / coverage.covered * 100)}%`, "style")} data-astro-cid-vq7rje7m></div> </div> </div>`)} </div> </div> <div class="coverage-section" data-astro-cid-vq7rje7m> <h2 class="section-title" data-astro-cid-vq7rje7m> <svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" data-astro-cid-vq7rje7m> <path stroke-linecap="round" stroke-linejoin="round" d="M9.568 3H5.25A2.25 2.25 0 003 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 005.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 009.568 3z" data-astro-cid-vq7rje7m></path> <path stroke-linecap="round" stroke-linejoin="round" d="M6 6h.008v.008H6V6z" data-astro-cid-vq7rje7m></path> </svg>
|
|
44
|
+
By Tag
|
|
45
|
+
</h2> <div class="tags-grid" data-astro-cid-vq7rje7m> ${Object.entries(coverage.byTag).sort(([, a], [, b]) => b - a).map(([tag, count]) => renderTemplate`<a${addAttribute(`/?tag=${encodeURIComponent(tag)}`, "href")} class="tag-card" data-astro-cid-vq7rje7m> <span class="tag-name" data-astro-cid-vq7rje7m>${tag}</span> <span class="tag-count" data-astro-cid-vq7rje7m>${count}</span> </a>`)} </div> </div> </div> ${coverage.missing.length > 0 && renderTemplate`<div class="coverage-section missing-section" data-astro-cid-vq7rje7m> <h2 class="section-title" data-astro-cid-vq7rje7m> <svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" data-astro-cid-vq7rje7m> <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z" data-astro-cid-vq7rje7m></path> </svg>
|
|
46
|
+
Missing Documentation (${coverage.missing.length})
|
|
47
|
+
</h2> <p class="section-description" data-astro-cid-vq7rje7m>
|
|
48
|
+
These routes don't have a <code data-astro-cid-vq7rje7m>screen.meta.ts</code> file yet.
|
|
49
|
+
</p> <div class="missing-list" data-astro-cid-vq7rje7m> ${coverage.missing.map((item) => renderTemplate`<div class="missing-item" data-astro-cid-vq7rje7m> <div class="missing-route" data-astro-cid-vq7rje7m> <svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" data-astro-cid-vq7rje7m> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" data-astro-cid-vq7rje7m></path> </svg> <span data-astro-cid-vq7rje7m>${item.route}</span> </div> <div class="missing-action" data-astro-cid-vq7rje7m> <code class="suggested-path" data-astro-cid-vq7rje7m>${item.suggestedPath}</code> </div> </div>`)} </div> </div>`}<div class="coverage-footer" data-astro-cid-vq7rje7m> <p class="timestamp" data-astro-cid-vq7rje7m>
|
|
50
|
+
Last updated: ${new Date(coverage.timestamp).toLocaleString()} </p> </div> ` })}`} </div> ` })} `;
|
|
51
|
+
}, "/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/coverage.astro", void 0);
|
|
52
|
+
|
|
53
|
+
const $$file = "/Users/wadakatu/www/experiments/screenbook/packages/ui/src/pages/coverage.astro";
|
|
54
|
+
const $$url = "/coverage";
|
|
55
|
+
|
|
56
|
+
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
57
|
+
__proto__: null,
|
|
58
|
+
default: $$Coverage,
|
|
59
|
+
file: $$file,
|
|
60
|
+
url: $$url
|
|
61
|
+
}, Symbol.toStringTag, { value: 'Module' }));
|
|
62
|
+
|
|
63
|
+
const page = () => _page;
|
|
64
|
+
|
|
65
|
+
export { page };
|