@vanrot/devtools 0.0.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/extension/devtools.d.ts +2 -0
- package/dist/extension/devtools.d.ts.map +1 -0
- package/dist/extension/devtools.html +1 -0
- package/dist/extension/devtools.js +6 -0
- package/dist/extension/devtools.js.map +1 -0
- package/dist/extension/manifest.json +7 -0
- package/dist/graph/normalize.d.ts +3 -0
- package/dist/graph/normalize.d.ts.map +1 -0
- package/dist/graph/normalize.js +23 -0
- package/dist/graph/normalize.js.map +1 -0
- package/dist/graph/types.d.ts +122 -0
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +3 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.json +7 -0
- package/dist/node/index.d.ts +3 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +3 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/manifest-reader.d.ts +3 -0
- package/dist/node/manifest-reader.d.ts.map +1 -0
- package/dist/node/manifest-reader.js +48 -0
- package/dist/node/manifest-reader.js.map +1 -0
- package/dist/node/source-fingerprint.d.ts +2 -0
- package/dist/node/source-fingerprint.d.ts.map +1 -0
- package/dist/node/source-fingerprint.js +41 -0
- package/dist/node/source-fingerprint.js.map +1 -0
- package/dist/panel/panel.css +32 -0
- package/dist/panel/panel.d.ts +2 -0
- package/dist/panel/panel.d.ts.map +1 -0
- package/dist/panel/panel.html +8 -0
- package/dist/panel/panel.js +67 -0
- package/dist/panel/panel.js.map +1 -0
- package/dist/panel/state.d.ts +19 -0
- package/dist/panel/state.d.ts.map +1 -0
- package/dist/panel/state.js +46 -0
- package/dist/panel/state.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +30 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/extension/devtools.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,SAAS,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<script type="module" src="./devtools.js"></script>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../src/extension/devtools.ts"],"names":[],"mappings":";AAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC;AAExC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAC3E,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/graph/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,YAAY,CAAC;AAEpB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAoB9E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { projectMapGraphSchemaVersion, } from './types.js';
|
|
2
|
+
export function normalizeGraphManifest(value) {
|
|
3
|
+
if (!isRecord(value)) {
|
|
4
|
+
return { status: 'unreadable', manifest: null, warnings: ['Graph manifest is not an object'] };
|
|
5
|
+
}
|
|
6
|
+
const schemaVersion = value.schemaVersion;
|
|
7
|
+
if (schemaVersion !== projectMapGraphSchemaVersion) {
|
|
8
|
+
return {
|
|
9
|
+
status: 'unsupported-schema',
|
|
10
|
+
manifest: null,
|
|
11
|
+
warnings: [`Unsupported graph manifest schema: ${String(schemaVersion)}`],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
const manifest = value;
|
|
15
|
+
if (manifest.stale.value) {
|
|
16
|
+
return { status: 'stale', manifest, warnings: manifest.stale.reasons };
|
|
17
|
+
}
|
|
18
|
+
return { status: 'ready', manifest, warnings: [] };
|
|
19
|
+
}
|
|
20
|
+
function isRecord(value) {
|
|
21
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/graph/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAG7B,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,iCAAiC,CAAC,EAAE,CAAC;IACjG,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,IAAI,aAAa,KAAK,4BAA4B,EAAE,CAAC;QACnD,OAAO;YACL,MAAM,EAAE,oBAAoB;YAC5B,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,sCAAsC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,KAAwC,CAAC;IAC1D,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACzE,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export declare const projectMapGraphSchemaVersion = 2;
|
|
2
|
+
export type GraphManifestStatus = 'ready' | 'stale' | 'missing' | 'unreadable' | 'unsupported-schema';
|
|
3
|
+
export type ProjectGraphNodeKind = 'route' | 'layout' | 'page' | 'component' | 'dialog' | 'widget' | 'form' | 'template' | 'style' | 'asset' | 'import';
|
|
4
|
+
export type ProjectGraphEdgeKind = 'route-to-page' | 'route-to-layout' | 'layout-to-child-route' | 'component-to-template' | 'component-to-style' | 'component-to-import' | 'component-to-asset' | 'file-imports-file';
|
|
5
|
+
export interface ProjectRoleFile {
|
|
6
|
+
name: string;
|
|
7
|
+
role: 'component' | 'page' | 'dialog' | 'layout' | 'widget' | 'form';
|
|
8
|
+
path: string;
|
|
9
|
+
templatePath: string | null;
|
|
10
|
+
stylePath: string | null;
|
|
11
|
+
}
|
|
12
|
+
export interface ProjectMapRoles {
|
|
13
|
+
components: ProjectRoleFile[];
|
|
14
|
+
pages: ProjectRoleFile[];
|
|
15
|
+
dialogs: ProjectRoleFile[];
|
|
16
|
+
layouts: ProjectRoleFile[];
|
|
17
|
+
widgets: ProjectRoleFile[];
|
|
18
|
+
forms: ProjectRoleFile[];
|
|
19
|
+
}
|
|
20
|
+
export interface ProjectMapI18n {
|
|
21
|
+
locales: string[];
|
|
22
|
+
files: string[];
|
|
23
|
+
}
|
|
24
|
+
export interface GraphStaleState {
|
|
25
|
+
value: boolean;
|
|
26
|
+
reasons: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface ProjectGraphNode {
|
|
29
|
+
id: string;
|
|
30
|
+
kind: ProjectGraphNodeKind;
|
|
31
|
+
label: string;
|
|
32
|
+
path: string | null;
|
|
33
|
+
role?: ProjectRoleFile['role'];
|
|
34
|
+
metadata: Record<string, string | number | boolean | null>;
|
|
35
|
+
}
|
|
36
|
+
export interface ProjectGraphEdge {
|
|
37
|
+
id: string;
|
|
38
|
+
from: string;
|
|
39
|
+
to: string;
|
|
40
|
+
kind: ProjectGraphEdgeKind;
|
|
41
|
+
sourceLocation?: {
|
|
42
|
+
path: string;
|
|
43
|
+
line: number;
|
|
44
|
+
column: number;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export interface ProjectGraph {
|
|
48
|
+
nodes: ProjectGraphNode[];
|
|
49
|
+
edges: ProjectGraphEdge[];
|
|
50
|
+
}
|
|
51
|
+
export interface RouteGraphEntry {
|
|
52
|
+
id: string;
|
|
53
|
+
ref: string;
|
|
54
|
+
path: string;
|
|
55
|
+
parentId: string | null;
|
|
56
|
+
layoutNodeId: string | null;
|
|
57
|
+
pageNodeId: string | null;
|
|
58
|
+
childIds: string[];
|
|
59
|
+
metadata: Record<string, string | number | boolean | null>;
|
|
60
|
+
}
|
|
61
|
+
export interface CompilerGraphMetadata {
|
|
62
|
+
components: Array<{
|
|
63
|
+
path: string;
|
|
64
|
+
templatePath: string | null;
|
|
65
|
+
stylePath: string | null;
|
|
66
|
+
bindings: string[];
|
|
67
|
+
diagnostics: string[];
|
|
68
|
+
}>;
|
|
69
|
+
diagnostics: string[];
|
|
70
|
+
warnings: string[];
|
|
71
|
+
}
|
|
72
|
+
export interface AiRulesGraphMetadata {
|
|
73
|
+
rulesPath: string;
|
|
74
|
+
enabledSections: string[];
|
|
75
|
+
customSections: string[];
|
|
76
|
+
configSource: string | null;
|
|
77
|
+
warnings: string[];
|
|
78
|
+
generatedAt: string;
|
|
79
|
+
}
|
|
80
|
+
export interface ProjectGraphManifest {
|
|
81
|
+
schemaVersion: typeof projectMapGraphSchemaVersion;
|
|
82
|
+
generatedAt: string;
|
|
83
|
+
projectRoot: '.';
|
|
84
|
+
sourceRoot: 'src';
|
|
85
|
+
sourceFingerprint: string;
|
|
86
|
+
stale: GraphStaleState;
|
|
87
|
+
roles: ProjectMapRoles;
|
|
88
|
+
i18n: ProjectMapI18n;
|
|
89
|
+
graph: ProjectGraph;
|
|
90
|
+
routes: RouteGraphEntry[];
|
|
91
|
+
compiler: CompilerGraphMetadata;
|
|
92
|
+
ai: AiRulesGraphMetadata;
|
|
93
|
+
}
|
|
94
|
+
export interface NormalizedGraphManifest {
|
|
95
|
+
status: GraphManifestStatus;
|
|
96
|
+
manifest: ProjectGraphManifest | null;
|
|
97
|
+
warnings: string[];
|
|
98
|
+
}
|
|
99
|
+
export declare const runtimeGraphSchemaVersion = 1;
|
|
100
|
+
export type RuntimeGraphNodeKind = 'component' | 'signal' | 'computed' | 'effect';
|
|
101
|
+
export type RuntimeGraphEdgeKind = 'component-to-signal' | 'signal-to-computed' | 'signal-to-effect' | 'computed-to-effect';
|
|
102
|
+
export interface RuntimeGraphNode {
|
|
103
|
+
id: string;
|
|
104
|
+
kind: RuntimeGraphNodeKind;
|
|
105
|
+
label: string;
|
|
106
|
+
}
|
|
107
|
+
export interface RuntimeGraphEdge {
|
|
108
|
+
from: string;
|
|
109
|
+
to: string;
|
|
110
|
+
kind: RuntimeGraphEdgeKind;
|
|
111
|
+
}
|
|
112
|
+
export type RuntimeGraphEvent = {
|
|
113
|
+
type: 'node';
|
|
114
|
+
node: RuntimeGraphNode;
|
|
115
|
+
} | {
|
|
116
|
+
type: 'edge';
|
|
117
|
+
edge: RuntimeGraphEdge;
|
|
118
|
+
} | {
|
|
119
|
+
type: 'dispose';
|
|
120
|
+
id: string;
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AA0I9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { projectMapGraphSchemaVersion, runtimeGraphSchemaVersion, type AiRulesGraphMetadata, type CompilerGraphMetadata, type GraphManifestStatus, type GraphStaleState, type NormalizedGraphManifest, type ProjectGraph, type ProjectGraphEdge, type ProjectGraphEdgeKind, type ProjectGraphManifest, type ProjectGraphNode, type ProjectGraphNodeKind, type ProjectMapI18n, type ProjectMapRoles, type ProjectRoleFile, type RouteGraphEntry, type RuntimeGraphEdge, type RuntimeGraphEdgeKind, type RuntimeGraphEvent, type RuntimeGraphNode, type RuntimeGraphNodeKind, } from './graph/types.js';
|
|
2
|
+
export { normalizeGraphManifest } from './graph/normalize.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,GAqB1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-reader.d.ts","sourceRoot":"","sources":["../../src/node/manifest-reader.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGnF,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA2C5F"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { normalizeGraphManifest } from '../index.js';
|
|
4
|
+
import { computeProjectSourceFingerprint } from './source-fingerprint.js';
|
|
5
|
+
export async function readProjectGraphManifest(cwd) {
|
|
6
|
+
const manifestPath = join(cwd, '.vanrot', 'project-map.json');
|
|
7
|
+
try {
|
|
8
|
+
const raw = await readFile(manifestPath, 'utf8');
|
|
9
|
+
const parsed = JSON.parse(raw);
|
|
10
|
+
const normalized = normalizeGraphManifest(parsed);
|
|
11
|
+
if (normalized.manifest === null) {
|
|
12
|
+
return normalized;
|
|
13
|
+
}
|
|
14
|
+
const currentFingerprint = await computeProjectSourceFingerprint(cwd);
|
|
15
|
+
if (currentFingerprint === normalized.manifest.sourceFingerprint) {
|
|
16
|
+
return normalized;
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
status: 'stale',
|
|
20
|
+
manifest: {
|
|
21
|
+
...normalized.manifest,
|
|
22
|
+
stale: {
|
|
23
|
+
value: true,
|
|
24
|
+
reasons: ['Source files changed since vr map generated .vanrot/project-map.json'],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
warnings: ['Source files changed since vr map generated .vanrot/project-map.json'],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
if (isMissingFileError(error)) {
|
|
32
|
+
return {
|
|
33
|
+
status: 'missing',
|
|
34
|
+
manifest: null,
|
|
35
|
+
warnings: ['Missing .vanrot/project-map.json. Run vr map.'],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
status: 'unreadable',
|
|
40
|
+
manifest: null,
|
|
41
|
+
warnings: ['Could not read .vanrot/project-map.json. Regenerate it with vr map.'],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function isMissingFileError(error) {
|
|
46
|
+
return typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT';
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=manifest-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-reader.js","sourceRoot":"","sources":["../../src/node/manifest-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAgC,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,GAAW;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,kBAAkB,GAAG,MAAM,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACtE,IAAI,kBAAkB,KAAK,UAAU,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACjE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO;YACL,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE;gBACR,GAAG,UAAU,CAAC,QAAQ;gBACtB,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,CAAC,sEAAsE,CAAC;iBAClF;aACF;YACD,QAAQ,EAAE,CAAC,sEAAsE,CAAC;SACnF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,CAAC,+CAA+C,CAAC;aAC5D,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,qEAAqE,CAAC;SAClF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACnG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-fingerprint.d.ts","sourceRoot":"","sources":["../../src/node/source-fingerprint.ts"],"names":[],"mappings":"AAMA,wBAAsB,+BAA+B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAalF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { readdir, readFile } from 'node:fs/promises';
|
|
3
|
+
import { join, relative, sep } from 'node:path';
|
|
4
|
+
const includedExtensions = new Set(['.ts', '.html', '.css', '.json']);
|
|
5
|
+
export async function computeProjectSourceFingerprint(cwd) {
|
|
6
|
+
const files = await walkProjectFiles(cwd, join(cwd, 'src'));
|
|
7
|
+
const hash = createHash('sha256');
|
|
8
|
+
for (const filePath of files) {
|
|
9
|
+
const projectPath = relative(cwd, filePath).split(sep).join('/');
|
|
10
|
+
hash.update(projectPath);
|
|
11
|
+
hash.update('\0');
|
|
12
|
+
hash.update(await readFile(filePath));
|
|
13
|
+
hash.update('\0');
|
|
14
|
+
}
|
|
15
|
+
return `sha256:${hash.digest('hex')}`;
|
|
16
|
+
}
|
|
17
|
+
async function walkProjectFiles(cwd, dir) {
|
|
18
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
19
|
+
const files = [];
|
|
20
|
+
for (const entry of entries) {
|
|
21
|
+
const path = join(dir, entry.name);
|
|
22
|
+
if (entry.isDirectory()) {
|
|
23
|
+
files.push(...(await walkProjectFiles(cwd, path)));
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (!entry.isFile() || !hasIncludedExtension(entry.name)) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
files.push(path);
|
|
30
|
+
}
|
|
31
|
+
return files.sort((left, right) => left.localeCompare(right));
|
|
32
|
+
}
|
|
33
|
+
function hasIncludedExtension(fileName) {
|
|
34
|
+
for (const extension of includedExtensions) {
|
|
35
|
+
if (fileName.endsWith(extension)) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=source-fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-fingerprint.js","sourceRoot":"","sources":["../../src/node/source-fingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,GAAW;IAC/D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAElC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,GAAW;IACtD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,SAAS;QACX,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
color: #e8ecef;
|
|
3
|
+
background: #111417;
|
|
4
|
+
font-family: Inter, ui-sans-serif, system-ui, sans-serif;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
body {
|
|
8
|
+
margin: 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.vanrot-devtools-panel {
|
|
12
|
+
display: grid;
|
|
13
|
+
gap: 12px;
|
|
14
|
+
padding: 16px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.panel-header h1 {
|
|
18
|
+
margin: 0;
|
|
19
|
+
font-size: 16px;
|
|
20
|
+
font-weight: 700;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.panel-header p {
|
|
24
|
+
margin: 4px 0 0;
|
|
25
|
+
color: #a7b0b8;
|
|
26
|
+
font-size: 12px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.graph-root {
|
|
30
|
+
border: 1px solid #2f363d;
|
|
31
|
+
padding: 12px;
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/panel/panel.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<main id="app" class="vanrot-devtools-panel">
|
|
2
|
+
<header class="panel-header">
|
|
3
|
+
<h1>Vanrot App Graph</h1>
|
|
4
|
+
<p id="manifest-status">Waiting for metadata</p>
|
|
5
|
+
</header>
|
|
6
|
+
<section id="graph-root" class="graph-root"></section>
|
|
7
|
+
</main>
|
|
8
|
+
<script type="module" src="./panel.js"></script>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { createPanelState } from './state.js';
|
|
2
|
+
const metadataPath = '/__vanrot/devtools/metadata';
|
|
3
|
+
const statusElement = document.querySelector('#manifest-status');
|
|
4
|
+
const graphRoot = document.querySelector('#graph-root');
|
|
5
|
+
void loadPanel();
|
|
6
|
+
async function loadPanel() {
|
|
7
|
+
if (!(statusElement instanceof HTMLElement) || !(graphRoot instanceof HTMLElement)) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
const response = await fetch(await resolveMetadataUrl());
|
|
12
|
+
const payload = (await response.json());
|
|
13
|
+
const state = createPanelState(payload);
|
|
14
|
+
renderState(state);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
renderState(createPanelState({
|
|
18
|
+
status: 'missing',
|
|
19
|
+
manifest: null,
|
|
20
|
+
warnings: ['Vanrot metadata endpoint is unavailable. Start a Vanrot dev server.'],
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async function resolveMetadataUrl() {
|
|
25
|
+
const inspectedOrigin = await readInspectedWindowOrigin();
|
|
26
|
+
if (inspectedOrigin === null) {
|
|
27
|
+
return metadataPath;
|
|
28
|
+
}
|
|
29
|
+
return `${inspectedOrigin}${metadataPath}`;
|
|
30
|
+
}
|
|
31
|
+
async function readInspectedWindowOrigin() {
|
|
32
|
+
if (typeof chrome === 'undefined' || chrome.devtools?.inspectedWindow?.eval === undefined) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return new Promise((resolve) => {
|
|
36
|
+
chrome.devtools?.inspectedWindow?.eval('location.origin', (result, exceptionInfo) => {
|
|
37
|
+
if (exceptionInfo?.isException === true || typeof result !== 'string') {
|
|
38
|
+
resolve(null);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
resolve(result);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function renderState(state) {
|
|
46
|
+
if (!(statusElement instanceof HTMLElement) || !(graphRoot instanceof HTMLElement)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
statusElement.textContent = `${state.summary.statusLabel} - ${state.summary.nodeCount} nodes, ${state.summary.edgeCount} edges`;
|
|
50
|
+
graphRoot.replaceChildren();
|
|
51
|
+
if (state.emptyState !== null) {
|
|
52
|
+
const empty = document.createElement('p');
|
|
53
|
+
empty.className = 'empty-state';
|
|
54
|
+
empty.textContent = state.emptyState;
|
|
55
|
+
graphRoot.append(empty);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const list = document.createElement('ul');
|
|
59
|
+
list.className = 'route-list';
|
|
60
|
+
for (const route of state.routes) {
|
|
61
|
+
const item = document.createElement('li');
|
|
62
|
+
item.textContent = `${route.ref} ${route.path} ${route.page ?? ''}`.trim();
|
|
63
|
+
list.append(item);
|
|
64
|
+
}
|
|
65
|
+
graphRoot.append(list);
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../../src/panel/panel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { NormalizedGraphManifest } from '../index.js';
|
|
2
|
+
export interface PanelState {
|
|
3
|
+
summary: {
|
|
4
|
+
statusLabel: string;
|
|
5
|
+
nodeCount: number;
|
|
6
|
+
edgeCount: number;
|
|
7
|
+
routeCount: number;
|
|
8
|
+
generatedAt: string | null;
|
|
9
|
+
};
|
|
10
|
+
routes: Array<{
|
|
11
|
+
ref: string;
|
|
12
|
+
path: string;
|
|
13
|
+
page: string | null;
|
|
14
|
+
}>;
|
|
15
|
+
warnings: string[];
|
|
16
|
+
emptyState: string | null;
|
|
17
|
+
}
|
|
18
|
+
export declare function createPanelState(result: NormalizedGraphManifest): PanelState;
|
|
19
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/panel/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAmB,MAAM,aAAa,CAAC;AAE5E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAClE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU,CA4B5E"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export function createPanelState(result) {
|
|
2
|
+
if (result.manifest === null) {
|
|
3
|
+
return {
|
|
4
|
+
summary: {
|
|
5
|
+
statusLabel: labelForStatus(result.status),
|
|
6
|
+
nodeCount: 0,
|
|
7
|
+
edgeCount: 0,
|
|
8
|
+
routeCount: 0,
|
|
9
|
+
generatedAt: null,
|
|
10
|
+
},
|
|
11
|
+
routes: [],
|
|
12
|
+
warnings: result.warnings,
|
|
13
|
+
emptyState: result.warnings[0] ?? 'No graph manifest available.',
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
summary: {
|
|
18
|
+
statusLabel: labelForStatus(result.status),
|
|
19
|
+
nodeCount: result.manifest.graph.nodes.length,
|
|
20
|
+
edgeCount: result.manifest.graph.edges.length,
|
|
21
|
+
routeCount: result.manifest.routes.length,
|
|
22
|
+
generatedAt: result.manifest.generatedAt,
|
|
23
|
+
},
|
|
24
|
+
routes: result.manifest.routes.map(toRouteRow),
|
|
25
|
+
warnings: result.warnings,
|
|
26
|
+
emptyState: result.manifest.graph.nodes.length === 0 ? 'No app graph nodes found.' : null,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function toRouteRow(route) {
|
|
30
|
+
return { ref: route.ref, path: route.path, page: route.pageNodeId };
|
|
31
|
+
}
|
|
32
|
+
function labelForStatus(status) {
|
|
33
|
+
switch (status) {
|
|
34
|
+
case 'ready':
|
|
35
|
+
return 'Ready';
|
|
36
|
+
case 'stale':
|
|
37
|
+
return 'Stale';
|
|
38
|
+
case 'missing':
|
|
39
|
+
return 'Missing manifest';
|
|
40
|
+
case 'unreadable':
|
|
41
|
+
return 'Unreadable manifest';
|
|
42
|
+
case 'unsupported-schema':
|
|
43
|
+
return 'Unsupported schema';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/panel/state.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,gBAAgB,CAAC,MAA+B;IAC9D,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE;gBACP,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC1C,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,CAAC;gBACb,WAAW,EAAE,IAAI;aAClB;YACD,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,8BAA8B;SACjE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1C,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;YAC7C,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;YAC7C,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM;YACzC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;SACzC;QACD,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI;KAC1F,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAsB;IACxC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,cAAc,CAAC,MAAyC;IAC/D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,kBAAkB,CAAC;QAC5B,KAAK,YAAY;YACf,OAAO,qBAAqB,CAAC;QAC/B,KAAK,oBAAoB;YACvB,OAAO,oBAAoB,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/graph/types.ts","../src/graph/normalize.ts","../src/index.ts","../src/extension/chrome.d.ts","../src/extension/devtools.ts","../src/node/source-fingerprint.ts","../src/node/manifest-reader.ts","../src/node/index.ts","../src/panel/state.ts","../src/panel/panel.ts","../../../node_modules/@types/deep-eql/index.d.ts","../../../node_modules/assertion-error/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[69,70,78,126,143,144],[78,126,143,144],[78,123,124,126,143,144],[78,125,126,143,144],[126,143,144],[78,126,131,143,144,161],[78,126,127,132,137,143,144,146,158,169],[78,126,127,128,137,143,144,146],[73,74,75,78,126,143,144],[78,126,129,143,144,170],[78,126,130,131,138,143,144,147],[78,126,131,143,144,158,166],[78,126,132,134,137,143,144,146],[78,125,126,133,143,144],[78,126,134,135,143,144],[78,126,136,137,143,144],[78,125,126,137,143,144],[78,126,137,138,139,143,144,158,169],[78,126,137,138,139,143,144,153,158,161],[78,119,126,134,137,140,143,144,146,158,169],[78,126,137,138,140,141,143,144,146,158,166,169],[78,126,140,142,143,144,158,166,169],[76,77,78,79,80,81,82,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],[78,126,137,143,144],[78,126,143,144,145,169],[78,126,134,137,143,144,146,158],[78,126,143,144,147],[78,126,143,144,148],[78,125,126,143,144,149],[78,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],[78,126,143,144,151],[78,126,143,144,152],[78,126,137,143,144,153,154],[78,126,143,144,153,155,170,172],[78,126,138,143,144],[78,126,137,143,144,158,159,161],[78,126,143,144,160,161],[78,126,143,144,158,159],[78,126,143,144,161],[78,126,143,144,162],[78,123,126,143,144,158,163,169],[78,126,137,143,144,164,165],[78,126,143,144,164,165],[78,126,131,143,144,146,158,166],[78,126,143,144,167],[78,126,143,144,146,168],[78,126,140,143,144,152,169],[78,126,131,143,144,170],[78,126,143,144,158,171],[78,126,143,144,145,172],[78,126,143,144,173],[78,119,126,143,144],[78,119,126,137,139,143,144,149,158,161,169,171,172,174],[78,126,143,144,158,175],[78,91,95,126,143,144,169],[78,91,126,143,144,158,169],[78,86,126,143,144],[78,88,91,126,143,144,166,169],[78,126,143,144,146,166],[78,126,143,144,176],[78,86,126,143,144,176],[78,88,91,126,143,144,146,169],[78,83,84,87,90,126,137,143,144,158,169],[78,91,98,126,143,144],[78,83,89,126,143,144],[78,91,112,113,126,143,144],[78,87,91,126,143,144,161,169,176],[78,112,126,143,144,176],[78,85,86,126,143,144,176],[78,91,126,143,144],[78,85,86,87,88,89,90,91,92,93,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,114,115,116,117,118,126,143,144],[78,91,106,126,143,144],[78,91,98,99,126,143,144],[78,89,91,99,100,126,143,144],[78,90,126,143,144],[78,83,86,91,126,143,144],[78,91,95,99,100,126,143,144],[78,95,126,143,144],[78,89,91,94,126,143,144,169],[78,83,88,91,98,126,143,144],[78,126,143,144,158],[78,86,91,112,126,143,144,174,176],[59,78,126,143,144],[59,60,78,126,143,144],[64,65,78,126,143,144],[61,64,78,126,139,143,144,148],[78,126,131,139,143,144,148],[61,67,78,126,143,144],[61,78,126,143,144]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"b610b991eef137260b73e02f93ba7233cc81b8c4e49a72fd6ac8bb8e365f2ba7","signature":"582b8e62e85af55462e447c8b8f8c2786e6c99874fcbdf168f8ca34fcb8d3590"},{"version":"11fa77834eb6c6be8f440793a62a74c6cc01260863e6a9c2b97663d7d3aba924","signature":"ff16ed264dee459f96a787a48fb49b0be53254c76637b02618876d3000b7b759"},{"version":"7b89d8d236a33d083753df598c0b8bf4d54ecb04b9fb0f402cd02d37c997abb1","signature":"9cd113e59a70b1fc723823560f98d3045dbcccbdecb32445be63cbf852cd009d"},{"version":"5d65bc73cbed88ad2287c97b6e5146db3ecebf0657da9f175b7fbd3eb2fc3304","affectsGlobalScope":true},{"version":"b7695deae11611d6d3064d5a6b0d73c02f71d81d7fb360c12adb69b06525eccd","signature":"710f9a9688b5ec83ef55b71ba63c256154b87034c83510cf6c457f8b7371778f","affectsGlobalScope":true},{"version":"d45c67ed46843b35797f4f28376352b0d0d2e6b9ca3049810fffa7ba2358f3c7","signature":"7d99d7bd7f3ade9d280394ba610c0f1eff3f16d0b2645186e3a4ec3b095cb3fe"},{"version":"5500b61801413368c67329e1225089d1401cb1d94d81132ef96644abb35bee76","signature":"7622919f975c23da3886a06177fb6d193687b8902ae2e601095bb178c573f98c"},"bbe308769d2f8a2ea906f5239ab3cadfedc8b8a6bb80eda668924710e0a5feb6",{"version":"a9214e61e6a2ea4736043821b3e97ba632b4300dacbd82fcc71b777f32d6f4aa","signature":"ba4b6afabf4298724a7d75a3d3a213b8910973025a83afe77b97a873b63e427b"},{"version":"16b57848f0b13ed55f6223b029f791b3b022c8412b0ed4f7cf1ebc8cf6f79103","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"73b5fa37db36eeac90c4d752e39586f1b57187400c4f5280fd05f16437287a45","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1}],"root":[[59,68]],"options":{"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":99,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./tsconfig.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[71,1],[69,2],[72,2],[123,3],[124,3],[125,4],[78,5],[126,6],[127,7],[128,8],[73,2],[76,9],[74,2],[75,2],[129,10],[130,11],[131,12],[132,13],[133,14],[134,15],[135,15],[136,16],[137,17],[138,18],[139,19],[79,2],[77,2],[140,20],[141,21],[142,22],[176,23],[143,24],[144,2],[145,25],[146,26],[147,27],[148,28],[149,29],[150,30],[151,31],[152,32],[153,33],[154,33],[155,34],[156,2],[157,35],[158,36],[160,37],[159,38],[161,39],[162,40],[163,41],[164,42],[165,43],[166,44],[167,45],[168,46],[169,47],[170,48],[171,49],[172,50],[173,51],[80,2],[81,2],[82,2],[120,52],[121,2],[122,2],[174,53],[175,54],[70,2],[57,2],[58,2],[10,2],[12,2],[11,2],[2,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[3,2],[21,2],[22,2],[4,2],[23,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[38,2],[35,2],[36,2],[37,2],[39,2],[7,2],[40,2],[45,2],[46,2],[41,2],[42,2],[43,2],[44,2],[8,2],[50,2],[47,2],[48,2],[49,2],[51,2],[9,2],[52,2],[53,2],[54,2],[56,2],[55,2],[1,2],[98,55],[108,56],[97,55],[118,57],[89,58],[88,59],[117,60],[111,61],[116,62],[91,63],[105,64],[90,65],[114,66],[86,67],[85,60],[115,68],[87,69],[92,70],[93,2],[96,70],[83,2],[119,71],[109,72],[100,73],[101,74],[103,75],[99,76],[102,77],[112,60],[94,78],[95,79],[104,80],[84,81],[107,72],[106,70],[110,2],[113,82],[62,2],[63,2],[60,83],[59,2],[61,84],[66,85],[65,86],[64,87],[68,88],[67,89]],"latestChangedDtsFile":"./panel/state.d.ts","version":"5.9.3"}
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vanrot/devtools",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"engines": {
|
|
6
|
+
"node": ">=22.14.0"
|
|
7
|
+
},
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./node": {
|
|
16
|
+
"types": "./dist/node/index.d.ts",
|
|
17
|
+
"default": "./dist/node/index.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
25
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
26
|
+
"test": "vitest run",
|
|
27
|
+
"clean": "node -e \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\""
|
|
28
|
+
},
|
|
29
|
+
"packageManager": "pnpm@11.1.3+sha512.c85357fe17ca12dd23dd7071822666dfd7e3cb76fe214e3370b5ea2fb34f2a231185509b63e717f3cd0acb38dd3f8d82bcd5e8172400ae678b70ea4fbed0896d"
|
|
30
|
+
}
|