xml-explorer 0.1.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.
Potentially problematic release.
This version of xml-explorer might be problematic. Click here for more details.
- package/README.md +76 -0
- package/dist/TreeView.d.ts +11 -0
- package/dist/TreeView.d.ts.map +1 -0
- package/dist/XMLExplorer.d.ts +8 -0
- package/dist/XMLExplorer.d.ts.map +1 -0
- package/dist/assets/xmlExplorer.worker-CHTIePgi.js +4 -0
- package/dist/btTree.d.ts +19 -0
- package/dist/btTree.d.ts.map +1 -0
- package/dist/index.cjs +11 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2521 -0
- package/dist/treeCatalog.d.ts +5 -0
- package/dist/treeCatalog.d.ts.map +1 -0
- package/dist/useXmlExplorerEngine.d.ts +40 -0
- package/dist/useXmlExplorerEngine.d.ts.map +1 -0
- package/dist/xmlExplorer.worker.d.ts +2 -0
- package/dist/xmlExplorer.worker.d.ts.map +1 -0
- package/dist/xmlHighlighting.d.ts +11 -0
- package/dist/xmlHighlighting.d.ts.map +1 -0
- package/dist/xmlProtocol.d.ts +109 -0
- package/dist/xmlProtocol.d.ts.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type RuntimeTreeNode, type TreeNode, type XmlSyntax } from "./btTree";
|
|
2
|
+
import type { NodeMapping } from "./xmlProtocol";
|
|
3
|
+
export declare function buildRuntimeTree(source?: TreeNode): RuntimeTreeNode;
|
|
4
|
+
export declare function buildMappingsForSyntax(root: RuntimeTreeNode, syntax: XmlSyntax): NodeMapping[];
|
|
5
|
+
//# sourceMappingURL=treeCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeCatalog.d.ts","sourceRoot":"","sources":["../src/xmlExplorer/treeCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAMjD,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,QAAiB,GAAG,eAAe,CAiB3E;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,SAAS,GAChB,WAAW,EAAE,CAgBf"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { XmlSyntax } from "./btTree";
|
|
2
|
+
import type { MatchLocation, NodeMapping } from "./xmlProtocol";
|
|
3
|
+
type WorkerState = "idle" | "indexing" | "ready" | "error";
|
|
4
|
+
export declare function useXmlExplorerEngine(params: {
|
|
5
|
+
xmlText: string;
|
|
6
|
+
syntax: XmlSyntax;
|
|
7
|
+
mappings: NodeMapping[];
|
|
8
|
+
}): {
|
|
9
|
+
workerState: WorkerState;
|
|
10
|
+
error: string | null;
|
|
11
|
+
countByKey: Record<string, number>;
|
|
12
|
+
countProgress: {
|
|
13
|
+
done: number;
|
|
14
|
+
total: number;
|
|
15
|
+
} | null;
|
|
16
|
+
cursorMatchKey: string | null;
|
|
17
|
+
cursorLookupDebug: {
|
|
18
|
+
targetLine: number;
|
|
19
|
+
targetColumn: number;
|
|
20
|
+
bestIndex: number;
|
|
21
|
+
bestLine: number | null;
|
|
22
|
+
bestColumn: number | null;
|
|
23
|
+
absolutePath: string;
|
|
24
|
+
matchedCursorXpath: string | null;
|
|
25
|
+
} | null | undefined;
|
|
26
|
+
lookupCursor: (line: number, column: number) => void;
|
|
27
|
+
requestMatches: (nodeKey: string, offset: number, limit?: number, context?: Array<{
|
|
28
|
+
nodeKey: string;
|
|
29
|
+
occurrenceIndex: number;
|
|
30
|
+
}>) => Promise<{
|
|
31
|
+
total: number;
|
|
32
|
+
matches: MatchLocation[];
|
|
33
|
+
}>;
|
|
34
|
+
requestCount: (nodeKey: string, context?: Array<{
|
|
35
|
+
nodeKey: string;
|
|
36
|
+
occurrenceIndex: number;
|
|
37
|
+
}>) => Promise<number>;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=useXmlExplorerEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useXmlExplorerEngine.d.ts","sourceRoot":"","sources":["../src/xmlExplorer/useXmlExplorerEngine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EAMZ,MAAM,eAAe,CAAC;AAEvB,KAAK,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAS3D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;;;;;cAmB4D,MAAM;eAAS,MAAM;;;;;;;;;;;;yBAuIxC,MAAM,UAAU,MAAM;8BAqBjD,MAAM,UACP,MAAM,4BAEJ,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;eAExC,MAAM;iBAAW,aAAa,EAAE;;4BAmB5C,MAAM,YACL,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;EA4BlE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xmlExplorer.worker.d.ts","sourceRoot":"","sources":["../src/xmlExplorer/xmlExplorer.worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TreeNode } from "./btTree";
|
|
2
|
+
type Offsets = {
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
5
|
+
};
|
|
6
|
+
export declare function findNodeRangeInSource(xmlText: string, node: any): Offsets | null;
|
|
7
|
+
export declare function findNodeAtPosition(doc: Document, line: number, col: number): any;
|
|
8
|
+
export declare function getAbsoluteXPath(node: any): string;
|
|
9
|
+
export declare function findTreeNodeByXPath(root: TreeNode, targetXpath: string, getNodeXpath: (node: TreeNode) => string | undefined): TreeNode | null;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=xmlHighlighting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xmlHighlighting.d.ts","sourceRoot":"","sources":["../src/xmlExplorer/xmlHighlighting.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,KAAK,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,GAAG,GACR,OAAO,GAAG,IAAI,CA0EhB;AAMD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,GAAG,CA6BL;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CA4BlD;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,GAAG,SAAS,GACnD,QAAQ,GAAG,IAAI,CAyBjB"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { XmlSyntax } from "./btTree";
|
|
2
|
+
export type NodeMapping = {
|
|
3
|
+
key: string;
|
|
4
|
+
id: string;
|
|
5
|
+
xpath: string;
|
|
6
|
+
cursorXpath: string;
|
|
7
|
+
};
|
|
8
|
+
export type MatchLocation = {
|
|
9
|
+
line: number;
|
|
10
|
+
column: number;
|
|
11
|
+
nodeType: number;
|
|
12
|
+
endLine?: number;
|
|
13
|
+
endColumn?: number;
|
|
14
|
+
};
|
|
15
|
+
export type WorkerInitMessage = {
|
|
16
|
+
type: "INIT";
|
|
17
|
+
xmlVersion: number;
|
|
18
|
+
xmlText: string;
|
|
19
|
+
syntax: XmlSyntax;
|
|
20
|
+
mappings: NodeMapping[];
|
|
21
|
+
};
|
|
22
|
+
export type WorkerCursorLookupMessage = {
|
|
23
|
+
type: "CURSOR_LOOKUP";
|
|
24
|
+
xmlVersion: number;
|
|
25
|
+
requestId: number;
|
|
26
|
+
line: number;
|
|
27
|
+
column: number;
|
|
28
|
+
};
|
|
29
|
+
export type WorkerGetMatchesMessage = {
|
|
30
|
+
type: "GET_MATCHES";
|
|
31
|
+
xmlVersion: number;
|
|
32
|
+
requestId: number;
|
|
33
|
+
nodeKey: string;
|
|
34
|
+
offset: number;
|
|
35
|
+
limit: number;
|
|
36
|
+
context?: Array<{
|
|
37
|
+
nodeKey: string;
|
|
38
|
+
occurrenceIndex: number;
|
|
39
|
+
}>;
|
|
40
|
+
};
|
|
41
|
+
export type WorkerGetCountMessage = {
|
|
42
|
+
type: "GET_COUNT";
|
|
43
|
+
xmlVersion: number;
|
|
44
|
+
requestId: number;
|
|
45
|
+
nodeKey: string;
|
|
46
|
+
context?: Array<{
|
|
47
|
+
nodeKey: string;
|
|
48
|
+
occurrenceIndex: number;
|
|
49
|
+
}>;
|
|
50
|
+
};
|
|
51
|
+
export type WorkerRequestMessage = WorkerInitMessage | WorkerCursorLookupMessage | WorkerGetMatchesMessage | WorkerGetCountMessage;
|
|
52
|
+
export type WorkerProgressMessage = {
|
|
53
|
+
type: "INIT_PROGRESS";
|
|
54
|
+
xmlVersion: number;
|
|
55
|
+
scannedElements: number;
|
|
56
|
+
};
|
|
57
|
+
export type WorkerInitReadyMessage = {
|
|
58
|
+
type: "INIT_READY";
|
|
59
|
+
xmlVersion: number;
|
|
60
|
+
scannedElements: number;
|
|
61
|
+
};
|
|
62
|
+
export type WorkerCountBatchMessage = {
|
|
63
|
+
type: "COUNT_BATCH";
|
|
64
|
+
xmlVersion: number;
|
|
65
|
+
entries: Array<{
|
|
66
|
+
key: string;
|
|
67
|
+
count: number;
|
|
68
|
+
}>;
|
|
69
|
+
done: number;
|
|
70
|
+
total: number;
|
|
71
|
+
};
|
|
72
|
+
export type WorkerCursorResultMessage = {
|
|
73
|
+
type: "CURSOR_RESULT";
|
|
74
|
+
xmlVersion: number;
|
|
75
|
+
requestId: number;
|
|
76
|
+
key: string | null;
|
|
77
|
+
debug?: {
|
|
78
|
+
targetLine: number;
|
|
79
|
+
targetColumn: number;
|
|
80
|
+
bestIndex: number;
|
|
81
|
+
bestLine: number | null;
|
|
82
|
+
bestColumn: number | null;
|
|
83
|
+
absolutePath: string;
|
|
84
|
+
matchedCursorXpath: string | null;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
export type WorkerMatchResultMessage = {
|
|
88
|
+
type: "MATCH_RESULT";
|
|
89
|
+
xmlVersion: number;
|
|
90
|
+
requestId: number;
|
|
91
|
+
nodeKey: string;
|
|
92
|
+
total: number;
|
|
93
|
+
matches: MatchLocation[];
|
|
94
|
+
};
|
|
95
|
+
export type WorkerCountResultMessage = {
|
|
96
|
+
type: "COUNT_RESULT";
|
|
97
|
+
xmlVersion: number;
|
|
98
|
+
requestId: number;
|
|
99
|
+
nodeKey: string;
|
|
100
|
+
count: number;
|
|
101
|
+
};
|
|
102
|
+
export type WorkerErrorMessage = {
|
|
103
|
+
type: "ERROR";
|
|
104
|
+
xmlVersion: number;
|
|
105
|
+
requestId?: number;
|
|
106
|
+
message: string;
|
|
107
|
+
};
|
|
108
|
+
export type WorkerResponseMessage = WorkerProgressMessage | WorkerInitReadyMessage | WorkerCountBatchMessage | WorkerCursorResultMessage | WorkerMatchResultMessage | WorkerCountResultMessage | WorkerErrorMessage;
|
|
109
|
+
//# sourceMappingURL=xmlProtocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xmlProtocol.d.ts","sourceRoot":"","sources":["../src/xmlExplorer/xmlProtocol.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "xml-explorer",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "React XML explorer with Monaco editor, XPath mapping and worker-based tree sync.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.cjs",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"require": "./dist/index.cjs"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"sideEffects": false,
|
|
22
|
+
"scripts": {
|
|
23
|
+
"dev": "vite",
|
|
24
|
+
"build": "npm run build:lib && npm run build:types",
|
|
25
|
+
"build:lib": "vite build",
|
|
26
|
+
"build:types": "tsc -p tsconfig.lib.json",
|
|
27
|
+
"lint": "eslint .",
|
|
28
|
+
"preview": "vite preview",
|
|
29
|
+
"prepublishOnly": "npm run build"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"xmldom": "^0.6.0",
|
|
33
|
+
"xpath": "^0.0.34"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"@monaco-editor/react": "^4.7.0",
|
|
37
|
+
"monaco-editor": "^0.55.1",
|
|
38
|
+
"react": "^19.0.0 || ^18.0.0",
|
|
39
|
+
"react-dom": "^19.0.0 || ^18.0.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@eslint/js": "^9.39.1",
|
|
43
|
+
"@types/node": "^24.10.1",
|
|
44
|
+
"@types/react": "^19.2.7",
|
|
45
|
+
"@types/react-dom": "^19.2.3",
|
|
46
|
+
"@types/xmldom": "^0.1.34",
|
|
47
|
+
"@vitejs/plugin-react": "^5.1.1",
|
|
48
|
+
"eslint": "^9.39.1",
|
|
49
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
50
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
51
|
+
"globals": "^16.5.0",
|
|
52
|
+
"monaco-editor": "^0.55.1",
|
|
53
|
+
"react": "^19.2.4",
|
|
54
|
+
"react-dom": "^19.2.4",
|
|
55
|
+
"typescript": "~5.9.3",
|
|
56
|
+
"typescript-eslint": "^8.48.0",
|
|
57
|
+
"vite": "^7.3.1"
|
|
58
|
+
},
|
|
59
|
+
"volta": {
|
|
60
|
+
"node": "22.18.0"
|
|
61
|
+
}
|
|
62
|
+
}
|