@graphty/graphty-element 2.3.1 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -3
- package/dist/ai.js +3 -3
- package/dist/catalog.js +28 -27
- package/dist/chunks/{AiManager-BBmGJbH4.js → AiManager-DNJCoeTO.js} +5 -5
- package/dist/chunks/{DataSource-OeN3NeyD.js → DataSource-xL3Yn0Pa.js} +72 -61
- package/dist/chunks/{GraphSession-Bef1AYw9.js → GraphSession-PFm2tJ_j.js} +2942 -2822
- package/dist/chunks/{GraphtyLogger-5KEttFUo.js → GraphtyLogger-kbOx2zq3.js} +170 -222
- package/dist/chunks/{NodeStyle-DKj7HjMJ.js → NodeStyle-CtmA7dXi.js} +16 -14
- package/dist/chunks/{VoiceInputAdapter-Dr9Gcmds.js → VoiceInputAdapter-CDNKQgUK.js} +1 -1
- package/dist/chunks/{XRPivotCameraController-BbfgZWpS.js → XRPivotCameraController-JdlLBcD7.js} +146 -134
- package/dist/chunks/{algorithms-CpX56sUB.js → algorithms-B87OPYw4.js} +780 -635
- package/dist/chunks/{capability-check-Blhb2aBB.js → capability-check-B2oYf_30.js} +1 -1
- package/dist/chunks/{detect-Cqwshr9a.js → detect-tuYQLJbT.js} +2 -2
- package/dist/chunks/{format-detection-BXGO1lSn.js → format-detection-BG6CMwPO.js} +1 -1
- package/dist/chunks/{index-C0mIoumR.js → index-6GDfNfwJ.js} +3185 -2731
- package/dist/chunks/{optionsFromZod-17lkrAJs.js → optionsFromZod-DHLLiX_8.js} +275 -267
- package/dist/chunks/{paletteRegistry-x7WOEKZY.js → paletteRegistry-jg9uS7wo.js} +72 -70
- package/dist/chunks/pluginRegistry-MaTIDh6l.js +238 -0
- package/dist/chunks/{registry-CSba5QGJ.js → registry-DQeq4B2K.js} +8 -8
- package/dist/chunks/{scales-BRwl51k8.js → scales-BXHmwPXC.js} +572 -399
- package/dist/chunks/{types-B7bX5c0K.js → types-C_c53VgR.js} +31 -26
- package/dist/commands.d.ts +4 -0
- package/dist/custom-elements.json +1 -1
- package/dist/extend.js +8 -8
- package/dist/graphty-catalog.json +245 -12
- package/dist/graphty.bundle.js +37843 -36551
- package/dist/graphty.js +69 -65
- package/dist/index.d.ts +3 -0
- package/dist/logging.js +2 -2
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +42 -40
- package/dist/session.js +6 -6
- package/dist/src/Edge.d.ts +4 -4
- package/dist/src/Graph.d.ts +79 -7
- package/dist/src/acceleration/AccelerationController.d.ts +20 -3
- package/dist/src/acceleration/registry.d.ts +3 -0
- package/dist/src/acceleration/types.d.ts +85 -0
- package/dist/src/algorithms/Algorithm.d.ts +13 -0
- package/dist/src/algorithms/KCoreAlgorithm.d.ts +26 -0
- package/dist/src/algorithms/LinkPredictionAlgorithm.d.ts +41 -0
- package/dist/src/cameras/InputUtils.d.ts +67 -0
- package/dist/src/cameras/XRInputHandler.d.ts +0 -8
- package/dist/src/catalog/algorithms.d.ts +5 -5
- package/dist/src/catalog/index.d.ts +2 -2
- package/dist/src/catalog/layouts.d.ts +7 -6
- package/dist/src/catalog/pluginRegistry.d.ts +62 -0
- package/dist/src/catalog/registry.d.ts +7 -0
- package/dist/src/catalog/types.d.ts +77 -6
- package/dist/src/config/EdgeStyle.d.ts +35 -0
- package/dist/src/config/index.d.ts +1 -1
- package/dist/src/data/DataSource.d.ts +1 -1
- package/dist/src/data/GEXFDataSource.d.ts +23 -0
- package/dist/src/errors/codes.d.ts +16 -1
- package/dist/src/events.d.ts +30 -0
- package/dist/src/graphty-element.d.ts +66 -26
- package/dist/src/layout/GridLayoutEngine.d.ts +37 -0
- package/dist/src/layout/LayoutEngine.d.ts +7 -7
- package/dist/src/layout/NGraphLayoutEngine.d.ts +2 -0
- package/dist/src/layout/RadialLayoutEngine.d.ts +37 -0
- package/dist/src/layout/SimulationLayoutEngine.d.ts +12 -0
- package/dist/src/managers/DataManager.d.ts +69 -2
- package/dist/src/managers/EventManager.d.ts +10 -4
- package/dist/src/managers/GraphContext.d.ts +2 -1
- package/dist/src/managers/LayoutManager.d.ts +30 -3
- package/dist/src/meshes/CustomLineRenderer.d.ts +11 -9
- package/dist/src/meshes/EdgeMesh.d.ts +18 -9
- package/dist/src/meshes/FilledArrowRenderer.d.ts +61 -23
- package/dist/src/meshes/MeshCache.d.ts +18 -0
- package/dist/src/meshes/NodeEffects.d.ts +16 -11
- package/dist/src/meshes/NodeMesh.d.ts +2 -2
- package/dist/src/meshes/PatternedLineRenderer.d.ts +5 -37
- package/dist/src/meshes/PerSceneMaterials.d.ts +49 -0
- package/dist/src/meshes/RichTextParser.d.ts +26 -0
- package/dist/src/meshes/RichTextRenderer.d.ts +0 -1
- package/dist/src/session/cost/estimate.d.ts +1 -1
- package/dist/src/session/layout.d.ts +3 -3
- package/dist/src/session/runs/RunsApi.d.ts +1 -1
- package/dist/src/session/styles/StylesApi.d.ts +6 -0
- package/dist/src/session/styles/intern.d.ts +26 -5
- package/dist/src/session/styles/repaint.d.ts +2 -1
- package/dist/src/session/types.d.ts +6 -6
- package/dist/src/xr/XRSessionManager.d.ts +1 -1
- package/dist/webgpu.d.ts +8 -0
- package/dist/webgpu.js +2 -2
- package/package.json +6 -6
- package/dist/chunks/GraphtyError-BwcnblTH.js +0 -132
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { K as
|
|
3
|
-
import {
|
|
4
|
-
import { Graph as
|
|
1
|
+
import { c as he, G as y, S as Ie } from "./pluginRegistry-MaTIDh6l.js";
|
|
2
|
+
import { K as Te, f as Me } from "./types-C_c53VgR.js";
|
|
3
|
+
import { b as _e } from "./GraphtyLogger-kbOx2zq3.js";
|
|
4
|
+
import { Graph as ze, accelerated as X } from "@graphty/algorithms";
|
|
5
5
|
import { INVALID_INDEX as L } from "@graphty/graph-format";
|
|
6
6
|
import { z as me } from "zod/v4";
|
|
7
7
|
const _ = he({
|
|
@@ -9,9 +9,9 @@ const _ = he({
|
|
|
9
9
|
idOf: (e) => e.descriptor.id,
|
|
10
10
|
descriptorOf: (e) => e.descriptor,
|
|
11
11
|
implementationOf: (e) => e.compute,
|
|
12
|
-
builtInIds: () =>
|
|
12
|
+
builtInIds: () => Te
|
|
13
13
|
});
|
|
14
|
-
function
|
|
14
|
+
function bn(e, t) {
|
|
15
15
|
const n = e.descriptor;
|
|
16
16
|
if (n === void 0 || typeof n != "object")
|
|
17
17
|
throw new y({
|
|
@@ -43,16 +43,16 @@ function yn(e, t) {
|
|
|
43
43
|
});
|
|
44
44
|
_.register(e, t);
|
|
45
45
|
}
|
|
46
|
-
function
|
|
46
|
+
function wn() {
|
|
47
47
|
return _.descriptors();
|
|
48
48
|
}
|
|
49
|
-
function
|
|
49
|
+
function vn(e) {
|
|
50
50
|
return _.byId(e);
|
|
51
51
|
}
|
|
52
|
-
function
|
|
52
|
+
function On() {
|
|
53
53
|
_.clearForTesting();
|
|
54
54
|
}
|
|
55
|
-
const
|
|
55
|
+
const Ce = ["forceAtlas2", "fruchtermanReingold", "springElectrical", "release"], xe = [
|
|
56
56
|
"pageRank",
|
|
57
57
|
"sssp",
|
|
58
58
|
"breadthFirstSearch",
|
|
@@ -60,17 +60,17 @@ const ze = ["forceAtlas2", "fruchtermanReingold", "springElectrical", "release"]
|
|
|
60
60
|
"weaklyConnectedComponents",
|
|
61
61
|
"minimumSpanningTree"
|
|
62
62
|
];
|
|
63
|
-
function
|
|
63
|
+
function kn(e) {
|
|
64
64
|
const t = {
|
|
65
65
|
kind: e.backend
|
|
66
66
|
};
|
|
67
|
-
for (const n of
|
|
67
|
+
for (const n of Ce) {
|
|
68
68
|
const r = e[n];
|
|
69
69
|
typeof r == "function" && (t[n] = r.bind(e));
|
|
70
70
|
}
|
|
71
71
|
return t;
|
|
72
72
|
}
|
|
73
|
-
function
|
|
73
|
+
function je(e) {
|
|
74
74
|
const t = {
|
|
75
75
|
kind: e.backend
|
|
76
76
|
};
|
|
@@ -80,18 +80,23 @@ function Ce(e) {
|
|
|
80
80
|
}
|
|
81
81
|
return t;
|
|
82
82
|
}
|
|
83
|
-
const
|
|
84
|
-
function
|
|
85
|
-
return typeof e == "string" &&
|
|
83
|
+
const Pe = ["auto", "off", "required"], Nn = "auto";
|
|
84
|
+
function Sn(e) {
|
|
85
|
+
return typeof e == "string" && Pe.includes(e);
|
|
86
86
|
}
|
|
87
|
-
const
|
|
87
|
+
const Le = "f64", An = "f32", $n = "acceleration.minNodes", Rn = 0, En = "RTX 4070 SUPER, headless Chromium, 2026-09-25", Fn = Object.freeze({
|
|
88
|
+
breadthFirstSearch: 3e5,
|
|
89
|
+
sssp: 3e5,
|
|
90
|
+
pageRank: 5e3,
|
|
91
|
+
connectedComponents: 5e4
|
|
92
|
+
}), z = he({
|
|
88
93
|
kind: "algorithm",
|
|
89
94
|
idOf: (e) => e.descriptor.key,
|
|
90
95
|
descriptorOf: (e) => e.descriptor,
|
|
91
96
|
implementationOf: (e) => e.descriptor,
|
|
92
|
-
builtInIds: () =>
|
|
97
|
+
builtInIds: () => Me
|
|
93
98
|
});
|
|
94
|
-
function
|
|
99
|
+
function De(e, t) {
|
|
95
100
|
if (e.descriptor.key !== e.type)
|
|
96
101
|
throw new y({
|
|
97
102
|
code: "E_BAD_COMMAND",
|
|
@@ -107,13 +112,13 @@ function Le(e, t) {
|
|
|
107
112
|
});
|
|
108
113
|
z.register(e, t);
|
|
109
114
|
}
|
|
110
|
-
function
|
|
115
|
+
function In() {
|
|
111
116
|
return z.descriptors();
|
|
112
117
|
}
|
|
113
|
-
function
|
|
118
|
+
function Tn(e) {
|
|
114
119
|
return z.byId(e);
|
|
115
120
|
}
|
|
116
|
-
function
|
|
121
|
+
function Mn() {
|
|
117
122
|
z.clearForTesting();
|
|
118
123
|
}
|
|
119
124
|
class b extends Error {
|
|
@@ -126,7 +131,7 @@ class b extends Error {
|
|
|
126
131
|
super(`Option '${t}': ${n}`), this.optionKey = t, this.name = "OptionValidationError";
|
|
127
132
|
}
|
|
128
133
|
}
|
|
129
|
-
function
|
|
134
|
+
function Ge(e, t, n) {
|
|
130
135
|
if (t == null) {
|
|
131
136
|
if (n.required)
|
|
132
137
|
throw new b(e, "is required but was not provided");
|
|
@@ -148,7 +153,7 @@ function De(e, t, n) {
|
|
|
148
153
|
throw new b(e, `must be a string, got ${typeof t}`);
|
|
149
154
|
break;
|
|
150
155
|
case "select":
|
|
151
|
-
|
|
156
|
+
Ue(e, t, n);
|
|
152
157
|
break;
|
|
153
158
|
case "nodeId":
|
|
154
159
|
if (typeof t != "string" && typeof t != "number")
|
|
@@ -172,7 +177,7 @@ function Q(e, t, n, r) {
|
|
|
172
177
|
if (n.max !== void 0 && t > n.max)
|
|
173
178
|
throw new b(e, `must be <= ${n.max}, got ${t}`);
|
|
174
179
|
}
|
|
175
|
-
function
|
|
180
|
+
function Ue(e, t, n) {
|
|
176
181
|
if (!n.options || n.options.length === 0)
|
|
177
182
|
throw new b(e, "is a select type but has no options defined");
|
|
178
183
|
if (!n.options.map((i) => i.value).includes(t)) {
|
|
@@ -184,23 +189,23 @@ function He(e, t) {
|
|
|
184
189
|
const n = {};
|
|
185
190
|
for (const [r, i] of Object.entries(e)) {
|
|
186
191
|
const o = t?.[r] ?? i.default;
|
|
187
|
-
|
|
192
|
+
Ge(r, o, i), n[r] = o;
|
|
188
193
|
}
|
|
189
194
|
return n;
|
|
190
195
|
}
|
|
191
|
-
function
|
|
196
|
+
function _n(e) {
|
|
192
197
|
return e;
|
|
193
198
|
}
|
|
194
|
-
function
|
|
199
|
+
function Be(e, t) {
|
|
195
200
|
const n = e.getSnapshot(), r = t === "directed" ? n : e.undirected(n).snapshot, i = r.flags.multigraph ? r.simplified({ weights: "sum" }).snapshot : r;
|
|
196
|
-
return
|
|
201
|
+
return Ve(i, t);
|
|
197
202
|
}
|
|
198
|
-
function
|
|
203
|
+
function zn(e) {
|
|
199
204
|
const t = e.getSnapshot();
|
|
200
205
|
return t.flags.multigraph ? t.edgeCount - t.simplified({ weights: "sum" }).snapshot.edgeCount : 0;
|
|
201
206
|
}
|
|
202
|
-
function
|
|
203
|
-
const n = new
|
|
207
|
+
function Ve(e, t) {
|
|
208
|
+
const n = new ze({
|
|
204
209
|
directed: t !== "undirected"
|
|
205
210
|
}), { ids: r } = e;
|
|
206
211
|
for (let a = 0; a < e.nodeCount; a++)
|
|
@@ -212,8 +217,8 @@ function Be(e, t) {
|
|
|
212
217
|
}
|
|
213
218
|
return n;
|
|
214
219
|
}
|
|
215
|
-
const
|
|
216
|
-
function
|
|
220
|
+
const E = new Ie("algorithm");
|
|
221
|
+
function Je(e, t) {
|
|
217
222
|
if (t === null)
|
|
218
223
|
return e;
|
|
219
224
|
if (e === null)
|
|
@@ -255,7 +260,7 @@ const Z = class Z {
|
|
|
255
260
|
* @returns a freshly built Graph for the algorithm package
|
|
256
261
|
*/
|
|
257
262
|
algorithmGraph(t) {
|
|
258
|
-
return
|
|
263
|
+
return Be(this.graph.getDataManager(), t);
|
|
259
264
|
}
|
|
260
265
|
/**
|
|
261
266
|
* The route an algorithm with an accelerated implementation takes.
|
|
@@ -287,13 +292,13 @@ const Z = class Z {
|
|
|
287
292
|
const r = this.graph.getDataManager(), i = r.getSnapshot(), s = n === "undirected" ? r.undirected(i) : null, o = s === null ? i : s.snapshot, a = o.flags.multigraph ? o.simplified({ weights: "sum" }) : null, u = a === null ? o : a.snapshot, c = this.graph.acceleration, h = { capability: t, nodeCount: u.nodeCount };
|
|
288
293
|
return {
|
|
289
294
|
snapshot: u,
|
|
290
|
-
edgeRemap:
|
|
295
|
+
edgeRemap: Je(s?.edgeRemap ?? null, a?.edgeRemap ?? null),
|
|
291
296
|
run: async (p) => {
|
|
292
297
|
const l = await c.run(
|
|
293
298
|
h,
|
|
294
|
-
(d) => p(X(
|
|
299
|
+
(d) => p(X(je(d)), u)
|
|
295
300
|
);
|
|
296
|
-
return l.accelerated ? { value: l.value, precision: l.precision } : { value: await p(X(null), u), precision:
|
|
301
|
+
return l.accelerated ? { value: l.value, precision: l.precision } : { value: await p(X(null), u), precision: Le };
|
|
297
302
|
}
|
|
298
303
|
};
|
|
299
304
|
}
|
|
@@ -381,14 +386,15 @@ const Z = class Z {
|
|
|
381
386
|
* @returns The registered algorithm class
|
|
382
387
|
*/
|
|
383
388
|
static register(t) {
|
|
384
|
-
const n = t, r = String(n.type), i = String(n.namespace), { descriptor: s, cost: o,
|
|
385
|
-
return s !== void 0 &&
|
|
389
|
+
const n = t, r = String(n.type), i = String(n.namespace), { descriptor: s, cost: o, costUnits: a, version: u } = n;
|
|
390
|
+
return s !== void 0 && De({
|
|
386
391
|
descriptor: s,
|
|
387
392
|
namespace: i,
|
|
388
393
|
type: r,
|
|
389
394
|
...o === void 0 ? {} : { cost: o },
|
|
390
|
-
...a === void 0 ? {} : {
|
|
391
|
-
|
|
395
|
+
...a === void 0 ? {} : { costUnits: a },
|
|
396
|
+
...u === void 0 ? {} : { version: u }
|
|
397
|
+
}), E.set(`${i}:${r}`, t), t;
|
|
392
398
|
}
|
|
393
399
|
/**
|
|
394
400
|
* Gets an algorithm instance from the registry
|
|
@@ -399,7 +405,7 @@ const Z = class Z {
|
|
|
399
405
|
* @returns A new instance of the algorithm, or null if not found
|
|
400
406
|
*/
|
|
401
407
|
static get(t, n, r, i) {
|
|
402
|
-
const s =
|
|
408
|
+
const s = E.get(`${n}:${r}`);
|
|
403
409
|
return s ? new s(t, i) : null;
|
|
404
410
|
}
|
|
405
411
|
/**
|
|
@@ -409,7 +415,7 @@ const Z = class Z {
|
|
|
409
415
|
* @returns The algorithm class, or null if not found
|
|
410
416
|
*/
|
|
411
417
|
static getClass(t, n) {
|
|
412
|
-
return
|
|
418
|
+
return E.get(`${t}:${n}`) ?? null;
|
|
413
419
|
}
|
|
414
420
|
/**
|
|
415
421
|
* Get the options schema for this algorithm
|
|
@@ -448,7 +454,7 @@ const Z = class Z {
|
|
|
448
454
|
*/
|
|
449
455
|
static getRegisteredAlgorithms(t) {
|
|
450
456
|
const n = [];
|
|
451
|
-
for (const r of
|
|
457
|
+
for (const r of E.keys())
|
|
452
458
|
(!t || r.startsWith(`${t}:`)) && n.push(r);
|
|
453
459
|
return n.sort();
|
|
454
460
|
}
|
|
@@ -474,11 +480,11 @@ const ee = 3, qe = 0.1;
|
|
|
474
480
|
function m(e, t) {
|
|
475
481
|
return Number.isInteger(e) ? e.toLocaleString(t) : Number(e.toFixed(ee)).toLocaleString(t, { maximumFractionDigits: ee });
|
|
476
482
|
}
|
|
477
|
-
function
|
|
483
|
+
function Ye(e, t, n) {
|
|
478
484
|
const r = e.fields.find((i) => i.name === t);
|
|
479
485
|
return r === void 0 ? t : n === "technical" ? r.technicalName : r.plainName.toLowerCase();
|
|
480
486
|
}
|
|
481
|
-
function
|
|
487
|
+
function C(e, t, n) {
|
|
482
488
|
const r = e.fields.find((i) => i.name === t)?.unit;
|
|
483
489
|
return r === void 0 ? "" : n === 1 && r.endsWith("s") ? ` ${r.slice(0, -1)}` : ` ${r}`;
|
|
484
490
|
}
|
|
@@ -489,19 +495,19 @@ function R(e, t) {
|
|
|
489
495
|
function We(e) {
|
|
490
496
|
return e[0];
|
|
491
497
|
}
|
|
492
|
-
function
|
|
493
|
-
const { locale: r, audience: i } = n, s =
|
|
498
|
+
function Ke(e, t, n) {
|
|
499
|
+
const { locale: r, audience: i } = n, s = Ye(e, "value", i), o = We(t.top);
|
|
494
500
|
if (o === void 0 || t.median === null)
|
|
495
501
|
return `Nothing was measured, so there is no ${s} to report.`;
|
|
496
502
|
const a = [
|
|
497
|
-
`${o.label} has the highest ${s}, at ${m(o.value, r)}${
|
|
498
|
-
`The typical element sits at ${m(t.median, r)}${
|
|
503
|
+
`${o.label} has the highest ${s}, at ${m(o.value, r)}${C(e, "value", o.value)}.`,
|
|
504
|
+
`The typical element sits at ${m(t.median, r)}${C(e, "value", t.median)}.`
|
|
499
505
|
];
|
|
500
506
|
return t.measured > 0 && t.tiedAtMin / t.measured >= qe && t.min !== null && a.push(
|
|
501
|
-
`${m(t.tiedAtMin, r)} of ${m(t.measured, r)} sit at the lowest value, ${m(t.min, r)}${
|
|
507
|
+
`${m(t.tiedAtMin, r)} of ${m(t.measured, r)} sit at the lowest value, ${m(t.min, r)}${C(e, "value", t.min)}.`
|
|
502
508
|
), t.count > t.measured && a.push(`${m(t.count - t.measured, r)} were not measured.`), a.join(" ");
|
|
503
509
|
}
|
|
504
|
-
function
|
|
510
|
+
function Ze(e, t, n) {
|
|
505
511
|
const { locale: r } = n, i = t.groups ?? [];
|
|
506
512
|
if (i.length === 0)
|
|
507
513
|
return "Nothing was grouped, so there are no groups to report.";
|
|
@@ -511,62 +517,62 @@ function Ke(e, t, n) {
|
|
|
511
517
|
], a = R(e, "modularity");
|
|
512
518
|
return a !== void 0 && o.push(`Modularity is ${m(a, r)}.`), o.join(" ");
|
|
513
519
|
}
|
|
514
|
-
function
|
|
520
|
+
function Xe(e, t) {
|
|
515
521
|
const { locale: n } = t, r = R(e, "hops"), i = R(e, "cost");
|
|
516
522
|
if (r === void 0 && i === void 0)
|
|
517
523
|
return "No route was found.";
|
|
518
524
|
const s = [];
|
|
519
525
|
return r !== void 0 && s.push(`The route runs ${m(r, n)} ${r === 1 ? "hop" : "hops"}.`), i !== void 0 && s.push(`Its total cost is ${m(i, n)}.`), s.join(" ");
|
|
520
526
|
}
|
|
521
|
-
function
|
|
527
|
+
function Qe(e, t, n) {
|
|
522
528
|
const { locale: r } = n, i = R(e, "count") ?? t.measured, s = e.shape === "edge-set" ? "edge" : "node";
|
|
523
529
|
return i === 0 ? `No ${s}s were selected.` : `${m(i, r)} ${i === 1 ? s : `${s}s`} were selected.`;
|
|
524
530
|
}
|
|
525
|
-
function
|
|
531
|
+
function et(e, t) {
|
|
526
532
|
const { pairs: n } = e.graph, r = Array.isArray(n) ? n.length : 0;
|
|
527
533
|
return r === 0 ? "No pairs were found." : `${m(r, t.locale)} ${r === 1 ? "pair was" : "pairs were"} found.`;
|
|
528
534
|
}
|
|
529
|
-
function
|
|
535
|
+
function tt(e, t) {
|
|
530
536
|
const n = R(e, "steps");
|
|
531
537
|
return n === void 0 || n === 0 ? "The series is empty." : `The series covers ${m(n, t.locale)} ${n === 1 ? "step" : "steps"}.`;
|
|
532
538
|
}
|
|
533
539
|
function te(e, t) {
|
|
534
540
|
return e.measured === 0 ? "The run produced no values." : `The run covered ${m(e.measured, t.locale)} of ${m(e.count, t.locale)}.`;
|
|
535
541
|
}
|
|
536
|
-
function
|
|
542
|
+
function nt(e, t) {
|
|
537
543
|
const n = e.summary(), { shape: r } = e;
|
|
538
544
|
switch (r) {
|
|
539
545
|
case "node-metric":
|
|
540
546
|
case "edge-metric":
|
|
541
|
-
return
|
|
547
|
+
return Ke(e, n, t);
|
|
542
548
|
case "community":
|
|
543
549
|
case "layered-grouping":
|
|
544
550
|
case "category-table":
|
|
545
|
-
return
|
|
551
|
+
return Ze(e, n, t);
|
|
546
552
|
case "path":
|
|
547
|
-
return
|
|
553
|
+
return Xe(e, t);
|
|
548
554
|
case "node-set":
|
|
549
555
|
case "edge-set":
|
|
550
|
-
return
|
|
556
|
+
return Qe(e, n, t);
|
|
551
557
|
case "pair-list":
|
|
552
|
-
return Qe(e, t);
|
|
553
|
-
case "temporal":
|
|
554
558
|
return et(e, t);
|
|
559
|
+
case "temporal":
|
|
560
|
+
return tt(e, t);
|
|
555
561
|
case "fact":
|
|
556
562
|
return te(n, t);
|
|
557
563
|
default:
|
|
558
564
|
return te(n, t);
|
|
559
565
|
}
|
|
560
566
|
}
|
|
561
|
-
function
|
|
567
|
+
function Cn(e, t) {
|
|
562
568
|
const n = t === "node", r = n ? e.nodeValue : e.edgeValue, i = n ? e.nodeHas : e.edgeHas, s = n ? e.nodeIdOf : e.edgeIdOf;
|
|
563
569
|
return {
|
|
564
570
|
value: r,
|
|
565
|
-
has: i ?? ((o, a) =>
|
|
571
|
+
has: i ?? ((o, a) => rt(r(o, a))),
|
|
566
572
|
idOf: s ?? null
|
|
567
573
|
};
|
|
568
574
|
}
|
|
569
|
-
function
|
|
575
|
+
function rt(e) {
|
|
570
576
|
return e != null;
|
|
571
577
|
}
|
|
572
578
|
function I(e) {
|
|
@@ -594,7 +600,7 @@ function f(e, t, n, r = {}) {
|
|
|
594
600
|
details: { ...r, position: n, where: t }
|
|
595
601
|
});
|
|
596
602
|
}
|
|
597
|
-
const
|
|
603
|
+
const it = Object.freeze({
|
|
598
604
|
"[": "index, slice, wildcard and filter expressions",
|
|
599
605
|
"]": "index, slice, wildcard and filter expressions",
|
|
600
606
|
"{": "multi-select hashes",
|
|
@@ -603,14 +609,14 @@ const rt = Object.freeze({
|
|
|
603
609
|
"*": "wildcards",
|
|
604
610
|
"@": "the current-node reference",
|
|
605
611
|
":": "slices"
|
|
606
|
-
}),
|
|
612
|
+
}), st = ["&&", "||", "==", "!=", "<=", ">=", "!", "<", ">", ".", "(", ")"];
|
|
607
613
|
function fe(e) {
|
|
608
614
|
return /[A-Za-z_]/.test(e);
|
|
609
615
|
}
|
|
610
616
|
function ge(e) {
|
|
611
617
|
return /[A-Za-z0-9_]/.test(e);
|
|
612
618
|
}
|
|
613
|
-
function
|
|
619
|
+
function x(e, t, n) {
|
|
614
620
|
for (let r = t + 1; r < e.length; r++) {
|
|
615
621
|
if (e[r] === "\\") {
|
|
616
622
|
r++;
|
|
@@ -621,7 +627,7 @@ function C(e, t, n) {
|
|
|
621
627
|
}
|
|
622
628
|
throw f(`A ${n} is opened and never closed`, e, t, { delimiter: n });
|
|
623
629
|
}
|
|
624
|
-
function
|
|
630
|
+
function ot(e) {
|
|
625
631
|
let t = "";
|
|
626
632
|
for (let n = 0; n < e.length; n++) {
|
|
627
633
|
if (e[n] === "\\" && (e[n + 1] === "'" || e[n + 1] === "\\")) {
|
|
@@ -632,7 +638,7 @@ function st(e) {
|
|
|
632
638
|
}
|
|
633
639
|
return t;
|
|
634
640
|
}
|
|
635
|
-
function
|
|
641
|
+
function at(e, t, n) {
|
|
636
642
|
const r = n.replace(/\\`/g, "`");
|
|
637
643
|
try {
|
|
638
644
|
return JSON.parse(r);
|
|
@@ -645,7 +651,7 @@ function ot(e, t, n) {
|
|
|
645
651
|
);
|
|
646
652
|
}
|
|
647
653
|
}
|
|
648
|
-
function
|
|
654
|
+
function ct(e, t, n) {
|
|
649
655
|
try {
|
|
650
656
|
const r = JSON.parse(n);
|
|
651
657
|
if (typeof r == "string")
|
|
@@ -659,7 +665,7 @@ function at(e, t, n) {
|
|
|
659
665
|
{ name: n }
|
|
660
666
|
);
|
|
661
667
|
}
|
|
662
|
-
function
|
|
668
|
+
function ut(e) {
|
|
663
669
|
const t = [];
|
|
664
670
|
let n = 0;
|
|
665
671
|
for (; n < e.length; ) {
|
|
@@ -668,7 +674,7 @@ function ct(e) {
|
|
|
668
674
|
n++;
|
|
669
675
|
continue;
|
|
670
676
|
}
|
|
671
|
-
const i =
|
|
677
|
+
const i = it[r];
|
|
672
678
|
if (i !== void 0)
|
|
673
679
|
throw f(`A selector does not support ${i}`, e, n, { construct: i });
|
|
674
680
|
if (r === "|" && e.charAt(n + 1) !== "|")
|
|
@@ -677,24 +683,24 @@ function ct(e) {
|
|
|
677
683
|
throw f("A selector does not support expression references", e, n, {
|
|
678
684
|
construct: "expression references"
|
|
679
685
|
});
|
|
680
|
-
const s =
|
|
686
|
+
const s = st.find((o) => e.startsWith(o, n));
|
|
681
687
|
if (s !== void 0) {
|
|
682
688
|
t.push({ kind: "operator", text: s, at: n }), n += s.length;
|
|
683
689
|
continue;
|
|
684
690
|
}
|
|
685
691
|
if (r === "`") {
|
|
686
|
-
const o =
|
|
687
|
-
t.push({ kind: "literal", text: "", value:
|
|
692
|
+
const o = x(e, n, "`");
|
|
693
|
+
t.push({ kind: "literal", text: "", value: at(e, n, e.slice(n + 1, o)), at: n }), n = o + 1;
|
|
688
694
|
continue;
|
|
689
695
|
}
|
|
690
696
|
if (r === "'") {
|
|
691
|
-
const o =
|
|
692
|
-
t.push({ kind: "literal", text: "", value:
|
|
697
|
+
const o = x(e, n, "'");
|
|
698
|
+
t.push({ kind: "literal", text: "", value: ot(e.slice(n + 1, o)), at: n }), n = o + 1;
|
|
693
699
|
continue;
|
|
694
700
|
}
|
|
695
701
|
if (r === '"') {
|
|
696
|
-
const o =
|
|
697
|
-
t.push({ kind: "identifier", text:
|
|
702
|
+
const o = x(e, n, '"');
|
|
703
|
+
t.push({ kind: "identifier", text: ct(e, n, e.slice(n, o + 1)), at: n }), n = o + 1;
|
|
698
704
|
continue;
|
|
699
705
|
}
|
|
700
706
|
if (fe(r)) {
|
|
@@ -715,7 +721,7 @@ function ct(e) {
|
|
|
715
721
|
}
|
|
716
722
|
return t.push({ kind: "end", text: "", at: e.length }), t;
|
|
717
723
|
}
|
|
718
|
-
const
|
|
724
|
+
const lt = Object.freeze({
|
|
719
725
|
"!=": "!=",
|
|
720
726
|
"<": "<",
|
|
721
727
|
"<=": "<=",
|
|
@@ -730,7 +736,7 @@ function S(e, t) {
|
|
|
730
736
|
const n = N(e);
|
|
731
737
|
return n.kind === "operator" && n.text === t;
|
|
732
738
|
}
|
|
733
|
-
function
|
|
739
|
+
function dt(e) {
|
|
734
740
|
const t = N(e), n = [];
|
|
735
741
|
for (; ; ) {
|
|
736
742
|
const r = N(e);
|
|
@@ -755,12 +761,12 @@ function lt(e) {
|
|
|
755
761
|
e.index++;
|
|
756
762
|
}
|
|
757
763
|
}
|
|
758
|
-
function
|
|
764
|
+
function pt(e) {
|
|
759
765
|
const t = N(e);
|
|
760
766
|
if (t.kind === "literal")
|
|
761
767
|
return e.index++, { kind: "literal", value: t.value };
|
|
762
768
|
if (t.kind === "identifier")
|
|
763
|
-
return
|
|
769
|
+
return dt(e);
|
|
764
770
|
if (S(e, "(")) {
|
|
765
771
|
e.index++;
|
|
766
772
|
const n = ye(e);
|
|
@@ -774,12 +780,12 @@ function dt(e) {
|
|
|
774
780
|
t.at
|
|
775
781
|
);
|
|
776
782
|
}
|
|
777
|
-
function
|
|
783
|
+
function U(e) {
|
|
778
784
|
if (!S(e, "!"))
|
|
779
|
-
return
|
|
785
|
+
return pt(e);
|
|
780
786
|
const t = N(e);
|
|
781
787
|
e.index++;
|
|
782
|
-
const n =
|
|
788
|
+
const n = U(e);
|
|
783
789
|
if (n.kind === "path" && n.path.includes("."))
|
|
784
790
|
throw f(
|
|
785
791
|
`In JMESPath \`!\` binds tighter than \`.\`, so !${n.path} means (!${n.path.split(".")[0]})${n.path.slice(n.path.indexOf("."))} rather than the opposite of ${n.path}. Write !(${n.path}) for that`,
|
|
@@ -790,8 +796,8 @@ function H(e) {
|
|
|
790
796
|
return { kind: "not", operand: n };
|
|
791
797
|
}
|
|
792
798
|
function re(e) {
|
|
793
|
-
const t =
|
|
794
|
-
return r === void 0 ? t : (e.index++, { kind: "compare", operator: r, left: t, right:
|
|
799
|
+
const t = U(e), n = N(e), r = n.kind === "operator" ? lt[n.text] : void 0;
|
|
800
|
+
return r === void 0 ? t : (e.index++, { kind: "compare", operator: r, left: t, right: U(e) });
|
|
795
801
|
}
|
|
796
802
|
function ie(e) {
|
|
797
803
|
let t = re(e);
|
|
@@ -805,8 +811,8 @@ function ye(e) {
|
|
|
805
811
|
e.index++, t = { kind: "or", left: t, right: ie(e) };
|
|
806
812
|
return t;
|
|
807
813
|
}
|
|
808
|
-
function
|
|
809
|
-
const t = { where: e, tokens:
|
|
814
|
+
function ht(e) {
|
|
815
|
+
const t = { where: e, tokens: ut(e), index: 0 }, n = ye(t), r = N(t);
|
|
810
816
|
if (r.kind !== "end")
|
|
811
817
|
throw f(
|
|
812
818
|
`${JSON.stringify(r.text)} is left over at the end of the selector`,
|
|
@@ -869,21 +875,21 @@ function w(e, t) {
|
|
|
869
875
|
};
|
|
870
876
|
}
|
|
871
877
|
default:
|
|
872
|
-
return
|
|
878
|
+
return gt(e.operator, e.left, e.right, t);
|
|
873
879
|
}
|
|
874
880
|
}
|
|
875
|
-
const
|
|
881
|
+
const mt = Object.freeze({
|
|
876
882
|
"<": (e, t) => e < t,
|
|
877
883
|
"<=": (e, t) => e <= t,
|
|
878
884
|
">": (e, t) => e > t,
|
|
879
885
|
">=": (e, t) => e >= t
|
|
880
886
|
});
|
|
881
|
-
function
|
|
887
|
+
function ft(e, t) {
|
|
882
888
|
return e.kind === "literal" ? e : t.kind === "literal" ? t : null;
|
|
883
889
|
}
|
|
884
|
-
function
|
|
890
|
+
function gt(e, t, n, r) {
|
|
885
891
|
if (e === "==" || e === "!=") {
|
|
886
|
-
const a = e === "==", u = t.kind === "literal", c =
|
|
892
|
+
const a = e === "==", u = t.kind === "literal", c = ft(t, n), h = u ? n : t;
|
|
887
893
|
if (c !== null && c.value === null && h.kind === "path") {
|
|
888
894
|
const { path: d } = h, { has: v } = r;
|
|
889
895
|
return (k) => v(k, d) !== a;
|
|
@@ -895,7 +901,7 @@ function ft(e, t, n, r) {
|
|
|
895
901
|
}
|
|
896
902
|
return (d) => G(p(d), l(d)) === a;
|
|
897
903
|
}
|
|
898
|
-
const i = w(t, r), s = w(n, r), o =
|
|
904
|
+
const i = w(t, r), s = w(n, r), o = mt[e];
|
|
899
905
|
return (a) => {
|
|
900
906
|
const u = i(a), c = s(a);
|
|
901
907
|
return typeof u == "number" && typeof c == "number" ? o(u, c) : null;
|
|
@@ -924,10 +930,10 @@ function A(e, t) {
|
|
|
924
930
|
}
|
|
925
931
|
}
|
|
926
932
|
}
|
|
927
|
-
function gt(e) {
|
|
928
|
-
return e.split(".").map((t) => yt(t) ? t : JSON.stringify(t)).join(".");
|
|
929
|
-
}
|
|
930
933
|
function yt(e) {
|
|
934
|
+
return e.split(".").map((t) => bt(t) ? t : JSON.stringify(t)).join(".");
|
|
935
|
+
}
|
|
936
|
+
function bt(e) {
|
|
931
937
|
if (e === "" || !fe(e[0]))
|
|
932
938
|
return !1;
|
|
933
939
|
for (let t = 1; t < e.length; t++)
|
|
@@ -935,11 +941,11 @@ function yt(e) {
|
|
|
935
941
|
return !1;
|
|
936
942
|
return !0;
|
|
937
943
|
}
|
|
938
|
-
function
|
|
944
|
+
function xn(e, t) {
|
|
939
945
|
const { has: n } = e;
|
|
940
946
|
return (r) => n(r, t);
|
|
941
947
|
}
|
|
942
|
-
function
|
|
948
|
+
function jn(e, t) {
|
|
943
949
|
const { idOf: n } = e;
|
|
944
950
|
if (n === null)
|
|
945
951
|
throw new y({
|
|
@@ -950,7 +956,7 @@ function zn(e, t) {
|
|
|
950
956
|
});
|
|
951
957
|
return (r) => t.has(n(r));
|
|
952
958
|
}
|
|
953
|
-
function
|
|
959
|
+
function Pn(e, t, n) {
|
|
954
960
|
const { value: r } = e;
|
|
955
961
|
return (i) => {
|
|
956
962
|
const s = n();
|
|
@@ -960,8 +966,8 @@ function xn(e, t, n) {
|
|
|
960
966
|
return typeof o == "number" && Number.isFinite(o) && o >= s;
|
|
961
967
|
};
|
|
962
968
|
}
|
|
963
|
-
function
|
|
964
|
-
const n =
|
|
969
|
+
function Ln(e, t) {
|
|
970
|
+
const n = ht(e), r = [];
|
|
965
971
|
if ($(n, r), r.length === 0) {
|
|
966
972
|
let i = n;
|
|
967
973
|
for (; i.kind === "group"; )
|
|
@@ -976,9 +982,9 @@ function Cn(e, t) {
|
|
|
976
982
|
}
|
|
977
983
|
return { paths: Object.freeze(r), test: A(n, t) };
|
|
978
984
|
}
|
|
979
|
-
const
|
|
980
|
-
function
|
|
981
|
-
return t === void 0 ? `${
|
|
985
|
+
const H = "results", wt = "$";
|
|
986
|
+
function T(e, t) {
|
|
987
|
+
return t === void 0 ? `${H}.${e}` : `${H}.${e}.${t}`;
|
|
982
988
|
}
|
|
983
989
|
const be = {
|
|
984
990
|
// -- per element ---------------------------------------------------------------------
|
|
@@ -1148,7 +1154,7 @@ const be = {
|
|
|
1148
1154
|
scope: "graph",
|
|
1149
1155
|
types: ["number"]
|
|
1150
1156
|
}
|
|
1151
|
-
},
|
|
1157
|
+
}, Dn = Object.keys(be), J = {
|
|
1152
1158
|
"node-metric": {
|
|
1153
1159
|
shape: "node-metric",
|
|
1154
1160
|
primaryField: "value",
|
|
@@ -1266,13 +1272,13 @@ const be = {
|
|
|
1266
1272
|
}
|
|
1267
1273
|
};
|
|
1268
1274
|
function B(e) {
|
|
1269
|
-
return
|
|
1275
|
+
return J[e];
|
|
1270
1276
|
}
|
|
1271
|
-
function
|
|
1272
|
-
return
|
|
1277
|
+
function Gn(e) {
|
|
1278
|
+
return J[e].layer === "highlight";
|
|
1273
1279
|
}
|
|
1274
|
-
function
|
|
1275
|
-
const n =
|
|
1280
|
+
function Un(e, t) {
|
|
1281
|
+
const n = J[e], r = [], i = [
|
|
1276
1282
|
{ names: n.nodeFields, kind: "node" },
|
|
1277
1283
|
{ names: n.edgeFields, kind: "edge" },
|
|
1278
1284
|
{ names: n.graphFields, kind: "graph" }
|
|
@@ -1295,18 +1301,18 @@ function Ln(e, t) {
|
|
|
1295
1301
|
reason: `${o} field "${a}" is typed "${u.type}", not ${c.map((h) => `"${h}"`).join(" or ")}`
|
|
1296
1302
|
});
|
|
1297
1303
|
}
|
|
1298
|
-
return n.headlineScalar && !
|
|
1304
|
+
return n.headlineScalar && !vt(n, t) && r.push({
|
|
1299
1305
|
field: null,
|
|
1300
1306
|
kind: "graph",
|
|
1301
1307
|
reason: `shape "${e}" requires one graph-level scalar of its own beside "count"`
|
|
1302
1308
|
}), r;
|
|
1303
1309
|
}
|
|
1304
|
-
function
|
|
1310
|
+
function vt(e, t) {
|
|
1305
1311
|
const n = [...e.graphFields, ...e.optionalGraphFields];
|
|
1306
1312
|
return t.some((r) => r.kind === "graph" && !n.includes(r.name));
|
|
1307
1313
|
}
|
|
1308
|
-
const
|
|
1309
|
-
function
|
|
1314
|
+
const Ot = 3;
|
|
1315
|
+
function kt(e, t) {
|
|
1310
1316
|
if (e === t)
|
|
1311
1317
|
return 0;
|
|
1312
1318
|
const n = new Uint32Array(t.length + 1), r = new Uint32Array(t.length + 1);
|
|
@@ -1322,23 +1328,23 @@ function Ot(e, t) {
|
|
|
1322
1328
|
}
|
|
1323
1329
|
return n[t.length];
|
|
1324
1330
|
}
|
|
1325
|
-
function
|
|
1331
|
+
function Nt(e, t, n = Ot) {
|
|
1326
1332
|
const r = e.toLowerCase(), i = t.map((s) => ({
|
|
1327
1333
|
candidate: s,
|
|
1328
|
-
distance:
|
|
1334
|
+
distance: kt(r, s.toLowerCase())
|
|
1329
1335
|
}));
|
|
1330
1336
|
return i.sort((s, o) => s.distance - o.distance || s.candidate.localeCompare(o.candidate)), Object.freeze(i.slice(0, Math.max(n, 0)).map((s) => s.candidate));
|
|
1331
1337
|
}
|
|
1332
1338
|
function se(e) {
|
|
1333
1339
|
return typeof e == "string" ? e : "runId" in e ? e.runId : e.id;
|
|
1334
1340
|
}
|
|
1335
|
-
function
|
|
1341
|
+
function St(e) {
|
|
1336
1342
|
return typeof e == "string" ? void 0 : e.shape;
|
|
1337
1343
|
}
|
|
1338
|
-
function
|
|
1344
|
+
function At(e, t) {
|
|
1339
1345
|
return e.fields.some((n) => n.name === t) || t in e.graph;
|
|
1340
1346
|
}
|
|
1341
|
-
class
|
|
1347
|
+
class $t {
|
|
1342
1348
|
#e;
|
|
1343
1349
|
/**
|
|
1344
1350
|
* Build the API over a registry.
|
|
@@ -1361,9 +1367,9 @@ class At {
|
|
|
1361
1367
|
path(t, n) {
|
|
1362
1368
|
const r = se(t);
|
|
1363
1369
|
if (n !== void 0)
|
|
1364
|
-
return
|
|
1365
|
-
const i =
|
|
1366
|
-
return s === null ?
|
|
1370
|
+
return T(r, n);
|
|
1371
|
+
const i = St(t) ?? this.#e.entry(r)?.shape, s = i === void 0 ? null : B(i).primaryField;
|
|
1372
|
+
return s === null ? T(r) : T(r, s);
|
|
1367
1373
|
}
|
|
1368
1374
|
/**
|
|
1369
1375
|
* The same field, written so a selector expression can read it.
|
|
@@ -1378,7 +1384,7 @@ class At {
|
|
|
1378
1384
|
* @returns The path with every segment quoted that needs it.
|
|
1379
1385
|
*/
|
|
1380
1386
|
term(t, n) {
|
|
1381
|
-
return
|
|
1387
|
+
return yt(n === void 0 ? this.path(t) : this.path(t, n));
|
|
1382
1388
|
}
|
|
1383
1389
|
/**
|
|
1384
1390
|
* One run's result.
|
|
@@ -1400,7 +1406,7 @@ class At {
|
|
|
1400
1406
|
*/
|
|
1401
1407
|
has(t, n) {
|
|
1402
1408
|
const r = this.get(t);
|
|
1403
|
-
return r === void 0 ? !1 : n === void 0 ||
|
|
1409
|
+
return r === void 0 ? !1 : n === void 0 || At(r, n);
|
|
1404
1410
|
}
|
|
1405
1411
|
/**
|
|
1406
1412
|
* Every run that has published a result, as an expression editor reads them.
|
|
@@ -1413,20 +1419,20 @@ class At {
|
|
|
1413
1419
|
return Object.freeze(t);
|
|
1414
1420
|
}
|
|
1415
1421
|
}
|
|
1416
|
-
function
|
|
1417
|
-
return new
|
|
1422
|
+
function Hn(e) {
|
|
1423
|
+
return new $t(e);
|
|
1418
1424
|
}
|
|
1419
|
-
const
|
|
1425
|
+
const Rt = 20, j = 100, Et = 100, Ft = Object.freeze([]), It = Object.freeze(["max", "min-max", "none"]);
|
|
1420
1426
|
function we(e) {
|
|
1421
|
-
return typeof e == "string" &&
|
|
1427
|
+
return typeof e == "string" && It.includes(e);
|
|
1422
1428
|
}
|
|
1423
|
-
function
|
|
1429
|
+
function Bn(e) {
|
|
1424
1430
|
return {
|
|
1425
1431
|
length: e.length,
|
|
1426
1432
|
get: (t) => e[t]
|
|
1427
1433
|
};
|
|
1428
1434
|
}
|
|
1429
|
-
const
|
|
1435
|
+
const Tt = Object.freeze({
|
|
1430
1436
|
measured: 0,
|
|
1431
1437
|
min: Number.NaN,
|
|
1432
1438
|
max: Number.NaN,
|
|
@@ -1443,7 +1449,7 @@ function ve(e) {
|
|
|
1443
1449
|
Number.isFinite(d) && (n[r] = d, r++);
|
|
1444
1450
|
}
|
|
1445
1451
|
if (r === 0)
|
|
1446
|
-
return { length: t, ...
|
|
1452
|
+
return { length: t, ...Tt };
|
|
1447
1453
|
let i = Number.POSITIVE_INFINITY, s = Number.NEGATIVE_INFINITY, o = Number.POSITIVE_INFINITY, a = 0, u = 0;
|
|
1448
1454
|
for (let l = 0; l < r; l++) {
|
|
1449
1455
|
const d = n[l];
|
|
@@ -1477,7 +1483,7 @@ function Oe(e) {
|
|
|
1477
1483
|
median: t.median
|
|
1478
1484
|
}), statistics: t };
|
|
1479
1485
|
}
|
|
1480
|
-
function
|
|
1486
|
+
function q(e) {
|
|
1481
1487
|
const t = e.filter((o) => Number.isFinite(o.value)).map((o) => ({ entry: o, label: String(o.id) }));
|
|
1482
1488
|
t.sort((o, a) => o.entry.value !== a.entry.value ? a.entry.value - o.entry.value : o.label === a.label ? 0 : o.label < a.label ? -1 : 1);
|
|
1483
1489
|
const n = t.length, r = [];
|
|
@@ -1512,17 +1518,17 @@ function Mt(e, t) {
|
|
|
1512
1518
|
reason: o
|
|
1513
1519
|
});
|
|
1514
1520
|
}
|
|
1515
|
-
function
|
|
1521
|
+
function _t(e) {
|
|
1516
1522
|
const { smallestPositive: t } = e;
|
|
1517
1523
|
if (e.measured === 0 || !(e.max > 0) || t === null)
|
|
1518
1524
|
return !1;
|
|
1519
1525
|
const n = e.min > 0 ? e.min : t;
|
|
1520
1526
|
return Math.log10(e.max) > Math.log10(n);
|
|
1521
1527
|
}
|
|
1522
|
-
function
|
|
1523
|
-
return e.measured === 0 || !(e.median > 0) || e.max / e.median <=
|
|
1528
|
+
function zt(e) {
|
|
1529
|
+
return e.measured === 0 || !(e.median > 0) || e.max / e.median <= Et ? "linear" : _t(e) ? "log" : "linear";
|
|
1524
1530
|
}
|
|
1525
|
-
function
|
|
1531
|
+
function Ct(e, t, n, r) {
|
|
1526
1532
|
if (!(t > e))
|
|
1527
1533
|
return { binCount: 1, indexOf: () => 0, rangeOf: () => [e, t] };
|
|
1528
1534
|
if (r) {
|
|
@@ -1576,9 +1582,9 @@ function xt(e, t, n, r, i) {
|
|
|
1576
1582
|
}
|
|
1577
1583
|
};
|
|
1578
1584
|
}
|
|
1579
|
-
function
|
|
1585
|
+
function jt(e) {
|
|
1580
1586
|
if (e === void 0)
|
|
1581
|
-
return
|
|
1587
|
+
return Rt;
|
|
1582
1588
|
if (!Number.isInteger(e) || e < 1 || e > j)
|
|
1583
1589
|
throw new y({
|
|
1584
1590
|
code: "E_OPTION_RANGE",
|
|
@@ -1588,7 +1594,7 @@ function Ct(e) {
|
|
|
1588
1594
|
});
|
|
1589
1595
|
return e;
|
|
1590
1596
|
}
|
|
1591
|
-
function
|
|
1597
|
+
function Pt(e, t) {
|
|
1592
1598
|
const n = /* @__PURE__ */ new Map();
|
|
1593
1599
|
for (let r = 0; r < e.length; r++) {
|
|
1594
1600
|
const i = e.get(r);
|
|
@@ -1605,8 +1611,8 @@ function jt(e, t) {
|
|
|
1605
1611
|
}
|
|
1606
1612
|
return n;
|
|
1607
1613
|
}
|
|
1608
|
-
function
|
|
1609
|
-
const n =
|
|
1614
|
+
function Lt(e, t) {
|
|
1615
|
+
const n = jt(t?.bins), r = t?.integerValued ?? !1, i = ve(e), s = zt(i), o = Pt(e, n);
|
|
1610
1616
|
if (o !== null) {
|
|
1611
1617
|
if (o.size === 0)
|
|
1612
1618
|
return Object.freeze({
|
|
@@ -1629,7 +1635,7 @@ function Pt(e, t) {
|
|
|
1629
1635
|
binning: "per-value"
|
|
1630
1636
|
});
|
|
1631
1637
|
}
|
|
1632
|
-
const u = t?.scale === "log" || t?.scale === "auto" && s === "log" ? xt(i.min, i.max, i.smallestPositive, n, r) : null, c = u ??
|
|
1638
|
+
const u = t?.scale === "log" || t?.scale === "auto" && s === "log" ? xt(i.min, i.max, i.smallestPositive, n, r) : null, c = u ?? Ct(i.min, i.max, n, r), h = new Array(c.binCount).fill(0);
|
|
1633
1639
|
for (let p = 0; p < e.length; p++) {
|
|
1634
1640
|
const l = e.get(p);
|
|
1635
1641
|
Number.isFinite(l) && (h[c.indexOf(l)] += 1);
|
|
@@ -1648,7 +1654,7 @@ function Pt(e, t) {
|
|
|
1648
1654
|
binning: "banded"
|
|
1649
1655
|
});
|
|
1650
1656
|
}
|
|
1651
|
-
const
|
|
1657
|
+
const Dt = 10, Gt = 10;
|
|
1652
1658
|
function oe(e) {
|
|
1653
1659
|
const t = { ids: [], records: [], index: /* @__PURE__ */ new Map() };
|
|
1654
1660
|
if (e === void 0)
|
|
@@ -1670,13 +1676,13 @@ function V(e, t) {
|
|
|
1670
1676
|
get: (r) => ke(n[r][t])
|
|
1671
1677
|
};
|
|
1672
1678
|
}
|
|
1673
|
-
function
|
|
1679
|
+
function Y(e, t) {
|
|
1674
1680
|
return e.ids.map((n, r) => ({ id: n, value: ke(e.records[r][t]) }));
|
|
1675
1681
|
}
|
|
1676
1682
|
function ke(e) {
|
|
1677
1683
|
return typeof e == "number" ? e : Number.NaN;
|
|
1678
1684
|
}
|
|
1679
|
-
function
|
|
1685
|
+
function W(e) {
|
|
1680
1686
|
return typeof e == "string" || typeof e == "number";
|
|
1681
1687
|
}
|
|
1682
1688
|
function P(e) {
|
|
@@ -1685,14 +1691,14 @@ function P(e) {
|
|
|
1685
1691
|
function g(e, t, n) {
|
|
1686
1692
|
e[t] === void 0 && (e[t] = n);
|
|
1687
1693
|
}
|
|
1688
|
-
function
|
|
1694
|
+
function M(e, t, n) {
|
|
1689
1695
|
e[t] === void 0 && (e[t] = n);
|
|
1690
1696
|
}
|
|
1691
1697
|
function Ne(e, t) {
|
|
1692
1698
|
const n = /* @__PURE__ */ new Map();
|
|
1693
1699
|
for (const r of e.records) {
|
|
1694
1700
|
const i = r[t];
|
|
1695
|
-
|
|
1701
|
+
W(i) && n.set(i, (n.get(i) ?? 0) + 1);
|
|
1696
1702
|
}
|
|
1697
1703
|
return n;
|
|
1698
1704
|
}
|
|
@@ -1700,7 +1706,7 @@ function Se(e, t) {
|
|
|
1700
1706
|
const n = String(e), r = String(t);
|
|
1701
1707
|
return n === r ? 0 : n < r ? -1 : 1;
|
|
1702
1708
|
}
|
|
1703
|
-
function
|
|
1709
|
+
function Ut(e) {
|
|
1704
1710
|
const t = [...e.entries()].map(([n, r]) => ({ group: n, size: r }));
|
|
1705
1711
|
return t.sort((n, r) => r.size - n.size || Se(n.group, r.group)), Object.freeze(t.map((n) => Object.freeze(n)));
|
|
1706
1712
|
}
|
|
@@ -1710,9 +1716,9 @@ function Ae(e, t) {
|
|
|
1710
1716
|
}
|
|
1711
1717
|
function ae(e, t, n) {
|
|
1712
1718
|
const { statistics: r } = Oe(V(e, "value"));
|
|
1713
|
-
for (const i of
|
|
1719
|
+
for (const i of q(Y(e, "value"))) {
|
|
1714
1720
|
const s = e.index.get(i.id);
|
|
1715
|
-
s !== void 0 && (
|
|
1721
|
+
s !== void 0 && (M(e.records[s], "rank", i.rank), M(e.records[s], "percentile", i.percentile));
|
|
1716
1722
|
}
|
|
1717
1723
|
r.measured > 0 && (g(t, "min", r.min), g(t, "max", r.max), g(t, "median", r.median), g(t, "mean", r.mean)), g(t, "measured", r.measured), g(t, "tiedAtMin", r.tiedAtMin), g(t, "normalization", Ae(n, "value"));
|
|
1718
1724
|
}
|
|
@@ -1720,14 +1726,14 @@ function ce(e, t, n, r, i) {
|
|
|
1720
1726
|
const s = Ne(e, n);
|
|
1721
1727
|
for (const o of e.records) {
|
|
1722
1728
|
const a = o[n];
|
|
1723
|
-
|
|
1729
|
+
W(a) && M(o, r, s.get(a));
|
|
1724
1730
|
}
|
|
1725
|
-
g(t, i, s.size), g(t, "sizes",
|
|
1731
|
+
g(t, i, s.size), g(t, "sizes", Ut(s));
|
|
1726
1732
|
}
|
|
1727
1733
|
function Ht(e, t) {
|
|
1728
|
-
for (const r of
|
|
1734
|
+
for (const r of q(Y(e, "score"))) {
|
|
1729
1735
|
const i = e.index.get(r.id);
|
|
1730
|
-
i !== void 0 &&
|
|
1736
|
+
i !== void 0 && M(e.records[i], "rank", r.rank);
|
|
1731
1737
|
}
|
|
1732
1738
|
const n = [...Ne(e, "category").entries()].map(([r, i]) => ({
|
|
1733
1739
|
category: String(r),
|
|
@@ -1735,7 +1741,7 @@ function Ht(e, t) {
|
|
|
1735
1741
|
}));
|
|
1736
1742
|
n.sort((r, i) => i.count - r.count || Se(r.category, i.category)), g(t, "categories", Object.freeze(n.map((r) => Object.freeze(r))));
|
|
1737
1743
|
}
|
|
1738
|
-
function
|
|
1744
|
+
function F(e, t) {
|
|
1739
1745
|
let n = 0;
|
|
1740
1746
|
for (const r of e.records)
|
|
1741
1747
|
r[t] === !0 && n++;
|
|
@@ -1747,7 +1753,7 @@ function ue(e, t) {
|
|
|
1747
1753
|
r[t] !== void 0 && n++;
|
|
1748
1754
|
return n;
|
|
1749
1755
|
}
|
|
1750
|
-
function
|
|
1756
|
+
function Bt(e, t, n, r, i) {
|
|
1751
1757
|
switch (e) {
|
|
1752
1758
|
case "node-metric":
|
|
1753
1759
|
ae(t, r, i);
|
|
@@ -1765,17 +1771,17 @@ function Ut(e, t, n, r, i) {
|
|
|
1765
1771
|
Ht(t, r);
|
|
1766
1772
|
break;
|
|
1767
1773
|
case "path":
|
|
1768
|
-
g(r, "length",
|
|
1774
|
+
g(r, "length", F(t, "onPath")), g(r, "hops", F(n, "onPath"));
|
|
1769
1775
|
break;
|
|
1770
1776
|
case "node-set":
|
|
1771
|
-
g(r, "count",
|
|
1777
|
+
g(r, "count", F(t, "in"));
|
|
1772
1778
|
break;
|
|
1773
1779
|
case "edge-set":
|
|
1774
|
-
g(r, "count",
|
|
1780
|
+
g(r, "count", F(n, "in"));
|
|
1775
1781
|
break;
|
|
1776
1782
|
}
|
|
1777
1783
|
}
|
|
1778
|
-
function
|
|
1784
|
+
function Vt(e) {
|
|
1779
1785
|
switch (e) {
|
|
1780
1786
|
case "node-metric":
|
|
1781
1787
|
case "edge-metric":
|
|
@@ -1788,7 +1794,7 @@ function Bt(e) {
|
|
|
1788
1794
|
return null;
|
|
1789
1795
|
}
|
|
1790
1796
|
}
|
|
1791
|
-
function
|
|
1797
|
+
function Jt(e, t) {
|
|
1792
1798
|
if (!Array.isArray(e))
|
|
1793
1799
|
return;
|
|
1794
1800
|
const n = [];
|
|
@@ -1796,7 +1802,7 @@ function Vt(e, t) {
|
|
|
1796
1802
|
if (typeof r != "object" || r === null)
|
|
1797
1803
|
continue;
|
|
1798
1804
|
const i = r, s = i.group ?? i.category, o = i.size ?? i.count;
|
|
1799
|
-
if (
|
|
1805
|
+
if (W(s) && typeof o == "number" && n.push(Object.freeze({ group: s, size: o })), n.length === t)
|
|
1800
1806
|
break;
|
|
1801
1807
|
}
|
|
1802
1808
|
return Object.freeze(n);
|
|
@@ -1821,7 +1827,7 @@ class qt {
|
|
|
1821
1827
|
*/
|
|
1822
1828
|
constructor(t, n, r, i) {
|
|
1823
1829
|
this.runId = t.runId, this.shape = t.shape, this.fields = Object.freeze([...t.fields]), this.measured = Object.freeze({ nodes: t.measured.nodes, edges: t.measured.edges }), this.graph = i, this.#e = n, this.#t = r, this.#n = t.caveats, this.#r = t.durationMs, this.#i = t.labelOf ?? (() => {
|
|
1824
|
-
}), this.#s = t.reading ??
|
|
1830
|
+
}), this.#s = t.reading ?? nt;
|
|
1825
1831
|
}
|
|
1826
1832
|
/**
|
|
1827
1833
|
* One node's fields.
|
|
@@ -1922,7 +1928,7 @@ class qt {
|
|
|
1922
1928
|
*/
|
|
1923
1929
|
histogram(t, n) {
|
|
1924
1930
|
const r = this.#d(t), i = r.kind === "edge" ? this.#t : this.#e;
|
|
1925
|
-
return
|
|
1931
|
+
return Lt(V(i, t), {
|
|
1926
1932
|
...n,
|
|
1927
1933
|
integerValued: r.type === "integer"
|
|
1928
1934
|
});
|
|
@@ -1978,7 +1984,7 @@ class qt {
|
|
|
1978
1984
|
code: "E_UNKNOWN_ATTRIBUTE",
|
|
1979
1985
|
source: "run",
|
|
1980
1986
|
message: `Run "${this.runId}" published no field named "${t}".`,
|
|
1981
|
-
details: { field: t, available: i, candidates:
|
|
1987
|
+
details: { field: t, available: i, candidates: Nt(t, i) },
|
|
1982
1988
|
target: { kind: "run", id: this.runId }
|
|
1983
1989
|
});
|
|
1984
1990
|
if (!P(r))
|
|
@@ -2020,7 +2026,7 @@ class qt {
|
|
|
2020
2026
|
* @throws A GraphtyError naming what went wrong.
|
|
2021
2027
|
*/
|
|
2022
2028
|
#f(t) {
|
|
2023
|
-
const n =
|
|
2029
|
+
const n = q(Y(this.#p(t), t));
|
|
2024
2030
|
return this.#a.set(t, n), n;
|
|
2025
2031
|
}
|
|
2026
2032
|
/**
|
|
@@ -2028,7 +2034,7 @@ class qt {
|
|
|
2028
2034
|
* @returns The summary.
|
|
2029
2035
|
*/
|
|
2030
2036
|
#g() {
|
|
2031
|
-
const t =
|
|
2037
|
+
const t = Vt(this.shape), n = t === null || this.#m(t) === null ? null : t, r = n === null ? null : this.#h(n).statistics, i = r !== null && r.measured > 0 ? r : null, s = n === null ? [] : this.ranking(n, Dt).map(
|
|
2032
2038
|
(c) => Object.freeze({
|
|
2033
2039
|
id: c.id,
|
|
2034
2040
|
label: this.#i(c.id) ?? String(c.id),
|
|
@@ -2048,7 +2054,7 @@ class qt {
|
|
|
2048
2054
|
top: Object.freeze(s),
|
|
2049
2055
|
caveats: this.#n,
|
|
2050
2056
|
durationMs: this.#r
|
|
2051
|
-
}, a = this.graph.sizes ?? this.graph.categories, u =
|
|
2057
|
+
}, a = this.graph.sizes ?? this.graph.categories, u = Jt(a, Gt);
|
|
2052
2058
|
return Object.freeze(u === void 0 ? o : { ...o, groups: u });
|
|
2053
2059
|
}
|
|
2054
2060
|
/**
|
|
@@ -2085,9 +2091,9 @@ class qt {
|
|
|
2085
2091
|
return we(n) ? n : t === null ? "none" : Ae(this.fields, t);
|
|
2086
2092
|
}
|
|
2087
2093
|
}
|
|
2088
|
-
function
|
|
2094
|
+
function Yt(e) {
|
|
2089
2095
|
const t = oe(e.nodes), n = oe(e.edges), r = { ...e.graph };
|
|
2090
|
-
|
|
2096
|
+
Bt(e.shape, t, n, r, e.fields);
|
|
2091
2097
|
for (const i of t.records)
|
|
2092
2098
|
Object.freeze(i);
|
|
2093
2099
|
for (const i of n.records)
|
|
@@ -2104,11 +2110,11 @@ function Wt(e) {
|
|
|
2104
2110
|
return typeof i == "string" || typeof i == "number" ? String(i) : void 0;
|
|
2105
2111
|
};
|
|
2106
2112
|
}
|
|
2107
|
-
function
|
|
2113
|
+
function Vn(e) {
|
|
2108
2114
|
return { exact: !0, precision: "f64", notes: [], ...e };
|
|
2109
2115
|
}
|
|
2110
|
-
const
|
|
2111
|
-
function
|
|
2116
|
+
const Kt = 1024, Zt = 16;
|
|
2117
|
+
function Xt() {
|
|
2112
2118
|
return {
|
|
2113
2119
|
signal: new AbortController().signal,
|
|
2114
2120
|
report: () => {
|
|
@@ -2118,27 +2124,27 @@ function Zt() {
|
|
|
2118
2124
|
})
|
|
2119
2125
|
};
|
|
2120
2126
|
}
|
|
2121
|
-
async function
|
|
2127
|
+
async function Jn(e, t, n, r) {
|
|
2122
2128
|
const i = n.length;
|
|
2123
2129
|
e.report({ phase: t, completed: 0, total: i });
|
|
2124
2130
|
let s = performance.now();
|
|
2125
2131
|
for (let o = 0; o < i; o++)
|
|
2126
|
-
o > 0 && o %
|
|
2132
|
+
o > 0 && o % Kt === 0 && (e.signal.throwIfAborted(), e.report({ phase: t, completed: o, total: i }), performance.now() - s >= Zt && (await e.yieldNow(), s = performance.now())), r(n[o], o);
|
|
2127
2133
|
e.signal.throwIfAborted(), e.report({ phase: t, completed: i, total: i });
|
|
2128
2134
|
}
|
|
2129
|
-
function
|
|
2135
|
+
function Qt(e, t, n) {
|
|
2130
2136
|
const r = n?.find((s) => s.name === e.name && s.kind === e.kind), i = {
|
|
2131
2137
|
name: e.name,
|
|
2132
2138
|
plainName: r?.plainName ?? e.name,
|
|
2133
2139
|
technicalName: r?.technicalName ?? e.name,
|
|
2134
2140
|
kind: e.kind,
|
|
2135
2141
|
type: e.type,
|
|
2136
|
-
path:
|
|
2142
|
+
path: T(t, e.name),
|
|
2137
2143
|
...r?.unit === void 0 ? {} : { unit: r.unit }
|
|
2138
2144
|
};
|
|
2139
2145
|
return e.normalization === void 0 ? i : { ...i, normalization: e.normalization };
|
|
2140
2146
|
}
|
|
2141
|
-
class
|
|
2147
|
+
class qn extends D {
|
|
2142
2148
|
/** What the last run published, kept so a caller holding the algorithm can read the result. */
|
|
2143
2149
|
#e;
|
|
2144
2150
|
/**
|
|
@@ -2162,7 +2168,7 @@ class Bn extends D {
|
|
|
2162
2168
|
*/
|
|
2163
2169
|
resolveOptions(t) {
|
|
2164
2170
|
const { descriptor: n } = this.constructor;
|
|
2165
|
-
return n === void 0 ? super.resolveOptions(t) :
|
|
2171
|
+
return n === void 0 ? super.resolveOptions(t) : _e(n.options, t ?? {}, {
|
|
2166
2172
|
kind: "algorithm",
|
|
2167
2173
|
id: n.key
|
|
2168
2174
|
});
|
|
@@ -2189,7 +2195,7 @@ class Bn extends D {
|
|
|
2189
2195
|
* @returns A promise that settles when the result has been published.
|
|
2190
2196
|
*/
|
|
2191
2197
|
async run() {
|
|
2192
|
-
await this.computeRun(
|
|
2198
|
+
await this.computeRun(Xt(), this.type);
|
|
2193
2199
|
}
|
|
2194
2200
|
/**
|
|
2195
2201
|
* Compute on behalf of a run, and hand the result back.
|
|
@@ -2224,11 +2230,11 @@ class Bn extends D {
|
|
|
2224
2230
|
const i = Date.now(), s = await this.compute(t);
|
|
2225
2231
|
if (s === null)
|
|
2226
2232
|
return;
|
|
2227
|
-
const o = this.graph.getDataManager(), a = Wt(this.graph), u =
|
|
2233
|
+
const o = this.graph.getDataManager(), a = Wt(this.graph), u = Yt({
|
|
2228
2234
|
...a === void 0 ? {} : { labelOf: a },
|
|
2229
2235
|
runId: n,
|
|
2230
2236
|
shape: s.shape,
|
|
2231
|
-
fields: s.fields.map((c) =>
|
|
2237
|
+
fields: s.fields.map((c) => Qt(c, n, r)),
|
|
2232
2238
|
measured: { nodes: o.nodes.size, edges: o.edges.size },
|
|
2233
2239
|
graph: s.graph,
|
|
2234
2240
|
nodes: s.nodes,
|
|
@@ -2239,7 +2245,7 @@ class Bn extends D {
|
|
|
2239
2245
|
return this.#e = u, u;
|
|
2240
2246
|
}
|
|
2241
2247
|
}
|
|
2242
|
-
function
|
|
2248
|
+
function Yn(e, t = "number") {
|
|
2243
2249
|
return [
|
|
2244
2250
|
{ name: "value", kind: e, type: t },
|
|
2245
2251
|
{ name: "rank", kind: e, type: "integer" },
|
|
@@ -2259,15 +2265,15 @@ const le = [
|
|
|
2259
2265
|
{ name: "groupCount", kind: "graph", type: "integer" },
|
|
2260
2266
|
{ name: "sizes", kind: "graph", type: "table" }
|
|
2261
2267
|
];
|
|
2262
|
-
function
|
|
2268
|
+
function Wn(e) {
|
|
2263
2269
|
return e ? [...le, { name: "modularity", kind: "graph", type: "number" }] : le;
|
|
2264
2270
|
}
|
|
2265
|
-
const
|
|
2271
|
+
const Kn = [
|
|
2266
2272
|
{ name: "level", kind: "node", type: "integer" },
|
|
2267
2273
|
{ name: "levelSize", kind: "node", type: "integer" },
|
|
2268
2274
|
{ name: "levelCount", kind: "graph", type: "integer" },
|
|
2269
2275
|
{ name: "sizes", kind: "graph", type: "table" }
|
|
2270
|
-
],
|
|
2276
|
+
], Zn = [
|
|
2271
2277
|
{ name: "onPath", kind: "node", type: "boolean" },
|
|
2272
2278
|
{ name: "order", kind: "node", type: "integer" },
|
|
2273
2279
|
{ name: "onPath", kind: "edge", type: "boolean" },
|
|
@@ -2275,18 +2281,18 @@ const Jn = [
|
|
|
2275
2281
|
{ name: "cost", kind: "graph", type: "number" },
|
|
2276
2282
|
{ name: "hops", kind: "graph", type: "integer" }
|
|
2277
2283
|
];
|
|
2278
|
-
function
|
|
2284
|
+
function Xn(e, t) {
|
|
2279
2285
|
return [
|
|
2280
2286
|
{ name: "in", kind: e, type: "boolean" },
|
|
2281
2287
|
{ name: "count", kind: "graph", type: "integer" },
|
|
2282
2288
|
{ ...t, kind: "graph" }
|
|
2283
2289
|
];
|
|
2284
2290
|
}
|
|
2285
|
-
const
|
|
2291
|
+
const en = `${H}.${wt}`;
|
|
2286
2292
|
function O(e) {
|
|
2287
|
-
return { ...e, path: `${
|
|
2293
|
+
return { ...e, path: `${en}.${e.name}` };
|
|
2288
2294
|
}
|
|
2289
|
-
function
|
|
2295
|
+
function Qn(e) {
|
|
2290
2296
|
return [
|
|
2291
2297
|
O({
|
|
2292
2298
|
name: "value",
|
|
@@ -2331,28 +2337,28 @@ function Kn(e) {
|
|
|
2331
2337
|
})
|
|
2332
2338
|
];
|
|
2333
2339
|
}
|
|
2334
|
-
const
|
|
2335
|
-
function
|
|
2336
|
-
return (
|
|
2337
|
-
const i = { ...r.meta, ...t.meta?.[r.name] }, s = r.node === null ?
|
|
2340
|
+
const tn = 12;
|
|
2341
|
+
function er(e, t = {}) {
|
|
2342
|
+
return (nn(e) ? rn(e) : sn(e)).map((r) => {
|
|
2343
|
+
const i = { ...r.meta, ...t.meta?.[r.name] }, s = r.node === null ? cn(r.name, i, r.failure ?? "the schema could not be converted") : an(r.name, r.node, i), o = t.overrides?.[r.name];
|
|
2338
2344
|
return o === void 0 ? s : { ...s, ...o };
|
|
2339
2345
|
});
|
|
2340
2346
|
}
|
|
2341
|
-
function
|
|
2347
|
+
function nn(e) {
|
|
2342
2348
|
return typeof e != "object" || e === null ? !1 : "_zod" in e || "_def" in e;
|
|
2343
2349
|
}
|
|
2344
|
-
function
|
|
2350
|
+
function rn(e) {
|
|
2345
2351
|
const t = $e(e);
|
|
2346
2352
|
if (t === null)
|
|
2347
2353
|
return [];
|
|
2348
2354
|
const { properties: n } = t;
|
|
2349
2355
|
return n === void 0 ? [] : Object.entries(n).map(([r, i]) => ({ name: r, node: Re(i, t) }));
|
|
2350
2356
|
}
|
|
2351
|
-
function
|
|
2357
|
+
function sn(e) {
|
|
2352
2358
|
const t = Object.entries(e), n = {};
|
|
2353
2359
|
for (const [s, o] of t)
|
|
2354
2360
|
n[s] = o.schema;
|
|
2355
|
-
const r =
|
|
2361
|
+
const r = on(n), i = r?.properties;
|
|
2356
2362
|
return t.map(([s, o]) => {
|
|
2357
2363
|
const a = i?.[s];
|
|
2358
2364
|
return r === null || a === void 0 ? {
|
|
@@ -2370,7 +2376,7 @@ function $e(e) {
|
|
|
2370
2376
|
return null;
|
|
2371
2377
|
}
|
|
2372
2378
|
}
|
|
2373
|
-
function
|
|
2379
|
+
function on(e) {
|
|
2374
2380
|
try {
|
|
2375
2381
|
return $e(me.object(e));
|
|
2376
2382
|
} catch {
|
|
@@ -2385,8 +2391,8 @@ function Re(e, t) {
|
|
|
2385
2391
|
const r = n.slice(de.length).replaceAll("~1", "/").replaceAll("~0", "~");
|
|
2386
2392
|
return t.$defs?.[r] ?? e;
|
|
2387
2393
|
}
|
|
2388
|
-
function
|
|
2389
|
-
const r =
|
|
2394
|
+
function an(e, t, n) {
|
|
2395
|
+
const r = Ee(t, 0), i = un(r), s = {
|
|
2390
2396
|
name: e,
|
|
2391
2397
|
plainName: n.label ?? K(e),
|
|
2392
2398
|
technicalName: e,
|
|
@@ -2401,7 +2407,7 @@ function on(e, t, n) {
|
|
|
2401
2407
|
const u = n.step ?? a?.multipleOf;
|
|
2402
2408
|
return u !== void 0 && (s.step = u), i.values !== void 0 && (s.values = i.values), n.group !== void 0 && (s.group = n.group), n.advanced !== void 0 && (s.advanced = n.advanced), i.unsupportedReason !== void 0 && (s.unsupportedReason = i.unsupportedReason), s;
|
|
2403
2409
|
}
|
|
2404
|
-
function
|
|
2410
|
+
function cn(e, t, n) {
|
|
2405
2411
|
const r = {
|
|
2406
2412
|
name: e,
|
|
2407
2413
|
plainName: t.label ?? K(e),
|
|
@@ -2411,8 +2417,8 @@ function an(e, t, n) {
|
|
|
2411
2417
|
};
|
|
2412
2418
|
return t.description !== void 0 && (r.description = t.description), t.step !== void 0 && (r.step = t.step), t.group !== void 0 && (r.group = t.group), t.advanced !== void 0 && (r.advanced = t.advanced), r;
|
|
2413
2419
|
}
|
|
2414
|
-
function
|
|
2415
|
-
if (t >=
|
|
2420
|
+
function Ee(e, t) {
|
|
2421
|
+
if (t >= tn)
|
|
2416
2422
|
return { arms: [], nullable: !1, unresolvedRef: !0 };
|
|
2417
2423
|
if (e.$ref !== void 0)
|
|
2418
2424
|
return { arms: [], nullable: !1, unresolvedRef: !0 };
|
|
@@ -2421,12 +2427,12 @@ function Fe(e, t) {
|
|
|
2421
2427
|
return e.type === "null" ? { arms: [], nullable: !0, unresolvedRef: !1 } : { arms: [e], nullable: !1, unresolvedRef: !1 };
|
|
2422
2428
|
const r = { arms: [], nullable: !1, unresolvedRef: !1 };
|
|
2423
2429
|
for (const i of n) {
|
|
2424
|
-
const s =
|
|
2430
|
+
const s = Ee(i, t + 1);
|
|
2425
2431
|
r.arms.push(...s.arms), r.nullable = r.nullable || s.nullable, r.unresolvedRef = r.unresolvedRef || s.unresolvedRef;
|
|
2426
2432
|
}
|
|
2427
2433
|
return r;
|
|
2428
2434
|
}
|
|
2429
|
-
function
|
|
2435
|
+
function un(e) {
|
|
2430
2436
|
if (e.arms.length === 0)
|
|
2431
2437
|
return e.unresolvedRef ? {
|
|
2432
2438
|
type: "unknown",
|
|
@@ -2435,19 +2441,19 @@ function cn(e) {
|
|
|
2435
2441
|
type: "unknown",
|
|
2436
2442
|
unsupportedReason: e.nullable ? "the only value the schema accepts is null" : "the schema declares no value type"
|
|
2437
2443
|
};
|
|
2438
|
-
const t =
|
|
2444
|
+
const t = dn(e.arms);
|
|
2439
2445
|
if (t !== void 0)
|
|
2440
2446
|
return { type: "enum", node: e.arms[0], values: t };
|
|
2441
2447
|
if (e.arms.length === 1)
|
|
2442
|
-
return
|
|
2443
|
-
const n = e.arms.map((r) =>
|
|
2448
|
+
return ln(e.arms[0]);
|
|
2449
|
+
const n = e.arms.map((r) => Fe(r));
|
|
2444
2450
|
return n.length === 2 && n.includes("string") && n.includes("number") ? { type: "node-id" } : {
|
|
2445
2451
|
type: "unknown",
|
|
2446
2452
|
unsupportedReason: `the schema is a union of ${n.join(" and ")}, which has no single control`
|
|
2447
2453
|
};
|
|
2448
2454
|
}
|
|
2449
|
-
function
|
|
2450
|
-
switch (
|
|
2455
|
+
function ln(e) {
|
|
2456
|
+
switch (Fe(e)) {
|
|
2451
2457
|
case "integer":
|
|
2452
2458
|
return { type: "integer", node: e };
|
|
2453
2459
|
case "number":
|
|
@@ -2476,7 +2482,7 @@ function un(e) {
|
|
|
2476
2482
|
};
|
|
2477
2483
|
}
|
|
2478
2484
|
}
|
|
2479
|
-
function
|
|
2485
|
+
function dn(e) {
|
|
2480
2486
|
const t = [];
|
|
2481
2487
|
for (const r of e)
|
|
2482
2488
|
if (r.enum !== void 0)
|
|
@@ -2496,7 +2502,7 @@ function ln(e) {
|
|
|
2496
2502
|
}
|
|
2497
2503
|
return n;
|
|
2498
2504
|
}
|
|
2499
|
-
function
|
|
2505
|
+
function Fe(e) {
|
|
2500
2506
|
const { type: t } = e;
|
|
2501
2507
|
return typeof t == "string" ? t : Array.isArray(t) && t.length > 0 ? t[0] : "none";
|
|
2502
2508
|
}
|
|
@@ -2509,57 +2515,59 @@ function K(e) {
|
|
|
2509
2515
|
return t === "" ? e : t.split(/\s+/u).map((n) => n.charAt(0).toUpperCase() + n.slice(1)).join(" ");
|
|
2510
2516
|
}
|
|
2511
2517
|
export {
|
|
2518
|
+
Hn as $,
|
|
2512
2519
|
D as A,
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2520
|
+
Tn as B,
|
|
2521
|
+
Le as C,
|
|
2522
|
+
An as D,
|
|
2523
|
+
kn as E,
|
|
2524
|
+
vn as F,
|
|
2518
2525
|
Wt as G,
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
+
Yt as H,
|
|
2527
|
+
Rn as I,
|
|
2528
|
+
$n as J,
|
|
2529
|
+
Fn as K,
|
|
2530
|
+
Kn as L,
|
|
2531
|
+
En as M,
|
|
2532
|
+
ve as N,
|
|
2526
2533
|
b as O,
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2534
|
+
Zn as P,
|
|
2535
|
+
Bn as Q,
|
|
2536
|
+
Dn as R,
|
|
2537
|
+
Ln as S,
|
|
2538
|
+
Cn as T,
|
|
2539
|
+
B as U,
|
|
2540
|
+
Nt as V,
|
|
2541
|
+
Pn as W,
|
|
2542
|
+
jn as X,
|
|
2543
|
+
Zt as Y,
|
|
2544
|
+
xn as Z,
|
|
2545
|
+
Gn as _,
|
|
2546
|
+
qn as a,
|
|
2547
|
+
zn as a0,
|
|
2548
|
+
Mn as b,
|
|
2549
|
+
Un as c,
|
|
2550
|
+
On as d,
|
|
2551
|
+
Wn as e,
|
|
2552
|
+
Vn as f,
|
|
2553
|
+
_n as g,
|
|
2554
|
+
Jn as h,
|
|
2555
|
+
Yn as i,
|
|
2556
|
+
In as j,
|
|
2557
|
+
wn as k,
|
|
2550
2558
|
He as l,
|
|
2551
2559
|
O as m,
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2560
|
+
Qn as n,
|
|
2561
|
+
er as o,
|
|
2562
|
+
Pe as p,
|
|
2563
|
+
Nn as q,
|
|
2564
|
+
bn as r,
|
|
2565
|
+
Xn as s,
|
|
2566
|
+
H as t,
|
|
2567
|
+
J as u,
|
|
2568
|
+
Ge as v,
|
|
2569
|
+
nt as w,
|
|
2570
|
+
Sn as x,
|
|
2571
|
+
yt as y,
|
|
2572
|
+
T as z
|
|
2565
2573
|
};
|