@nifrajs/web 2.3.0 → 2.4.0
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/dev-diagnostics.d.ts +20 -0
- package/dist/dev-diagnostics.d.ts.map +1 -0
- package/dist/dev-diagnostics.js +34 -0
- package/dist/dev-diagnostics.js.map +1 -0
- package/dist/dev-error.d.ts +10 -13
- package/dist/dev-error.d.ts.map +1 -1
- package/dist/dev-error.js +50 -36
- package/dist/dev-error.js.map +1 -1
- package/dist/dev-port.d.ts +1 -1
- package/dist/dev-port.d.ts.map +1 -1
- package/dist/dev-port.js +9 -3
- package/dist/dev-port.js.map +1 -1
- package/dist/dev.d.ts +1 -1
- package/dist/dev.d.ts.map +1 -1
- package/dist/dev.js +19 -3
- package/dist/dev.js.map +1 -1
- package/dist/diagnostic.d.ts +93 -0
- package/dist/diagnostic.d.ts.map +1 -0
- package/dist/diagnostic.js +205 -0
- package/dist/diagnostic.js.map +1 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +5 -4
- package/dist/router.js.map +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +20 -3
- package/dist/vite.js.map +1 -1
- package/package.json +7 -2
- package/src/dev-diagnostics.ts +47 -0
- package/src/dev-error.ts +63 -32
- package/src/dev-port.ts +15 -3
- package/src/dev.ts +24 -8
- package/src/diagnostic.ts +284 -0
- package/src/router.ts +7 -4
- package/src/vite.ts +20 -3
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface DevDiagnostics {
|
|
2
|
+
/** True when a request path targets the structured last-error endpoint. */
|
|
3
|
+
isLastErrorPath(pathname: string): boolean;
|
|
4
|
+
/** The JSON body + headers for the last-error endpoint: the most recent failure, or a benign
|
|
5
|
+
* `NIFRA_NONE` shape when nothing has failed yet. `no-store` so a stale failure is never cached. */
|
|
6
|
+
lastError(): {
|
|
7
|
+
readonly body: string;
|
|
8
|
+
readonly headers: Readonly<Record<string, string>>;
|
|
9
|
+
};
|
|
10
|
+
/** Capture a thrown SSR failure: store it for the endpoint and return the overlay HTML. The overlay a
|
|
11
|
+
* person sees and the JSON an agent reads come from this one Diagnostic, so they can never disagree. */
|
|
12
|
+
capture(err: unknown, request: {
|
|
13
|
+
readonly method: string;
|
|
14
|
+
readonly url: string;
|
|
15
|
+
}): string;
|
|
16
|
+
}
|
|
17
|
+
/** One diagnostics surface per dev server. `root` is the resolved project root; it scopes the codeframe
|
|
18
|
+
* to the project (see buildDiagnostic). Both dev servers resolve a concrete root before calling this. */
|
|
19
|
+
export declare function createDevDiagnostics(root: string): DevDiagnostics;
|
|
20
|
+
//# sourceMappingURL=dev-diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-diagnostics.d.ts","sourceRoot":"","sources":["../src/dev-diagnostics.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1C;wGACoG;IACpG,SAAS,IAAI;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAA;IAC1F;4GACwG;IACxG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAA;CAC1F;AAED;yGACyG;AACzG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAoBjE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dev server's diagnostics surface, shared by both dev-server adapters - Bun in `dev.ts`, Vite in
|
|
3
|
+
* `vite.ts`. It owns the one contract that must never drift between them: capture the most recent SSR
|
|
4
|
+
* failure, serve it as JSON at `LAST_ERROR_PATH` with the identity + no-store headers an agent relies on,
|
|
5
|
+
* and render that same failure as the developer overlay. Each adapter keeps only its bundler-specific
|
|
6
|
+
* transport (Bun.serve + HMR vs Vite middlewares + `ssrFixStacktrace`); the diagnostic behaviour lives
|
|
7
|
+
* here once, so a new header or a new capture rule is a single edit both servers pick up.
|
|
8
|
+
*
|
|
9
|
+
* Vite once shipped without the `/__nifra/last-error` endpoint at all - the drift this module prevents.
|
|
10
|
+
*/
|
|
11
|
+
import { renderDiagnosticOverlay } from "./dev-error.js";
|
|
12
|
+
import { buildDiagnostic, LAST_ERROR_PATH } from "./diagnostic.js";
|
|
13
|
+
/** One diagnostics surface per dev server. `root` is the resolved project root; it scopes the codeframe
|
|
14
|
+
* to the project (see buildDiagnostic). Both dev servers resolve a concrete root before calling this. */
|
|
15
|
+
export function createDevDiagnostics(root) {
|
|
16
|
+
let last;
|
|
17
|
+
return {
|
|
18
|
+
isLastErrorPath: (pathname) => pathname === LAST_ERROR_PATH,
|
|
19
|
+
lastError: () => ({
|
|
20
|
+
body: JSON.stringify(last ?? { code: "NIFRA_NONE", message: "No error captured since the dev server started." }),
|
|
21
|
+
headers: {
|
|
22
|
+
"content-type": "application/json; charset=utf-8",
|
|
23
|
+
"cache-control": "no-store",
|
|
24
|
+
"x-content-type-options": "nosniff",
|
|
25
|
+
"x-nifra-diagnostic": "true",
|
|
26
|
+
},
|
|
27
|
+
}),
|
|
28
|
+
capture: (err, request) => {
|
|
29
|
+
last = buildDiagnostic(err, { root, request });
|
|
30
|
+
return renderDiagnosticOverlay(last);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=dev-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-diagnostics.js","sourceRoot":"","sources":["../src/dev-diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAmB,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAanF;yGACyG;AACzG,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,IAAI,IAA4B,CAAA;IAChC,OAAO;QACL,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,eAAe;QAC3D,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,IAAI,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAC3F;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,iCAAiC;gBACjD,eAAe,EAAE,UAAU;gBAC3B,wBAAwB,EAAE,SAAS;gBACnC,oBAAoB,EAAE,MAAM;aAC7B;SACF,CAAC;QACF,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxB,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YAC9C,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAA;QACtC,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/dev-error.d.ts
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Dev-only error overlay. When a loader/action/render throws during `@nifrajs/web/vite` dev, this
|
|
3
|
-
* renders a readable full-page overlay - the
|
|
4
|
-
*
|
|
5
|
-
* Dev-only by construction: it's called solely from the
|
|
6
|
-
* production (production maps errors to the `_error` route boundary).
|
|
3
|
+
* renders a readable full-page overlay from a structured [Diagnostic] - the code, the message, a source
|
|
4
|
+
* codeframe around the offending line, the recognised cause/fix when nifra has one, and the stack -
|
|
5
|
+
* instead of a bare `err.stack` text dump. Dev-only by construction: it's called solely from the dev
|
|
6
|
+
* server's catch, never in production (production maps errors to the `_error` route boundary).
|
|
7
|
+
*
|
|
8
|
+
* The overlay and the agent surfaces (`/__nifra/last-error`, `nifra_explain`) render from the SAME
|
|
9
|
+
* `Diagnostic`, so a person and an agent see the identical failure, one as HTML and one as JSON.
|
|
7
10
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* production error page.
|
|
12
|
-
*/
|
|
13
|
-
export declare function renderDevErrorOverlay(err: unknown, req: {
|
|
14
|
-
method: string;
|
|
15
|
-
url: string;
|
|
16
|
-
}): string;
|
|
11
|
+
import type { Diagnostic } from "./diagnostic.js";
|
|
12
|
+
/** Render the overlay HTML from a prebuilt Diagnostic (the same object the agent surfaces serve). */
|
|
13
|
+
export declare function renderDiagnosticOverlay(diagnostic: Diagnostic): string;
|
|
17
14
|
//# sourceMappingURL=dev-error.d.ts.map
|
package/dist/dev-error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-error.d.ts","sourceRoot":"","sources":["../src/dev-error.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dev-error.d.ts","sourceRoot":"","sources":["../src/dev-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AA+BjD,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAkDtE"}
|
package/dist/dev-error.js
CHANGED
|
@@ -1,35 +1,34 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dev-only error overlay. When a loader/action/render throws during `@nifrajs/web/vite` dev, this
|
|
3
|
-
* renders a readable full-page overlay - the message, the source-mapped stack (Vite's
|
|
4
|
-
* `ssrFixStacktrace` runs first), and the request line - instead of the bare `err.stack` text dump.
|
|
5
|
-
* Dev-only by construction: it's called solely from the Vite middleware's catch, never in
|
|
6
|
-
* production (production maps errors to the `_error` route boundary).
|
|
7
|
-
*/
|
|
8
1
|
const esc = (s) => s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
9
|
-
/**
|
|
10
|
-
function
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
frames: lines.slice(firstFrame).map((l) => l.trim()),
|
|
20
|
-
};
|
|
2
|
+
/** The source codeframe block: numbered lines with the offending one highlighted. */
|
|
3
|
+
function codeframeHtml(diagnostic) {
|
|
4
|
+
const cf = diagnostic.codeframe;
|
|
5
|
+
if (cf === undefined)
|
|
6
|
+
return "";
|
|
7
|
+
const loc = `${esc(cf.file)}:${cf.line}${cf.column !== undefined ? `:${cf.column}` : ""}`;
|
|
8
|
+
const rows = cf.lines
|
|
9
|
+
.map((l) => `<div class="cf-row${l.caret ? " caret" : ""}"><span class="cf-ln">${l.number}</span><span class="cf-src">${esc(l.text) || " "}</span></div>`)
|
|
10
|
+
.join("");
|
|
11
|
+
return `<h1>Source</h1><div class="cf-loc">${loc}</div><div class="codeframe">${rows}</div>`;
|
|
21
12
|
}
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
13
|
+
/** The recognised-failure callout: cause + fix + docs anchor, shown only when nifra classified the error. */
|
|
14
|
+
function fixHtml(diagnostic) {
|
|
15
|
+
if (diagnostic.fix === undefined)
|
|
16
|
+
return "";
|
|
17
|
+
const anchor = diagnostic.docsAnchor !== undefined
|
|
18
|
+
? `<div class="fix-docs">docs: <code>${esc(diagnostic.docsAnchor)}</code></div>`
|
|
19
|
+
: "";
|
|
20
|
+
const cause = diagnostic.cause !== undefined ? `<p class="fix-cause">${esc(diagnostic.cause)}</p>` : "";
|
|
21
|
+
return `<div class="fix"><div class="fix-tag">likely fix</div>${cause}<p class="fix-do">${esc(diagnostic.fix)}</p>${anchor}</div>`;
|
|
22
|
+
}
|
|
23
|
+
/** Render the overlay HTML from a prebuilt Diagnostic (the same object the agent surfaces serve). */
|
|
24
|
+
export function renderDiagnosticOverlay(diagnostic) {
|
|
25
|
+
const name = esc(diagnostic.name || "Error");
|
|
26
|
+
const code = esc(diagnostic.code);
|
|
27
|
+
const reqLine = diagnostic.request !== undefined
|
|
28
|
+
? `<span class="req">${esc(diagnostic.request.method)} ${esc(diagnostic.request.url)}</span>`
|
|
29
|
+
: "";
|
|
30
|
+
const framesHtml = diagnostic.frames.length > 0
|
|
31
|
+
? `<ol class="frames">${diagnostic.frames.map((f) => `<li>${esc(f.raw)}</li>`).join("")}</ol>`
|
|
33
32
|
: `<p class="no-frames">No stack frames.</p>`;
|
|
34
33
|
return `<!doctype html><html lang="en"><head><meta charset="utf-8"><title>${name} - nifra dev</title>
|
|
35
34
|
<style>
|
|
@@ -37,23 +36,38 @@ export function renderDevErrorOverlay(err, req) {
|
|
|
37
36
|
body { margin: 0; background: #0b0d10; color: #e6e6e6; font: 14px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; }
|
|
38
37
|
.bar { background: #2a0e0e; border-bottom: 1px solid #5a1d1d; padding: 10px 20px; font-weight: 700; color: #ff8a8a; display: flex; gap: 12px; align-items: baseline; }
|
|
39
38
|
.bar .tag { font-size: 11px; font-weight: 600; color: #ffb4b4; background: #401616; padding: 2px 8px; border-radius: 99px; letter-spacing: .04em; text-transform: uppercase; }
|
|
39
|
+
.bar .code { font-size: 11px; font-weight: 600; color: #ffd9a0; background: #3a2a12; padding: 2px 8px; border-radius: 99px; letter-spacing: .04em; }
|
|
40
40
|
.bar .req { margin-left: auto; color: #c98; font-weight: 500; font-size: 12px; }
|
|
41
41
|
main { padding: 24px 28px; max-width: 1000px; }
|
|
42
|
-
h1 { font-size: 13px; color: #9aa; font-weight: 600; margin:
|
|
43
|
-
|
|
42
|
+
h1 { font-size: 13px; color: #9aa; font-weight: 600; margin: 24px 0 6px; text-transform: uppercase; letter-spacing: .05em; }
|
|
43
|
+
h1:first-of-type { margin-top: 0; }
|
|
44
|
+
.message { font-size: 18px; color: #ff9b9b; white-space: pre-wrap; margin: 0 0 4px; font-weight: 600; }
|
|
45
|
+
.fix { background: #10241a; border: 1px solid #1f4d38; border-radius: 8px; padding: 12px 16px; margin: 20px 0; }
|
|
46
|
+
.fix-tag { font-size: 11px; font-weight: 700; color: #7fe0af; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 6px; }
|
|
47
|
+
.fix-cause { margin: 0 0 8px; color: #b9c9c1; }
|
|
48
|
+
.fix-do { margin: 0; color: #d6f2e4; }
|
|
49
|
+
.fix-docs { margin-top: 8px; font-size: 12px; color: #6a8; }
|
|
50
|
+
.cf-loc { color: #c98; font-size: 12px; margin-bottom: 8px; }
|
|
51
|
+
.codeframe { background: #0f1319; border: 1px solid #222; border-radius: 8px; overflow: auto; }
|
|
52
|
+
.cf-row { display: flex; white-space: pre; }
|
|
53
|
+
.cf-row.caret { background: #2a1414; }
|
|
54
|
+
.cf-ln { color: #556; text-align: right; width: 48px; padding: 1px 12px 1px 0; user-select: none; flex: none; border-right: 1px solid #222; }
|
|
55
|
+
.cf-row.caret .cf-ln { color: #ff8a8a; }
|
|
56
|
+
.cf-src { padding: 1px 0 1px 12px; color: #cdd6e0; }
|
|
44
57
|
.frames { list-style: none; margin: 0; padding: 0; border-left: 2px solid #333; }
|
|
45
58
|
.frames li { padding: 3px 0 3px 16px; color: #9fb0c0; white-space: pre-wrap; word-break: break-all; }
|
|
46
59
|
.frames li:first-child { color: #d6e2ee; }
|
|
47
60
|
.no-frames { color: #778; }
|
|
48
61
|
footer { margin-top: 28px; color: #667; font-size: 12px; }
|
|
49
62
|
</style></head><body>
|
|
50
|
-
<div class="bar"><span class="tag">nifra dev</span><span>${
|
|
63
|
+
<div class="bar"><span class="tag">nifra dev</span><span class="code">${code}</span><span>${name}</span>${reqLine}</div>
|
|
51
64
|
<main>
|
|
52
|
-
<
|
|
53
|
-
|
|
65
|
+
<p class="message">${esc(diagnostic.message)}</p>
|
|
66
|
+
${fixHtml(diagnostic)}
|
|
67
|
+
${codeframeHtml(diagnostic)}
|
|
54
68
|
<h1>Stack</h1>
|
|
55
69
|
${framesHtml}
|
|
56
|
-
<footer>This overlay is shown only by the dev server. In production this error maps to your <code>_error</code> route boundary.</footer>
|
|
70
|
+
<footer>This overlay is shown only by the dev server. Its structured form is at <code>/__nifra/last-error</code> and via <code>nifra_explain</code>. In production this error maps to your <code>_error</code> route boundary.</footer>
|
|
57
71
|
</main></body></html>`;
|
|
58
72
|
}
|
|
59
73
|
//# sourceMappingURL=dev-error.js.map
|
package/dist/dev-error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-error.js","sourceRoot":"","sources":["../src/dev-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-error.js","sourceRoot":"","sources":["../src/dev-error.ts"],"names":[],"mappings":"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"}
|
package/dist/dev-port.d.ts
CHANGED
|
@@ -32,5 +32,5 @@ export interface ListenTarget {
|
|
|
32
32
|
* Without an `error` listener attached, Node throws from deep inside `node:events`, the new process dies
|
|
33
33
|
* in the background, and nothing connects that death to the stale page in front of you.
|
|
34
34
|
*/
|
|
35
|
-
export declare function listenOrExplain(server: ListenTarget, port: number): Promise<void>;
|
|
35
|
+
export declare function listenOrExplain(server: ListenTarget, port: number, hostname?: string): Promise<void>;
|
|
36
36
|
//# sourceMappingURL=dev-port.d.ts.map
|
package/dist/dev-port.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-port.d.ts","sourceRoot":"","sources":["../src/dev-port.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED,oFAAoF;AACpF,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,OACa,CAAA;AAI3D,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,GAAI,KAAK,OAAO,EAAE,MAAM,MAAM,KAAG,KACQ,CAAA;AAExE,qGAAqG;AACrG,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAC1C,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAA;IACtD,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAA;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,
|
|
1
|
+
{"version":3,"file":"dev-port.d.ts","sourceRoot":"","sources":["../src/dev-port.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED,oFAAoF;AACpF,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,OACa,CAAA;AAI3D,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,GAAI,KAAK,OAAO,EAAE,MAAM,MAAM,KAAG,KACQ,CAAA;AAExE,qGAAqG;AACrG,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAC1C,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAA;IACtD,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAA;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
package/dist/dev-port.js
CHANGED
|
@@ -33,16 +33,22 @@ export const explainBindFailure = (err, port) => isAddressInUse(err) ? new Error
|
|
|
33
33
|
* Without an `error` listener attached, Node throws from deep inside `node:events`, the new process dies
|
|
34
34
|
* in the background, and nothing connects that death to the stale page in front of you.
|
|
35
35
|
*/
|
|
36
|
-
export function listenOrExplain(server, port) {
|
|
36
|
+
export function listenOrExplain(server, port, hostname) {
|
|
37
37
|
return new Promise((resolve, reject) => {
|
|
38
38
|
const onError = (err) => reject(explainBindFailure(err, port));
|
|
39
39
|
server.once("error", onError);
|
|
40
|
-
|
|
40
|
+
const onListening = () => {
|
|
41
41
|
// Drop the guard once we're listening: leaving it attached would funnel a LATER server error into
|
|
42
42
|
// an already-settled promise, silently swallowing it instead of surfacing it.
|
|
43
43
|
server.removeListener("error", onError);
|
|
44
44
|
resolve();
|
|
45
|
-
}
|
|
45
|
+
};
|
|
46
|
+
if (hostname === undefined)
|
|
47
|
+
server.listen(port, onListening);
|
|
48
|
+
else {
|
|
49
|
+
;
|
|
50
|
+
server.listen(port, hostname, onListening);
|
|
51
|
+
}
|
|
46
52
|
});
|
|
47
53
|
}
|
|
48
54
|
//# sourceMappingURL=dev-port.js.map
|
package/dist/dev-port.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-port.js","sourceRoot":"","sources":["../src/dev-port.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,2FAA2F;AAC3F,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,CACL,wCAAwC,IAAI,uBAAuB;QACnE,mGAAmG;QACnG,yFAAyF;QACzF,8BAA8B,IAAI,iBAAiB;QACnD,sCAAsC,IAAI,GAAG,CAAC,EAAE,CACjD,CAAA;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAY,EAAW,EAAE,CACrD,GAAiC,EAAE,IAAI,KAAK,YAAY,CAAA;AAE3D,MAAM,OAAO,GAAG,CAAC,GAAY,EAAS,EAAE,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAE9F,mGAAmG;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAY,EAAE,IAAY,EAAS,EAAE,CACtE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AASxE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,
|
|
1
|
+
{"version":3,"file":"dev-port.js","sourceRoot":"","sources":["../src/dev-port.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,2FAA2F;AAC3F,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,CACL,wCAAwC,IAAI,uBAAuB;QACnE,mGAAmG;QACnG,yFAAyF;QACzF,8BAA8B,IAAI,iBAAiB;QACnD,sCAAsC,IAAI,GAAG,CAAC,EAAE,CACjD,CAAA;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAY,EAAW,EAAE,CACrD,GAAiC,EAAE,IAAI,KAAK,YAAY,CAAA;AAE3D,MAAM,OAAO,GAAG,CAAC,GAAY,EAAS,EAAE,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAE9F,mGAAmG;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAY,EAAE,IAAY,EAAS,EAAE,CACtE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AASxE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAoB,EACpB,IAAY,EACZ,QAAiB;IAEjB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,CAAC,GAAY,EAAQ,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QAC7E,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC7B,MAAM,WAAW,GAAG,GAAS,EAAE;YAC7B,kGAAkG;YAClG,8EAA8E;YAC9E,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACvC,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QACD,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;aACvD,CAAC;YACJ,CAAC;YACC,MAGD,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;QACvC,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/dev.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type BuildClientOptions } from "./build.js";
|
|
2
|
+
export { LAST_ERROR_PATH } from "./diagnostic.js";
|
|
2
3
|
/** Minimal app surface the dev server needs - `createWebApp(...)` satisfies it. */
|
|
3
4
|
interface FetchApp {
|
|
4
5
|
fetch(request: Request): Response | Promise<Response>;
|
|
@@ -78,5 +79,4 @@ export declare function styleTags(styles: readonly string[]): string;
|
|
|
78
79
|
export declare function injectStyles(html: string, styles: readonly string[]): string;
|
|
79
80
|
/** Start the Bun dev server: generate → bundle → serve → watch → hot-reload on change. */
|
|
80
81
|
export declare function createDevServer(options: DevServerOptions): Promise<DevServer>;
|
|
81
|
-
export {};
|
|
82
82
|
//# sourceMappingURL=dev.d.ts.map
|
package/dist/dev.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAsDA,OAAO,EAAE,KAAK,kBAAkB,EAAe,MAAM,YAAY,CAAA;AAQjE,mFAAmF;AACnF,UAAU,QAAQ;IAChB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC1E;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9F,qDAAqD;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;sFACkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,IAAI,IAAI,IAAI,CAAA;CACb;AAaD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAsDA,OAAO,EAAE,KAAK,kBAAkB,EAAe,MAAM,YAAY,CAAA;AAQjE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,mFAAmF;AACnF,UAAU,QAAQ;IAChB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC1E;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9F,qDAAqD;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;sFACkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,IAAI,IAAI,IAAI,CAAA;CACb;AAaD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAyCrD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAsBjE;AAED,wGAAwG;AACxG,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAQ3D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAM5E;AAED,0FAA0F;AAC1F,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAoPnF"}
|
package/dist/dev.js
CHANGED
|
@@ -54,11 +54,12 @@ import { mkdirSync, readdirSync, readFileSync, rmSync, unwatchFile, watchFile, w
|
|
|
54
54
|
import { dirname, relative, resolve } from "node:path";
|
|
55
55
|
import { buildClient } from "./build.js";
|
|
56
56
|
import { resolveDevEntry } from "./bun-dev-entry.js";
|
|
57
|
-
import {
|
|
57
|
+
import { createDevDiagnostics } from "./dev-diagnostics.js";
|
|
58
58
|
import { explainBindFailure } from "./dev-port.js";
|
|
59
59
|
import { discoverRoutes } from "./fs.js";
|
|
60
60
|
import { DEFAULT_DEV_PORT, generateClientEntry } from "./index.js";
|
|
61
61
|
import { servePublicDir } from "./public-dir.js";
|
|
62
|
+
export { LAST_ERROR_PATH } from "./diagnostic.js";
|
|
62
63
|
/**
|
|
63
64
|
* Where the generated dev files live. A dot-directory inside the project, not a temp dir: Bun's bundler
|
|
64
65
|
* resolves the entry's imports the way the runtime does, so it has to sit where the app's routes and
|
|
@@ -171,6 +172,10 @@ export async function createDevServer(options) {
|
|
|
171
172
|
// The app root. `routesDir` is `<app>/routes` by convention, so its parent is the project - the one
|
|
172
173
|
// place a generated entry can sit and still resolve the app's imports.
|
|
173
174
|
const root = resolve(routesDir, "..");
|
|
175
|
+
// The most recent SSR failure as a structured Diagnostic, scoped to THIS server. Served at
|
|
176
|
+
// LAST_ERROR_PATH so an agent driving the dev server reads the exact failure (code, codeframe, fix) as
|
|
177
|
+
// JSON instead of scraping the overlay. Shared with the Vite adapter so the endpoint can't drift.
|
|
178
|
+
const devDiagnostics = createDevDiagnostics(root);
|
|
174
179
|
const devDir = resolve(root, DEV_DIR);
|
|
175
180
|
const entryPath = resolve(devDir, "entry.tsx");
|
|
176
181
|
const htmlPath = resolve(devDir, "entry.html");
|
|
@@ -263,6 +268,7 @@ export async function createDevServer(options) {
|
|
|
263
268
|
try {
|
|
264
269
|
server = serve({
|
|
265
270
|
port,
|
|
271
|
+
hostname: "127.0.0.1",
|
|
266
272
|
development: { hmr: true },
|
|
267
273
|
// The probe route is the ONLY path Bun owns; everything else falls through to nifra's SSR.
|
|
268
274
|
routes: { [PROBE_PATH]: htmlModule.default },
|
|
@@ -278,6 +284,11 @@ export async function createDevServer(options) {
|
|
|
278
284
|
const entry = await currentEntry();
|
|
279
285
|
return new Response(null, { status: 307, headers: { location: entry.src } });
|
|
280
286
|
}
|
|
287
|
+
if (devDiagnostics.isLastErrorPath(url.pathname)) {
|
|
288
|
+
// The structured form of the overlay, for an agent driving the dev server (shared surface).
|
|
289
|
+
const { body, headers } = devDiagnostics.lastError();
|
|
290
|
+
return new Response(body, { headers });
|
|
291
|
+
}
|
|
281
292
|
// Static probe before routing; a miss returns undefined and falls through, so no route is
|
|
282
293
|
// shadowed and a page render never pays a filesystem stat (extension-less paths skip it).
|
|
283
294
|
const staticFile = await servePublic(req);
|
|
@@ -300,10 +311,15 @@ export async function createDevServer(options) {
|
|
|
300
311
|
});
|
|
301
312
|
}
|
|
302
313
|
catch (err) {
|
|
303
|
-
|
|
314
|
+
// One Diagnostic drives both surfaces: the overlay returned here and the JSON at LAST_ERROR_PATH.
|
|
315
|
+
const html = devDiagnostics.capture(err, {
|
|
304
316
|
method: req.method,
|
|
305
317
|
url: `${url.pathname}${url.search}`,
|
|
306
|
-
})
|
|
318
|
+
});
|
|
319
|
+
return new Response(html, {
|
|
320
|
+
status: 500,
|
|
321
|
+
headers: { "content-type": "text/html; charset=utf-8" },
|
|
322
|
+
});
|
|
307
323
|
}
|
|
308
324
|
},
|
|
309
325
|
});
|
package/dist/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/** Shared endpoint name used by both dev pipelines and the agent-facing MCP tools. */
|
|
2
|
+
export declare const LAST_ERROR_PATH = "/__nifra/last-error";
|
|
3
|
+
/** One parsed stack frame. `file`/`line`/`column` are present only when the frame could be located. */
|
|
4
|
+
export interface DiagnosticFrame {
|
|
5
|
+
readonly raw: string;
|
|
6
|
+
readonly file?: string;
|
|
7
|
+
readonly line?: number;
|
|
8
|
+
readonly column?: number;
|
|
9
|
+
}
|
|
10
|
+
/** A source window around the offending line. `caret` marks the exact line the top frame points at. */
|
|
11
|
+
export interface Codeframe {
|
|
12
|
+
readonly file: string;
|
|
13
|
+
readonly line: number;
|
|
14
|
+
readonly column?: number | undefined;
|
|
15
|
+
readonly lines: ReadonlyArray<{
|
|
16
|
+
readonly number: number;
|
|
17
|
+
readonly text: string;
|
|
18
|
+
readonly caret: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
/** The structured failure. Serialisable as-is to JSON for the agent surfaces. */
|
|
22
|
+
export interface Diagnostic {
|
|
23
|
+
/** Stable, greppable identifier, e.g. `NIFRA_SERVER_ONLY_IN_CLIENT`. `NIFRA_UNHANDLED` when unrecognised. */
|
|
24
|
+
readonly code: string;
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly message: string;
|
|
27
|
+
readonly request?: {
|
|
28
|
+
readonly method: string;
|
|
29
|
+
readonly url: string;
|
|
30
|
+
} | undefined;
|
|
31
|
+
readonly frames: readonly DiagnosticFrame[];
|
|
32
|
+
readonly codeframe?: Codeframe | undefined;
|
|
33
|
+
/** Plain-language "why this happened", when the failure is recognised. */
|
|
34
|
+
readonly cause?: string | undefined;
|
|
35
|
+
/** Plain-language "do this", when the failure is recognised. */
|
|
36
|
+
readonly fix?: string | undefined;
|
|
37
|
+
/** Docs section anchor for the code, e.g. `errors#server-only-in-client`. */
|
|
38
|
+
readonly docsAnchor?: string | undefined;
|
|
39
|
+
}
|
|
40
|
+
/** Reads a source file's text, or returns undefined if it cannot (missing, binary, permission). */
|
|
41
|
+
export type SourceReader = (file: string) => string | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Parse a V8/Node stack into structured frames. Handles the `at fn (path:line:col)`, bare
|
|
44
|
+
* `at path:line:col`, and `at async fn (...)` shapes; a frame that doesn't match keeps its raw text
|
|
45
|
+
* with no location (so nothing is silently dropped).
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseFrames(stack: string): DiagnosticFrame[];
|
|
48
|
+
/** The first frame that points at the user's own source - what the codeframe should show. */
|
|
49
|
+
export declare function topUserFrame(frames: readonly DiagnosticFrame[], root: string | undefined): DiagnosticFrame | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Build a source codeframe: `radius` lines either side of `line`, each tagged with its 1-based number
|
|
52
|
+
* and whether it is the offending line. Returns undefined if the source can't be read or the line is
|
|
53
|
+
* out of range - a diagnostic without a codeframe is still useful, so this never throws.
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildCodeframe(file: string, line: number, column: number | undefined, read?: SourceReader, radius?: number): Codeframe | undefined;
|
|
56
|
+
/** A recognised failure shape: a stable code plus the plain-language cause/fix/anchor to attach. */
|
|
57
|
+
interface CatalogEntry {
|
|
58
|
+
readonly code: string;
|
|
59
|
+
readonly match: (name: string, message: string) => boolean;
|
|
60
|
+
readonly cause: string;
|
|
61
|
+
readonly fix: string;
|
|
62
|
+
readonly docsAnchor: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The recognised-failure catalog. Seeded with the highest-signal nifra failures; extend it as new
|
|
66
|
+
* classes of error earn a stable code. Order matters only in that the first match wins.
|
|
67
|
+
*/
|
|
68
|
+
export declare const DIAGNOSTIC_CATALOG: readonly CatalogEntry[];
|
|
69
|
+
/** Classify an error name+message against the catalog; falls back to the generic unhandled code. */
|
|
70
|
+
export declare function classify(name: string, message: string): {
|
|
71
|
+
code: string;
|
|
72
|
+
cause?: string;
|
|
73
|
+
fix?: string;
|
|
74
|
+
docsAnchor?: string;
|
|
75
|
+
};
|
|
76
|
+
export interface BuildDiagnosticOptions {
|
|
77
|
+
readonly request?: {
|
|
78
|
+
readonly method: string;
|
|
79
|
+
readonly url: string;
|
|
80
|
+
};
|
|
81
|
+
/** Project root; frames outside it are treated as non-user. Defaults to `process.cwd()`. */
|
|
82
|
+
readonly root?: string;
|
|
83
|
+
/** Injectable source reader (tests pass a fake; production reads the filesystem). */
|
|
84
|
+
readonly read?: SourceReader;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Resolve any thrown value into a `Diagnostic`: parse the (already source-mapped) stack, locate the top
|
|
88
|
+
* user frame, attach a codeframe, and classify the failure for a cause/fix. The caller is responsible
|
|
89
|
+
* for running Vite's `ssrFixStacktrace` first so the frames point at real source.
|
|
90
|
+
*/
|
|
91
|
+
export declare function buildDiagnostic(err: unknown, options?: BuildDiagnosticOptions): Diagnostic;
|
|
92
|
+
export {};
|
|
93
|
+
//# sourceMappingURL=diagnostic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"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"}
|