@hybridcore/ui 1.6.30 → 1.6.31

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.
@@ -1,46 +1,42 @@
1
- import { R as V, A as q } from "../../../AnimatedTheme-ktdO3Bel.js";
2
- import { useThemeProps as I, useTheme as N } from "@mui/material";
1
+ import { R as U, A as V } from "../../../AnimatedTheme-ktdO3Bel.js";
2
+ import { useThemeProps as q, useTheme as N } from "@mui/material";
3
3
  import P from "dayjs";
4
- import v from "lodash";
4
+ import C from "lodash";
5
5
  import { useId as z, useRef as H, useEffect as _ } from "react";
6
6
  import { humanizeLabel as $ } from "../_common/format.js";
7
7
  import { attachCombinedAxisTooltip as G } from "../_common/tooltip.js";
8
- import { applyValueFormat as J, colorSetFromPalette as K } from "../_common/utils.js";
9
- import { c as p, a as h, p as Q } from "../../../Entity-BJCuhdq_.js";
8
+ import { applyValueFormat as J, applyInterfaceColors as K, colorSetFromPalette as Q } from "../_common/utils.js";
10
9
  import { X as W, V as Z } from "../../../AxisRenderer-BCQoUJw6.js";
11
10
  import { A as ee, a as te } from "../../../AxisRendererY-AXWvGU6r.js";
12
- import { C as D } from "../../../CategoryAxis-B6NqW8qd.js";
11
+ import { C as b } from "../../../CategoryAxis-B6NqW8qd.js";
13
12
  import { L as re } from "../../../Legend-CFvQiIfn.js";
14
- import { X as oe } from "../../../XYCursor-CVUSpqb9.js";
15
- import { C as ae } from "../../../ColumnSeries-CtRTsn-E.js";
16
- import { B as se } from "../../../Bullet-Djj7Vs9T.js";
17
- import { L as ne } from "../../../Tooltip-vyZRZWih.js";
18
- const Xe = (L) => {
19
- const C = I({
13
+ import { a as f, c as D, p as oe } from "../../../Entity-BJCuhdq_.js";
14
+ import { X as ae } from "../../../XYCursor-CVUSpqb9.js";
15
+ import { C as se } from "../../../ColumnSeries-CtRTsn-E.js";
16
+ import { B as ne } from "../../../Bullet-Djj7Vs9T.js";
17
+ import { L as le } from "../../../Tooltip-vyZRZWih.js";
18
+ const Fe = (L) => {
19
+ const g = q({
20
20
  props: L,
21
21
  name: "HCStackedColumnChart"
22
22
  }), {
23
- dimensions: u,
23
+ dimensions: p,
24
24
  values: n,
25
25
  data: w,
26
26
  initDelay: R = 0,
27
- baseInterval: d,
28
- colors: k,
27
+ baseInterval: u,
28
+ colors: v,
29
29
  sx: O,
30
30
  ...B
31
- } = C, i = N(), T = `hc-stacked-column-chart-${z().replace(/:/g, "")}`, x = H(null);
32
- let f = null;
33
- u.length < 2 ? f = "StackedColumnChart requires at least 2 dimensions" : n.length < 1 && (f = "StackedColumnChart requires at least 1 value"), _(() => {
34
- if (f) return;
35
- let A;
36
- return A = setTimeout(() => {
37
- var F, S, b;
38
- const e = V.new(T);
39
- x.current = e, J(e, (F = n == null ? void 0 : n[0]) == null ? void 0 : F.format), e.setThemes([q.new(e)]), e.interfaceColors.setAll({
40
- text: p(i.palette.text.primary),
41
- grid: p(i.palette.divider),
42
- stroke: p(i.palette.divider)
43
- });
31
+ } = g, c = N(), k = `hc-stacked-column-chart-${z().replace(/:/g, "")}`, h = H(null);
32
+ let d = null;
33
+ p.length < 2 ? d = "StackedColumnChart requires at least 2 dimensions" : n.length < 1 && (d = "StackedColumnChart requires at least 1 value"), _(() => {
34
+ if (d) return;
35
+ let x;
36
+ return x = setTimeout(() => {
37
+ var X, F, S;
38
+ const e = U.new(k);
39
+ h.current = e, J(e, (X = n == null ? void 0 : n[0]) == null ? void 0 : X.format), e.setThemes([V.new(e)]), K(e, c);
44
40
  const o = e.container.children.push(
45
41
  W.new(e, {
46
42
  panX: !1,
@@ -51,105 +47,109 @@ const Xe = (L) => {
51
47
  layout: e.verticalLayout
52
48
  })
53
49
  );
54
- o.set("colors", K(e, k)), o.get("colors", {}).set("step", 2);
50
+ o.set("colors", Q(e, v)), o.get("colors", {}).set("step", 2);
55
51
  const Y = ee.new(e, {});
56
52
  Y.grid.template.setAll({ location: 1 });
57
- const a = u[0], M = u[1];
58
- let l, c = w;
53
+ const a = p[0], M = p[1];
54
+ let l, m = w;
59
55
  if (a.type === "date") {
60
- const t = (d == null ? void 0 : d.timeUnit) || "day";
56
+ const t = (u == null ? void 0 : u.timeUnit) || "day";
61
57
  let s = "DD/MM/YYYY";
62
58
  t === "month" ? s = "MM YYYY" : t === "year" && (s = "YYYY"), l = o.xAxes.push(
63
- D.new(e, {
59
+ b.new(e, {
64
60
  categoryField: a.value,
65
61
  renderer: Y
66
62
  })
67
- ), c = v.orderBy(c, [a.value]), c = c.map((r) => ({
63
+ ), m = C.orderBy(m, [a.value]), m = m.map((r) => ({
68
64
  ...r,
69
- [a.value]: P(r[a.value]).format(s)
65
+ [a.value]: P(r[a.value]).format(
66
+ s
67
+ )
70
68
  }));
71
69
  } else
72
70
  l = o.xAxes.push(
73
- D.new(e, {
71
+ b.new(e, {
74
72
  categoryField: a.value,
75
73
  renderer: Y
76
74
  })
77
75
  );
78
- const m = [], y = v.groupBy(c, M.value);
79
- Object.keys(y).forEach((t) => {
80
- y[t].forEach((s) => {
81
- const r = s[a.value], g = v.findIndex(m, { [a.value]: r });
82
- g === -1 ? m.push({
76
+ const i = [], A = C.groupBy(m, M.value);
77
+ Object.keys(A).forEach((t) => {
78
+ A[t].forEach((s) => {
79
+ const r = s[a.value], y = C.findIndex(i, { [a.value]: r });
80
+ y === -1 ? i.push({
83
81
  [a.value]: r,
84
82
  [t]: s[n[0].dataFieldName]
85
- }) : m[g] = {
86
- ...m[g],
83
+ }) : i[y] = {
84
+ ...i[y],
87
85
  [t]: s[n[0].dataFieldName]
88
86
  };
89
87
  });
90
- }), l.data.setAll(m);
91
- const X = o.yAxes.push(
88
+ }), l.data.setAll(i);
89
+ const T = o.yAxes.push(
92
90
  Z.new(e, {
93
91
  min: 0,
94
92
  renderer: te.new(e, { strokeOpacity: 0.1 })
95
93
  })
96
94
  ), j = o.children.push(
97
95
  re.new(e, {
98
- centerX: h,
99
- x: h
96
+ centerX: f,
97
+ x: f
100
98
  })
101
99
  );
102
- (S = l.get("renderer")) == null || S.grid.template.setAll({
103
- stroke: p(i.palette.divider),
100
+ (F = l.get("renderer")) == null || F.grid.template.setAll({
101
+ stroke: D(c.palette.divider),
104
102
  strokeOpacity: 1
105
- }), (b = X.get("renderer")) == null || b.grid.template.setAll({
106
- stroke: p(i.palette.divider),
103
+ }), (S = T.get("renderer")) == null || S.grid.template.setAll({
104
+ stroke: D(c.palette.divider),
107
105
  strokeOpacity: 1
108
106
  });
109
- function U(t, s) {
107
+ function I(t, s) {
110
108
  const r = o.series.push(
111
- ae.new(e, {
109
+ se.new(e, {
112
110
  name: t,
113
111
  stacked: !0,
114
112
  xAxis: l,
115
- yAxis: X,
113
+ yAxis: T,
116
114
  valueYField: s,
117
115
  categoryXField: a.value
118
116
  })
119
117
  );
120
118
  r.columns.template.setAll({
121
- tooltipY: Q(10)
122
- }), r.data.setAll(m), r.appear(), r.bullets.push(function() {
123
- return se.new(e, {
124
- sprite: ne.new(e, {
119
+ tooltipY: oe(10)
120
+ }), r.data.setAll(i), r.appear(), r.bullets.push(function() {
121
+ return ne.new(e, {
122
+ sprite: le.new(e, {
125
123
  fill: e.interfaceColors.get("alternativeText"),
126
- centerY: h,
127
- centerX: h,
124
+ centerY: f,
125
+ centerX: f,
128
126
  populateText: !0
129
127
  })
130
128
  });
131
129
  }), j.data.push(r);
132
130
  }
133
- Object.keys(y).forEach((t) => U($(t), t)), o.set(
131
+ Object.keys(A).forEach(
132
+ (t) => I($(t), t)
133
+ ), o.set(
134
134
  "cursor",
135
- oe.new(e, { xAxis: l, behavior: "none" })
135
+ ae.new(e, { xAxis: l, behavior: "none" })
136
136
  ).lineY.set("visible", !1), G({
137
137
  root: e,
138
138
  chart: o,
139
139
  xAxis: l,
140
- theme: i,
140
+ theme: c,
141
141
  isDateAxis: !1,
142
- baseInterval: d,
142
+ baseInterval: u,
143
143
  follow: !0
144
144
  }), o.appear(1e3, 100);
145
145
  }, R), () => {
146
146
  var e;
147
- A && clearTimeout(A), (e = x.current) == null || e.dispose(), x.current = null;
147
+ x && clearTimeout(x), (e = h.current) == null || e.dispose(), h.current = null;
148
148
  };
149
- }, [w, u, n, i.palette.mode, k]);
150
- const E = { ...C };
151
- return { chartId: T, ownerState: E, sx: O, error: f, other: B };
149
+ }, [w, p, n, c.palette.mode, v]);
150
+ const E = { ...g };
151
+ return { chartId: k, ownerState: E, sx: O, error: d, other: B };
152
152
  };
153
153
  export {
154
- Xe as useStackedColumnChartLogic
154
+ Fe as useStackedColumnChartLogic
155
155
  };
@@ -1,25 +1,25 @@
1
1
  import { R as K, A as Q } from "../../../AnimatedTheme-ktdO3Bel.js";
2
2
  import { useThemeProps as Z, useTheme as ee } from "@mui/material";
3
- import y from "lodash";
4
- import { useId as te, useRef as re, useEffect as oe } from "react";
3
+ import A from "lodash";
4
+ import { useId as te, useRef as oe, useEffect as re } from "react";
5
5
  import { humanizeLabel as E } from "../_common/format.js";
6
6
  import { attachCombinedAxisTooltip as ae } from "../_common/tooltip.js";
7
- import { colorSetFromPalette as se, applyDateAxisLabelFormat as ie, applyValueFormat as ne } from "../_common/utils.js";
8
- import { c as p, a as S, p as z } from "../../../Entity-BJCuhdq_.js";
9
- import { X as le, V as ce } from "../../../AxisRenderer-BCQoUJw6.js";
10
- import { L as me } from "../../../Legend-CFvQiIfn.js";
11
- import { C as pe } from "../../../CategoryAxis-B6NqW8qd.js";
12
- import { T as de, R as ue } from "../../../Tooltip-vyZRZWih.js";
13
- import { X as fe } from "../../../XYCursor-CVUSpqb9.js";
14
- import { a as B, A as G } from "../../../AxisRendererY-AXWvGU6r.js";
15
- import { G as he, D as xe } from "../../../GaplessDateAxis-B2g2jgSG.js";
16
- import { D as Ae } from "../../../DateAxis-DEXKps1S.js";
17
- import { C as ye } from "../../../ColumnSeries-CtRTsn-E.js";
18
- const Be = (I) => {
19
- const g = Z({ props: I, name: "HCXYChart" }), {
20
- dimensions: l,
21
- values: c,
22
- data: f,
7
+ import { applyInterfaceColors as se, colorSetFromPalette as ie, applyDateAxisLabelFormat as ne, applyValueFormat as le } from "../_common/utils.js";
8
+ import { X as ce, V as me } from "../../../AxisRenderer-BCQoUJw6.js";
9
+ import { L as pe } from "../../../Legend-CFvQiIfn.js";
10
+ import { a as I, c as y, p as S } from "../../../Entity-BJCuhdq_.js";
11
+ import { C as de } from "../../../CategoryAxis-B6NqW8qd.js";
12
+ import { T as ue, R as fe } from "../../../Tooltip-vyZRZWih.js";
13
+ import { X as he } from "../../../XYCursor-CVUSpqb9.js";
14
+ import { a as z, A as B } from "../../../AxisRendererY-AXWvGU6r.js";
15
+ import { G as xe, D as Ae } from "../../../GaplessDateAxis-B2g2jgSG.js";
16
+ import { D as ye } from "../../../DateAxis-DEXKps1S.js";
17
+ import { C as ge } from "../../../ColumnSeries-CtRTsn-E.js";
18
+ const Be = (G) => {
19
+ const g = Z({ props: G, name: "HCXYChart" }), {
20
+ dimensions: n,
21
+ values: l,
22
+ data: u,
23
23
  initDelay: V = 0,
24
24
  baseInterval: v,
25
25
  colors: w,
@@ -27,20 +27,16 @@ const Be = (I) => {
27
27
  orientation: D = "vertical",
28
28
  sx: W,
29
29
  ...N
30
- } = g, n = ee(), X = `hc-xy-chart-${te().replace(/:/g, "")}`, h = re(null), C = l.length < 1 ? "Missing dimensions config!" : null;
31
- oe(() => {
30
+ } = g, m = ee(), X = `hc-xy-chart-${te().replace(/:/g, "")}`, f = oe(null), C = n.length < 1 ? "Missing dimensions config!" : null;
31
+ re(() => {
32
32
  if (C) return;
33
- let x;
34
- return x = setTimeout(() => {
33
+ let h;
34
+ return h = setTimeout(() => {
35
35
  var k, L, O;
36
36
  const t = D === "horizontal", e = K.new(X);
37
- h.current = e, e.setThemes([Q.new(e)]), e.interfaceColors.setAll({
38
- text: p(n.palette.text.primary),
39
- grid: p(n.palette.divider),
40
- stroke: p(n.palette.divider)
41
- });
37
+ f.current = e, e.setThemes([Q.new(e)]), se(e, m);
42
38
  const a = e.container.children.push(
43
- le.new(e, {
39
+ ce.new(e, {
44
40
  panX: !1,
45
41
  panY: !1,
46
42
  wheelX: "none",
@@ -50,139 +46,139 @@ const Be = (I) => {
50
46
  layout: e.verticalLayout
51
47
  })
52
48
  );
53
- a.set("colors", se(e, w));
49
+ a.set("colors", ie(e, w));
54
50
  const q = a.children.push(
55
- me.new(e, {
56
- centerX: S,
57
- x: S
51
+ pe.new(e, {
52
+ centerX: I,
53
+ x: I
58
54
  })
59
- ), s = l[0], F = t ? B : G, H = t ? G : B, R = t ? a.yAxes : a.xAxes, M = t ? a.xAxes : a.yAxes;
60
- let o, d = f;
55
+ ), s = n[0], F = t ? z : B, H = t ? B : z, R = t ? a.yAxes : a.xAxes, M = t ? a.xAxes : a.yAxes;
56
+ let r, p = u;
61
57
  if (s.type === "date") {
62
- const r = b ? he : Ae;
63
- o = R.push(
64
- r.new(e, {
58
+ const o = b ? xe : ye;
59
+ r = R.push(
60
+ o.new(e, {
65
61
  maxDeviation: 0,
66
62
  baseInterval: v || { timeUnit: "day", count: 1 },
67
63
  renderer: F.new(e, { minGridDistance: 60 })
68
64
  })
69
- ), ie(o, s), d = y.orderBy(f, [s.value]);
65
+ ), ne(r, s), p = A.orderBy(u, [s.value]);
70
66
  } else {
71
- const r = F.new(e, {
67
+ const o = F.new(e, {
72
68
  cellStartLocation: 0.1,
73
69
  cellEndLocation: 0.9,
74
70
  minGridDistance: 30
75
71
  });
76
- o = R.push(
77
- pe.new(e, {
72
+ r = R.push(
73
+ de.new(e, {
78
74
  categoryField: s.value,
79
- renderer: r
75
+ renderer: o
80
76
  })
81
- ), r.grid.template.setAll({ location: 1 }), o.labelsContainer.set(
77
+ ), o.grid.template.setAll({ location: 1 }), r.labelsContainer.set(
82
78
  "tooltip",
83
- de.new(e, {
79
+ ue.new(e, {
84
80
  pointerOrientation: t ? "right" : "down"
85
81
  })
86
- ), r.labels.template.setAll({
82
+ ), o.labels.template.setAll({
87
83
  oversizedBehavior: "truncate",
88
84
  maxWidth: 150,
89
85
  tooltipText: "{category}"
90
- }), r.labels.template.setup = function(i) {
86
+ }), o.labels.template.setup = function(i) {
91
87
  i.set(
92
88
  "background",
93
- ue.new(e, {
94
- fill: p(0),
89
+ fe.new(e, {
90
+ fill: y(0),
95
91
  fillOpacity: 0
96
92
  })
97
93
  );
98
- }, t || o.onPrivate("cellWidth", function(i) {
99
- r.labels.template.set("maxWidth", i);
94
+ }, t || r.onPrivate("cellWidth", function(i) {
95
+ o.labels.template.set("maxWidth", i);
100
96
  }), e.numberFormatter.setAll({
101
97
  numberFormat: "#",
102
98
  numericFields: [t ? "valueY" : "valueX"]
103
99
  });
104
- const m = l.length > 1 ? y.uniqBy(d, s.value) : d;
105
- o.data.setAll(m);
100
+ const c = n.length > 1 ? A.uniqBy(p, s.value) : p;
101
+ r.data.setAll(c);
106
102
  }
107
- const A = M.push(
108
- ce.new(e, {
103
+ const x = M.push(
104
+ me.new(e, {
109
105
  renderer: H.new(e, { strokeOpacity: 0.1 }),
110
106
  // Horizontal bars must grow from a zero baseline; otherwise the auto
111
107
  // min crops the axis (e.g. starting at 100) and distorts bar lengths.
112
108
  ...t ? { min: 0 } : {}
113
109
  })
114
- ), U = t ? A : o, _ = t ? o : A;
115
- (k = o.get("renderer")) == null || k.grid.template.setAll({
116
- stroke: p(n.palette.divider),
110
+ ), U = t ? x : r, _ = t ? r : x;
111
+ (k = r.get("renderer")) == null || k.grid.template.setAll({
112
+ stroke: y(m.palette.divider),
117
113
  strokeOpacity: 1
118
- }), (L = A.get("renderer")) == null || L.grid.template.setAll({
119
- stroke: p(n.palette.divider),
114
+ }), (L = x.get("renderer")) == null || L.grid.template.setAll({
115
+ stroke: y(m.palette.divider),
120
116
  strokeOpacity: 1
121
117
  });
122
- function Y(r, m, i, P) {
123
- const $ = t ? { valueXField: P } : { valueYField: P }, J = s.type === "date" ? t ? { valueYField: i } : { valueXField: i } : t ? { categoryYField: i } : { categoryXField: i }, u = a.series.push(
124
- ye.new(e, {
125
- name: r,
118
+ function Y(o, c, i, P) {
119
+ const $ = t ? { valueXField: P } : { valueYField: P }, J = s.type === "date" ? t ? { valueYField: i } : { valueXField: i } : t ? { categoryYField: i } : { categoryXField: i }, d = a.series.push(
120
+ ge.new(e, {
121
+ name: o,
126
122
  xAxis: U,
127
123
  yAxis: _,
128
124
  ...$,
129
125
  ...J
130
126
  })
131
127
  );
132
- u.columns.template.setAll({
133
- ...t ? { height: z(90) } : { width: z(90) },
128
+ d.columns.template.setAll({
129
+ ...t ? { height: S(90) } : { width: S(90) },
134
130
  strokeOpacity: 0
135
- }), s.type === "date" && (u.data.processor = xe.new(e, {
131
+ }), s.type === "date" && (d.data.processor = Ae.new(e, {
136
132
  dateFormat: "i",
137
133
  dateFields: [i]
138
- })), u.data.setAll(m), u.appear(), q.data.push(u);
134
+ })), d.data.setAll(c), d.appear(), q.data.push(d);
139
135
  }
140
- if (l.length === 1)
141
- c.forEach((r) => {
136
+ if (n.length === 1)
137
+ l.forEach((o) => {
142
138
  Y(
143
- r.label ?? E(r.name),
144
- d,
139
+ o.label ?? E(o.name),
140
+ p,
145
141
  s.value,
146
- r.dataFieldName
142
+ o.dataFieldName
147
143
  );
148
144
  });
149
145
  else {
150
- const r = y.groupBy(d, l[1].value);
151
- Object.keys(r).forEach((m) => {
146
+ const o = A.groupBy(p, n[1].value);
147
+ Object.keys(o).forEach((c) => {
152
148
  Y(
153
- E(m),
154
- r[m],
149
+ E(c),
150
+ o[c],
155
151
  s.value,
156
- c[0].dataFieldName
152
+ l[0].dataFieldName
157
153
  );
158
154
  });
159
155
  }
160
156
  const T = a.set(
161
157
  "cursor",
162
- fe.new(
158
+ he.new(
163
159
  e,
164
- t ? { yAxis: o, behavior: "none" } : { xAxis: o, behavior: "none" }
160
+ t ? { yAxis: r, behavior: "none" } : { xAxis: r, behavior: "none" }
165
161
  )
166
162
  );
167
163
  t ? T.lineX.set("visible", !1) : T.lineY.set("visible", !1), ae({
168
164
  root: e,
169
165
  chart: a,
170
- xAxis: o,
171
- theme: n,
166
+ xAxis: r,
167
+ theme: m,
172
168
  isDateAxis: s.type === "date",
173
169
  baseInterval: v,
174
170
  follow: !0,
175
171
  horizontal: t
176
- }), ne(e, (O = c == null ? void 0 : c[0]) == null ? void 0 : O.format), a.appear(1e3, 100);
172
+ }), le(e, (O = l == null ? void 0 : l[0]) == null ? void 0 : O.format), a.appear(1e3, 100);
177
173
  }, V), () => {
178
174
  var t;
179
- x && clearTimeout(x), (t = h.current) == null || t.dispose(), h.current = null;
175
+ h && clearTimeout(h), (t = f.current) == null || t.dispose(), f.current = null;
180
176
  };
181
177
  }, [
182
- f,
178
+ u,
179
+ n,
183
180
  l,
184
- c,
185
- n.palette.mode,
181
+ m.palette.mode,
186
182
  w,
187
183
  b,
188
184
  D
@@ -10,7 +10,7 @@ import { C as S } from "../../ColumnSeries-CtRTsn-E.js";
10
10
  import { c as i } from "../../Entity-BJCuhdq_.js";
11
11
  import { L as Y } from "../../LineSeries-D_IL2qGF.js";
12
12
  import { L as G } from "../../LinearGradient-CxQyCSEB.js";
13
- const u = 10, k = 21, q = ({
13
+ const u = 10, O = 21, W = ({
14
14
  data: a,
15
15
  type: p,
16
16
  fill: n = "solid",
@@ -32,7 +32,9 @@ const u = 10, k = 21, q = ({
32
32
  paddingTop: 0,
33
33
  paddingBottom: 0
34
34
  })
35
- ), o = s.xAxes.push(
35
+ );
36
+ s.zoomOutButton.set("forceHidden", !0);
37
+ const o = s.xAxes.push(
36
38
  X.new(e, {
37
39
  categoryField: "t",
38
40
  renderer: b.new(e, {
@@ -103,11 +105,11 @@ const u = 10, k = 21, q = ({
103
105
  width: `calc(100% + ${u}px)`,
104
106
  height: "100%",
105
107
  marginLeft: -u,
106
- marginBottom: -k
108
+ marginBottom: -O
107
109
  }
108
110
  }
109
111
  );
110
112
  };
111
113
  export {
112
- q as MetricChart
114
+ W as MetricChart
113
115
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hybridcore/ui",
3
3
  "description": "Hybrid Core UI Library",
4
- "version": "1.6.30",
4
+ "version": "1.6.31",
5
5
  "author": "Hybrid Core",
6
6
  "license": "ISC",
7
7
  "type": "module",