@dialecte/core 0.4.11 → 0.4.12
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/document/document.d.ts +18 -2
- package/dist/document/document.d.ts.map +1 -1
- package/dist/document/index.d.ts +1 -0
- package/dist/document/index.d.ts.map +1 -1
- package/dist/document/progress/create-progress-reporter.d.ts +19 -0
- package/dist/document/progress/create-progress-reporter.d.ts.map +1 -0
- package/dist/document/progress/index.d.ts +4 -0
- package/dist/document/progress/index.d.ts.map +1 -0
- package/dist/document/progress/noop-progress-reporter.d.ts +4 -0
- package/dist/document/progress/noop-progress-reporter.d.ts.map +1 -0
- package/dist/document/progress/progress.types.d.ts +48 -0
- package/dist/document/progress/progress.types.d.ts.map +1 -0
- package/dist/document/query/get/record/get-record.d.ts.map +1 -1
- package/dist/document/query/get/record/get-records-by-tagname.d.ts.map +1 -1
- package/dist/document/query/main.d.ts +5 -1
- package/dist/document/query/main.d.ts.map +1 -1
- package/dist/document/transaction/clone/clone.d.ts.map +1 -1
- package/dist/document/transaction/commit/commit.d.ts +4 -0
- package/dist/document/transaction/commit/commit.d.ts.map +1 -1
- package/dist/document/transaction/main.d.ts +6 -1
- package/dist/document/transaction/main.d.ts.map +1 -1
- package/dist/document/types.d.ts +5 -5
- package/dist/document/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/perf/create-perf.d.ts +13 -0
- package/dist/perf/create-perf.d.ts.map +1 -0
- package/dist/perf/index.d.ts +4 -0
- package/dist/perf/index.d.ts.map +1 -0
- package/dist/perf/noop-perf.d.ts +4 -0
- package/dist/perf/noop-perf.d.ts.map +1 -0
- package/dist/perf/perf.types.d.ts +43 -0
- package/dist/perf/perf.types.d.ts.map +1 -0
- package/dist/project/io/import-document.d.ts.map +1 -1
- package/dist/project/project.d.ts +19 -1
- package/dist/project/project.d.ts.map +1 -1
- package/dist/project/types.d.ts +3 -0
- package/dist/project/types.d.ts.map +1 -1
- package/dist/{project-BjO7cVmO.js → project-DkMkDgld.js} +1262 -1106
- package/dist/test/create-test-dialecte.d.ts +3 -0
- package/dist/test/create-test-dialecte.d.ts.map +1 -1
- package/dist/test/fixtures/generate-stress-fixtures.d.ts +25 -0
- package/dist/test/fixtures/generate-stress-fixtures.d.ts.map +1 -0
- package/dist/test.js +112 -103
- package/dist/xml/parse/parse-xml-document.d.ts.map +1 -1
- package/dist/xml/parse/parse-xml-document.types.d.ts +3 -0
- package/dist/xml/parse/parse-xml-document.types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -25,6 +25,9 @@ export declare function createTestProject<GenericConfig extends AnyDialecteConfi
|
|
|
25
25
|
custom?: ExtensionModules;
|
|
26
26
|
};
|
|
27
27
|
hooks?: DialecteHooks<GenericConfig>;
|
|
28
|
+
dev?: {
|
|
29
|
+
perf?: boolean;
|
|
30
|
+
};
|
|
28
31
|
}): Promise<TestProjectResult<GenericConfig, GenericModules>>;
|
|
29
32
|
/**
|
|
30
33
|
* Create a Context directly from a databaseName for testing FP query functions.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-test-dialecte.d.ts","sourceRoot":"","sources":["../../src/test/create-test-dialecte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"create-test-dialecte.d.ts","sourceRoot":"","sources":["../../src/test/create-test-dialecte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAI/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE/D,KAAK,kBAAkB,GAAG,OAAO,oBAAoB,CAAA;AAErD,MAAM,MAAM,YAAY,CACvB,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,gBAAgB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAC3D;IACH,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAA;CACnE,CAAA;AAED,MAAM,MAAM,iBAAiB,CAC5B,aAAa,SAAS,iBAAiB,EACvC,cAAc,SAAS,gBAAgB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAC3D;IACH,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IAC/C,MAAM,EAAE,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IACnD,MAAM,CAAC,EAAE,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;CACpD,CAAA;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,aAAa,SAAS,iBAAiB,GAAG,kBAAkB,EAC5D,cAAc,SAAS,gBAAgB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAC7D,MAAM,EAAE;IACT,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,aAAa,CAAA;IAC9B,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAA;IACnE,KAAK,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACpC,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACxB,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAmD5D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,SAAS,iBAAiB,EAAE,MAAM,EAAE;IACxF,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,aAAa,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAqBlC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Tunables for the generated tree — kept small so byte size scales predictably. */
|
|
2
|
+
export type StressShape = {
|
|
3
|
+
/** Root's `xmlns`. */
|
|
4
|
+
namespaceUri: string;
|
|
5
|
+
/** Children per node inside a block (the "Rule of 3" is `breadth: 3`). */
|
|
6
|
+
breadth: number;
|
|
7
|
+
/** Depth of the first block; grows by one every full alphabet cycle (logic growth). */
|
|
8
|
+
baseDepth: number;
|
|
9
|
+
/** Cap on the grown depth so a single block stays bounded. */
|
|
10
|
+
maxDepth: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Stream a well-formed stress document to `outPath` until it reaches ~`targetBytes`.
|
|
14
|
+
* Blocks cycle through the alphabet; depth grows by one each full cycle, so the tree
|
|
15
|
+
* mixes shallow-wide and deep-narrow subtrees. Returns the node count + byte size.
|
|
16
|
+
*/
|
|
17
|
+
export declare function generateStressXml(params: {
|
|
18
|
+
outPath: string;
|
|
19
|
+
targetBytes: number;
|
|
20
|
+
shape?: StressShape;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
nodes: number;
|
|
23
|
+
bytes: number;
|
|
24
|
+
}>;
|
|
25
|
+
//# sourceMappingURL=generate-stress-fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-stress-fixtures.d.ts","sourceRoot":"","sources":["../../../src/test/fixtures/generate-stress-fixtures.ts"],"names":[],"mappings":"AAgCA,oFAAoF;AACpF,MAAM,MAAM,WAAW,GAAG;IACzB,sBAAsB;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAA;IACf,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;CAChB,CAAA;AAqED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,WAAW,CAAA;CACnB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAuC5C"}
|
package/dist/test.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DIALECTE_NAMESPACES as
|
|
3
|
-
import { expect as
|
|
1
|
+
import { N as e, V as t, ft as n, mt as r, t as i, u as a } from "./project-DkMkDgld.js";
|
|
2
|
+
import { DIALECTE_NAMESPACES as o, standardizeRecord as s, toTrackedRecord as c, toTreeRecord as l } from "./helpers.js";
|
|
3
|
+
import { expect as u, it as d } from "vitest";
|
|
4
4
|
//#region src/test/assert-xml/xpath-parser.ts
|
|
5
|
-
function
|
|
6
|
-
let t =
|
|
5
|
+
function f(e) {
|
|
6
|
+
let t = p(e);
|
|
7
7
|
if (t.length === 0) return [e];
|
|
8
8
|
let n = [];
|
|
9
9
|
for (let r of t) n.push(e.slice(0, r));
|
|
10
10
|
return n.push(e), n;
|
|
11
11
|
}
|
|
12
|
-
function
|
|
12
|
+
function p(e) {
|
|
13
13
|
let t = [], n = 0, r = 0, i = null;
|
|
14
14
|
for (let a = 0; a < e.length; a++) {
|
|
15
15
|
let o = e[a];
|
|
@@ -50,60 +50,60 @@ function d(e) {
|
|
|
50
50
|
}
|
|
51
51
|
//#endregion
|
|
52
52
|
//#region src/test/assert-xml/assert-xml.ts
|
|
53
|
-
var
|
|
54
|
-
function
|
|
55
|
-
let { namespaces: t } = e, n =
|
|
53
|
+
var m = /* @__PURE__ */ r(t(), 1);
|
|
54
|
+
function h(e) {
|
|
55
|
+
let { namespaces: t } = e, n = _(t);
|
|
56
56
|
return {
|
|
57
57
|
assertExpectedElementQueries(e) {
|
|
58
|
-
|
|
58
|
+
g({
|
|
59
59
|
...e,
|
|
60
60
|
nsResolver: n
|
|
61
61
|
});
|
|
62
62
|
},
|
|
63
63
|
assertUnexpectedElementQueries(e) {
|
|
64
|
-
|
|
64
|
+
v({
|
|
65
65
|
...e,
|
|
66
66
|
nsResolver: n
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
|
-
function
|
|
71
|
+
function g(e) {
|
|
72
72
|
let { xmlDocument: t, queries: n, nsResolver: r } = e;
|
|
73
|
-
for (let e of n)
|
|
73
|
+
for (let e of n) y({
|
|
74
74
|
xmlDocument: t,
|
|
75
75
|
xpath: e,
|
|
76
76
|
nsResolver: r
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
|
-
function
|
|
79
|
+
function _(e) {
|
|
80
80
|
return (t) => t ? e[t]?.uri ?? null : null;
|
|
81
81
|
}
|
|
82
|
-
function
|
|
82
|
+
function v(e) {
|
|
83
83
|
let { xmlDocument: t, queries: n, nsResolver: r } = e;
|
|
84
|
-
for (let e of n)
|
|
84
|
+
for (let e of n) x({
|
|
85
85
|
xmlDocument: t,
|
|
86
86
|
xpath: e,
|
|
87
87
|
nsResolver: r
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
|
-
function
|
|
91
|
-
let { xmlDocument: t, xpath: n, nsResolver: r } = e, i =
|
|
90
|
+
function y(e) {
|
|
91
|
+
let { xmlDocument: t, xpath: n, nsResolver: r } = e, i = f(n), a = null, o = 0;
|
|
92
92
|
for (let e = 0; e < i.length; e++) {
|
|
93
|
-
let s = i[e],
|
|
94
|
-
if (
|
|
95
|
-
a =
|
|
93
|
+
let s = i[e], c = t.evaluate(s, t, r ?? null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
|
|
94
|
+
if (c) {
|
|
95
|
+
a = c, o = e + 1;
|
|
96
96
|
continue;
|
|
97
97
|
}
|
|
98
|
-
let
|
|
99
|
-
c
|
|
98
|
+
let l = e === 0 ? i[0] : n.slice(i[e - 1].length), d = o === 0 ? `[No parent matched — failed from document root]\n Document:\n${b({ xml: new XMLSerializer().serializeToString(t) })}` : `[Last match at step ${o}/${i.length}]:\n${a ? b({ xml: a.outerHTML }) : "(none)"}`;
|
|
99
|
+
u(c, `Element not found in XML.\n Failed at step ${e + 1}/${i.length}: ${l.trim()}\n Full XPath: ${n}\n ${d}`).toBeTruthy();
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
function
|
|
103
|
+
function b(e) {
|
|
104
104
|
let { xml: t } = e;
|
|
105
105
|
try {
|
|
106
|
-
return (0,
|
|
106
|
+
return (0, m.default)(t, {
|
|
107
107
|
indentation: " ",
|
|
108
108
|
collapseContent: !0
|
|
109
109
|
});
|
|
@@ -111,24 +111,24 @@ function v(e) {
|
|
|
111
111
|
return t;
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
function
|
|
115
|
-
let { xmlDocument: t, xpath: n, nsResolver: r } = e, i =
|
|
114
|
+
function x(e) {
|
|
115
|
+
let { xmlDocument: t, xpath: n, nsResolver: r } = e, i = f(n);
|
|
116
116
|
if (i.length > 1) {
|
|
117
117
|
let e = null;
|
|
118
118
|
for (let a = 0; a < i.length - 1; a++) {
|
|
119
|
-
let o = i[a], s = t.evaluate(o, t, r ?? null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue,
|
|
120
|
-
|
|
119
|
+
let o = i[a], s = t.evaluate(o, t, r ?? null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue, c = a === 0 ? i[0] : n.slice(i[a - 1].length), l = a === 0 ? "[Document root — no parent context]" : `[Parent element found at step ${a}]:\n${e ? b({ xml: e.outerHTML }) : "(none)"}`;
|
|
120
|
+
u(s, `Absent assertion is unreliable: ancestor step does not exist.
|
|
121
121
|
The query passes but for the wrong reason — an ancestor is missing, not the target element.
|
|
122
|
-
Missing at step ${a + 1}/${i.length}: ${
|
|
122
|
+
Missing at step ${a + 1}/${i.length}: ${c.trim()}\n Full XPath: ${n}\n ${l}`).toBeTruthy(), e = s;
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
let a = t.evaluate(n, t, r ?? null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
|
|
126
|
-
|
|
126
|
+
u(a, `Element should NOT exist in XML but was found.\n XPath: ${n}\n Found:\n${a ? b({ xml: a.outerHTML }) : "(none)"}`).toBeFalsy();
|
|
127
127
|
}
|
|
128
128
|
//#endregion
|
|
129
129
|
//#region src/test/constant.ts
|
|
130
|
-
var
|
|
131
|
-
...
|
|
130
|
+
var S = {
|
|
131
|
+
...o,
|
|
132
132
|
default: {
|
|
133
133
|
uri: "http://dialecte.dev/XML/DEFAULT",
|
|
134
134
|
prefix: ""
|
|
@@ -137,7 +137,7 @@ var b = {
|
|
|
137
137
|
uri: "http://dialecte.dev/XML/DEV-EXT",
|
|
138
138
|
prefix: "ext"
|
|
139
139
|
}
|
|
140
|
-
},
|
|
140
|
+
}, C = `xmlns="${S.default.uri}"`, w = `xmlns:${S.dev.prefix}="${S.dev.uri}"`, T = `xmlns:${S.ext.prefix}="${S.ext.uri}"`, E = /* @__PURE__ */ "A.AAAA_1.AAAA_2.AAAA_3.AAA_1.AAA_2.AAA_3.AA_1.AA_2.AA_3.B.BBBB_1.BBBB_2.BBBB_3.BBB_1.BBB_2.BBB_3.BB_1.BB_2.BB_3.C.CCCC_1.CCCC_2.CCCC_3.CCC_1.CCC_2.CCC_3.CC_1.CC_2.CC_3.Root".split("."), D = {
|
|
141
141
|
A: [
|
|
142
142
|
"AA_1",
|
|
143
143
|
"AA_2",
|
|
@@ -257,7 +257,7 @@ var b = {
|
|
|
257
257
|
"B",
|
|
258
258
|
"C"
|
|
259
259
|
]
|
|
260
|
-
},
|
|
260
|
+
}, O = {
|
|
261
261
|
A: ["Root"],
|
|
262
262
|
AAAA_1: [
|
|
263
263
|
"AAA_1",
|
|
@@ -361,7 +361,7 @@ var b = {
|
|
|
361
361
|
CC_2: ["C"],
|
|
362
362
|
CC_3: ["C"],
|
|
363
363
|
Root: []
|
|
364
|
-
},
|
|
364
|
+
}, k = {
|
|
365
365
|
A: [
|
|
366
366
|
"AAAA_1",
|
|
367
367
|
"AAAA_2",
|
|
@@ -522,7 +522,7 @@ var b = {
|
|
|
522
522
|
"CCC_3"
|
|
523
523
|
],
|
|
524
524
|
Root: /* @__PURE__ */ "A.AAAA_1.AAAA_2.AAAA_3.AAA_1.AAA_2.AAA_3.AA_1.AA_2.AA_3.B.BBBB_1.BBBB_2.BBBB_3.BBB_1.BBB_2.BBB_3.BB_1.BB_2.BB_3.C.CCCC_1.CCCC_2.CCCC_3.CCC_1.CCC_2.CCC_3.CC_1.CC_2.CC_3".split(".")
|
|
525
|
-
},
|
|
525
|
+
}, A = {
|
|
526
526
|
A: ["Root"],
|
|
527
527
|
AAAA_1: [
|
|
528
528
|
"A",
|
|
@@ -689,7 +689,7 @@ var b = {
|
|
|
689
689
|
CC_2: ["C", "Root"],
|
|
690
690
|
CC_3: ["C", "Root"],
|
|
691
691
|
Root: []
|
|
692
|
-
},
|
|
692
|
+
}, j = "Root", M = [
|
|
693
693
|
"A",
|
|
694
694
|
"AA_1",
|
|
695
695
|
"B",
|
|
@@ -698,7 +698,7 @@ var b = {
|
|
|
698
698
|
"CC_1",
|
|
699
699
|
"CC_2",
|
|
700
700
|
"Root"
|
|
701
|
-
],
|
|
701
|
+
], N = {
|
|
702
702
|
A: {
|
|
703
703
|
aA: "",
|
|
704
704
|
bA: "",
|
|
@@ -853,7 +853,7 @@ var b = {
|
|
|
853
853
|
"ext:root": "",
|
|
854
854
|
root: ""
|
|
855
855
|
}
|
|
856
|
-
},
|
|
856
|
+
}, P = {
|
|
857
857
|
A: {
|
|
858
858
|
tag: "A",
|
|
859
859
|
namespace: {
|
|
@@ -2694,7 +2694,7 @@ var b = {
|
|
|
2694
2694
|
} }]
|
|
2695
2695
|
}]
|
|
2696
2696
|
}
|
|
2697
|
-
},
|
|
2697
|
+
}, F = { supportedFileExtensions: [".xml"] }, I = {
|
|
2698
2698
|
recordSchema: {
|
|
2699
2699
|
primaryKey: "id",
|
|
2700
2700
|
indexes: [
|
|
@@ -2709,70 +2709,79 @@ var b = {
|
|
|
2709
2709
|
name: "xmlElements",
|
|
2710
2710
|
schema: "id, tagName, [id+tagName], parent.id, parent.tagName, *children.id, *children.tagName"
|
|
2711
2711
|
} }
|
|
2712
|
-
},
|
|
2713
|
-
rootElementName:
|
|
2714
|
-
singletonElements:
|
|
2715
|
-
elements:
|
|
2716
|
-
namespaces:
|
|
2717
|
-
attributes:
|
|
2718
|
-
children:
|
|
2719
|
-
parents:
|
|
2720
|
-
descendants:
|
|
2721
|
-
ancestors:
|
|
2722
|
-
database:
|
|
2723
|
-
io:
|
|
2724
|
-
definition:
|
|
2712
|
+
}, L = {
|
|
2713
|
+
rootElementName: j,
|
|
2714
|
+
singletonElements: M,
|
|
2715
|
+
elements: E,
|
|
2716
|
+
namespaces: S,
|
|
2717
|
+
attributes: N,
|
|
2718
|
+
children: D,
|
|
2719
|
+
parents: O,
|
|
2720
|
+
descendants: k,
|
|
2721
|
+
ancestors: A,
|
|
2722
|
+
database: I,
|
|
2723
|
+
io: F,
|
|
2724
|
+
definition: P
|
|
2725
2725
|
};
|
|
2726
2726
|
//#endregion
|
|
2727
2727
|
//#region src/test/create-test-dialecte.ts
|
|
2728
|
-
async function
|
|
2729
|
-
let { sourceXml:
|
|
2730
|
-
configs: { default:
|
|
2728
|
+
async function R(e) {
|
|
2729
|
+
let { sourceXml: t, targetXml: n, dialecteConfig: r = L, extensions: a, hooks: o, dev: s } = e, c = `test-${crypto.randomUUID()}`, l = await new i({
|
|
2730
|
+
configs: { default: r },
|
|
2731
2731
|
defaultConfigKey: "default",
|
|
2732
2732
|
storage: { type: "local" },
|
|
2733
2733
|
extensions: a,
|
|
2734
|
-
hooks: o
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2734
|
+
hooks: o,
|
|
2735
|
+
dev: s
|
|
2736
|
+
}).open(c), [u] = await l.import([new File([t], "source.xml", { type: "text/xml" })], { useCustomRecordsIds: !0 }), d = {
|
|
2737
|
+
documentId: u.documentId,
|
|
2738
|
+
document: l.openDocument(u.documentId)
|
|
2739
|
+
}, f;
|
|
2740
|
+
if (n) {
|
|
2741
|
+
let [e] = await l.import([new File([n], "target.xml", { type: "text/xml" })], { useCustomRecordsIds: !0 });
|
|
2742
|
+
f = {
|
|
2742
2743
|
documentId: e.documentId,
|
|
2743
|
-
document:
|
|
2744
|
+
document: l.openDocument(e.documentId)
|
|
2744
2745
|
};
|
|
2745
2746
|
}
|
|
2746
2747
|
return {
|
|
2747
|
-
project:
|
|
2748
|
-
source:
|
|
2749
|
-
target:
|
|
2748
|
+
project: l,
|
|
2749
|
+
source: d,
|
|
2750
|
+
target: f
|
|
2750
2751
|
};
|
|
2751
2752
|
}
|
|
2752
|
-
async function
|
|
2753
|
-
let { databaseName:
|
|
2754
|
-
return await
|
|
2755
|
-
dialecteConfig:
|
|
2756
|
-
store:
|
|
2757
|
-
documentId:
|
|
2753
|
+
async function z(t) {
|
|
2754
|
+
let { databaseName: r, dialecteConfig: i, documentId: o } = t, s = new a(r, { recordSchema: i.database.recordSchema });
|
|
2755
|
+
return await s.open(), {
|
|
2756
|
+
dialecteConfig: i,
|
|
2757
|
+
store: s,
|
|
2758
|
+
documentId: o,
|
|
2758
2759
|
recordCache: /* @__PURE__ */ new Map(),
|
|
2759
|
-
stagedOperations: []
|
|
2760
|
+
stagedOperations: [],
|
|
2761
|
+
progress: n({
|
|
2762
|
+
loading: !1,
|
|
2763
|
+
error: null,
|
|
2764
|
+
progress: null,
|
|
2765
|
+
history: [],
|
|
2766
|
+
lastUpdate: null
|
|
2767
|
+
}),
|
|
2768
|
+
perf: e
|
|
2760
2769
|
};
|
|
2761
2770
|
}
|
|
2762
2771
|
//#endregion
|
|
2763
2772
|
//#region src/test/run-test-cases.ts
|
|
2764
|
-
var
|
|
2765
|
-
function
|
|
2773
|
+
var B = crypto.randomUUID.bind(crypto);
|
|
2774
|
+
function V() {
|
|
2766
2775
|
let e = 0;
|
|
2767
2776
|
return function() {
|
|
2768
2777
|
return `${e++}`;
|
|
2769
2778
|
};
|
|
2770
2779
|
}
|
|
2771
|
-
function
|
|
2772
|
-
let { testCases: t, act: n, extensions: r, hooks: i, dialecteConfig: a =
|
|
2773
|
-
for (let [e, c] of Object.entries(t)) (c.only ?
|
|
2774
|
-
crypto.randomUUID =
|
|
2775
|
-
let { project: e, source: t, target: l } = await
|
|
2780
|
+
function H(e) {
|
|
2781
|
+
let { testCases: t, act: n, extensions: r, hooks: i, dialecteConfig: a = L } = e, { assertExpectedElementQueries: o, assertUnexpectedElementQueries: s } = h({ namespaces: a.namespaces });
|
|
2782
|
+
for (let [e, c] of Object.entries(t)) (c.only ? d.only : d)(e, async () => {
|
|
2783
|
+
crypto.randomUUID = B;
|
|
2784
|
+
let { project: e, source: t, target: l } = await R({
|
|
2776
2785
|
sourceXml: c.sourceXml,
|
|
2777
2786
|
targetXml: c.targetXml,
|
|
2778
2787
|
dialecteConfig: a,
|
|
@@ -2780,7 +2789,7 @@ function B(e) {
|
|
|
2780
2789
|
hooks: i
|
|
2781
2790
|
});
|
|
2782
2791
|
try {
|
|
2783
|
-
crypto.randomUUID =
|
|
2792
|
+
crypto.randomUUID = V();
|
|
2784
2793
|
let r = await n({
|
|
2785
2794
|
testCase: c,
|
|
2786
2795
|
project: e,
|
|
@@ -2805,11 +2814,11 @@ function B(e) {
|
|
|
2805
2814
|
}
|
|
2806
2815
|
});
|
|
2807
2816
|
}
|
|
2808
|
-
function
|
|
2809
|
-
let { testCases: t, act: n, extensions: r, hooks: i, dialecteConfig: a =
|
|
2810
|
-
for (let [e, o] of Object.entries(t)) (o.only ?
|
|
2811
|
-
crypto.randomUUID =
|
|
2812
|
-
let { project: e, source: t, target: s } = await
|
|
2817
|
+
function U(e) {
|
|
2818
|
+
let { testCases: t, act: n, extensions: r, hooks: i, dialecteConfig: a = L } = e;
|
|
2819
|
+
for (let [e, o] of Object.entries(t)) (o.only ? d.only : d)(e, async () => {
|
|
2820
|
+
crypto.randomUUID = B;
|
|
2821
|
+
let { project: e, source: t, target: s } = await R({
|
|
2813
2822
|
sourceXml: o.sourceXml,
|
|
2814
2823
|
targetXml: o.targetXml,
|
|
2815
2824
|
dialecteConfig: a,
|
|
@@ -2817,7 +2826,7 @@ function V(e) {
|
|
|
2817
2826
|
hooks: i
|
|
2818
2827
|
});
|
|
2819
2828
|
try {
|
|
2820
|
-
crypto.randomUUID =
|
|
2829
|
+
crypto.randomUUID = V(), await n({
|
|
2821
2830
|
testCase: o,
|
|
2822
2831
|
project: e,
|
|
2823
2832
|
source: t.document,
|
|
@@ -2828,45 +2837,45 @@ function V(e) {
|
|
|
2828
2837
|
}
|
|
2829
2838
|
});
|
|
2830
2839
|
}
|
|
2831
|
-
function
|
|
2832
|
-
for (let [n, r] of Object.entries(e)) (r.only ?
|
|
2840
|
+
function W(e, t) {
|
|
2841
|
+
for (let [n, r] of Object.entries(e)) (r.only ? d.only : d)(n, () => t(r));
|
|
2833
2842
|
}
|
|
2834
|
-
var
|
|
2835
|
-
function
|
|
2843
|
+
var G = K({ dialecteConfig: L });
|
|
2844
|
+
function K(e) {
|
|
2836
2845
|
let { dialecteConfig: t, hooks: n, extensions: r } = e;
|
|
2837
2846
|
return {
|
|
2838
|
-
withExport: (e) =>
|
|
2847
|
+
withExport: (e) => H({
|
|
2839
2848
|
dialecteConfig: t,
|
|
2840
2849
|
extensions: r,
|
|
2841
2850
|
hooks: n,
|
|
2842
2851
|
...e
|
|
2843
2852
|
}),
|
|
2844
|
-
withoutExport: (e) =>
|
|
2853
|
+
withoutExport: (e) => U({
|
|
2845
2854
|
dialecteConfig: t,
|
|
2846
2855
|
extensions: r,
|
|
2847
2856
|
hooks: n,
|
|
2848
2857
|
...e
|
|
2849
2858
|
}),
|
|
2850
|
-
generic:
|
|
2859
|
+
generic: W
|
|
2851
2860
|
};
|
|
2852
2861
|
}
|
|
2853
2862
|
//#endregion
|
|
2854
2863
|
//#region src/test/test-record.ts
|
|
2855
|
-
function
|
|
2864
|
+
function q(e) {
|
|
2856
2865
|
function t(t) {
|
|
2857
|
-
let { record: n, type: r = "raw" } = t, i =
|
|
2866
|
+
let { record: n, type: r = "raw" } = t, i = s({
|
|
2858
2867
|
record: n,
|
|
2859
2868
|
dialecteConfig: e
|
|
2860
2869
|
});
|
|
2861
2870
|
switch (r) {
|
|
2862
2871
|
case "raw": return i;
|
|
2863
|
-
case "tracked": return
|
|
2864
|
-
case "tree": return
|
|
2872
|
+
case "tracked": return c({ record: i });
|
|
2873
|
+
case "tree": return l({ record: i });
|
|
2865
2874
|
default: throw Error(`Unsupported record type: ${r}`);
|
|
2866
2875
|
}
|
|
2867
2876
|
}
|
|
2868
2877
|
return t;
|
|
2869
2878
|
}
|
|
2870
|
-
var
|
|
2879
|
+
var J = q(L);
|
|
2871
2880
|
//#endregion
|
|
2872
|
-
export {
|
|
2881
|
+
export { I as DATABASE_CONFIG, S as DIALECTE_TEST_NAMESPACES, F as IO_CONFIG, L as TEST_DIALECTE_CONFIG, C as XMLNS_DEFAULT_NAMESPACE, w as XMLNS_DEV_NAMESPACE, T as XMLNS_EXT_NAMESPACE, g as assertExpectedElementQueries, v as assertUnexpectedElementQueries, V as createMockRandomUUID, z as createTestContext, R as createTestProject, J as createTestRecord, q as createTestRecordFactory, K as createTestRunner, h as createXmlAssertions, G as runTestCases, f as splitXpathIntoSteps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-xml-document.d.ts","sourceRoot":"","sources":["../../../src/xml/parse/parse-xml-document.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse-xml-document.d.ts","sourceRoot":"","sources":["../../../src/xml/parse/parse-xml-document.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAKxF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AASxF;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoD1F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Perf } from '../../perf';
|
|
1
2
|
import { Store } from '../../store/store.types';
|
|
2
3
|
import { AnyDialecteConfig, ChunkOptions, DialecteHooks } from '../../types';
|
|
3
4
|
export type ParseXmlFileParams = {
|
|
@@ -11,6 +12,8 @@ export type ParseXmlFileParams = {
|
|
|
11
12
|
chunkOptions?: Partial<ChunkOptions>;
|
|
12
13
|
/** Project hooks (erased): io hooks + afterStandardizedRecord for import */
|
|
13
14
|
hooks?: DialecteHooks<AnyDialecteConfig>;
|
|
15
|
+
/** Dev perf helper (shared project instance); defaults to a no-op. */
|
|
16
|
+
perf?: Perf;
|
|
14
17
|
};
|
|
15
18
|
export type ParseXmlFileResult = {
|
|
16
19
|
documentId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-xml-document.types.d.ts","sourceRoot":"","sources":["../../../src/xml/parse/parse-xml-document.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE7E,MAAM,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,iBAAiB,CAAA;IACzB,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACpC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"parse-xml-document.types.d.ts","sourceRoot":"","sources":["../../../src/xml/parse/parse-xml-document.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE7E,MAAM,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,iBAAiB,CAAA;IACzB,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACpC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IACxC,sEAAsE;IACtE,IAAI,CAAC,EAAE,IAAI,CAAA;CACX,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACnB,CAAA"}
|